File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -514,6 +514,10 @@ def get_parser(self, prog_name):
514514 "This is the entity that uses the port (for example, "
515515 "network:dhcp)." )
516516 )
517+ parser .add_argument (
518+ '--host' ,
519+ metavar = '<host-id>' ,
520+ help = _ ("List only ports bound to this host ID" ))
517521 parser .add_argument (
518522 '--network' ,
519523 metavar = '<network>' ,
@@ -602,6 +606,8 @@ def take_action(self, parsed_args):
602606 server = utils .find_resource (compute_client .servers ,
603607 parsed_args .server )
604608 filters ['device_id' ] = server .id
609+ if parsed_args .host :
610+ filters ['binding:host_id' ] = parsed_args .host
605611 if parsed_args .network :
606612 network = network_client .find_network (parsed_args .network ,
607613 ignore_missing = False )
Original file line number Diff line number Diff line change @@ -1054,6 +1054,22 @@ def test_list_port_with_long(self):
10541054 self .assertEqual (self .columns_long , columns )
10551055 self .assertListItemEqual (self .data_long , list (data ))
10561056
1057+ def test_port_list_host (self ):
1058+ arglist = [
1059+ '--host' , 'foobar' ,
1060+ ]
1061+ verifylist = [
1062+ ('host' , 'foobar' ),
1063+ ]
1064+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
1065+
1066+ columns , data = self .cmd .take_action (parsed_args )
1067+ filters = {'binding:host_id' : 'foobar' }
1068+
1069+ self .network .ports .assert_called_once_with (** filters )
1070+ self .assertEqual (self .columns , columns )
1071+ self .assertListItemEqual (self .data , list (data ))
1072+
10571073 def test_port_list_project (self ):
10581074 project = identity_fakes .FakeProject .create_one_project ()
10591075 self .projects_mock .get .return_value = project
You can’t perform that action at this time.
0 commit comments