Parcourir la source

AMBARI-3664. Resource Management. Implement Configfile resource (Andrew Onischuk via dlisnichenko)

Lisnichenko Dmitro il y a 11 ans
Parent
commit
732d113587

+ 1 - 0
ambari-agent/src/main/python/resource_management/libraries/providers/__init__.py

@@ -11,5 +11,6 @@ PROVIDERS = dict(
   ),
   default=dict(
     ExecuteHadoop="resource_management.libraries.providers.execute_hadoop.ExecuteHadoopProvider",
+    ConfigFile="resource_management.libraries.providers.config_file.ConfigFileProvider",
   ),
 )

+ 20 - 0
ambari-agent/src/main/python/resource_management/libraries/providers/config_file.py

@@ -0,0 +1,20 @@
+import os
+from resource_management import *
+
+class ConfigFileProvider(Provider):
+  def action_create(self):
+    template_tag = self.resource.template_tag
+    qualified_file_name = self.resource.name
+    file_name = os.path.basename(qualified_file_name)
+
+    if not template_tag:
+      template_name = format("{file_name}.j2")
+    else:
+      template_name = format("{file_name}-{template_tag}.j2")
+
+    File( qualified_file_name,
+     owner   = self.resource.owner,
+     group   = self.resource.group,
+     mode    = self.resource.mode,
+     content = Template(template_name)
+    )

+ 2 - 1
ambari-agent/src/main/python/resource_management/libraries/resources/__init__.py

@@ -1 +1,2 @@
-from resource_management.libraries.resources.execute_hadoop import *
+from resource_management.libraries.resources.execute_hadoop import *
+from resource_management.libraries.resources.config_file import *

+ 12 - 0
ambari-agent/src/main/python/resource_management/libraries/resources/config_file.py

@@ -0,0 +1,12 @@
+_all__ = ["ConfigFile"]
+from resource_management.core.base import Resource, ForcedListArgument, ResourceArgument, BooleanArgument
+
+class ConfigFile(Resource):
+  action = ForcedListArgument(default="create")
+  path = ResourceArgument(default=lambda obj: obj.name)
+  mode = ResourceArgument()
+  owner = ResourceArgument()
+  group = ResourceArgument()
+  template_tag = ResourceArgument()
+
+  actions = Resource.actions + ["create"]

+ 0 - 2
ambari-agent/src/main/python/resource_management/libraries/resources/execute_hadoop.py

@@ -17,7 +17,5 @@ class ExecuteHadoop(Resource):
   principal = ResourceArgument()
   kinit_path_local = ResourceArgument()
   
-
-  
   actions = Resource.actions + ["run"]