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


Python Environment.get_network_data方法代码示例

本文整理汇总了Python中fuelclient.objects.environment.Environment.get_network_data方法的典型用法代码示例。如果您正苦于以下问题:Python Environment.get_network_data方法的具体用法?Python Environment.get_network_data怎么用?Python Environment.get_network_data使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在fuelclient.objects.environment.Environment的用法示例。


在下文中一共展示了Environment.get_network_data方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: download

# 需要导入模块: from fuelclient.objects.environment import Environment [as 别名]
# 或者: from fuelclient.objects.environment.Environment import get_network_data [as 别名]
 def download(self, params):
     """To download network configuration in this
        directory for some environment:
             fuel --env 1 network --download
     """
     env = Environment(params.env)
     network_data = env.get_network_data()
     network_file_path = env.write_network_data(network_data, directory=params.dir, serializer=self.serializer)
     print(
         "Network configuration for environment with id={0}" " downloaded to {1}".format(env.id, network_file_path)
     )
开发者ID:tinyxiao,项目名称:python-fuelclient,代码行数:13,代码来源:network.py

示例2: update_facts

# 需要导入模块: from fuelclient.objects.environment import Environment [as 别名]
# 或者: from fuelclient.objects.environment.Environment import get_network_data [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


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