Sfoglia il codice sorgente

AMBARI-9107. Upgrade pack for Slider (dlysnichenko)

Lisnichenko Dmitro 10 anni fa
parent
commit
b0a345635e

+ 3 - 0
ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/package/scripts/params.py

@@ -27,6 +27,9 @@ config = Script.get_config()
 
 stack_name = default("/hostLevelParams/stack_name", None)
 
+# New Cluster Stack Version that is defined during the RESTART of a Rolling Upgrade
+version = default("/commandParams/version", None)
+
 stack_version_unformatted = str(config['hostLevelParams']['stack_version'])
 hdp_stack_version = format_hdp_stack_version(stack_version_unformatted)
 

+ 7 - 0
ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/package/scripts/slider_client.py

@@ -28,6 +28,13 @@ class SliderClient(Script):
   def get_stack_to_component(self):
     return {"HDP": "slider-client"}
 
+  def pre_rolling_restart(self, env):
+    import params
+    env.set_params(params)
+
+    if params.version and compare_versions(format_hdp_stack_version(params.version), '2.2.0.0') >= 0:
+      Execute(format("hdp-select set slider-client {version}"))
+
   def install(self, env):
     self.install_packages(env)
     self.configure(env)

+ 26 - 14
ambari-server/src/main/resources/stacks/HDP/2.2/upgrades/upgrade-2.2.xml

@@ -122,24 +122,28 @@
 
       <service name="MAPREDUCE2">
         <component>MAPREDUCE2_CLIENT</component>
-       </service>
+      </service>
+
+      <service name="TEZ">
+        <component>TEZ_CLIENT</component>
+      </service>
 
-       <service name="TEZ">
-         <component>TEZ_CLIENT</component>
-       </service>
+      <service name="HBASE">
+        <component>HBASE_CLIENT</component>
+      </service>
 
-       <service name="HBASE">
-         <component>HBASE_CLIENT</component>
-       </service>
+      <service name="PIG">
+        <component>PIG</component>
+      </service>
 
-       <service name="PIG">
-         <component name="PIG" />
-       </service>
+      <service name="HIVE">
+        <component>HIVE_CLIENT</component>
+        <component>HCAT</component>
+      </service>
 
-       <service name="HIVE">
-         <component>HIVE_CLIENT</component>
-         <component>HCAT</component>
-       </service>
+      <service name="SLIDER">
+        <component>SLIDER</component>
+      </service>
     </group>
 
     <group xsi:type="cluster" name="POST_CLUSTER" title="Finalize Upgrade">
@@ -374,6 +378,14 @@
       </component>
     </service>
 
+    <service name="SLIDER">
+      <component name="SLIDER">
+        <upgrade>
+          <task xsi:type="restart" />
+        </upgrade>
+      </component>
+    </service>
+
     <service name="OOZIE">
       <component name="OOZIE_SERVER">
         <pre-upgrade>

+ 10 - 0
ambari-server/src/test/python/stacks/2.2/SLIDER/test_slider_client.py

@@ -106,3 +106,13 @@ class TestSliderClient(RMFTestCase):
     )
     self.assertNoMoreResources()
 
+
+  def test_pre_rolling_restart(self):
+    self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/slider_client.py",
+                       classname = "SliderClient",
+                       command = "pre_rolling_restart",
+                       config_file="default.json",
+                       hdp_stack_version = self.STACK_VERSION,
+                       target = RMFTestCase.TARGET_COMMON_SERVICES)
+
+    self.assertResourceCalled("Execute", "hdp-select set slider-client 2.2.1.0-2067")

+ 1 - 0
ambari-server/src/test/python/stacks/2.2/configs/default.json

@@ -20,6 +20,7 @@
     "serviceName": "SLIDER",
     "role": "SLIDER",
     "commandParams": {
+        "version": "2.2.1.0-2067",
         "command_timeout": "300",
         "service_package_folder": "OOZIE",
         "script_type": "PYTHON",