@@ -57,6 +57,7 @@ def _get_common_cols_data(self, fake_port):
5757 'network_id' ,
5858 'port_security_enabled' ,
5959 'project_id' ,
60+ 'qos_policy_id' ,
6061 'security_group_ids' ,
6162 'status' ,
6263 )
@@ -82,6 +83,7 @@ def _get_common_cols_data(self, fake_port):
8283 fake_port .network_id ,
8384 fake_port .port_security_enabled ,
8485 fake_port .project_id ,
86+ fake_port .qos_policy_id ,
8587 utils .format_list (fake_port .security_group_ids ),
8688 fake_port .status ,
8789 )
@@ -422,6 +424,35 @@ def test_create_port_with_allowed_address_pair(self):
422424 self .assertEqual (ref_columns , columns )
423425 self .assertEqual (ref_data , data )
424426
427+ def test_create_port_with_qos (self ):
428+ qos_policy = network_fakes .FakeNetworkQosPolicy .create_one_qos_policy ()
429+ self .network .find_qos_policy = mock .Mock (return_value = qos_policy )
430+ arglist = [
431+ '--network' , self ._port .network_id ,
432+ '--qos-policy' , qos_policy .id ,
433+ 'test-port' ,
434+ ]
435+ verifylist = [
436+ ('network' , self ._port .network_id ,),
437+ ('enable' , True ),
438+ ('qos_policy' , qos_policy .id ),
439+ ('name' , 'test-port' ),
440+ ]
441+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
442+
443+ columns , data = (self .cmd .take_action (parsed_args ))
444+
445+ self .network .create_port .assert_called_once_with (** {
446+ 'admin_state_up' : True ,
447+ 'network_id' : self ._port .network_id ,
448+ 'qos_policy_id' : qos_policy .id ,
449+ 'name' : 'test-port' ,
450+ })
451+
452+ ref_columns , ref_data = self ._get_common_cols_data (self ._port )
453+ self .assertEqual (ref_columns , columns )
454+ self .assertEqual (ref_data , data )
455+
425456 def test_create_port_security_enabled (self ):
426457 arglist = [
427458 '--network' , self ._port .network_id ,
@@ -1316,6 +1347,30 @@ def test_set_port_security_disabled(self):
13161347 'port_security_enabled' : False ,
13171348 })
13181349
1350+ def test_set_port_with_qos (self ):
1351+ qos_policy = network_fakes .FakeNetworkQosPolicy .create_one_qos_policy ()
1352+ self .network .find_qos_policy = mock .Mock (return_value = qos_policy )
1353+ _testport = network_fakes .FakePort .create_one_port (
1354+ {'qos_policy_id' : None })
1355+ self .network .find_port = mock .Mock (return_value = _testport )
1356+ arglist = [
1357+ '--qos-policy' , qos_policy .id ,
1358+ _testport .name ,
1359+ ]
1360+ verifylist = [
1361+ ('qos_policy' , qos_policy .id ),
1362+ ('port' , _testport .name ),
1363+ ]
1364+
1365+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
1366+ result = self .cmd .take_action (parsed_args )
1367+
1368+ attrs = {
1369+ 'qos_policy_id' : qos_policy .id ,
1370+ }
1371+ self .network .update_port .assert_called_once_with (_testport , ** attrs )
1372+ self .assertIsNone (result )
1373+
13191374
13201375class TestShowPort (TestPort ):
13211376
@@ -1379,13 +1434,15 @@ def test_unset_port_parameters(self):
13791434 '--fixed-ip' ,
13801435 'subnet=042eb10a-3a18-4658-ab-cf47c8d03152,ip-address=1.0.0.0' ,
13811436 '--binding-profile' , 'Superman' ,
1437+ '--qos-policy' ,
13821438 self ._testport .name ,
13831439 ]
13841440 verifylist = [
13851441 ('fixed_ip' , [{
13861442 'subnet' : '042eb10a-3a18-4658-ab-cf47c8d03152' ,
13871443 'ip-address' : '1.0.0.0' }]),
13881444 ('binding_profile' , ['Superman' ]),
1445+ ('qos_policy' , True ),
13891446 ]
13901447
13911448 parsed_args = self .check_parser (self .cmd , arglist , verifylist )
@@ -1395,7 +1452,8 @@ def test_unset_port_parameters(self):
13951452 'fixed_ips' : [{
13961453 'subnet_id' : '042eb10a-3a18-4658-ab-cf47c8d03152' ,
13971454 'ip_address' : '0.0.0.1' }],
1398- 'binding:profile' : {'batman' : 'Joker' }
1455+ 'binding:profile' : {'batman' : 'Joker' },
1456+ 'qos_policy_id' : None
13991457 }
14001458 self .network .update_port .assert_called_once_with (
14011459 self ._testport , ** attrs )
0 commit comments