2016-09-01 10 views
0

私はPython内から人形のリソースを構築したいと思います。私がキーと値のハッシュ、または値を持つ変数を持っていたら、どうすればこのことができますか?Pythonから人形のリソースを構築する方法

これは人形のリソースの簡単な例です。

file { '/etc/passwd': 
    owner => root, 
    group => root, 
    mode => 644 
} 

私はPythonの内から上記リソースを生成する方法を文字列/etc/passwdrootの値を持つ変数、rootの値を持つ別の変数、および644の値を持つ変数modeを、持っていた場合は?

+0

なぜこれをやろうとしていますか? –

+0

「マニフェストエントリ」とはどういう意味ですか? –

+1

彼はリソースを意味するように見えます。面白いことに、私はすでにRubyでこれを実装していますが、これははるかに洗練された今後のソフトウェアの一部です。 –

答えて

1

あなたのコメントから、あなたのpythonオブジェクトを人形マニフェスト形式に出力できるようにしたいと思うようです。これを行うpythonパッケージがないので、必要なリソースタイプを処理する独自のクラスを作成し、次にstr関数をオーバーライドして、必要なマニフェストを出力するように提案します。

class fileresource: 

    def __init__(self, mfile, owner, group, mode): 
     self.mfile = mfile 
     self.owner = owner 
     self.group = group 
     self.mode = mode 

    def __str__(self): 
     mystring = "file {'" + self.mfile + "':\n" 
     mystring += " owner => " + self.owner + "\n" 
     mystring += " group => " + self.group + "\n" 
     mystring += " mode => " + self.mode + "\n" 
     mystring += "}\n" 
     return mystring 

if __name__ == "__main__": 
    myfile = fileresource("/etc/passwd", "root", "root", "0644") 
    print myfile 

これは出力のようになります。

$ python fileresource.py 
file {'/etc/passwd': 
    owner => root 
    group => root 
    mode => 0644 
} 

あなたはおそらく人形リソースのすべての異なる種類を扱うパッケージ全体を書いて、あなたのコードでこれを使用することができます。うまくいけば、これはあなたが探しているものです。

関連する問題