def _get_ports_using_client(self, filters): # reformat filters for neutron client if "device_id" in filters: filters["device_id"] = filters["device_id"][0] if "fixed_ips" in filters: filters["fixed_ips"] = ["ip_address=%s" % filters["fixed_ips"]["ip_address"][0]] client = self._get_neutron_client() ports = client.list_ports(**filters) self.auth_info = client.get_auth_info() return ports["ports"]
def _get_ports_using_client(self, filters): # reformat filters for neutron client if 'device_id' in filters: filters['device_id'] = filters['device_id'][0] if 'fixed_ips' in filters: filters['fixed_ips'] = [ 'ip_address=%s' % filters['fixed_ips']['ip_address'][0]] client = self._get_neutron_client() ports = client.list_ports(**filters) self.auth_info = client.get_auth_info() return ports['ports']
def configure_gateway_ext_port(novaclient, neutronclient, dvr_mode=None, net_id=None): """Configure the neturong-gateway external port :param novaclient: Authenticated novaclient :type novaclient: novaclient.Client object :param neutronclient: Authenticated neutronclient :type neutronclient: neutronclient.Client object :param dvr_mode: Using DVR mode or not :type dvr_mode: boolean :param net_id: Network ID :type net_id: string :returns: Nothing: This fucntion is executed for its sideffect :rtype: None """ if dvr_mode: uuids = get_ovs_uuids() else: uuids = get_gateway_uuids() deprecated_extnet_mode = deprecated_external_networking(dvr_mode) config_key = 'data-port' if deprecated_extnet_mode: config_key = 'ext-port' if not net_id: net_id = get_admin_net(neutronclient)['id'] for uuid in uuids: server = novaclient.servers.get(uuid) ext_port_name = "{}_ext-port".format(server.name) for port in neutronclient.list_ports(device_id=server.id)['ports']: if port['name'] == ext_port_name: logging.warning('Neutron Gateway already has additional port') break else: logging.info('Attaching additional port to instance, ' 'connected to net id: {}'.format(net_id)) body_value = { "port": { "admin_state_up": True, "name": ext_port_name, "network_id": net_id, "port_security_enabled": False, } } port = neutronclient.create_port(body=body_value) server.interface_attach(port_id=port['port']['id'], net_id=None, fixed_ip=None) ext_br_macs = [] for port in neutronclient.list_ports(network_id=net_id)['ports']: if 'ext-port' in port['name']: if deprecated_extnet_mode: ext_br_macs.append(port['mac_address']) else: ext_br_macs.append('br-ex:{}'.format(port['mac_address'])) ext_br_macs.sort() ext_br_macs_str = ' '.join(ext_br_macs) if dvr_mode: application_name = 'neutron-openvswitch' else: application_name = 'neutron-gateway' if ext_br_macs: logging.info('Setting {} on {} external port to {}'.format( config_key, application_name, ext_br_macs_str)) current_data_port = get_application_config_option( application_name, config_key) if current_data_port == ext_br_macs_str: logging.info('Config already set to value') return model.set_application_config( lifecycle_utils.get_juju_model(), application_name, configuration={config_key: ext_br_macs_str}) juju_wait.wait(wait_for_workload=True)