当前位置: 首页>>代码示例>>Python>>正文


Python Environment.get_default_facts方法代码示例

本文整理汇总了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]
开发者ID:Mirantis,项目名称:f2s,代码行数:9,代码来源:fsclient.py

示例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
开发者ID:caisan,项目名称:eayunstack-tools,代码行数:12,代码来源:utils.py

示例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
            )
        )
开发者ID:Axam,项目名称:fuel-web,代码行数:23,代码来源:fact.py

示例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!')
开发者ID:caisan,项目名称:eayunstack-tools,代码行数:77,代码来源:ceph_cluster_network.py

示例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]))
开发者ID:loles,项目名称:f2s,代码行数:15,代码来源:from_nailgun.py


注:本文中的fuelclient.objects.environment.Environment.get_default_facts方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。