فهرست منبع

AMBARI-11076. Atlas Install fails with war error (Jon Maron via smohanty)

Sumit Mohanty 10 سال پیش
والد
کامیت
2dcf4f3107

+ 0 - 9
ambari-server/src/main/resources/common-services/ATLAS/0.1.0.2.3/package/scripts/metadata.py

@@ -17,8 +17,6 @@ See the License for the specific language governing permissions and
 limitations under the License.
 limitations under the License.
 
 
 """
 """
-import os
-import shutil
 from resource_management import Directory, Fail, Logger, File, \
 from resource_management import Directory, Fail, Logger, File, \
     InlineTemplate, StaticFile
     InlineTemplate, StaticFile
 from resource_management.libraries.functions import format
 from resource_management.libraries.functions import format
@@ -67,13 +65,6 @@ def metadata():
               recursive=True
               recursive=True
     )
     )
 
 
-    metadata_war_file = format('{params.metadata_home}/server/webapp/metadata.war')
-    if not os.path.isfile(metadata_war_file):
-        raise Fail("Unable to copy {0} because it does not exist".format(metadata_war_file))
-
-    Logger.info("Copying {0} to {1}".format(metadata_war_file, params.expanded_war_dir))
-    shutil.copy2(metadata_war_file, params.expanded_war_dir)
-
     File(format('{conf_dir}/application.properties'),
     File(format('{conf_dir}/application.properties'),
          content=InlineTemplate(params.application_properties_content),
          content=InlineTemplate(params.application_properties_content),
          mode=0644,
          mode=0644,

+ 12 - 1
ambari-server/src/main/resources/common-services/ATLAS/0.1.0.2.3/package/scripts/metadata_server.py

@@ -16,9 +16,12 @@ See the License for the specific language governing permissions and
 limitations under the License.
 limitations under the License.
 
 
 """
 """
+import os
+import shutil
 
 
 from metadata import metadata
 from metadata import metadata
-from resource_management import Execute, check_process_status, Script
+from resource_management import Execute, check_process_status, Script, Fail, \
+  Logger
 from resource_management.libraries.functions import format
 from resource_management.libraries.functions import format
 
 
 class MetadataServer(Script):
 class MetadataServer(Script):
@@ -43,6 +46,14 @@ class MetadataServer(Script):
   def start(self, env, rolling_restart=False):
   def start(self, env, rolling_restart=False):
     import params
     import params
     env.set_params(params)
     env.set_params(params)
+
+    metadata_war_file = format('{params.metadata_home}/server/webapp/metadata.war')
+    if not os.path.isfile(metadata_war_file):
+      raise Fail("Unable to copy {0} because it does not exist".format(metadata_war_file))
+
+    Logger.info("Copying {0} to {1}".format(metadata_war_file, params.expanded_war_dir))
+    shutil.copy2(metadata_war_file, params.expanded_war_dir)
+
     daemon_cmd = format('source {params.conf_dir}/metadata-env.sh ; {params.metadata_start_script} --port {params.metadata_port}')
     daemon_cmd = format('source {params.conf_dir}/metadata-env.sh ; {params.metadata_start_script} --port {params.metadata_port}')
     no_op_test = format('ls {params.pid_file} >/dev/null 2>&1 && ps -p `cat {params.pid_file}` >/dev/null 2>&1')
     no_op_test = format('ls {params.pid_file} >/dev/null 2>&1 && ps -p `cat {params.pid_file}` >/dev/null 2>&1')
     Execute(daemon_cmd,
     Execute(daemon_cmd,

+ 6 - 5
ambari-server/src/test/python/stacks/2.3/ATLAS/test_metadata_server.py

@@ -28,10 +28,7 @@ class TestMetadataServer(RMFTestCase):
   COMMON_SERVICES_PACKAGE_DIR = "ATLAS/0.1.0.2.3/package"
   COMMON_SERVICES_PACKAGE_DIR = "ATLAS/0.1.0.2.3/package"
   STACK_VERSION = "2.3"
   STACK_VERSION = "2.3"
 
 
-  @patch("shutil.copy2", new = MagicMock())
-  @patch("os.path.isfile")
-  def test_configure_default(self, isfile_mock):
-    isfile_mock.return_value = True
+  def test_configure_default(self):
 
 
     self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/metadata_server.py",
     self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/metadata_server.py",
                        classname = "MetadataServer",
                        classname = "MetadataServer",
@@ -96,7 +93,11 @@ class TestMetadataServer(RMFTestCase):
                               )
                               )
     self.assertNoMoreResources()
     self.assertNoMoreResources()
 
 
-  def test_start_default(self):
+  @patch("shutil.copy2", new = MagicMock())
+  @patch("os.path.isfile")
+  def test_start_default(self, isfile_mock):
+    isfile_mock.return_value = True
+
     self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/metadata_server.py",
     self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR + "/scripts/metadata_server.py",
                        classname = "MetadataServer",
                        classname = "MetadataServer",
                        command = "start",
                        command = "start",