0a17948205ad7b4b948c30ad6e205978d1587d5d
1 # Copyright ETSI Contributors and Others.
4 # Licensed under the Apache License, Version 2.0 (the "License"); you may
5 # not use this file except in compliance with the License. You may obtain
6 # a copy of the License at
8 # http://www.apache.org/licenses/LICENSE-2.0
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12 # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13 # License for the specific language governing permissions and limitations
17 from osmclient
import client
18 from osmclient
.common
.exceptions
import ClientException
19 from osmclient
.cli_commands
import (
45 from requests
import RequestException
49 context_settings
=dict(help_option_names
=["-h", "--help"], max_content_width
=160)
54 envvar
="OSM_HOSTNAME",
55 help="hostname of server. " + "Also can set OSM_HOSTNAME in environment",
61 help="user (defaults to admin). " + "Also can set OSM_USER in environment",
66 envvar
="OSM_PASSWORD",
67 help="password (defaults to admin). " + "Also can set OSM_PASSWORD in environment",
73 help="project (defaults to admin). " + "Also can set OSM_PROJECT in environment",
79 help="increase verbosity (-v INFO, -vv VERBOSE, -vvv DEBUG)",
84 help="adapt output format (table, yaml, csv, json, jsonpath)",
86 @click.option("--all-projects", default
=None, is_flag
=True, help="include all projects")
88 "--public/--no-public",
90 help="flag for public items (packages, instances, VIM accounts, etc.)",
93 "--project-domain-name",
94 "project_domain_name",
96 envvar
="OSM_PROJECT_DOMAIN_NAME",
97 help="project domain name for keystone authentication (default to None). "
98 + "Also can set OSM_PROJECT_DOMAIN_NAME in environment",
101 "--user-domain-name",
104 envvar
="OSM_USER_DOMAIN_NAME",
105 help="user domain name for keystone authentication (default to None). "
106 + "Also can set OSM_USER_DOMAIN_NAME in environment",
109 def cli_osm(ctx
, **kwargs
):
111 hostname
= kwargs
.pop("hostname", None)
115 "either hostname option or OSM_HOSTNAME "
116 + "environment variable needs to be specified"
121 kwargs
= {k
: v
for k
, v
in kwargs
.items() if v
is not None}
122 ctx
.obj
= client
.Client(version
=1, host
=hostname
, **kwargs
)
123 logger
= logging
.getLogger("osmclient")
126 # pylint: disable=no-value-for-parameter
129 cli_osm
.add_command(alarms
.alarm_list
)
130 cli_osm
.add_command(alarms
.alarm_show
)
131 cli_osm
.add_command(alarms
.alarm_update
)
132 cli_osm
.add_command(alarms
.ns_alarm_create
)
134 cli_osm
.add_command(k8scluster
.k8scluster_add
)
135 cli_osm
.add_command(k8scluster
.k8scluster_delete
)
136 cli_osm
.add_command(k8scluster
.k8scluster_list
)
137 cli_osm
.add_command(k8scluster
.k8scluster_show
)
138 cli_osm
.add_command(k8scluster
.k8scluster_update
)
140 cli_osm
.add_command(metrics
.ns_metric_export
)
142 cli_osm
.add_command(k8scluster
.k8scluster_delete
)
143 cli_osm
.add_command(k8scluster
.k8scluster_list
)
144 cli_osm
.add_command(k8scluster
.k8scluster_show
)
145 cli_osm
.add_command(k8scluster
.k8scluster_update
)
147 cli_osm
.add_command(netslice_instance
.nsi_create1
)
148 cli_osm
.add_command(netslice_instance
.nsi_create2
)
149 cli_osm
.add_command(netslice_instance
.nsi_delete1
)
150 cli_osm
.add_command(netslice_instance
.nsi_delete2
)
151 cli_osm
.add_command(netslice_instance
.nsi_list1
)
152 cli_osm
.add_command(netslice_instance
.nsi_list2
)
153 cli_osm
.add_command(netslice_instance
.nsi_show1
)
154 cli_osm
.add_command(netslice_instance
.nsi_show2
)
156 cli_osm
.add_command(netslice_ops
.nsi_op_list1
)
157 cli_osm
.add_command(netslice_ops
.nsi_op_list2
)
158 cli_osm
.add_command(netslice_ops
.nsi_op_show1
)
159 cli_osm
.add_command(netslice_ops
.nsi_op_show2
)
161 cli_osm
.add_command(netslice_template
.nst_create1
)
162 cli_osm
.add_command(netslice_template
.nst_create2
)
163 cli_osm
.add_command(netslice_template
.nst_delete1
)
164 cli_osm
.add_command(netslice_template
.nst_delete2
)
165 cli_osm
.add_command(netslice_template
.nst_list1
)
166 cli_osm
.add_command(netslice_template
.nst_list2
)
167 cli_osm
.add_command(netslice_template
.nst_show1
)
168 cli_osm
.add_command(netslice_template
.nst_show2
)
169 cli_osm
.add_command(netslice_template
.nst_update1
)
170 cli_osm
.add_command(netslice_template
.nst_update2
)
172 cli_osm
.add_command(nfpkg
.nfpkg_create
)
173 cli_osm
.add_command(nfpkg
.nfpkg_delete
)
174 cli_osm
.add_command(nfpkg
.nfpkg_list
)
175 cli_osm
.add_command(nfpkg
.nfpkg_show
)
176 cli_osm
.add_command(nfpkg
.nfpkg_update
)
177 cli_osm
.add_command(nfpkg
.vnfd_create1
)
178 cli_osm
.add_command(nfpkg
.vnfd_create2
)
179 cli_osm
.add_command(nfpkg
.vnfd_delete1
)
180 cli_osm
.add_command(nfpkg
.vnfd_delete2
)
181 cli_osm
.add_command(nfpkg
.vnfd_list1
)
182 cli_osm
.add_command(nfpkg
.vnfd_list2
)
183 cli_osm
.add_command(nfpkg
.vnfd_show1
)
184 cli_osm
.add_command(nfpkg
.vnfd_show2
)
185 cli_osm
.add_command(nfpkg
.vnfd_update1
)
186 cli_osm
.add_command(nfpkg
.vnfd_update2
)
188 cli_osm
.add_command(ns
.ns_create
)
189 cli_osm
.add_command(ns
.ns_delete
)
190 cli_osm
.add_command(ns
.ns_list
)
191 cli_osm
.add_command(ns
.ns_show
)
193 cli_osm
.add_command(nslcm_ops
.ns_op_list
)
194 cli_osm
.add_command(nslcm_ops
.ns_op_show
)
196 cli_osm
.add_command(nslcm
.ns_action
)
197 cli_osm
.add_command(nslcm
.vnf_scale
)
198 cli_osm
.add_command(nslcm
.ns_update
)
199 cli_osm
.add_command(nslcm
.ns_heal
)
200 cli_osm
.add_command(nslcm
.vnf_heal
)
202 cli_osm
.add_command(nspkg
.nsd_create1
)
203 cli_osm
.add_command(nspkg
.nsd_create2
)
204 cli_osm
.add_command(nspkg
.nsd_delete1
)
205 cli_osm
.add_command(nspkg
.nsd_delete2
)
206 cli_osm
.add_command(nspkg
.nsd_list1
)
207 cli_osm
.add_command(nspkg
.nsd_list2
)
208 cli_osm
.add_command(nspkg
.nsd_show1
)
209 cli_osm
.add_command(nspkg
.nsd_show2
)
210 cli_osm
.add_command(nspkg
.nsd_update1
)
211 cli_osm
.add_command(nspkg
.nsd_update2
)
213 cli_osm
.add_command(other
.get_version
)
215 cli_osm
.add_command(packages
.descriptor_translate
)
216 cli_osm
.add_command(packages
.package_build
)
217 cli_osm
.add_command(packages
.package_create
)
218 cli_osm
.add_command(packages
.package_translate
)
219 cli_osm
.add_command(packages
.package_validate
)
220 cli_osm
.add_command(packages
.upload_package
)
222 cli_osm
.add_command(pdus
.pdu_create
)
223 cli_osm
.add_command(pdus
.pdu_delete
)
224 cli_osm
.add_command(pdus
.pdu_list
)
225 cli_osm
.add_command(pdus
.pdu_show
)
226 cli_osm
.add_command(pdus
.pdu_update
)
228 cli_osm
.add_command(rbac
.project_create
)
229 cli_osm
.add_command(rbac
.project_delete
)
230 cli_osm
.add_command(rbac
.project_list
)
231 cli_osm
.add_command(rbac
.project_show
)
232 cli_osm
.add_command(rbac
.project_update
)
234 cli_osm
.add_command(rbac
.role_create
)
235 cli_osm
.add_command(rbac
.role_delete
)
236 cli_osm
.add_command(rbac
.role_list
)
237 cli_osm
.add_command(rbac
.role_show
)
238 cli_osm
.add_command(rbac
.role_update
)
240 cli_osm
.add_command(rbac
.user_create
)
241 cli_osm
.add_command(rbac
.user_delete
)
242 cli_osm
.add_command(rbac
.user_list
)
243 cli_osm
.add_command(rbac
.user_show
)
244 cli_osm
.add_command(rbac
.user_update
)
246 cli_osm
.add_command(repo
.repo_add
)
247 cli_osm
.add_command(repo
.repo_delete
)
248 cli_osm
.add_command(repo
.repo_list
)
249 cli_osm
.add_command(repo
.repo_show
)
250 cli_osm
.add_command(repo
.repo_update
)
252 cli_osm
.add_command(repo
.repo_index
)
253 cli_osm
.add_command(repo
.nfpkg_repo_list1
)
254 cli_osm
.add_command(repo
.nfpkg_repo_list2
)
255 cli_osm
.add_command(repo
.nfpkg_repo_list2
)
256 cli_osm
.add_command(repo
.nspkg_repo_list
)
257 cli_osm
.add_command(repo
.nspkg_repo_list2
)
258 cli_osm
.add_command(repo
.nsd_repo_show
)
259 cli_osm
.add_command(repo
.nsd_repo_show2
)
260 cli_osm
.add_command(repo
.vnfd_show1
)
261 cli_osm
.add_command(repo
.vnfd_show2
)
263 cli_osm
.add_command(sdnc
.sdnc_create
)
264 cli_osm
.add_command(sdnc
.sdnc_delete
)
265 cli_osm
.add_command(sdnc
.sdnc_list
)
266 cli_osm
.add_command(sdnc
.sdnc_show
)
267 cli_osm
.add_command(sdnc
.sdnc_update
)
269 cli_osm
.add_command(subscriptions
.subscription_create
)
270 cli_osm
.add_command(subscriptions
.subscription_delete
)
271 cli_osm
.add_command(subscriptions
.subscription_list
)
272 cli_osm
.add_command(subscriptions
.subscription_show
)
274 cli_osm
.add_command(vca
.vca_add
)
275 cli_osm
.add_command(vca
.vca_delete
)
276 cli_osm
.add_command(vca
.vca_list
)
277 cli_osm
.add_command(vca
.vca_show
)
278 cli_osm
.add_command(vca
.vca_update
)
280 cli_osm
.add_command(vim
.vim_create
)
281 cli_osm
.add_command(vim
.vim_delete
)
282 cli_osm
.add_command(vim
.vim_list
)
283 cli_osm
.add_command(vim
.vim_show
)
284 cli_osm
.add_command(vim
.vim_update
)
286 cli_osm
.add_command(vnf
.nf_list
)
287 cli_osm
.add_command(vnf
.vnf_list1
)
288 cli_osm
.add_command(vnf
.vnf_show
)
290 cli_osm
.add_command(wim
.wim_create
)
291 cli_osm
.add_command(wim
.wim_delete
)
292 cli_osm
.add_command(wim
.wim_list
)
293 cli_osm
.add_command(wim
.wim_show
)
294 cli_osm
.add_command(wim
.wim_update
)
298 except RequestException
as exc
:
301 'Maybe "--hostname" option or OSM_HOSTNAME environment variable needs to be specified'
303 except ClientException
as exc
:
304 print("ERROR: {}".format(exc
))
305 except (FileNotFoundError
, PermissionError
) as exc
:
306 print("Cannot open file: {}".format(exc
))
307 except yaml
.YAMLError
as exc
:
308 print("Invalid YAML format: {}".format(exc
))
310 # TODO capture other controlled exceptions here
311 # TODO remove the ClientException captures from all places, unless they do something different
314 if __name__
== "__main__":