You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ambari.apache.org by "Andrew Onischuk (JIRA)" <ji...@apache.org> on 2013/10/21 12:32:43 UTC

[jira] [Commented] (AMBARI-3556) Resource management. Rewrite Templates and Static Files to declarative rather than cookbook-oriented

    [ https://issues.apache.org/jira/browse/AMBARI-3556?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13800531#comment-13800531 ] 

Andrew Onischuk commented on AMBARI-3556:
-----------------------------------------

These changes can be described by the lines below:
{code}
-  def __init__(self):
+  def __init__(self, basedir=None, params=None):
+    """
+    @param basedir: basedir/files, basedir/templates are the places where templates / static files
+    are looked up
+    @param params: configurations dictionary (this will be accessible in the templates)
+    """
{code}


So now our code will just like this:
{code}
def main():
  # this we should pass as parameter
  basedir = "/HDP/Stack2.0.6/HBase/"

  # this will be parsed from json
  config = {
    "hadoop_base": "/opt/hadoop",
    "hdfs_path": "/home/hduser/hdfs",
    "jobtrackerport": "8021",
    "replication": "3",
    "hdfsport": "8020",
    "slaves": ["hadoop-02","hadoop-03","hadoop-04"],
    "master": "hadoop-01",
    "version": "0.20.203.0",
    "java_home": "/usr/jdk"
  }

  with Environment(basedir, config) as env:
   # ...
   File("/lol1.txt",
         owner = "root",
         group = "root",
         content = Template("lol1.txt.j2"))
  # ...
   File("/a/b/file.txt",
         owner = "root",
         group = "root",
         content = StaticFile("some1.txt"))
  # ...
  env.run()
{code}

{code}
basedir
     files
          some1.txt
     templates
          lol1.txt.j2
any_location
     script.py
{code}

> Resource management. Rewrite Templates and Static Files to declarative rather than cookbook-oriented
> ----------------------------------------------------------------------------------------------------
>
>                 Key: AMBARI-3556
>                 URL: https://issues.apache.org/jira/browse/AMBARI-3556
>             Project: Ambari
>          Issue Type: Bug
>            Reporter: Andrew Onischuk
>            Assignee: Andrew Onischuk
>             Fix For: 1.5.0
>
>
> 1) Since Kokki should be used with kitchen and cookbooks. Templates are not working then we use declative form. This can be fixed by replacing the location of cookbook with our custom param passed to the enviroment.
> 2) Also Here we should change the way variables are sent to templating engine. Since we will be getting variables from json configurations files and then parsing it into variable, probaby a dictionary of dictionaries. We should not use any files with configurations (like it is done in Kokki), but just pass the dictionary with the configuration params to the enviroment, which should handle it.



--
This message was sent by Atlassian JIRA
(v6.1#6144)