Переглянути джерело

AMBARI-15627 Ambari is expecting hadoop client package and configuration, even if no HDFS components are installed on this host (dgrinenko via dlysnichenko)

Lisnichenko Dmitro 9 роки тому
батько
коміт
deb45e81a3

+ 10 - 36
ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/before-START/scripts/rack_awareness.py

@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 
-'''
+"""
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
@@ -16,55 +16,29 @@ distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-'''
-from resource_management.core.resources import File,Directory
+"""
+
+from resource_management.core.resources import File
 from resource_management.core.source import StaticFile, Template
 from resource_management.libraries.functions import format
 
-import os
 
 def create_topology_mapping():
   import params
-
-  path=params.net_topology_mapping_data_file_path 
-  parent_dir=os.path.dirname(path) 
-  # only create the parent directory and set its permission if it does not exist
-  if not os.path.exists(parent_dir): 
-    Directory(parent_dir, 
-              create_parents = True, 
-              owner=params.hdfs_user, 
-              group=params.user_group) 
-
-  # placing the mappings file in the same folder where the topology script is located
-  File(path,
+  File(params.net_topology_mapping_data_file_path,
        content=Template("topology_mappings.data.j2"),
        owner=params.hdfs_user,
        group=params.user_group,
-       # if there is no hadoop components, don't create the script
-       only_if=format("test -d {net_topology_script_dir}"),
-  )
+       only_if=format("test -d {net_topology_script_dir}"))
 
 def create_topology_script():
   import params
 
-  path=params.net_topology_script_file_path
-  parent_dir=os.path.dirname(path) 
-  # only create the parent directory and set its permission if it does not exist 
-  if not os.path.exists(parent_dir): 
-    Directory(parent_dir, 
-              create_parents = True, 
-              owner=params.hdfs_user, 
-              group=params.user_group) 
-
-  # installing the topology script to the specified location
-  File(path,
+  File(params.net_topology_script_file_path,
        content=StaticFile('topology_script.py'),
        mode=0755,
-       only_if=format("test -d {net_topology_script_dir}"),
-  )
+       only_if=format("test -d {net_topology_script_dir}"))
 
 def create_topology_script_and_mapping():
-  import params
-  if params.has_hadoop_env:
-    create_topology_mapping()
-    create_topology_script()
+  create_topology_mapping()
+  create_topology_script()

+ 11 - 11
ambari-server/src/test/python/stacks/2.0.6/hooks/before-START/test_before_start.py

@@ -89,16 +89,16 @@ class TestHookBeforeStart(RMFTestCase):
       group = 'hadoop',
     )
     self.assertResourceCalled('File', '/etc/hadoop/conf/topology_mappings.data',
-      owner = 'hdfs',
-      content = Template('topology_mappings.data.j2'),
-      group = 'hadoop',
-      only_if = 'test -d /etc/hadoop/conf',
-    )
+                              owner = 'hdfs',
+                              content = Template('topology_mappings.data.j2'),
+                              group = 'hadoop',
+                              only_if = 'test -d /etc/hadoop/conf',
+                              )
     self.assertResourceCalled('File', '/etc/hadoop/conf/topology_script.py',
-      content = StaticFile('topology_script.py'),
-      mode = 0755,
-      only_if = 'test -d /etc/hadoop/conf',
-    )
+                              content = StaticFile('topology_script.py'),
+                              mode = 0755,
+                              only_if = 'test -d /etc/hadoop/conf',
+                              )
     self.assertNoMoreResources()
 
   def test_hook_secured(self):
@@ -326,12 +326,12 @@ class TestHookBeforeStart(RMFTestCase):
                               owner = 'hdfs',
                               content = Template('topology_mappings.data.j2'),
                               group = 'hadoop',
-                              only_if = 'test -d /etc/hadoop/conf'
+                              only_if = 'test -d /etc/hadoop/conf',
                               )
     self.assertResourceCalled('File', '/etc/hadoop/conf/topology_script.py',
                               content = StaticFile('topology_script.py'),
                               mode = 0755,
-                              only_if = 'test -d /etc/hadoop/conf'
+                              only_if = 'test -d /etc/hadoop/conf',
                               )
     self.assertNoMoreResources()