本文整理汇总了Python中fuelclient.objects.environment.Environment.get_default_facts方法的典型用法代码示例。如果您正苦于以下问题:Python Environment.get_default_facts方法的具体用法?Python Environment.get_default_facts怎么用?Python Environment.get_default_facts使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类fuelclient.objects.environment.Environment
的用法示例。
在下文中一共展示了Environment.get_default_facts方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: roles
# 需要导入模块: from fuelclient.objects.environment import Environment [as 别名]
# 或者: from fuelclient.objects.environment.Environment import get_default_facts [as 别名]
def roles(self, uid):
from fuelclient.objects.node import Node
from fuelclient.objects.environment import Environment
node = Node(uid)
env = Environment(node.data['cluster'])
facts = env.get_default_facts('deployment', [uid])
return [f['role'] for f in facts]
示例2: get_fuel_node_ip
# 需要导入模块: from fuelclient.objects.environment import Environment [as 别名]
# 或者: from fuelclient.objects.environment.Environment import get_default_facts [as 别名]
def get_fuel_node_ip(env):
fuel_node_ip = None
from fuelclient.objects.environment import Environment
e = Environment(env)
nodes_id = [x.data['id'] for x in e.get_all_nodes()]
for fact in e.get_default_facts('deployment', [nodes_id[0]]):
fuel_node_ip = fact['master_ip']
if fuel_node_ip:
break
return fuel_node_ip
示例3: default
# 需要导入模块: from fuelclient.objects.environment import Environment [as 别名]
# 或者: from fuelclient.objects.environment.Environment import get_default_facts [as 别名]
def default(self, params):
"""To get default {action_name} information for some environment:
fuel --env 1 {action_name} --default
It's possible to get default {action_name} information
just for some nodes:
fuel --env 1 {action_name} --default --node 1,2,3
"""
env = Environment(params.env)
dir_name = env.write_facts_to_dir(
self.action_name,
env.get_default_facts(self.action_name, nodes=params.node),
directory=params.dir,
serializer=self.serializer
)
print(
"Default {0} info was downloaded to {1}".format(
self.action_name,
dir_name
)
)
示例4: update_facts
# 需要导入模块: from fuelclient.objects.environment import Environment [as 别名]
# 或者: from fuelclient.objects.environment.Environment import get_default_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!')
示例5: Environment
# 需要导入模块: from fuelclient.objects.environment import Environment [as 别名]
# 或者: from fuelclient.objects.environment.Environment import get_default_facts [as 别名]
#!/usr/bin/env python
import sys
import json
from fuelclient.objects.environment import Environment
ARGS = json.loads(sys.stdin.read())
env = Environment(ARGS['env'])
facts = env.get_default_facts('deployment', [ARGS['uid']])
sys.stdout.write(json.dumps(facts[0]))