Skip to content

Commit 8267c7d

Browse files
authored
Make it possible to filter the comput server list (#1115)
Signed-off-by: Christian Berendt <[email protected]>
1 parent 70ea6c6 commit 8267c7d

File tree

1 file changed

+22
-1
lines changed

1 file changed

+22
-1
lines changed

osism/commands/compute.py

+22-1
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,18 @@ def take_action(self, parsed_args):
8484
class 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

Comments
 (0)