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)",
81 @click.option("--all-projects", default
=None, is_flag
=True, help="include all projects")
83 "--public/--no-public",
85 help="flag for public items (packages, instances, VIM accounts, etc.)",
88 "--project-domain-name",
89 "project_domain_name",
91 envvar
="OSM_PROJECT_DOMAIN_NAME",
92 help="project domain name for keystone authentication (default to None). "
93 + "Also can set OSM_PROJECT_DOMAIN_NAME in environment",
99 envvar
="OSM_USER_DOMAIN_NAME",
100 help="user domain name for keystone authentication (default to None). "
101 + "Also can set OSM_USER_DOMAIN_NAME in environment",
104 def cli_osm(ctx
, **kwargs
):
106 hostname
= kwargs
.pop("hostname", None)
110 "either hostname option or OSM_HOSTNAME "
111 + "environment variable needs to be specified"
116 kwargs
= {k
: v
for k
, v
in kwargs
.items() if v
is not None}
117 ctx
.obj
= client
.Client(version
=1, host
=hostname
, **kwargs
)
118 logger
= logging
.getLogger("osmclient")
121 # pylint: disable=no-value-for-parameter
124 cli_osm
.add_command(alarms
.alarm_list
)
125 cli_osm
.add_command(alarms
.alarm_show
)
126 cli_osm
.add_command(alarms
.alarm_update
)
127 cli_osm
.add_command(alarms
.ns_alarm_create
)
129 cli_osm
.add_command(k8scluster
.k8scluster_add
)
130 cli_osm
.add_command(k8scluster
.k8scluster_delete
)
131 cli_osm
.add_command(k8scluster
.k8scluster_list
)
132 cli_osm
.add_command(k8scluster
.k8scluster_show
)
133 cli_osm
.add_command(k8scluster
.k8scluster_update
)
135 cli_osm
.add_command(metrics
.ns_metric_export
)
137 cli_osm
.add_command(k8scluster
.k8scluster_delete
)
138 cli_osm
.add_command(k8scluster
.k8scluster_list
)
139 cli_osm
.add_command(k8scluster
.k8scluster_show
)
140 cli_osm
.add_command(k8scluster
.k8scluster_update
)
142 cli_osm
.add_command(netslice_instance
.nsi_create1
)
143 cli_osm
.add_command(netslice_instance
.nsi_create2
)
144 cli_osm
.add_command(netslice_instance
.nsi_delete1
)
145 cli_osm
.add_command(netslice_instance
.nsi_delete2
)
146 cli_osm
.add_command(netslice_instance
.nsi_list1
)
147 cli_osm
.add_command(netslice_instance
.nsi_list2
)
148 cli_osm
.add_command(netslice_instance
.nsi_show1
)
149 cli_osm
.add_command(netslice_instance
.nsi_show2
)
151 cli_osm
.add_command(netslice_ops
.nsi_op_list1
)
152 cli_osm
.add_command(netslice_ops
.nsi_op_list2
)
153 cli_osm
.add_command(netslice_ops
.nsi_op_show1
)
154 cli_osm
.add_command(netslice_ops
.nsi_op_show2
)
156 cli_osm
.add_command(netslice_template
.nst_create1
)
157 cli_osm
.add_command(netslice_template
.nst_create2
)
158 cli_osm
.add_command(netslice_template
.nst_delete1
)
159 cli_osm
.add_command(netslice_template
.nst_delete2
)
160 cli_osm
.add_command(netslice_template
.nst_list1
)
161 cli_osm
.add_command(netslice_template
.nst_list2
)
162 cli_osm
.add_command(netslice_template
.nst_show1
)
163 cli_osm
.add_command(netslice_template
.nst_show2
)
164 cli_osm
.add_command(netslice_template
.nst_update1
)
165 cli_osm
.add_command(netslice_template
.nst_update2
)
167 cli_osm
.add_command(nfpkg
.nfpkg_create
)
168 cli_osm
.add_command(nfpkg
.nfpkg_delete
)
169 cli_osm
.add_command(nfpkg
.nfpkg_list
)
170 cli_osm
.add_command(nfpkg
.nfpkg_show
)
171 cli_osm
.add_command(nfpkg
.nfpkg_update
)
172 cli_osm
.add_command(nfpkg
.vnfd_create1
)
173 cli_osm
.add_command(nfpkg
.vnfd_create2
)
174 cli_osm
.add_command(nfpkg
.vnfd_delete1
)
175 cli_osm
.add_command(nfpkg
.vnfd_delete2
)
176 cli_osm
.add_command(nfpkg
.vnfd_list1
)
177 cli_osm
.add_command(nfpkg
.vnfd_list2
)
178 cli_osm
.add_command(nfpkg
.vnfd_show1
)
179 cli_osm
.add_command(nfpkg
.vnfd_show2
)
180 cli_osm
.add_command(nfpkg
.vnfd_update1
)
181 cli_osm
.add_command(nfpkg
.vnfd_update2
)
183 cli_osm
.add_command(ns
.ns_create
)
184 cli_osm
.add_command(ns
.ns_delete
)
185 cli_osm
.add_command(ns
.ns_list
)
186 cli_osm
.add_command(ns
.ns_show
)
188 cli_osm
.add_command(nslcm_ops
.ns_op_list
)
189 cli_osm
.add_command(nslcm_ops
.ns_op_show
)
191 cli_osm
.add_command(nslcm
.ns_action
)
192 cli_osm
.add_command(nslcm
.vnf_scale
)
193 cli_osm
.add_command(nslcm
.ns_update
)
194 cli_osm
.add_command(nslcm
.ns_heal
)
195 cli_osm
.add_command(nslcm
.vnf_heal
)
197 cli_osm
.add_command(nspkg
.nsd_create1
)
198 cli_osm
.add_command(nspkg
.nsd_create2
)
199 cli_osm
.add_command(nspkg
.nsd_delete1
)
200 cli_osm
.add_command(nspkg
.nsd_delete2
)
201 cli_osm
.add_command(nspkg
.nsd_list1
)
202 cli_osm
.add_command(nspkg
.nsd_list2
)
203 cli_osm
.add_command(nspkg
.nsd_show1
)
204 cli_osm
.add_command(nspkg
.nsd_show2
)
205 cli_osm
.add_command(nspkg
.nsd_update1
)
206 cli_osm
.add_command(nspkg
.nsd_update2
)
208 cli_osm
.add_command(other
.get_version
)
210 cli_osm
.add_command(packages
.descriptor_translate
)
211 cli_osm
.add_command(packages
.package_build
)
212 cli_osm
.add_command(packages
.package_create
)
213 cli_osm
.add_command(packages
.package_translate
)
214 cli_osm
.add_command(packages
.package_validate
)
215 cli_osm
.add_command(packages
.upload_package
)
217 cli_osm
.add_command(pdus
.pdu_create
)
218 cli_osm
.add_command(pdus
.pdu_delete
)
219 cli_osm
.add_command(pdus
.pdu_list
)
220 cli_osm
.add_command(pdus
.pdu_show
)
221 cli_osm
.add_command(pdus
.pdu_update
)
223 cli_osm
.add_command(rbac
.project_create
)
224 cli_osm
.add_command(rbac
.project_delete
)
225 cli_osm
.add_command(rbac
.project_list
)
226 cli_osm
.add_command(rbac
.project_show
)
227 cli_osm
.add_command(rbac
.project_update
)
229 cli_osm
.add_command(rbac
.role_create
)
230 cli_osm
.add_command(rbac
.role_delete
)
231 cli_osm
.add_command(rbac
.role_list
)
232 cli_osm
.add_command(rbac
.role_show
)
233 cli_osm
.add_command(rbac
.role_update
)
235 cli_osm
.add_command(rbac
.user_create
)
236 cli_osm
.add_command(rbac
.user_delete
)
237 cli_osm
.add_command(rbac
.user_list
)
238 cli_osm
.add_command(rbac
.user_show
)
239 cli_osm
.add_command(rbac
.user_update
)
241 cli_osm
.add_command(repo
.repo_add
)
242 cli_osm
.add_command(repo
.repo_delete
)
243 cli_osm
.add_command(repo
.repo_list
)
244 cli_osm
.add_command(repo
.repo_show
)
245 cli_osm
.add_command(repo
.repo_update
)
247 cli_osm
.add_command(repo
.repo_index
)
248 cli_osm
.add_command(repo
.nfpkg_repo_list1
)
249 cli_osm
.add_command(repo
.nfpkg_repo_list2
)
250 cli_osm
.add_command(repo
.nfpkg_repo_list2
)
251 cli_osm
.add_command(repo
.nspkg_repo_list
)
252 cli_osm
.add_command(repo
.nspkg_repo_list2
)
253 cli_osm
.add_command(repo
.nsd_repo_show
)
254 cli_osm
.add_command(repo
.nsd_repo_show2
)
255 cli_osm
.add_command(repo
.vnfd_show1
)
256 cli_osm
.add_command(repo
.vnfd_show2
)
258 cli_osm
.add_command(sdnc
.sdnc_create
)
259 cli_osm
.add_command(sdnc
.sdnc_delete
)
260 cli_osm
.add_command(sdnc
.sdnc_list
)
261 cli_osm
.add_command(sdnc
.sdnc_show
)
262 cli_osm
.add_command(sdnc
.sdnc_update
)
264 cli_osm
.add_command(subscriptions
.subscription_create
)
265 cli_osm
.add_command(subscriptions
.subscription_delete
)
266 cli_osm
.add_command(subscriptions
.subscription_list
)
267 cli_osm
.add_command(subscriptions
.subscription_show
)
269 cli_osm
.add_command(vca
.vca_add
)
270 cli_osm
.add_command(vca
.vca_delete
)
271 cli_osm
.add_command(vca
.vca_list
)
272 cli_osm
.add_command(vca
.vca_show
)
273 cli_osm
.add_command(vca
.vca_update
)
275 cli_osm
.add_command(vim
.vim_create
)
276 cli_osm
.add_command(vim
.vim_delete
)
277 cli_osm
.add_command(vim
.vim_list
)
278 cli_osm
.add_command(vim
.vim_show
)
279 cli_osm
.add_command(vim
.vim_update
)
281 cli_osm
.add_command(vnf
.nf_list
)
282 cli_osm
.add_command(vnf
.vnf_list1
)
283 cli_osm
.add_command(vnf
.vnf_show
)
285 cli_osm
.add_command(wim
.wim_create
)
286 cli_osm
.add_command(wim
.wim_delete
)
287 cli_osm
.add_command(wim
.wim_list
)
288 cli_osm
.add_command(wim
.wim_show
)
289 cli_osm
.add_command(wim
.wim_update
)
293 except RequestException
as exc
:
296 'Maybe "--hostname" option or OSM_HOSTNAME environment variable needs to be specified'
298 except ClientException
as exc
:
299 print("ERROR: {}".format(exc
))
300 except (FileNotFoundError
, PermissionError
) as exc
:
301 print("Cannot open file: {}".format(exc
))
302 except yaml
.YAMLError
as exc
:
303 print("Invalid YAML format: {}".format(exc
))
305 # TODO capture other controlled exceptions here
306 # TODO remove the ClientException captures from all places, unless they do something different
309 if __name__
== "__main__":