@@ -84,6 +84,18 @@ def take_action(self, parsed_args):
84
84
class ComputeList (Command ):
85
85
def get_parser (self , prog_name ):
86
86
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
+ )
87
99
parser .add_argument (
88
100
"host" ,
89
101
nargs = "?" ,
@@ -96,11 +108,20 @@ def get_parser(self, prog_name):
96
108
def take_action (self , parsed_args ):
97
109
host = parsed_args .host
98
110
conn = get_cloud_connection ()
111
+ domain = parsed_args .domain
112
+ project = parsed_args .project
99
113
100
114
result = []
101
115
if host :
102
116
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 ])
104
125
105
126
print (
106
127
tabulate (
0 commit comments