summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2021-01-22 20:42:59 +0000
committerGerrit Code Review <review@openstack.org>2021-01-22 20:42:59 +0000
commit01a53fa96fe2fbd67682850ee7ce9ab140c9211b (patch)
tree804abdf656ca1d6da335cbb6f9e8809e9d8f1b69 /openstackclient
parentbfa032cb1885d5129f7420432f42b68e6840548b (diff)
parent0cc878e5b053765a0d3c13f5588bc160b05a388b (diff)
downloadpython-openstackclient-01a53fa96fe2fbd67682850ee7ce9ab140c9211b.tar.gz
Merge "Add device profile to ``port``"
Diffstat (limited to 'openstackclient')
-rw-r--r--openstackclient/network/v2/port.py8
-rw-r--r--openstackclient/tests/unit/network/v2/fakes.py1
-rw-r--r--openstackclient/tests/unit/network/v2/test_port.py29
3 files changed, 38 insertions, 0 deletions
diff --git a/openstackclient/network/v2/port.py b/openstackclient/network/v2/port.py
index cb77759e..dfdb604d 100644
--- a/openstackclient/network/v2/port.py
+++ b/openstackclient/network/v2/port.py
@@ -168,6 +168,9 @@ def _get_attrs(client_manager, parsed_args):
parsed_args.numa_policy_legacy):
attrs['numa_affinity_policy'] = 'legacy'
+ if 'device_profile' in parsed_args and parsed_args.device_profile:
+ attrs['device_profile'] = parsed_args.device_profile
+
return attrs
@@ -443,6 +446,11 @@ class CreatePort(command.ShowOne):
"ip-address=<ip-address>[,mac-address=<mac-address>] "
"(repeat option to set multiple allowed-address pairs)")
)
+ parser.add_argument(
+ '--device-profile',
+ metavar='<device-profile>',
+ help=_('Cyborg port device profile')
+ )
_tag.add_tag_option_to_parser_for_create(parser, _('port'))
return parser
diff --git a/openstackclient/tests/unit/network/v2/fakes.py b/openstackclient/tests/unit/network/v2/fakes.py
index d6906690..e5023d43 100644
--- a/openstackclient/tests/unit/network/v2/fakes.py
+++ b/openstackclient/tests/unit/network/v2/fakes.py
@@ -697,6 +697,7 @@ class FakePort(object):
'description': 'description-' + uuid.uuid4().hex,
'device_id': 'device-id-' + uuid.uuid4().hex,
'device_owner': 'compute:nova',
+ 'device_profile': 'cyborg_device_profile_1',
'dns_assignment': [{}],
'dns_domain': 'dns-domain-' + uuid.uuid4().hex,
'dns_name': 'dns-name-' + uuid.uuid4().hex,
diff --git a/openstackclient/tests/unit/network/v2/test_port.py b/openstackclient/tests/unit/network/v2/test_port.py
index e21f9d01..c8bced71 100644
--- a/openstackclient/tests/unit/network/v2/test_port.py
+++ b/openstackclient/tests/unit/network/v2/test_port.py
@@ -54,6 +54,7 @@ class TestPort(network_fakes.TestNetworkV2):
'description',
'device_id',
'device_owner',
+ 'device_profile',
'dns_assignment',
'dns_domain',
'dns_name',
@@ -86,6 +87,7 @@ class TestPort(network_fakes.TestNetworkV2):
fake_port.description,
fake_port.device_id,
fake_port.device_owner,
+ fake_port.device_profile,
format_columns.ListDictColumn(fake_port.dns_assignment),
fake_port.dns_domain,
fake_port.dns_name,
@@ -737,6 +739,33 @@ class TestCreatePort(TestPort):
def test_create_with_numa_affinity_policy_null(self):
self._test_create_with_numa_affinity_policy()
+ def test_create_with_device_profile(self):
+ arglist = [
+ '--network', self._port.network_id,
+ '--device-profile', 'cyborg_device_profile_1',
+ 'test-port',
+ ]
+
+ verifylist = [
+ ('network', self._port.network_id,),
+ ('device_profile', self._port.device_profile,),
+ ('name', 'test-port'),
+ ]
+
+ parsed_args = self.check_parser(self.cmd, arglist, verifylist)
+
+ columns, data = (self.cmd.take_action(parsed_args))
+
+ create_args = {
+ 'admin_state_up': True,
+ 'network_id': self._port.network_id,
+ 'name': 'test-port',
+ 'device_profile': 'cyborg_device_profile_1',
+ }
+ self.network.create_port.assert_called_once_with(**create_args)
+ self.assertEqual(self.columns, columns)
+ self.assertItemsEqual(self.data, data)
+
class TestDeletePort(TestPort):