如何从 Python 构建人偶资源
How to construct a puppet resource from Python
我想从 Python 中构建一个人偶资源。如果我有键和值的散列,或者有值的变量,这怎么办?
这是人偶资源的一个简单示例。
file { '/etc/passwd':
owner => root,
group => root,
mode => 644
}
如果我有字符串 /etc/passwd
、值为 root
的变量、另一个值为 root
的变量和一个值为 mode
的变量644
,我如何从 Python 中生成上述资源?
从您的评论来看,您似乎只是希望能够将 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
}
您可以想象编写一个完整的包来处理所有不同类型的人偶资源,并在您的代码中使用它。希望这就是您要找的。
我想从 Python 中构建一个人偶资源。如果我有键和值的散列,或者有值的变量,这怎么办?
这是人偶资源的一个简单示例。
file { '/etc/passwd':
owner => root,
group => root,
mode => 644
}
如果我有字符串 /etc/passwd
、值为 root
的变量、另一个值为 root
的变量和一个值为 mode
的变量644
,我如何从 Python 中生成上述资源?
从您的评论来看,您似乎只是希望能够将 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
}
您可以想象编写一个完整的包来处理所有不同类型的人偶资源,并在您的代码中使用它。希望这就是您要找的。