def take_action_network(self, client, parsed_args): filters = {} if parsed_args.project: identity_client = self.app.client_manager.identity project_id = identity_common.find_project( identity_client, parsed_args.project, parsed_args.project_domain, ).id filters['tenant_id'] = project_id filters['project_id'] = project_id _tag.get_tag_filtering_args(parsed_args, filters) data = client.security_groups(**filters) columns = ( "ID", "Name", "Description", "Project ID", "tags" ) column_headers = ( "ID", "Name", "Description", "Project", "Tags" ) return (column_headers, (utils.get_item_properties( s, columns, ) for s in data))
def take_action(self, parsed_args): identity_client = self.app.client_manager.identity network_client = self.app.client_manager.network filters = {} if parsed_args.ip_version: filters['ip_version'] = parsed_args.ip_version if parsed_args.dhcp: filters['enable_dhcp'] = True filters['is_dhcp_enabled'] = True elif parsed_args.no_dhcp: filters['enable_dhcp'] = False filters['is_dhcp_enabled'] = False if parsed_args.service_types: filters['service_types'] = parsed_args.service_types if parsed_args.project: project_id = identity_common.find_project( identity_client, parsed_args.project, parsed_args.project_domain, ).id filters['tenant_id'] = project_id filters['project_id'] = project_id if parsed_args.network: network_id = network_client.find_network(parsed_args.network, ignore_missing=False).id filters['network_id'] = network_id if parsed_args.gateway: filters['gateway_ip'] = parsed_args.gateway if parsed_args.name: filters['name'] = parsed_args.name if parsed_args.subnet_range: filters['cidr'] = parsed_args.subnet_range _tag.get_tag_filtering_args(parsed_args, filters) data = network_client.subnets(**filters) headers = ('ID', 'Name', 'Network', 'Subnet', 'Allocation Pools', 'WRS-Net:VLAN ID') columns = ('id', 'name', 'network_id', 'cidr', 'allocation_pools', 'wrs-net:vlan_id') if parsed_args.long: headers += ('Project', 'DHCP', 'Name Servers', 'Host Routes', 'IP Version', 'Gateway', 'Service Types', 'Tags') columns += ('project_id', 'is_dhcp_enabled', 'dns_nameservers', 'host_routes', 'ip_version', 'gateway_ip', 'service_types', 'tags') return (headers, (utils.get_item_properties( s, columns, formatters=_formatters, ) for s in data))
def take_action(self, parsed_args): identity_client = self.app.client_manager.identity network_client = self.app.client_manager.network filters = {} if parsed_args.share: filters['shared'] = True filters['is_shared'] = True elif parsed_args.no_share: filters['shared'] = False filters['is_shared'] = False if parsed_args.default: filters['is_default'] = True elif parsed_args.no_default: filters['is_default'] = False if parsed_args.project: project_id = identity_common.find_project( identity_client, parsed_args.project, parsed_args.project_domain, ).id filters['tenant_id'] = project_id filters['project_id'] = project_id if parsed_args.name is not None: filters['name'] = parsed_args.name if parsed_args.address_scope: address_scope = network_client.find_address_scope( parsed_args.address_scope, ignore_missing=False) filters['address_scope_id'] = address_scope.id _tag.get_tag_filtering_args(parsed_args, filters) data = network_client.subnet_pools(**filters) headers = ('ID', 'Name', 'Prefixes') columns = ('id', 'name', 'prefixes') if parsed_args.long: headers += ('Default Prefix Length', 'Address Scope', 'Default Subnet Pool', 'Shared', 'Tags') columns += ('default_prefix_length', 'address_scope_id', 'is_default', 'is_shared', 'tags') return (headers, (utils.get_item_properties( s, columns, formatters=_formatters, ) for s in data))
def take_action_network(self, client, parsed_args): filters = {} if parsed_args.project: identity_client = self.app.client_manager.identity project_id = identity_common.find_project( identity_client, parsed_args.project, parsed_args.project_domain, ).id filters['tenant_id'] = project_id filters['project_id'] = project_id _tag.get_tag_filtering_args(parsed_args, filters) data = client.security_groups(**filters) columns = ("ID", "Name", "Description", "Project ID", "tags") column_headers = ("ID", "Name", "Description", "Project", "Tags") return (column_headers, (utils.get_item_properties( s, columns, ) for s in data))
def take_action_network(self, client, parsed_args): identity_client = self.app.client_manager.identity if parsed_args.long: columns = ( 'id', 'name', 'status', 'project_id', 'is_admin_state_up', 'is_shared', 'subnet_ids', 'provider_network_type', 'is_router_external', 'availability_zones', 'tags', ) column_headers = ( 'ID', 'Name', 'Status', 'Project', 'State', 'Shared', 'Subnets', 'Network Type', 'Router Type', 'Availability Zones', 'Tags', ) elif parsed_args.agent_id: columns = ('id', 'name', 'subnet_ids') column_headers = ( 'ID', 'Name', 'Subnets', ) client = self.app.client_manager.network dhcp_agent = client.get_agent(parsed_args.agent_id) data = client.dhcp_agent_hosting_networks(dhcp_agent) return (column_headers, (utils.get_item_properties( s, columns, formatters=_formatters, ) for s in data)) else: columns = ('id', 'name', 'subnet_ids') column_headers = ( 'ID', 'Name', 'Subnets', ) args = {} if parsed_args.external: args['router:external'] = True args['is_router_external'] = True elif parsed_args.internal: args['router:external'] = False args['is_router_external'] = False if parsed_args.name is not None: args['name'] = parsed_args.name if parsed_args.enable: args['admin_state_up'] = True args['is_admin_state_up'] = True elif parsed_args.disable: args['admin_state_up'] = False args['is_admin_state_up'] = False if parsed_args.project: project = identity_common.find_project( identity_client, parsed_args.project, parsed_args.project_domain, ) args['tenant_id'] = project.id args['project_id'] = project.id if parsed_args.share: args['shared'] = True args['is_shared'] = True elif parsed_args.no_share: args['shared'] = False args['is_shared'] = False if parsed_args.status: args['status'] = parsed_args.status if parsed_args.provider_network_type: args['provider:network_type'] = parsed_args.provider_network_type args['provider_network_type'] = parsed_args.provider_network_type if parsed_args.physical_network: args['provider:physical_network'] = parsed_args.physical_network args['provider_physical_network'] = parsed_args.physical_network if parsed_args.segmentation_id: args['provider:segmentation_id'] = parsed_args.segmentation_id args['provider_segmentation_id'] = parsed_args.segmentation_id _tag.get_tag_filtering_args(parsed_args, args) data = client.networks(**args) return (column_headers, (utils.get_item_properties( s, columns, formatters=_formatters, ) for s in data))
def take_action(self, parsed_args): network_client = self.app.client_manager.network identity_client = self.app.client_manager.identity columns = ( 'id', 'name', 'mac_address', 'fixed_ips', 'status', ) column_headers = ( 'ID', 'Name', 'MAC Address', 'Fixed IP Addresses', 'Status', ) filters = {} if parsed_args.long: columns += ('security_group_ids', 'device_owner', 'tags') column_headers += ('Security Groups', 'Device Owner', 'Tags') if parsed_args.device_owner is not None: filters['device_owner'] = parsed_args.device_owner if parsed_args.device_id is not None: filters['device_id'] = parsed_args.device_id if parsed_args.router: _router = network_client.find_router(parsed_args.router, ignore_missing=False) filters['device_id'] = _router.id if parsed_args.server: compute_client = self.app.client_manager.compute server = utils.find_resource(compute_client.servers, parsed_args.server) filters['device_id'] = server.id if parsed_args.network: network = network_client.find_network(parsed_args.network, ignore_missing=False) filters['network_id'] = network.id if parsed_args.mac_address: filters['mac_address'] = parsed_args.mac_address if parsed_args.project: project_id = identity_common.find_project( identity_client, parsed_args.project, parsed_args.project_domain, ).id filters['tenant_id'] = project_id filters['project_id'] = project_id if parsed_args.fixed_ip: filters['fixed_ips'] = _prepare_filter_fixed_ips( self.app.client_manager, parsed_args) _tag.get_tag_filtering_args(parsed_args, filters) data = network_client.ports(**filters) headers, attrs = utils.calculate_header_and_attrs( column_headers, columns, parsed_args) return (headers, (utils.get_item_properties( s, attrs, formatters=_formatters, ) for s in data))
def take_action(self, parsed_args): identity_client = self.app.client_manager.identity client = self.app.client_manager.network columns = ( 'id', 'name', 'status', 'is_admin_state_up', 'is_distributed', 'is_ha', 'project_id', ) column_headers = ( 'ID', 'Name', 'Status', 'State', 'Distributed', 'HA', 'Project', ) args = {} if parsed_args.name is not None: args['name'] = parsed_args.name if parsed_args.enable: args['admin_state_up'] = True args['is_admin_state_up'] = True elif parsed_args.disable: args['admin_state_up'] = False args['is_admin_state_up'] = False if parsed_args.project: project_id = identity_common.find_project( identity_client, parsed_args.project, parsed_args.project_domain, ).id args['tenant_id'] = project_id args['project_id'] = project_id _tag.get_tag_filtering_args(parsed_args, args) if parsed_args.agent is not None: agent = client.get_agent(parsed_args.agent) data = client.agent_hosted_routers(agent) # NOTE: Networking API does not support filtering by parameters, # so we need filtering in the client side. data = [d for d in data if self._filter_match(d, args)] else: data = client.routers(**args) if parsed_args.long: columns = columns + ( 'routes', 'external_gateway_info', ) column_headers = column_headers + ( 'Routes', 'External gateway info', ) # availability zone will be available only when # router_availability_zone extension is enabled if client.find_extension("router_availability_zone"): columns = columns + ( 'availability_zones', ) column_headers = column_headers + ( 'Availability zones', ) columns = columns + ('tags',) column_headers = column_headers + ('Tags',) return (column_headers, (utils.get_item_properties( s, columns, formatters=_formatters, ) for s in data))
def take_action_network(self, client, parsed_args): network_client = self.app.client_manager.network identity_client = self.app.client_manager.identity columns = ( 'id', 'floating_ip_address', 'fixed_ip_address', 'port_id', 'floating_network_id', 'project_id', ) headers = ( 'ID', 'Floating IP Address', 'Fixed IP Address', 'Port', 'Floating Network', 'Project', ) if parsed_args.long: columns = columns + ( 'router_id', 'status', 'description', 'tags', 'dns_name', 'dns_domain', ) headers = headers + ( 'Router', 'Status', 'Description', 'Tags', 'DNS Name', 'DNS Domain', ) query = {} if parsed_args.network is not None: network = network_client.find_network(parsed_args.network, ignore_missing=False) query['floating_network_id'] = network.id if parsed_args.port is not None: port = network_client.find_port(parsed_args.port, ignore_missing=False) query['port_id'] = port.id if parsed_args.fixed_ip_address is not None: query['fixed_ip_address'] = parsed_args.fixed_ip_address if parsed_args.floating_ip_address is not None: query['floating_ip_address'] = parsed_args.floating_ip_address if parsed_args.status: query['status'] = parsed_args.status if parsed_args.project is not None: project = identity_common.find_project( identity_client, parsed_args.project, parsed_args.project_domain, ) query['tenant_id'] = project.id query['project_id'] = project.id if parsed_args.router is not None: router = network_client.find_router(parsed_args.router, ignore_missing=False) query['router_id'] = router.id _tag.get_tag_filtering_args(parsed_args, query) data = client.ips(**query) return (headers, (utils.get_item_properties( s, columns, formatters={}, ) for s in data))
def take_action(self, parsed_args): identity_client = self.app.client_manager.identity client = self.app.client_manager.network columns = ( 'id', 'name', 'status', 'is_admin_state_up', 'project_id', ) column_headers = ( 'ID', 'Name', 'Status', 'State', 'Project', ) args = {} if parsed_args.name is not None: args['name'] = parsed_args.name if parsed_args.enable: args['admin_state_up'] = True args['is_admin_state_up'] = True elif parsed_args.disable: args['admin_state_up'] = False args['is_admin_state_up'] = False if parsed_args.project: project_id = identity_common.find_project( identity_client, parsed_args.project, parsed_args.project_domain, ).id args['tenant_id'] = project_id args['project_id'] = project_id _tag.get_tag_filtering_args(parsed_args, args) if parsed_args.agent is not None: agent = client.get_agent(parsed_args.agent) data = client.agent_hosted_routers(agent) # NOTE: Networking API does not support filtering by parameters, # so we need filtering in the client side. data = [d for d in data if self._filter_match(d, args)] else: data = client.routers(**args) # check if "HA" and "Distributed" columns should be displayed also data = list(data) for d in data: if (d.is_distributed is not None and 'is_distributed' not in columns): columns = columns + ('is_distributed',) column_headers = column_headers + ('Distributed',) if d.is_ha is not None and 'is_ha' not in columns: columns = columns + ('is_ha',) column_headers = column_headers + ('HA',) if parsed_args.long: columns = columns + ( 'routes', 'external_gateway_info', ) column_headers = column_headers + ( 'Routes', 'External gateway info', ) # availability zone will be available only when # router_availability_zone extension is enabled if client.find_extension("router_availability_zone"): columns = columns + ( 'availability_zones', ) column_headers = column_headers + ( 'Availability zones', ) columns = columns + ('tags',) column_headers = column_headers + ('Tags',) return (column_headers, (utils.get_item_properties( s, columns, formatters=_formatters, ) for s in data))