Browse Source

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 năm trước cách đây
mục cha
commit
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
 #!/usr/bin/env python
 
 
-'''
+"""
 Licensed to the Apache Software Foundation (ASF) under one
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
 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.
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 See the License for the specific language governing permissions and
 limitations under the License.
 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.core.source import StaticFile, Template
 from resource_management.libraries.functions import format
 from resource_management.libraries.functions import format
 
 
-import os
 
 
 def create_topology_mapping():
 def create_topology_mapping():
   import params
   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"),
        content=Template("topology_mappings.data.j2"),
        owner=params.hdfs_user,
        owner=params.hdfs_user,
        group=params.user_group,
        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():
 def create_topology_script():
   import params
   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'),
        content=StaticFile('topology_script.py'),
        mode=0755,
        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():
 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',
       group = 'hadoop',
     )
     )
     self.assertResourceCalled('File', '/etc/hadoop/conf/topology_mappings.data',
     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',
     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()
     self.assertNoMoreResources()
 
 
   def test_hook_secured(self):
   def test_hook_secured(self):
@@ -326,12 +326,12 @@ class TestHookBeforeStart(RMFTestCase):
                               owner = 'hdfs',
                               owner = 'hdfs',
                               content = Template('topology_mappings.data.j2'),
                               content = Template('topology_mappings.data.j2'),
                               group = 'hadoop',
                               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',
     self.assertResourceCalled('File', '/etc/hadoop/conf/topology_script.py',
                               content = StaticFile('topology_script.py'),
                               content = StaticFile('topology_script.py'),
                               mode = 0755,
                               mode = 0755,
-                              only_if = 'test -d /etc/hadoop/conf'
+                              only_if = 'test -d /etc/hadoop/conf',
                               )
                               )
     self.assertNoMoreResources()
     self.assertNoMoreResources()