def take_action(self, parsed_args): client = self.app.client_manager.neutronclient attrs = _get_common_attrs(self.app.client_manager, parsed_args) obj = client.create_network_log({'log': attrs})['log'] columns, display_columns = column_util.get_columns(obj, _attr_map) data = utils.get_dict_properties(obj, columns) return (display_columns, data)
def take_action(self, parsed_args): client = self.app.client_manager.neutronclient attrs = _get_common_attrs(self.app.client_manager, parsed_args) obj = client.create_network_log({'log': attrs})['log'] columns, display_columns = column_util.get_columns(obj, _attr_map) data = utils.get_dict_properties(obj, columns) return (display_columns, data)
def take_action(self, parsed_args): client = self.app.client_manager.neutronclient port_pair_id = _get_id(client, parsed_args.port_pair, resource) obj = client.show_sfc_port_pair(port_pair_id)[resource] columns, display_columns = column_util.get_columns(obj, _attr_map) data = utils.get_dict_properties(obj, columns) return display_columns, data
def take_action(self, parsed_args): client = self.app.client_manager.neutronclient fc_id = _get_id(client, parsed_args.flow_classifier, resource) obj = client.show_sfc_flow_classifier(fc_id)[resource] columns, display_columns = column_util.get_columns(obj, _attr_map) data = utils.get_dict_properties(obj, columns) return display_columns, data
def take_action(self, parsed_args): client = self.app.client_manager.neutronclient create_method = getattr( client, 'create_bgpvpn_%s_assoc' % self._assoc_res_name) bgpvpn = client.find_resource(constants.BGPVPN, parsed_args.bgpvpn) assoc_res = client.find_resource(self._assoc_res_name, parsed_args.resource) body = { self._resource: { '%s_id' % self._assoc_res_name: assoc_res['id'], }, } if 'project' in parsed_args and parsed_args.project is not None: project_id = nc_osc_utils.find_project( self.app.client_manager.identity, parsed_args.project, parsed_args.project_domain, ).id body[self._resource]['tenant_id'] = project_id arg2body = getattr(self, '_args2body', None) if callable(arg2body): body[self._resource].update( arg2body(bgpvpn['id'], parsed_args)[self._resource]) obj = create_method(bgpvpn['id'], body)[self._resource] transform = getattr(self, '_transform_resource', None) if callable(transform): transform(obj) columns, display_columns = column_util.get_columns(obj, self._attr_map) data = osc_utils.get_dict_properties(obj, columns, formatters=self._formatters) return display_columns, data
def take_action(self, parsed_args): client = self.app.client_manager.neutronclient attrs = {} if parsed_args.name is not None: attrs['name'] = str(parsed_args.name) if parsed_args.type is not None: attrs['type'] = parsed_args.type if parsed_args.route_targets is not None: attrs['route_targets'] = parsed_args.route_targets if parsed_args.import_targets is not None: attrs['import_targets'] = parsed_args.import_targets if parsed_args.export_targets is not None: attrs['export_targets'] = parsed_args.export_targets if parsed_args.route_distinguishers is not None: attrs['route_distinguishers'] = parsed_args.route_distinguishers if parsed_args.vni is not None: attrs['vni'] = parsed_args.vni if parsed_args.local_pref is not None: attrs['local_pref'] = parsed_args.local_pref if 'project' in parsed_args and parsed_args.project is not None: project_id = nc_osc_utils.find_project( self.app.client_manager.identity, parsed_args.project, parsed_args.project_domain, ).id attrs['tenant_id'] = project_id body = {constants.BGPVPN: attrs} obj = client.create_bgpvpn(body)[constants.BGPVPN] columns, display_columns = column_util.get_columns(obj, _attr_map) data = osc_utils.get_dict_properties(obj, columns, formatters=_formatters) return display_columns, data
def take_action(self, parsed_args): client = self.app.client_manager.neutronclient attrs = _get_common_attrs(self.app.client_manager, parsed_args) obj = client.create_fwaas_firewall_group({const.FWG: attrs})[const.FWG] columns, display_columns = column_util.get_columns(obj, _attr_map) data = utils.get_dict_properties(obj, columns, formatters=_formatters) return (display_columns, data)
def take_action(self, parsed_args): client = self.app.client_manager.neutronclient sg_id = _get_id(client, parsed_args.service_graph, resource) obj = client.show_sfc_service_graph(sg_id)[resource] columns, display_columns = column_util.get_columns(obj, _attr_map) data = utils.get_dict_properties(obj, columns) return display_columns, data
def take_action(self, parsed_args): client = self.app.client_manager.neutronclient attrs = {} if parsed_args.name is not None: attrs['name'] = str(parsed_args.name) if parsed_args.type is not None: attrs['type'] = parsed_args.type if parsed_args.route_targets is not None: attrs['route_targets'] = parsed_args.route_targets if parsed_args.import_targets is not None: attrs['import_targets'] = parsed_args.import_targets if parsed_args.export_targets is not None: attrs['export_targets'] = parsed_args.export_targets if parsed_args.route_distinguishers is not None: attrs['route_distinguishers'] = parsed_args.route_distinguishers if parsed_args.vni is not None: attrs['vni'] = parsed_args.vni if parsed_args.local_pref is not None: attrs['local_pref'] = parsed_args.local_pref if 'project' in parsed_args and parsed_args.project is not None: project_id = nc_osc_utils.find_project( self.app.client_manager.identity, parsed_args.project, parsed_args.project_domain, ).id attrs['tenant_id'] = project_id body = {constants.BGPVPN: attrs} obj = client.create_bgpvpn(body)[constants.BGPVPN] columns, display_columns = column_util.get_columns(obj, _attr_map) data = osc_utils.get_dict_properties(obj, columns, formatters=_formatters) return display_columns, data
def take_action(self, parsed_args): client = self.app.client_manager.neutronclient create_method = getattr( client, 'create_bgpvpn_%s_assoc' % self._assoc_res_name) bgpvpn = client.find_resource(constants.BGPVPN, parsed_args.bgpvpn) assoc_res = client.find_resource(self._assoc_res_name, parsed_args.resource) body = { self._resource: { '%s_id' % self._assoc_res_name: assoc_res['id'], }, } if 'project' in parsed_args and parsed_args.project is not None: project_id = nc_osc_utils.find_project( self.app.client_manager.identity, parsed_args.project, parsed_args.project_domain, ).id body[self._resource]['tenant_id'] = project_id arg2body = getattr(self, '_args2body', None) if callable(arg2body): body[self._resource].update( arg2body(bgpvpn['id'], parsed_args)[self._resource]) obj = create_method(bgpvpn['id'], body)[self._resource] transform = getattr(self, '_transform_resource', None) if callable(transform): transform(obj) columns, display_columns = column_util.get_columns(obj, self._attr_map) data = osc_utils.get_dict_properties(obj, columns, formatters=self._formatters) return display_columns, data
def take_action(self, parsed_args): client = self.app.client_manager.neutronclient log_id = client.find_resource( 'log', parsed_args.network_log, cmd_resource=NET_LOG)['id'] obj = client.show_network_log(log_id)['log'] columns, display_columns = column_util.get_columns(obj, _attr_map) data = utils.get_dict_properties(obj, columns) return (display_columns, data)
def take_action(self, parsed_args): client = self.app.client_manager.neutronclient attrs = _get_attrs(self.app.client_manager, parsed_args) body = {constants.BGP_PEER: attrs} obj = client.create_bgp_peer(body)[constants.BGP_PEER] columns, display_columns = column_util.get_columns(obj) data = utils.get_dict_properties(obj, columns) return display_columns, data
def take_action(self, parsed_args): client = self.app.client_manager.neutronclient id = client.find_resource(L2_GATEWAY, parsed_args.l2_gateway)['id'] obj = client.get(resource_path % id)[L2_GATEWAY] columns, display_columns = column_util.get_columns(obj, _attr_map) data = osc_utils.get_dict_properties(obj, columns, formatters=_formatters) return display_columns, data
def take_action(self, parsed_args): client = self.app.client_manager.neutronclient id = client.find_resource(constants.BGP_SPEAKER, parsed_args.bgp_speaker)['id'] obj = client.show_bgp_speaker(id)[constants.BGP_SPEAKER] columns, display_columns = column_util.get_columns(obj) data = utils.get_dict_properties(obj, columns) return display_columns, data
def take_action(self, parsed_args): client = self.app.client_manager.neutronclient id = client.find_resource(constants.BGP_SPEAKER, parsed_args.bgp_speaker)['id'] obj = client.show_bgp_speaker(id)[constants.BGP_SPEAKER] columns, display_columns = column_util.get_columns(obj) data = utils.get_dict_properties(obj, columns) return display_columns, data
def take_action(self, parsed_args): client = self.app.client_manager.neutronclient attrs = _get_attrs(self.app.client_manager, parsed_args) body = {constants.BGP_PEER: attrs} obj = client.create_bgp_peer(body)[constants.BGP_PEER] columns, display_columns = column_util.get_columns(obj) data = utils.get_dict_properties(obj, columns) return display_columns, data
def take_action(self, parsed_args): client = self.app.client_manager.neutronclient id = client.find_resource(constants.BGPVPN, parsed_args.bgpvpn)['id'] obj = client.show_bgpvpn(id)[constants.BGPVPN] columns, display_columns = column_util.get_columns(obj, _attr_map) data = osc_utils.get_dict_properties(obj, columns, formatters=_formatters) return display_columns, data
def take_action(self, parsed_args): client = self.app.client_manager.neutronclient attrs = _get_common_attrs(self.app.client_manager, parsed_args) body = {resource: attrs} obj = client.create_sfc_port_pair(body)[resource] columns, display_columns = column_util.get_columns(obj, _attr_map) data = utils.get_dict_properties(obj, columns) return display_columns, data
def take_action(self, parsed_args): client = self.app.client_manager.neutronclient attrs = _get_common_attrs(self.app.client_manager, parsed_args) obj = client.create_fwaas_firewall_rule( {const.FWR: attrs})[const.FWR] columns, display_columns = column_util.get_columns(obj, _attr_map) data = utils.get_dict_properties(obj, columns, formatters=_formatters) return display_columns, data
def take_action(self, parsed_args): client = self.app.client_manager.neutronclient attrs = _get_common_attrs(self.app.client_manager, parsed_args) body = {resource: attrs} obj = client.create_sfc_port_pair_group(body)[resource] columns, display_columns = column_util.get_columns(obj, _attr_map) data = utils.get_dict_properties(obj, columns) return display_columns, data
def take_action(self, parsed_args): client = self.app.client_manager.neutronclient log_id = client.find_resource( 'log', parsed_args.network_log, cmd_resource=NET_LOG)['id'] obj = client.show_network_log(log_id)['log'] columns, display_columns = column_util.get_columns(obj, _attr_map) data = utils.get_dict_properties(obj, columns) return (display_columns, data)
def take_action(self, parsed_args): client = self.app.client_manager.neutronclient fwg_id = client.find_resource(const.FWG, parsed_args.firewall_group, cmd_resource=const.CMD_FWG)['id'] obj = client.show_fwaas_firewall_group(fwg_id)[const.FWG] columns, display_columns = column_util.get_columns(obj, _attr_map) data = utils.get_dict_properties(obj, columns, formatters=_formatters) return (display_columns, data)
def take_action(self, parsed_args): client = self.app.client_manager.neutronclient vpn_id = client.find_resource( 'vpnservice', parsed_args.vpnservice, cmd_resource='vpnservice')['id'] obj = client.show_vpnservice(vpn_id)['vpnservice'] columns, display_columns = column_util.get_columns(obj, _attr_map) data = utils.get_dict_properties(obj, columns) return (display_columns, data)
def take_action(self, parsed_args): client = self.app.client_manager.neutronclient ipsec_id = client.find_resource( 'ipsecpolicy', parsed_args.ipsecpolicy, cmd_resource='ipsecpolicy')['id'] obj = client.show_ipsecpolicy(ipsec_id)['ipsecpolicy'] columns, display_columns = column_util.get_columns(obj, _attr_map) data = utils.get_dict_properties(obj, columns) return (display_columns, data)
def take_action(self, parsed_args): client = self.app.client_manager.neutronclient attrs = _get_common_attrs(self.app.client_manager, parsed_args) if parsed_args.name: attrs['name'] = str(parsed_args.name) obj = client.create_ipsecpolicy({'ipsecpolicy': attrs})['ipsecpolicy'] columns, display_columns = column_util.get_columns(obj, _attr_map) data = utils.get_dict_properties(obj, columns) return display_columns, data
def take_action(self, parsed_args): client = self.app.client_manager.neutronclient endpoint_id = client.find_resource( 'endpoint_group', parsed_args.endpoint_group, cmd_resource='endpoint_group')['id'] obj = client.show_endpoint_group(endpoint_id)['endpoint_group'] columns, display_columns = column_util.get_columns(obj, _attr_map) data = utils.get_dict_properties(obj, columns) return (display_columns, data)
def take_action(self, parsed_args): client = self.app.client_manager.neutronclient id = client.find_resource(constants.BGPVPN, parsed_args.bgpvpn)['id'] obj = client.show_bgpvpn(id)[constants.BGPVPN] columns, display_columns = column_util.get_columns(obj, _attr_map) data = osc_utils.get_dict_properties(obj, columns, formatters=_formatters) return display_columns, data
def take_action(self, parsed_args): client = self.app.client_manager.neutronclient ike_id = client.find_resource('ikepolicy', parsed_args.ikepolicy, cmd_resource='ikepolicy')['id'] obj = client.show_ikepolicy(ike_id)['ikepolicy'] columns, display_columns = column_util.get_columns(obj, _attr_map) data = utils.get_dict_properties(obj, columns) return (display_columns, data)
def take_action(self, parsed_args): client = self.app.client_manager.neutronclient fwg_id = client.find_resource(const.FWG, parsed_args.firewall_group, cmd_resource=const.CMD_FWG)['id'] obj = client.show_fwaas_firewall_group(fwg_id)[const.FWG] columns, display_columns = column_util.get_columns(obj, _attr_map) data = utils.get_dict_properties(obj, columns, formatters=_formatters) return (display_columns, data)
def take_action(self, parsed_args): client = self.app.client_manager.nuageclient attrs = _parse_nuage_l2bridge_params(parsed_args) obj = client.create_nuage_l2bridge({L2BRIDGE_RESOURCE: attrs}) display_columns, columns = column_util.get_columns( obj[L2BRIDGE_RESOURCE]) data = utils.get_dict_properties(obj[L2BRIDGE_RESOURCE], columns, formatters=_formatters) return display_columns, data
def take_action(self, parsed_args): client = self.app.client_manager.neutronclient attrs = _get_common_attrs(self.app.client_manager, parsed_args) if parsed_args.name: attrs['name'] = str(parsed_args.name) obj = client.create_ikepolicy({'ikepolicy': attrs})['ikepolicy'] columns, display_columns = column_util.get_columns(obj, _attr_map) data = utils.get_dict_properties(obj, columns) return display_columns, data
def take_action(self, parsed_args): client = self.app.client_manager.neutronclient ipsec_site_id = client.find_resource( 'ipsec_site_connection', parsed_args.ipsec_site_connection, cmd_resource='ipsec_site_connection')['id'] obj = client.show_ipsec_site_connection( ipsec_site_id)['ipsec_site_connection'] columns, display_columns = column_util.get_columns(obj, _attr_map) data = utils.get_dict_properties(obj, columns, formatters=_formatters) return (display_columns, data)
def take_action(self, parsed_args): client = self.app.client_manager.neutronclient id = client.find_resource(L2_GATEWAY, parsed_args.l2_gateway)['id'] if parsed_args.devices: body = _args2body(parsed_args) else: body = {L2_GATEWAY: {'name': parsed_args.name}} obj = client.put(resource_path % id, body)[L2_GATEWAY] columns, display_columns = column_util.get_columns(obj, _attr_map) data = osc_utils.get_dict_properties(obj, columns, formatters=_formatters) return display_columns, data
def take_action(self, parsed_args): client = self.app.client_manager.neutronclient attrs = _get_common_attrs(self.app.client_manager, parsed_args) try: body = {resource: attrs} obj = client.create_sfc_service_graph(body)[resource] columns, display_columns = column_util.get_columns(obj, _attr_map) data = utils.get_dict_properties(obj, columns) return display_columns, data except Exception as e: msg = (_("Failed to create service graph using '%(pcs)s': %(e)s") % {'pcs': parsed_args.branching_points, 'e': e}) raise exceptions.CommandError(msg)
def take_action(self, parsed_args): client = self.app.client_manager.neutronclient attrs = _get_common_attrs(self.app.client_manager, parsed_args) if parsed_args.name: attrs['name'] = str(parsed_args.name) if parsed_args.router: _router_id = self.app.client_manager.network.find_router( parsed_args.router).id attrs['router_id'] = _router_id obj = client.create_vpnservice({'vpnservice': attrs})['vpnservice'] columns, display_columns = column_util.get_columns(obj, _attr_map) data = utils.get_dict_properties(obj, columns) return display_columns, data
def take_action(self, parsed_args): client = self.app.client_manager.nuageclient # At this time client.find_resource is implemented using list instead # of show, that's why we have to do two calls. Once this is fixed # upstream we can reduce the number of calls policy_group_id = client.find_resource( 'nuage_policy_group', parsed_args.nuage_policy_group)['id'] obj = client.show_nuage_policy_group(policy_group_id) columns, display_columns = column_util.get_columns( obj['nuage_policy_group'], _attr_map) data = utils.get_dict_properties(obj['nuage_policy_group'], columns, formatters=_formatters) return display_columns, data
def take_action(self, parsed_args): client = self.app.client_manager.neutronclient (gateway_id, network_id) = self.retrieve_ids(client, parsed_args) body = { L2_GATEWAY_CONNECTION: { 'l2_gateway_id': gateway_id, 'network_id': network_id } } if parsed_args.seg_id: body[L2_GATEWAY_CONNECTION]['segmentation_id'] = \ parsed_args.seg_id obj = client.post(object_path, body)[L2_GATEWAY_CONNECTION] columns, display_columns = column_util.get_columns(obj, _attr_map) data = osc_utils.get_dict_properties(obj, columns) return display_columns, data
def test_get_columns(self): item = { 'id': 'test-id', 'tenant_id': 'test-tenant_id', # 'name' is not included 'foo': 'bar', # unknown attribute } attr_map = ( ('id', 'ID', column_utils.LIST_BOTH), ('tenant_id', 'Project', column_utils.LIST_LONG_ONLY), ('name', 'Name', column_utils.LIST_BOTH), ) columns, display_names = column_utils.get_columns(item, attr_map) self.assertEqual(tuple(['id', 'tenant_id', 'foo']), columns) self.assertEqual(tuple(['ID', 'Project', 'foo']), display_names)
def take_action(self, parsed_args): client = self.app.client_manager.nuageclient np = client.find_resource('net_partition', parsed_args.net_partition) project_id = self._find_project_id(parsed_args.project) body = { RESOURCE_NAME: { 'project': project_id, 'net_partition_id': np['id'] } } item = client.create_project_netpartition_mapping(body)[RESOURCE_NAME] item['net_partition_name'] = np['name'] columns, display_columns = column_util.get_columns(item, _attr_map) data = utils.get_dict_properties(item, columns) return display_columns, data
def take_action(self, parsed_args): client = self.app.client_manager.neutronclient show_method = getattr(client, 'show_bgpvpn_%s_assoc' % self._assoc_res_name) bgpvpn = client.find_resource(constants.BGPVPN, parsed_args.bgpvpn) assoc = client.find_resource_by_id( self._resource, parsed_args.resource_association_id, cmd_resource='bgpvpn_%s_assoc' % self._assoc_res_name, parent_id=bgpvpn['id']) obj = show_method(bgpvpn['id'], assoc['id'])[self._resource] transform = getattr(self, '_transform_resource', None) if callable(transform): transform(obj) columns, display_columns = column_util.get_columns(obj, self._attr_map) data = osc_utils.get_dict_properties(obj, columns, formatters=self._formatters) return display_columns, data
def take_action(self, parsed_args): client = self.app.client_manager.nuageclient project_id = self._find_project_id(parsed_args.project) try: obj = client.show_project_netpartition_mapping( project_id)[RESOURCE_NAME] except neutron_exc.NotFound: raise neutron_exc.NotFound('No Project netpartition ' 'mapping was found for Project ' '{}.'.format(parsed_args.project)) try: obj['net_partition_name'] = client.show_net_partition( obj['net_partition_id'])['net_partition']['name'] except neutron_exc.NotFound: pass columns, display_columns = column_util.get_columns(obj, _attr_map) data = utils.get_dict_properties(obj, columns) return display_columns, data
def take_action(self, parsed_args): client = self.app.client_manager.neutronclient show_method = getattr(client, 'show_bgpvpn_%s_assoc' % self._assoc_res_name) bgpvpn = client.find_resource(constants.BGPVPN, parsed_args.bgpvpn) assoc = client.find_resource_by_id(self._resource, parsed_args.resource_association_id, cmd_resource='bgpvpn_%s_assoc' % self._assoc_res_name, parent_id=bgpvpn['id']) obj = show_method(bgpvpn['id'], assoc['id'])[self._resource] transform = getattr(self, '_transform_resource', None) if callable(transform): transform(obj) columns, display_columns = column_util.get_columns(obj, self._attr_map) data = osc_utils.get_dict_properties(obj, columns, formatters=self._formatters) return display_columns, data
def take_action(self, parsed_args): client = self.app.client_manager.neutronclient attrs = _get_common_attrs(self.app.client_manager, parsed_args) if parsed_args.vpnservice: _vpnservice_id = client.find_resource( 'vpnservice', parsed_args.vpnservice, cmd_resource='vpnservice')['id'] attrs['vpnservice_id'] = _vpnservice_id if parsed_args.ikepolicy: _ikepolicy_id = client.find_resource( 'ikepolicy', parsed_args.ikepolicy, cmd_resource='ikepolicy')['id'] attrs['ikepolicy_id'] = _ikepolicy_id if parsed_args.ipsecpolicy: _ipsecpolicy_id = client.find_resource( 'ipsecpolicy', parsed_args.ipsecpolicy, cmd_resource='ipsecpolicy')['id'] attrs['ipsecpolicy_id'] = _ipsecpolicy_id if parsed_args.peer_id: attrs['peer_id'] = parsed_args.peer_id if parsed_args.peer_address: attrs['peer_address'] = parsed_args.peer_address if parsed_args.psk: attrs['psk'] = parsed_args.psk if parsed_args.name: attrs['name'] = parsed_args.name if (bool(parsed_args.local_endpoint_group) != bool(parsed_args.peer_endpoint_group)): message = _("You must specify both local and peer endpoint " "groups") raise exceptions.CommandError(message) if not parsed_args.peer_cidrs and not parsed_args.local_endpoint_group: message = _("You must specify endpoint groups or peer CIDR(s)") raise exceptions.CommandError(message) obj = client.create_ipsec_site_connection( {'ipsec_site_connection': attrs})['ipsec_site_connection'] columns, display_columns = column_util.get_columns(obj, _attr_map) data = utils.get_dict_properties(obj, columns, formatters=_formatters) return display_columns, data
def take_action(self, parsed_args): client = self.app.client_manager.neutronclient attrs = _get_common_attrs(self.app.client_manager, parsed_args) if parsed_args.name: attrs['name'] = str(parsed_args.name) attrs['type'] = parsed_args.type if parsed_args.type == 'subnet': _subnet_ids = [client.find_resource( 'subnet', endpoint, cmd_resource='subnet')['id'] for endpoint in parsed_args.endpoints] attrs['endpoints'] = _subnet_ids else: attrs['endpoints'] = parsed_args.endpoints obj = client.create_endpoint_group( {'endpoint_group': attrs})['endpoint_group'] columns, display_columns = column_util.get_columns(obj, _attr_map) data = utils.get_dict_properties(obj, columns) return display_columns, data
def take_action(self, parsed_args): client = self.app.client_manager.neutronclient attrs = {} if parsed_args.name is not None: attrs['name'] = str(parsed_args.name) if parsed_args.devices is not None: attrs['devices'] = str(parsed_args.devices) if 'project' in parsed_args and parsed_args.project is not None: project_id = nc_osc_utils.find_project( self.app.client_manager.identity, parsed_args.project, parsed_args.project_domain, ).id attrs['tenant_id'] = project_id body = _args2body(parsed_args) obj = client.post(object_path, body)[L2_GATEWAY] columns, display_columns = column_util.get_columns(obj, _attr_map) data = osc_utils.get_dict_properties(obj, columns, formatters=_formatters) return display_columns, data
def take_action(self, parsed_args): client = self.app.client_manager.neutronclient attrs = _get_common_attrs(self.app.client_manager, parsed_args) if parsed_args.vpnservice: _vpnservice_id = client.find_resource( 'vpnservice', parsed_args.vpnservice, cmd_resource='vpnservice')['id'] attrs['vpnservice_id'] = _vpnservice_id if parsed_args.ikepolicy: _ikepolicy_id = client.find_resource( 'ikepolicy', parsed_args.ikepolicy, cmd_resource='ikepolicy')['id'] attrs['ikepolicy_id'] = _ikepolicy_id if parsed_args.ipsecpolicy: _ipsecpolicy_id = client.find_resource( 'ipsecpolicy', parsed_args.ipsecpolicy, cmd_resource='ipsecpolicy')['id'] attrs['ipsecpolicy_id'] = _ipsecpolicy_id if parsed_args.peer_id: attrs['peer_id'] = parsed_args.peer_id if parsed_args.peer_address: attrs['peer_address'] = parsed_args.peer_address if parsed_args.psk: attrs['psk'] = parsed_args.psk if parsed_args.name: attrs['name'] = parsed_args.name if (bool(parsed_args.local_endpoint_group) != bool( parsed_args.peer_endpoint_group)): message = _("You must specify both local and peer endpoint " "groups") raise exceptions.CommandError(message) if not parsed_args.peer_cidrs and not parsed_args.local_endpoint_group: message = _("You must specify endpoint groups or peer CIDR(s)") raise exceptions.CommandError(message) obj = client.create_ipsec_site_connection( {'ipsec_site_connection': attrs})['ipsec_site_connection'] columns, display_columns = column_util.get_columns(obj, _attr_map) data = utils.get_dict_properties(obj, columns, formatters=_formatters) return display_columns, data