@@ -84,6 +84,18 @@ def take_action(self, parsed_args):
8484class ComputeList (Command ):
8585 def get_parser (self , prog_name ):
8686 parser = super (ComputeList , self ).get_parser (prog_name )
87+ parser .add_argument (
88+ "--project" ,
89+ default = None ,
90+ type = str ,
91+ help = "Filter by project ID" ,
92+ )
93+ parser .add_argument (
94+ "--domain" ,
95+ default = None ,
96+ type = str ,
97+ help = "Filter by domain ID" ,
98+ )
8799 parser .add_argument (
88100 "host" ,
89101 nargs = "?" ,
@@ -96,11 +108,20 @@ def get_parser(self, prog_name):
96108 def take_action (self , parsed_args ):
97109 host = parsed_args .host
98110 conn = get_cloud_connection ()
111+ domain = parsed_args .domain
112+ project = parsed_args .project
99113
100114 result = []
101115 if host :
102116 for server in conn .compute .servers (all_projects = True , node = host ):
103- result .append ([server .id , server .name , server .status ])
117+ if project and server .project_id == project :
118+ result .append ([server .id , server .name , server .status ])
119+ elif domain :
120+ server_project = get_cloud_project (server .project_id )
121+ if server_project .domain_id == domain :
122+ result .append ([server .id , server .name , server .status ])
123+ else :
124+ result .append ([server .id , server .name , server .status ])
104125
105126 print (
106127 tabulate (
0 commit comments