本文整理汇总了Python中yaml.add_multi_constructor函数的典型用法代码示例。如果您正苦于以下问题:Python add_multi_constructor函数的具体用法?Python add_multi_constructor怎么用?Python add_multi_constructor使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了add_multi_constructor函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: get_all_host_facter_message
def get_all_host_facter_message():
# 由于puppet的yaml文件是ruby格式的,需要进行转换
yaml.add_multi_constructor(u"!ruby/object:", construct_ruby_object)
yaml.add_constructor(u"!ruby/sym", construct_ruby_sym)
# 获取所有有facters信息的主机文件名称
for dirpath, dirnames, filenames in os.walk(yaml_dir):
# 只需要处理yaml目录下得yaml结尾的文件
if dirpath == yaml_dir:
for file in filenames:
file_name, file_ext = os.path.splitext(file)
if file_ext == '.yaml':
host_yaml_path = yaml_dir + '/' + file
# 得到yaml文件内容, 字典形式
host_yaml_result_dict = yaml_file_handle(host_yaml_path)
# 对单个agent的数据进行处理
if host_yaml_result_dict:
# 有key为facts,所以可以直接查找facts key值
if host_yaml_result_dict.has_key('facts'):
data_dict = host_yaml_result_dict['facts']['values']
# 没有的直接取
else:
data_dict = host_yaml_result_dict['values']
# 现在就可以data数据进行处理,取得我们所需要得数据
result_dict = handle_facter_message(data_dict)
all_host_facter_message[file_name] = result_dict
# return我们最终的数据结果集
return all_host_facter_message
示例2: load
def load(contents):
#example
yaml.add_multi_constructor(u"!ruby/object:", construct_ruby_object)
yaml.add_constructor(u"!ruby/sym", construct_ruby_sym)
stream = contents
mydata = yaml.load(stream)
return mydata
示例3: modules_list
def modules_list():
if 'X-Auth-Token' not in request.headers:
syslog.syslog("modules request failed because X-Auth-Token was missing from the request")
abort(401)
if request.headers['X-Auth-Token'] != app.config['AUTH_TOKEN']:
app.logger.warn('modules request failed because the X-Auth-Token was incorrect')
abort(401)
## ask the puppet server for a list of modules
(rcode, stdout, stderr) = sysexec([app.config['PUPPET_BINARY'], "module", "--confdir", app.config['PUPPET_CONFDIR'], "list", "--render-as", "yaml"])
if rcode != 0:
syslog.syslog("puppet module list failed")
syslog.syslog("stdout: " + str(stdout))
syslog.syslog("stderr: " + str(stderr))
abort(500)
else:
## Try to validate the YAML
try:
# work around the stupid ruby object shit in puppet yaml
yaml.add_multi_constructor(u"!ruby/object:", construct_ruby_object)
modules = yaml.load(stdout)
except yaml.YAMLError as ex:
syslog.syslog("puppet module list returned invalid YAML")
syslog.syslog("invalid YAML: " + stdout)
abort(500)
r = make_response(yaml.dump(modules))
r.headers['Content-Type'] = "application/x-yaml"
return r
示例4: configure
def configure():
"""
Configures YAML parser for Step serialization and deserialization
Called in drain/__init__.py
"""
yaml.add_multi_representer(Step, step_multi_representer)
yaml.add_multi_constructor('!step', step_multi_constructor)
示例5: read_callback
def read_callback():
yaml.add_multi_constructor("!", identity)
logger('verb', "starting run")
for report_dir in os.listdir(PuppetReportsConfig.reports_dir):
logger('verb', "parsing: %s" % report_dir)
reports_dir = os.listdir(PuppetReportsConfig.reports_dir + '/' + report_dir)
reports_dir.sort
last_report = reports_dir[-1]
last_report_file = PuppetReportsConfig.reports_dir + '/' + report_dir + '/' + last_report
with open(last_report_file, "r") as stream:
data = yaml.load(stream)
data = map_value(data)
results = compute_metrics(data)
logger('verb', "ready to send")
for k in results:
logger('verb', ("pushing value for %s => %s = %s" % (report_dir, k, results[k])))
val = collectd.Values(plugin=NAME, type='gauge')
val.plugin_instance = report_dir
val.type_instance = k
try:
val.values = [ float(results[k]) ]
except:
logger('warn', ("value %s => %s for %s cannot be parsed to float" % (k, results[k], report_dir)))
val.values = [ 0.0 ]
val.dispatch()
示例6: doactualizalogpuppet
def doactualizalogpuppet(filetext):
ahora=datetime.datetime.today()
yaml.add_multi_constructor(u"!ruby/object:", construct_ruby_object)
yaml.add_constructor(u"!ruby/sym", construct_ruby_sym)
mydata = yaml.load(filetext)
host=mydata["host"].upper()
host=host[:host.index('.')]
estadoglobal="OK"
output = StringIO.StringIO()
logs=mydata["logs"]
output.write("<center><br><b>Logs de puppet</b><br><br>")
for item in logs:
output.write("<table style='border: solid 1px #000000;width:95%;'>")
if 'file' in item:
output.write("<tr style='border: solid 1px #000000;'><td width='10%'>File</td><td>"+item['file']+":"+str(item['line'])+"</td></tr>")
output.write("<tr style='border: solid 1px #000000;'>")
if item['level'] == 'err' :
estadoglobal="ERROR"
output.write("<td width='10%'><font color='red'>Level</font></td>")
output.write("<td><font color='red'>"+item['level']+"</font></td>")
else:
output.write("<td width='10%'>Level</td>")
output.write("<td>"+item['level']+"</td>")
output.write("</tr>")
output.write("<tr><td width='10%'>Message</td><td>"+item['message']+"</td></tr>")
output.write("</table><br>")
output.write("<br><b>Clases y recursos aplicados</b><br><br>")
recursos=mydata["resource_statuses"]
output.write("<table style='border: solid 1px #000000;width:95%'>")
for item in recursos:
eventos=recursos[item]['events']
descripcion=recursos[item]['source_description']
estado="OK"
for evento in eventos:
valor=evento['status']
if valor == "failure" :
estado="ERROR"
estadoglobal="ERROR"
break
if estado=="OK":
output.write("<tr style='border: solid 1px #000000;'><td width='90%'>"+ descripcion +"</td><td>"+estado+"</td></tr>")
else:
output.write("<tr style='border: solid 1px #000000;'><td width='90%'><font color='red'>"+ descripcion +"</font></td><td><font color='red'>"+estado+"</font></td></tr>")
output.write("</table><br><br></center>")
fila=cdb((cdb.maquinas.host.upper()==host) & (cdb.maquinas.tipohost!='WINDOWS')).select().last()
if fila==None:
pass
else:
#Movemos el puntero del fichero al comienzo del mismo, ya que si no no se vuelca a la tabla.
output.seek(0)
fila.update_record(ultimopuppet=ahora,estadopuppet=estadoglobal,logpuppet=cdb.maquinas.logpuppet.store(output,filename=host))
output.close()
return "OK"
示例7: configure_callback
def configure_callback(conf):
yaml.add_multi_constructor("!", identity)
logger('verb', "configuring")
for node in conf.children:
if node.key == 'ReportsDir':
PuppetReportsConfig.reports_dir = node.values[0]
else:
logger('verb', "unknown config key in puppet module: %s" % node.key)
示例8: init_yaml_ruby_parsers
def init_yaml_ruby_parsers():
def construct_ruby_object(loader, suffix, node):
return loader.construct_yaml_map(node)
def construct_ruby_sym(loader, node):
return loader.construct_yaml_str(node)
yaml.add_multi_constructor(u"!ruby/object:", construct_ruby_object)
yaml.add_constructor(u"!ruby/sym", construct_ruby_sym)
示例9: parase_yaml
def parase_yaml():
yaml.add_multi_constructor(u"!ruby/object:", construct_ruby_object)
yaml.add_constructor(u"!ruby/sym", construct_ruby_sym)
stream = file('/home/201602250326.yaml','r')
mydata = yaml.load(stream)
return mydata
示例10: _init_parser
def _init_parser(self):
#Custom YAML constructs for ruby objects for puppet files parsing
def _construct_ruby_object(loader, suffix, node):
return loader.construct_yaml_map(node)
def _construct_ruby_sym(loader, suffix, node):
return loader.construct_yaml_str(node)
yaml.add_multi_constructor(u"!ruby/object:", _construct_ruby_object)
yaml.add_multi_constructor(u"!ruby/sym", _construct_ruby_sym)
示例11: initialize
def initialize():
"""
Initialize the configuration system by installing YAML handlers.
Automatically done on first call to load() specified in this file.
"""
global is_initialized
# Add the custom multi-constructor
yaml.add_multi_constructor('!obj:', multi_constructor)
yaml.add_multi_constructor('!pkl:', multi_constructor_pkl)
is_initialized = True
示例12: initialize
def initialize():
"""Add constructors to yaml parser.
"""
from eemeter.meter.base import MeterBase
from eemeter.models.temperature_sensitivity import Model
yaml.add_multi_constructor('!obj:', multi_constructor_obj)
yaml.add_constructor('!setting', constructor_setting)
yaml.add_multi_representer(MeterBase, multi_representer_obj)
yaml.add_multi_representer(Model, multi_representer_obj)
is_initialized = True
示例13: create
def create(cont):
def construct_ruby_object(loader, suffix, node):
return loader.construct_yaml_map(node)
def construct_ruby_sym(loader, node):
return loader.construct_yaml_str(node)
def timestamp_constructor(loader, node):
return dateutil.parser.parse(node.value)
yaml.add_multi_constructor(u"!ruby/object:", construct_ruby_object)
yaml.add_constructor(u"!ruby/sym", construct_ruby_sym)
yaml.add_constructor(u'tag:yaml.org,2002:timestamp', timestamp_constructor)
d=yaml.load(cont)
certname=d['host']
hostname=certname[0:-5]
hosts=Host.objects.filter(name__iexact=hostname)
if hosts:
host=hosts.first()
ppreport=PPREPORT()
ppreport.status=d['status']
ppreport.time=d['time']
ppreport.version=d['puppet_version']
ppreport.save()
for m1 in d['metrics']:
for m2 in d['metrics'][m1]['values']:
ppmetrics=PPMETRICS()
ppmetrics.report=ppreport
ppmetrics.category=d['metrics'][m1]['name']
ppmetrics.name=m2[0]
ppmetrics.value=m2[2]
ppmetrics.save()
for rel in d['logs']:
ppreportlog=PPREPORTLOG()
ppreportlog.report=ppreport
ppreportlog.level=rel['level']
ppreportlog.message=rel['message']
ppreportlog.time=rel['time']
ppreportlog.save()
res=Resource()
res.host=host
res.name=""
res.type="ppreport"
res.resource_id=ppreport.id
res.save()
示例14: _get_all_facts_by_hostnames
def _get_all_facts_by_hostnames(self, hostnames):
def construct_ruby_object(loader, suffix, node):
return loader.construct_yaml_map(node)
def construct_ruby_sym(loader, node):
return loader.construct_yaml_str(node)
yaml.add_multi_constructor(u"!ruby/object:", construct_ruby_object)
yaml.add_constructor(u"!ruby/sym", construct_ruby_sym)
for hostname in hostnames:
data = self._get_data_for_hostname(hostname)
if data:
return yaml.load(data)['values']
示例15: add_constructors
def add_constructors():
yaml.add_constructor(u"!assert", assert_constructor)
yaml.add_constructor(u"!record", record_constructor)
yaml.add_constructor(u"!python", python_constructor)
yaml.add_constructor(u"!menuitem", menuitem_constructor)
yaml.add_constructor(u"!act_window", act_window_constructor)
yaml.add_constructor(u"!function", function_constructor)
yaml.add_constructor(u"!report", report_constructor)
yaml.add_constructor(u"!context", context_constructor)
yaml.add_constructor(u"!delete", delete_constructor)
yaml.add_constructor(u"!url", url_constructor)
yaml.add_constructor(u"!eval", eval_constructor)
yaml.add_multi_constructor(u"!ref", ref_constructor)
yaml.add_constructor(u"!ir_set", ir_set_constructor)