本文整理汇总了Python中fuelclient.objects.environment.Environment.upload_facts方法的典型用法代码示例。如果您正苦于以下问题:Python Environment.upload_facts方法的具体用法?Python Environment.upload_facts怎么用?Python Environment.upload_facts使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类fuelclient.objects.environment.Environment
的用法示例。
在下文中一共展示了Environment.upload_facts方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: upload
# 需要导入模块: from fuelclient.objects.environment import Environment [as 别名]
# 或者: from fuelclient.objects.environment.Environment import upload_facts [as 别名]
def upload(self, params):
"""To upload {action_name} information for some environment:
fuel --env 1 {action_name} --upload
"""
env = Environment(params.env)
facts = env.read_fact_info(
self.action_name,
directory=params.dir,
serializer=self.serializer
)
env.upload_facts(self.action_name, facts)
print("{0} facts were uploaded.".format(self.action_name))
示例2: update_facts
# 需要导入模块: from fuelclient.objects.environment import Environment [as 别名]
# 或者: from fuelclient.objects.environment.Environment import upload_facts [as 别名]
def update_facts(env, cidr, nic_mappings):
# silent keystoneclient logs
for handler in LOG.logger.handlers:
if type(handler) == logging.StreamHandler:
handler.addFilter(logging.Filter('root'))
e = Environment(env)
network_data = e.get_network_data()
storage_network = filter(
lambda network: network['name'] == 'storage',
network_data['networks'])[0]
storage_network_base = _get_network_base(storage_network['cidr'])
cluster_network_base = _get_network_base(cidr)
cluster_network_mask = cidr.split('/')[1]
node_nic_mappings = _parse_nic_mappings(nic_mappings)
facts = e.get_default_facts('deployment')
for fact in facts:
if fact['role'] != 'ceph-osd':
continue
LOG.info('Updating node %s.' % fact['uid'])
network_scheme = fact['network_scheme']
roles = network_scheme['roles']
roles['ceph_cluster'] = 'br-ceph-cluster'
LOG.info('New role added: %s.' % roles['ceph_cluster'])
endpoints = network_scheme['endpoints']
storage_ip = endpoints['br-storage']['IP'][0].split('/')[0]
host_id = struct.unpack(
'!I', socket.inet_pton(socket.AF_INET, storage_ip)
)[0] - storage_network_base
cluster_network_ip = "%s/%s" % (
socket.inet_ntop(
socket.AF_INET,
struct.pack('!I', cluster_network_base + host_id)
),
cluster_network_mask
)
endpoints['br-ceph-cluster'] = {
'IP': [cluster_network_ip],
'other_nets': []
}
LOG.info('New endpoint added: %s.' % endpoints['br-ceph-cluster'])
transformations = network_scheme['transformations']
nic = node_nic_mappings[fact['uid']]
del node_nic_mappings[fact['uid']]
lower_br = 'br-%s' % nic
upper_br = 'br-ceph-cluster'
add_lower_br = {'action': 'add-br', 'name': lower_br}
add_upper_br = {'action': 'add-br', 'name': upper_br}
add_port = {'action': 'add-port', 'bridge': lower_br, 'name': nic}
add_patch = {'action': 'add-patch', 'bridges': [upper_br, lower_br],
'trunks': [0]}
for act in [add_lower_br, add_upper_br, add_port, add_patch]:
if act not in transformations:
LOG.info('Adding %s into network transformations.' % act)
transformations.append(act)
if len(node_nic_mappings) > 0:
missings = ', '.join(node_nic_mappings.keys())
msg = 'The following nodes are not with role ceph-osd: %s' % missings
LOG.error(msg)
raise RuntimeError(msg)
LOG.info('Uploading new facts to fuel server...')
e.upload_facts('deployment', facts)
LOG.info('Ceph cluster network has been successfully configured!')