Merge "Revert "Revert "Remove Cisco-specific neutron client commands"""
This commit is contained in:
commit
5d08fd5867
@ -1,68 +0,0 @@
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
#
|
||||
|
||||
from neutronclient.i18n import _
|
||||
from neutronclient.neutron import v2_0 as neutronV20
|
||||
|
||||
|
||||
class ListCredential(neutronV20.ListCommand):
|
||||
"""List credentials that belong to a given tenant."""
|
||||
|
||||
resource = 'credential'
|
||||
_formatters = {}
|
||||
list_columns = ['credential_id', 'credential_name', 'user_name',
|
||||
'password', 'type']
|
||||
|
||||
|
||||
class ShowCredential(neutronV20.ShowCommand):
|
||||
"""Show information of a given credential."""
|
||||
|
||||
resource = 'credential'
|
||||
allow_names = False
|
||||
|
||||
|
||||
class CreateCredential(neutronV20.CreateCommand):
|
||||
"""Create a credential."""
|
||||
|
||||
resource = 'credential'
|
||||
|
||||
def add_known_arguments(self, parser):
|
||||
parser.add_argument(
|
||||
'credential_name',
|
||||
help=_('Name/IP address for credential.'))
|
||||
parser.add_argument(
|
||||
'credential_type',
|
||||
help=_('Type of the credential.'))
|
||||
parser.add_argument(
|
||||
'--username',
|
||||
help=_('Username for the credential.'))
|
||||
parser.add_argument(
|
||||
'--password',
|
||||
help=_('Password for the credential.'))
|
||||
|
||||
def args2body(self, parsed_args):
|
||||
body = {'credential_name': parsed_args.credential_name}
|
||||
if parsed_args.credential_type:
|
||||
body['type'] = parsed_args.credential_type
|
||||
if parsed_args.username:
|
||||
body['user_name'] = parsed_args.username
|
||||
if parsed_args.password:
|
||||
body['password'] = parsed_args.password
|
||||
return {'credential': body}
|
||||
|
||||
|
||||
class DeleteCredential(neutronV20.DeleteCommand):
|
||||
"""Delete a given credential."""
|
||||
|
||||
resource = 'credential'
|
||||
allow_names = False
|
@ -1,131 +0,0 @@
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
#
|
||||
|
||||
from __future__ import print_function
|
||||
|
||||
from neutronclient.i18n import _
|
||||
from neutronclient.neutron import v2_0 as neutronV20
|
||||
from neutronclient.neutron.v2_0 import parse_args_to_dict
|
||||
|
||||
RESOURCE = 'network_profile'
|
||||
SEGMENT_TYPE_CHOICES = ['vlan', 'overlay', 'multi-segment', 'trunk']
|
||||
|
||||
|
||||
class ListNetworkProfile(neutronV20.ListCommand):
|
||||
"""List network profiles that belong to a given tenant."""
|
||||
|
||||
resource = RESOURCE
|
||||
_formatters = {}
|
||||
list_columns = ['id', 'name', 'segment_type', 'sub_type', 'segment_range',
|
||||
'physical_network', 'multicast_ip_index',
|
||||
'multicast_ip_range']
|
||||
|
||||
|
||||
class ShowNetworkProfile(neutronV20.ShowCommand):
|
||||
"""Show information of a given network profile."""
|
||||
|
||||
resource = RESOURCE
|
||||
allow_names = True
|
||||
|
||||
|
||||
class CreateNetworkProfile(neutronV20.CreateCommand):
|
||||
"""Create a network profile."""
|
||||
|
||||
resource = RESOURCE
|
||||
|
||||
def add_known_arguments(self, parser):
|
||||
parser.add_argument('name',
|
||||
help=_('Name for network profile.'))
|
||||
parser.add_argument('segment_type',
|
||||
choices=SEGMENT_TYPE_CHOICES,
|
||||
help='Segment type.')
|
||||
# TODO(Abhishek): Check on sub-type choices depending on segment_type
|
||||
parser.add_argument('--sub_type',
|
||||
help=_('Sub-type for the segment. Available '
|
||||
'sub-types for overlay segments: '
|
||||
'native, enhanced; For trunk segments: '
|
||||
'vlan, overlay.'))
|
||||
parser.add_argument('--segment_range',
|
||||
help=_('Range for the segment.'))
|
||||
parser.add_argument('--physical_network',
|
||||
help=_('Name for the physical network.'))
|
||||
parser.add_argument('--multicast_ip_range',
|
||||
help=_('Multicast IPv4 range.'))
|
||||
parser.add_argument("--add-tenant",
|
||||
action='append', dest='add_tenants',
|
||||
help=_("Add tenant to the network profile. "
|
||||
"You can repeat this option."))
|
||||
|
||||
def args2body(self, parsed_args):
|
||||
body = {'name': parsed_args.name}
|
||||
neutronV20.update_dict(parsed_args, body,
|
||||
['segment_type', 'sub_type', 'segment_range',
|
||||
'physical_network', 'multicast_ip_range',
|
||||
'add_tenants'])
|
||||
return {'network_profile': body}
|
||||
|
||||
|
||||
class DeleteNetworkProfile(neutronV20.DeleteCommand):
|
||||
"""Delete a given network profile."""
|
||||
|
||||
resource = RESOURCE
|
||||
allow_names = True
|
||||
|
||||
|
||||
class UpdateNetworkProfile(neutronV20.UpdateCommand):
|
||||
"""Update network profile's information."""
|
||||
|
||||
resource = RESOURCE
|
||||
|
||||
def add_known_arguments(self, parser):
|
||||
parser.add_argument("--remove-tenant",
|
||||
action='append', dest='remove_tenants',
|
||||
help=_("Remove tenant from the network profile. "
|
||||
"You can repeat this option."))
|
||||
parser.add_argument("--add-tenant",
|
||||
action='append', dest='add_tenants',
|
||||
help=_("Add tenant to the network profile. "
|
||||
"You can repeat this option."))
|
||||
|
||||
def args2body(self, parsed_args):
|
||||
body = {}
|
||||
neutronV20.update_dict(parsed_args, body,
|
||||
['remove_tenants', 'add_tenants'])
|
||||
return {'network_profile': body}
|
||||
|
||||
|
||||
# Aaron: This function is deprecated
|
||||
class UpdateNetworkProfileV2(neutronV20.NeutronCommand):
|
||||
|
||||
api = 'network'
|
||||
resource = RESOURCE
|
||||
|
||||
def get_parser(self, prog_name):
|
||||
parser = super(UpdateNetworkProfileV2, self).get_parser(prog_name)
|
||||
parser.add_argument("--remove-tenant",
|
||||
help="Remove tenant from the network profile.")
|
||||
return parser
|
||||
|
||||
def run(self, parsed_args):
|
||||
self.log.debug('run(%s)' % parsed_args)
|
||||
neutron_client = self.get_client()
|
||||
neutron_client.format = parsed_args.request_format
|
||||
data = {self.resource: parse_args_to_dict(parsed_args)}
|
||||
if parsed_args.remove_tenant:
|
||||
data[self.resource]['remove_tenant'] = parsed_args.remove_tenant
|
||||
neutron_client.update_network_profile(parsed_args.id,
|
||||
{self.resource: data})
|
||||
print((_('Updated %(resource)s: %(id)s') %
|
||||
{'id': parsed_args.id, 'resource': self.resource}),
|
||||
file=self.app.stdout)
|
||||
return
|
@ -1,72 +0,0 @@
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
#
|
||||
|
||||
from __future__ import print_function
|
||||
|
||||
from neutronclient.i18n import _
|
||||
from neutronclient.neutron import v2_0 as neutronV20
|
||||
from neutronclient.neutron.v2_0 import parse_args_to_dict
|
||||
|
||||
RESOURCE = 'policy_profile'
|
||||
|
||||
|
||||
class ListPolicyProfile(neutronV20.ListCommand):
|
||||
"""List policy profiles that belong to a given tenant."""
|
||||
|
||||
resource = RESOURCE
|
||||
_formatters = {}
|
||||
list_columns = ['id', 'name']
|
||||
|
||||
|
||||
class ShowPolicyProfile(neutronV20.ShowCommand):
|
||||
"""Show information of a given policy profile."""
|
||||
|
||||
resource = RESOURCE
|
||||
allow_names = True
|
||||
|
||||
|
||||
class UpdatePolicyProfile(neutronV20.UpdateCommand):
|
||||
"""Update policy profile's information."""
|
||||
|
||||
resource = RESOURCE
|
||||
|
||||
|
||||
class UpdatePolicyProfileV2(neutronV20.UpdateCommand):
|
||||
"""Update policy profile's information."""
|
||||
|
||||
api = 'network'
|
||||
resource = RESOURCE
|
||||
|
||||
def get_parser(self, prog_name):
|
||||
parser = super(UpdatePolicyProfileV2, self).get_parser(prog_name)
|
||||
parser.add_argument("--add-tenant",
|
||||
help=_("Add tenant to the policy profile."))
|
||||
parser.add_argument("--remove-tenant",
|
||||
help=_("Remove tenant from the policy profile."))
|
||||
return parser
|
||||
|
||||
def run(self, parsed_args):
|
||||
self.log.debug('run(%s)' % parsed_args)
|
||||
neutron_client = self.get_client()
|
||||
neutron_client.format = parsed_args.request_format
|
||||
data = {self.resource: parse_args_to_dict(parsed_args)}
|
||||
if parsed_args.add_tenant:
|
||||
data[self.resource]['add_tenant'] = parsed_args.add_tenant
|
||||
if parsed_args.remove_tenant:
|
||||
data[self.resource]['remove_tenant'] = parsed_args.remove_tenant
|
||||
neutron_client.update_policy_profile(parsed_args.id,
|
||||
{self.resource: data})
|
||||
print((_('Updated %(resource)s: %(id)s') %
|
||||
{'id': parsed_args.id, 'resource': self.resource}),
|
||||
file=self.app.stdout)
|
||||
return
|
@ -43,7 +43,6 @@ from neutronclient.i18n import _
|
||||
from neutronclient.neutron.v2_0 import address_scope
|
||||
from neutronclient.neutron.v2_0 import agent
|
||||
from neutronclient.neutron.v2_0 import agentscheduler
|
||||
from neutronclient.neutron.v2_0 import credential
|
||||
from neutronclient.neutron.v2_0 import extension
|
||||
from neutronclient.neutron.v2_0.flavor import flavor
|
||||
from neutronclient.neutron.v2_0.flavor import flavor_profile
|
||||
@ -63,10 +62,8 @@ from neutronclient.neutron.v2_0.lb import vip as lb_vip
|
||||
from neutronclient.neutron.v2_0 import metering
|
||||
from neutronclient.neutron.v2_0 import netpartition
|
||||
from neutronclient.neutron.v2_0 import network
|
||||
from neutronclient.neutron.v2_0 import networkprofile
|
||||
from neutronclient.neutron.v2_0.nsx import networkgateway
|
||||
from neutronclient.neutron.v2_0.nsx import qos_queue
|
||||
from neutronclient.neutron.v2_0 import policyprofile
|
||||
from neutronclient.neutron.v2_0 import port
|
||||
from neutronclient.neutron.v2_0.qos import bandwidth_limit_rule
|
||||
from neutronclient.neutron.v2_0.qos import policy as qos_policy
|
||||
@ -303,18 +300,6 @@ COMMAND_V2 = {
|
||||
'firewall-create': firewall.CreateFirewall,
|
||||
'firewall-update': firewall.UpdateFirewall,
|
||||
'firewall-delete': firewall.DeleteFirewall,
|
||||
'cisco-credential-list': credential.ListCredential,
|
||||
'cisco-credential-show': credential.ShowCredential,
|
||||
'cisco-credential-create': credential.CreateCredential,
|
||||
'cisco-credential-delete': credential.DeleteCredential,
|
||||
'cisco-network-profile-list': networkprofile.ListNetworkProfile,
|
||||
'cisco-network-profile-show': networkprofile.ShowNetworkProfile,
|
||||
'cisco-network-profile-create': networkprofile.CreateNetworkProfile,
|
||||
'cisco-network-profile-delete': networkprofile.DeleteNetworkProfile,
|
||||
'cisco-network-profile-update': networkprofile.UpdateNetworkProfile,
|
||||
'cisco-policy-profile-list': policyprofile.ListPolicyProfile,
|
||||
'cisco-policy-profile-show': policyprofile.ShowPolicyProfile,
|
||||
'cisco-policy-profile-update': policyprofile.UpdatePolicyProfile,
|
||||
'ipsec-site-connection-list': (
|
||||
ipsec_site_connection.ListIPsecSiteConnection
|
||||
),
|
||||
|
@ -1,79 +0,0 @@
|
||||
# Copyright 2013 Cisco Systems Inc.
|
||||
# All Rights Reserved
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
#
|
||||
|
||||
import sys
|
||||
|
||||
from neutronclient.neutron.v2_0 import credential
|
||||
from neutronclient.tests.unit import test_cli20
|
||||
|
||||
|
||||
class CLITestV20Credential(test_cli20.CLITestV20Base):
|
||||
|
||||
non_admin_status_resources = ['credential']
|
||||
|
||||
def test_create_credential(self):
|
||||
"""Create credential: myid."""
|
||||
resource = 'credential'
|
||||
cmd = credential.CreateCredential(test_cli20.MyApp(sys.stdout), None)
|
||||
name = 'myname'
|
||||
myid = 'myid'
|
||||
type = 'mytype'
|
||||
args = [name, type]
|
||||
position_names = ['credential_name', 'type']
|
||||
position_values = [name, type]
|
||||
self._test_create_resource(resource, cmd, name, myid, args,
|
||||
position_names, position_values)
|
||||
|
||||
def test_list_credentials_detail(self):
|
||||
"""List credentials: -D."""
|
||||
resources = 'credentials'
|
||||
cmd = credential.ListCredential(test_cli20.MyApp(sys.stdout), None)
|
||||
contents = [{'credential_name': 'myname', 'type': 'mytype'}]
|
||||
self._test_list_resources(resources, cmd, True,
|
||||
response_contents=contents)
|
||||
|
||||
def test_list_credential_known_option_after_unknown(self):
|
||||
"""List credential: -- --tags a b --request-format xml."""
|
||||
resources = 'credentials'
|
||||
cmd = credential.ListCredential(test_cli20.MyApp(sys.stdout), None)
|
||||
contents = [{'credential_name': 'myname', 'type': 'mytype'}]
|
||||
self._test_list_resources(resources, cmd, tags=['a', 'b'],
|
||||
response_contents=contents)
|
||||
|
||||
def test_list_credential_fields(self):
|
||||
"""List credential: --fields a --fields b -- --fields c d."""
|
||||
resources = 'credentials'
|
||||
cmd = credential.ListCredential(test_cli20.MyApp(sys.stdout), None)
|
||||
contents = [{'credential_name': 'myname', 'type': 'mytype'}]
|
||||
self._test_list_resources(resources, cmd,
|
||||
fields_1=['a', 'b'], fields_2=['c', 'd'],
|
||||
response_contents=contents)
|
||||
|
||||
def test_show_credential(self):
|
||||
"""Show credential: --fields id --fields name myid."""
|
||||
resource = 'credential'
|
||||
cmd = credential.ShowCredential(test_cli20.MyApp(sys.stdout), None)
|
||||
args = ['--fields', 'id', '--fields', 'name', self.test_id]
|
||||
self._test_show_resource(resource, cmd, self.test_id, args,
|
||||
['id', 'name'])
|
||||
|
||||
def test_delete_credential(self):
|
||||
"""Delete credential: myid."""
|
||||
resource = 'credential'
|
||||
cmd = credential.DeleteCredential(test_cli20.MyApp(sys.stdout), None)
|
||||
myid = 'myid'
|
||||
args = [myid]
|
||||
self._test_delete_resource(resource, cmd, myid, args)
|
@ -1,135 +0,0 @@
|
||||
# Copyright 2013 Cisco Systems Inc.
|
||||
# All Rights Reserved
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
#
|
||||
|
||||
import sys
|
||||
|
||||
from neutronclient.neutron.v2_0 import networkprofile
|
||||
from neutronclient.tests.unit import test_cli20
|
||||
|
||||
|
||||
class CLITestV20NetworkProfile(test_cli20.CLITestV20Base):
|
||||
|
||||
non_admin_status_resources = ['network_profile']
|
||||
|
||||
def test_create_networkprofile(self):
|
||||
"""Create networkprofile: myid."""
|
||||
resource = 'network_profile'
|
||||
cmd = networkprofile.CreateNetworkProfile(test_cli20.
|
||||
MyApp(sys.stdout), None)
|
||||
name = 'myname'
|
||||
myid = 'myid'
|
||||
segment_type = 'vlan'
|
||||
args = [name, segment_type]
|
||||
position_names = ['name', 'segment_type']
|
||||
position_values = [name, segment_type]
|
||||
self._test_create_resource(resource, cmd, name, myid, args,
|
||||
position_names, position_values)
|
||||
|
||||
def test_list_networkprofile_detail(self):
|
||||
"""List networkprofile: -D."""
|
||||
resources = 'network_profiles'
|
||||
cmd = networkprofile.ListNetworkProfile(test_cli20.MyApp(sys.stdout),
|
||||
None)
|
||||
contents = [{'name': 'myname', 'segment_type': 'vlan'}]
|
||||
self._test_list_resources(resources, cmd, True,
|
||||
response_contents=contents)
|
||||
|
||||
def test_list_networkprofile_known_option_after_unknown(self):
|
||||
"""List networkprofile: -- --tags a b --request-format xml."""
|
||||
resources = 'network_profiles'
|
||||
cmd = networkprofile.ListNetworkProfile(test_cli20.MyApp(sys.stdout),
|
||||
None)
|
||||
contents = [{'name': 'myname', 'segment_type': 'vlan'}]
|
||||
self._test_list_resources(resources, cmd, tags=['a', 'b'],
|
||||
response_contents=contents)
|
||||
|
||||
def test_list_networkprofile_fields(self):
|
||||
"""List networkprofile: --fields a --fields b -- --fields c d."""
|
||||
resources = 'network_profiles'
|
||||
cmd = networkprofile.ListNetworkProfile(test_cli20.MyApp(sys.stdout),
|
||||
None)
|
||||
contents = [{'name': 'myname', 'segment_type': 'vlan'}]
|
||||
self._test_list_resources(resources, cmd,
|
||||
fields_1=['a', 'b'], fields_2=['c', 'd'],
|
||||
response_contents=contents)
|
||||
|
||||
def test_show_networkprofile(self):
|
||||
"""Show networkprofile: --fields id --fields name myid."""
|
||||
resource = 'network_profile'
|
||||
cmd = networkprofile.ShowNetworkProfile(test_cli20.MyApp(sys.stdout),
|
||||
None)
|
||||
args = ['--fields', 'id', '--fields', 'name', self.test_id]
|
||||
self._test_show_resource(resource, cmd, self.test_id, args,
|
||||
['id', 'name'])
|
||||
|
||||
def test_delete_networkprofile(self):
|
||||
"""Delete networkprofile: myid."""
|
||||
resource = 'network_profile'
|
||||
cmd = networkprofile.DeleteNetworkProfile(test_cli20.
|
||||
MyApp(sys.stdout), None)
|
||||
myid = 'myid'
|
||||
args = [myid]
|
||||
self._test_delete_resource(resource, cmd, myid, args)
|
||||
|
||||
def test_create_networkprofile_trunk(self):
|
||||
"""Create networkprofile: myid."""
|
||||
resource = 'network_profile'
|
||||
cmd = networkprofile.CreateNetworkProfile(test_cli20.
|
||||
MyApp(sys.stdout), None)
|
||||
name = 'myname'
|
||||
myid = 'myid'
|
||||
segment_type = 'trunk'
|
||||
args = [name, segment_type, '--sub_type', 'vlan']
|
||||
position_names = ['name', 'segment_type', ]
|
||||
position_values = [name, segment_type, ]
|
||||
self._test_create_resource(resource, cmd, name, myid, args,
|
||||
position_names, position_values,
|
||||
sub_type='vlan')
|
||||
|
||||
def test_list_networkprofile_trunk_detail(self):
|
||||
"""List networkprofile: -D."""
|
||||
resources = 'network_profiles'
|
||||
cmd = networkprofile.ListNetworkProfile(test_cli20.MyApp(sys.stdout),
|
||||
None)
|
||||
contents = [{'name': 'myname', 'segment_type': 'trunk',
|
||||
'--sub_type': 'vlan'}]
|
||||
self._test_list_resources(resources, cmd, True,
|
||||
response_contents=contents)
|
||||
|
||||
def test_create_networkprofile_multi_tenants(self):
|
||||
"""Create networkprofile with mulitple tenants: myid."""
|
||||
resource = 'network_profile'
|
||||
cmd = networkprofile.CreateNetworkProfile(test_cli20.
|
||||
MyApp(sys.stdout), None)
|
||||
name = 'myname'
|
||||
myid = 'myid'
|
||||
segment_type = 'vlan'
|
||||
args = [name, segment_type, '--add-tenant', 'demo',
|
||||
'--add-tenant', 'admin']
|
||||
position_names = ['name', 'segment_type', 'add_tenants']
|
||||
position_values = [name, segment_type, ['demo', 'admin']]
|
||||
self._test_create_resource(resource, cmd, name, myid, args,
|
||||
position_names, position_values)
|
||||
|
||||
def test_update_networkprofile_multi_tenants(self):
|
||||
resource = 'network_profile'
|
||||
cmd = networkprofile.UpdateNetworkProfile(test_cli20.
|
||||
MyApp(sys.stdout), None)
|
||||
args = ['myid', '--add-tenant', 'service', '--add-tenant', 'demo',
|
||||
'--remove-tenant', 'demo']
|
||||
extrafields = {'add_tenants': ['service', 'demo'],
|
||||
'remove_tenants': ['demo']}
|
||||
self._test_update_resource(resource, cmd, 'myid', args, extrafields)
|
@ -1,73 +0,0 @@
|
||||
# Copyright 2013 Cisco Systems Inc.
|
||||
# All Rights Reserved
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
#
|
||||
|
||||
import sys
|
||||
|
||||
from neutronclient.neutron.v2_0 import policyprofile
|
||||
from neutronclient.tests.unit import test_cli20
|
||||
|
||||
|
||||
class CLITestV20PolicyProfile(test_cli20.CLITestV20Base):
|
||||
|
||||
non_admin_status_resources = ['policy_profile']
|
||||
|
||||
def test_list_policyprofile_detail(self):
|
||||
"""List policyprofile: -D."""
|
||||
resources = 'policy_profiles'
|
||||
cmd = policyprofile.ListPolicyProfile(test_cli20.MyApp(sys.stdout),
|
||||
None)
|
||||
contents = [{'name': 'myname', 'segment_type': 'vlan'}]
|
||||
self._test_list_resources(resources, cmd, True,
|
||||
response_contents=contents)
|
||||
|
||||
def test_list_policyprofile_known_option_after_unknown(self):
|
||||
"""List policyprofile: -- --tags a b --request-format xml."""
|
||||
resources = 'policy_profiles'
|
||||
cmd = policyprofile.ListPolicyProfile(test_cli20.MyApp(sys.stdout),
|
||||
None)
|
||||
contents = [{'name': 'myname', 'segment_type': 'vlan'}]
|
||||
self._test_list_resources(resources, cmd, tags=['a', 'b'],
|
||||
response_contents=contents)
|
||||
|
||||
def test_list_policyprofile_fields(self):
|
||||
"""List policyprofile: --fields a --fields b -- --fields c d."""
|
||||
resources = 'policy_profiles'
|
||||
cmd = policyprofile.ListPolicyProfile(test_cli20.MyApp(sys.stdout),
|
||||
None)
|
||||
contents = [{'name': 'myname', 'segment_type': 'vlan'}]
|
||||
self._test_list_resources(resources, cmd,
|
||||
fields_1=['a', 'b'], fields_2=['c', 'd'],
|
||||
response_contents=contents)
|
||||
|
||||
def test_show_policyprofile(self):
|
||||
"""Show policyprofile: --fields id --fields name myid."""
|
||||
resource = 'policy_profile'
|
||||
cmd = policyprofile.ShowPolicyProfile(test_cli20.MyApp(sys.stdout),
|
||||
None)
|
||||
args = ['--fields', 'id', '--fields', 'name', self.test_id]
|
||||
self._test_show_resource(resource, cmd, self.test_id, args,
|
||||
['id', 'name'])
|
||||
|
||||
def test_update_policyprofile(self):
|
||||
"""Update policyprofile: myid --name myname --tags a b."""
|
||||
resource = 'policy_profile'
|
||||
cmd = policyprofile.UpdatePolicyProfile(test_cli20.MyApp(sys.stdout),
|
||||
None)
|
||||
self._test_update_resource(resource, cmd, 'myid',
|
||||
['myid', '--name', 'myname',
|
||||
'--tags', 'a', 'b'],
|
||||
{'name': 'myname', 'tags': ['a', 'b'], }
|
||||
)
|
@ -398,14 +398,6 @@ class Client(ClientBase):
|
||||
gateway_devices_path = "/gateway-devices"
|
||||
gateway_device_path = "/gateway-devices/%s"
|
||||
service_providers_path = "/service-providers"
|
||||
credentials_path = "/credentials"
|
||||
credential_path = "/credentials/%s"
|
||||
network_profiles_path = "/network_profiles"
|
||||
network_profile_path = "/network_profiles/%s"
|
||||
network_profile_bindings_path = "/network_profile_bindings"
|
||||
policy_profiles_path = "/policy_profiles"
|
||||
policy_profile_path = "/policy_profiles/%s"
|
||||
policy_profile_bindings_path = "/policy_profile_bindings"
|
||||
metering_labels_path = "/metering/metering-labels"
|
||||
metering_label_path = "/metering/metering-labels/%s"
|
||||
metering_label_rules_path = "/metering/metering-label-rules"
|
||||
@ -1511,79 +1503,6 @@ class Client(ClientBase):
|
||||
return self.list('service_providers', self.service_providers_path,
|
||||
retrieve_all, **_params)
|
||||
|
||||
def list_credentials(self, **_params):
|
||||
"""Fetch a list of all credentials for a tenant."""
|
||||
return self.get(self.credentials_path, params=_params)
|
||||
|
||||
@APIParamsCall
|
||||
def show_credential(self, credential, **_params):
|
||||
"""Fetch a credential."""
|
||||
return self.get(self.credential_path % (credential), params=_params)
|
||||
|
||||
@APIParamsCall
|
||||
def create_credential(self, body=None):
|
||||
"""Create a new credential."""
|
||||
return self.post(self.credentials_path, body=body)
|
||||
|
||||
@APIParamsCall
|
||||
def update_credential(self, credential, body=None):
|
||||
"""Update a credential."""
|
||||
return self.put(self.credential_path % (credential), body=body)
|
||||
|
||||
@APIParamsCall
|
||||
def delete_credential(self, credential):
|
||||
"""Delete the specified credential."""
|
||||
return self.delete(self.credential_path % (credential))
|
||||
|
||||
def list_network_profile_bindings(self, **params):
|
||||
"""Fetch a list of all tenants associated for a network profile."""
|
||||
return self.get(self.network_profile_bindings_path, params=params)
|
||||
|
||||
@APIParamsCall
|
||||
def list_network_profiles(self, **params):
|
||||
"""Fetch a list of all network profiles for a tenant."""
|
||||
return self.get(self.network_profiles_path, params=params)
|
||||
|
||||
@APIParamsCall
|
||||
def show_network_profile(self, profile, **params):
|
||||
"""Fetch a network profile."""
|
||||
return self.get(self.network_profile_path % (profile), params=params)
|
||||
|
||||
@APIParamsCall
|
||||
def create_network_profile(self, body=None):
|
||||
"""Create a network profile."""
|
||||
return self.post(self.network_profiles_path, body=body)
|
||||
|
||||
@APIParamsCall
|
||||
def update_network_profile(self, profile, body=None):
|
||||
"""Update a network profile."""
|
||||
return self.put(self.network_profile_path % (profile), body=body)
|
||||
|
||||
@APIParamsCall
|
||||
def delete_network_profile(self, profile):
|
||||
"""Delete the network profile."""
|
||||
return self.delete(self.network_profile_path % profile)
|
||||
|
||||
@APIParamsCall
|
||||
def list_policy_profile_bindings(self, **params):
|
||||
"""Fetch a list of all tenants associated for a policy profile."""
|
||||
return self.get(self.policy_profile_bindings_path, params=params)
|
||||
|
||||
@APIParamsCall
|
||||
def list_policy_profiles(self, **params):
|
||||
"""Fetch a list of all network profiles for a tenant."""
|
||||
return self.get(self.policy_profiles_path, params=params)
|
||||
|
||||
@APIParamsCall
|
||||
def show_policy_profile(self, profile, **params):
|
||||
"""Fetch a network profile."""
|
||||
return self.get(self.policy_profile_path % (profile), params=params)
|
||||
|
||||
@APIParamsCall
|
||||
def update_policy_profile(self, profile, body=None):
|
||||
"""Update a policy profile."""
|
||||
return self.put(self.policy_profile_path % (profile), body=body)
|
||||
|
||||
@APIParamsCall
|
||||
def create_metering_label(self, body=None):
|
||||
"""Creates a metering label."""
|
||||
|
Loading…
Reference in New Issue
Block a user