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 (
50 context_settings
=dict(help_option_names
=["-h", "--help"], max_content_width
=160)
55 envvar
="OSM_HOSTNAME",
56 help="hostname of server. " + "Also can set OSM_HOSTNAME in environment",
62 help="user (defaults to admin). " + "Also can set OSM_USER in environment",
67 envvar
="OSM_PASSWORD",
68 help="password (defaults to admin). " + "Also can set OSM_PASSWORD in environment",
74 help="project (defaults to admin). " + "Also can set OSM_PROJECT in environment",
80 help="increase verbosity (-v INFO, -vv VERBOSE, -vvv DEBUG)",
82 @click.option("--all-projects", default
=None, is_flag
=True, help="include all projects")
84 "--public/--no-public",
86 help="flag for public items (packages, instances, VIM accounts, etc.)",
89 "--project-domain-name",
90 "project_domain_name",
92 envvar
="OSM_PROJECT_DOMAIN_NAME",
93 help="project domain name for keystone authentication (default to None). "
94 + "Also can set OSM_PROJECT_DOMAIN_NAME in environment",
100 envvar
="OSM_USER_DOMAIN_NAME",
101 help="user domain name for keystone authentication (default to None). "
102 + "Also can set OSM_USER_DOMAIN_NAME in environment",
105 def cli_osm(ctx
, **kwargs
):
107 hostname
= kwargs
.pop("hostname", None)
111 "either hostname option or OSM_HOSTNAME "
112 + "environment variable needs to be specified"
117 kwargs
= {k
: v
for k
, v
in kwargs
.items() if v
is not None}
118 sol005
= os
.getenv("OSM_SOL005", True)
119 ctx
.obj
= client
.Client(host
=hostname
, sol005
=sol005
, **kwargs
)
120 logger
= logging
.getLogger("osmclient")
123 # pylint: disable=no-value-for-parameter
126 cli_osm
.add_command(alarms
.alarm_list
)
127 cli_osm
.add_command(alarms
.alarm_show
)
128 cli_osm
.add_command(alarms
.alarm_update
)
129 cli_osm
.add_command(alarms
.ns_alarm_create
)
131 cli_osm
.add_command(k8scluster
.k8scluster_add
)
132 cli_osm
.add_command(k8scluster
.k8scluster_delete
)
133 cli_osm
.add_command(k8scluster
.k8scluster_list
)
134 cli_osm
.add_command(k8scluster
.k8scluster_show
)
135 cli_osm
.add_command(k8scluster
.k8scluster_update
)
137 cli_osm
.add_command(metrics
.ns_metric_export
)
139 cli_osm
.add_command(k8scluster
.k8scluster_delete
)
140 cli_osm
.add_command(k8scluster
.k8scluster_list
)
141 cli_osm
.add_command(k8scluster
.k8scluster_show
)
142 cli_osm
.add_command(k8scluster
.k8scluster_update
)
144 cli_osm
.add_command(netslice_instance
.nsi_create1
)
145 cli_osm
.add_command(netslice_instance
.nsi_create2
)
146 cli_osm
.add_command(netslice_instance
.nsi_delete1
)
147 cli_osm
.add_command(netslice_instance
.nsi_delete2
)
148 cli_osm
.add_command(netslice_instance
.nsi_list1
)
149 cli_osm
.add_command(netslice_instance
.nsi_list2
)
150 cli_osm
.add_command(netslice_instance
.nsi_show1
)
151 cli_osm
.add_command(netslice_instance
.nsi_show2
)
153 cli_osm
.add_command(netslice_ops
.nsi_op_list1
)
154 cli_osm
.add_command(netslice_ops
.nsi_op_list2
)
155 cli_osm
.add_command(netslice_ops
.nsi_op_show1
)
156 cli_osm
.add_command(netslice_ops
.nsi_op_show2
)
158 cli_osm
.add_command(netslice_template
.nst_create1
)
159 cli_osm
.add_command(netslice_template
.nst_create2
)
160 cli_osm
.add_command(netslice_template
.nst_delete1
)
161 cli_osm
.add_command(netslice_template
.nst_delete2
)
162 cli_osm
.add_command(netslice_template
.nst_list1
)
163 cli_osm
.add_command(netslice_template
.nst_list2
)
164 cli_osm
.add_command(netslice_template
.nst_show1
)
165 cli_osm
.add_command(netslice_template
.nst_show2
)
166 cli_osm
.add_command(netslice_template
.nst_update1
)
167 cli_osm
.add_command(netslice_template
.nst_update2
)
169 cli_osm
.add_command(nfpkg
.nfpkg_create
)
170 cli_osm
.add_command(nfpkg
.nfpkg_delete
)
171 cli_osm
.add_command(nfpkg
.nfpkg_list
)
172 cli_osm
.add_command(nfpkg
.nfpkg_show
)
173 cli_osm
.add_command(nfpkg
.nfpkg_update
)
174 cli_osm
.add_command(nfpkg
.vnfd_create1
)
175 cli_osm
.add_command(nfpkg
.vnfd_create2
)
176 cli_osm
.add_command(nfpkg
.vnfd_delete1
)
177 cli_osm
.add_command(nfpkg
.vnfd_delete2
)
178 cli_osm
.add_command(nfpkg
.vnfd_list1
)
179 cli_osm
.add_command(nfpkg
.vnfd_list2
)
180 cli_osm
.add_command(nfpkg
.vnfd_show1
)
181 cli_osm
.add_command(nfpkg
.vnfd_show2
)
182 cli_osm
.add_command(nfpkg
.vnfd_update1
)
183 cli_osm
.add_command(nfpkg
.vnfd_update2
)
185 cli_osm
.add_command(ns
.ns_create
)
186 cli_osm
.add_command(ns
.ns_delete
)
187 cli_osm
.add_command(ns
.ns_list
)
188 cli_osm
.add_command(ns
.ns_show
)
190 cli_osm
.add_command(nslcm_ops
.ns_op_list
)
191 cli_osm
.add_command(nslcm_ops
.ns_op_show
)
193 cli_osm
.add_command(nslcm
.ns_action
)
194 cli_osm
.add_command(nslcm
.vnf_scale
)
195 cli_osm
.add_command(nslcm
.ns_update
)
196 cli_osm
.add_command(nslcm
.ns_heal
)
197 cli_osm
.add_command(nslcm
.vnf_heal
)
199 cli_osm
.add_command(nspkg
.nsd_create1
)
200 cli_osm
.add_command(nspkg
.nsd_create2
)
201 cli_osm
.add_command(nspkg
.nsd_delete1
)
202 cli_osm
.add_command(nspkg
.nsd_delete2
)
203 cli_osm
.add_command(nspkg
.nsd_list1
)
204 cli_osm
.add_command(nspkg
.nsd_list2
)
205 cli_osm
.add_command(nspkg
.nsd_show1
)
206 cli_osm
.add_command(nspkg
.nsd_show2
)
207 cli_osm
.add_command(nspkg
.nsd_update1
)
208 cli_osm
.add_command(nspkg
.nsd_update2
)
210 cli_osm
.add_command(other
.get_version
)
212 cli_osm
.add_command(packages
.descriptor_translate
)
213 cli_osm
.add_command(packages
.package_build
)
214 cli_osm
.add_command(packages
.package_create
)
215 cli_osm
.add_command(packages
.package_translate
)
216 cli_osm
.add_command(packages
.package_validate
)
217 cli_osm
.add_command(packages
.upload_package
)
219 cli_osm
.add_command(pdus
.pdu_create
)
220 cli_osm
.add_command(pdus
.pdu_delete
)
221 cli_osm
.add_command(pdus
.pdu_list
)
222 cli_osm
.add_command(pdus
.pdu_show
)
223 cli_osm
.add_command(pdus
.pdu_update
)
225 cli_osm
.add_command(rbac
.project_create
)
226 cli_osm
.add_command(rbac
.project_delete
)
227 cli_osm
.add_command(rbac
.project_list
)
228 cli_osm
.add_command(rbac
.project_show
)
229 cli_osm
.add_command(rbac
.project_update
)
231 cli_osm
.add_command(rbac
.role_create
)
232 cli_osm
.add_command(rbac
.role_delete
)
233 cli_osm
.add_command(rbac
.role_list
)
234 cli_osm
.add_command(rbac
.role_show
)
235 cli_osm
.add_command(rbac
.role_update
)
237 cli_osm
.add_command(rbac
.user_create
)
238 cli_osm
.add_command(rbac
.user_delete
)
239 cli_osm
.add_command(rbac
.user_list
)
240 cli_osm
.add_command(rbac
.user_show
)
241 cli_osm
.add_command(rbac
.user_update
)
243 cli_osm
.add_command(repo
.repo_add
)
244 cli_osm
.add_command(repo
.repo_delete
)
245 cli_osm
.add_command(repo
.repo_list
)
246 cli_osm
.add_command(repo
.repo_show
)
247 cli_osm
.add_command(repo
.repo_update
)
249 cli_osm
.add_command(repo
.repo_index
)
250 cli_osm
.add_command(repo
.nfpkg_repo_list1
)
251 cli_osm
.add_command(repo
.nfpkg_repo_list2
)
252 cli_osm
.add_command(repo
.nfpkg_repo_list2
)
253 cli_osm
.add_command(repo
.nspkg_repo_list
)
254 cli_osm
.add_command(repo
.nspkg_repo_list2
)
255 cli_osm
.add_command(repo
.nsd_repo_show
)
256 cli_osm
.add_command(repo
.nsd_repo_show2
)
257 cli_osm
.add_command(repo
.vnfd_show1
)
258 cli_osm
.add_command(repo
.vnfd_show2
)
260 cli_osm
.add_command(sdnc
.sdnc_create
)
261 cli_osm
.add_command(sdnc
.sdnc_delete
)
262 cli_osm
.add_command(sdnc
.sdnc_list
)
263 cli_osm
.add_command(sdnc
.sdnc_show
)
264 cli_osm
.add_command(sdnc
.sdnc_update
)
266 cli_osm
.add_command(subscriptions
.subscription_create
)
267 cli_osm
.add_command(subscriptions
.subscription_delete
)
268 cli_osm
.add_command(subscriptions
.subscription_list
)
269 cli_osm
.add_command(subscriptions
.subscription_show
)
271 cli_osm
.add_command(vca
.vca_add
)
272 cli_osm
.add_command(vca
.vca_delete
)
273 cli_osm
.add_command(vca
.vca_list
)
274 cli_osm
.add_command(vca
.vca_show
)
275 cli_osm
.add_command(vca
.vca_update
)
277 cli_osm
.add_command(vim
.vim_create
)
278 cli_osm
.add_command(vim
.vim_delete
)
279 cli_osm
.add_command(vim
.vim_list
)
280 cli_osm
.add_command(vim
.vim_show
)
281 cli_osm
.add_command(vim
.vim_update
)
283 cli_osm
.add_command(vnf
.nf_list
)
284 cli_osm
.add_command(vnf
.vnf_list1
)
285 cli_osm
.add_command(vnf
.vnf_show
)
287 cli_osm
.add_command(wim
.wim_create
)
288 cli_osm
.add_command(wim
.wim_delete
)
289 cli_osm
.add_command(wim
.wim_list
)
290 cli_osm
.add_command(wim
.wim_show
)
291 cli_osm
.add_command(wim
.wim_update
)
295 except pycurl
.error
as exc
:
298 'Maybe "--hostname" option or OSM_HOSTNAME environment variable needs to be specified'
300 except ClientException
as exc
:
301 print("ERROR: {}".format(exc
))
302 except (FileNotFoundError
, PermissionError
) as exc
:
303 print("Cannot open file: {}".format(exc
))
304 except yaml
.YAMLError
as exc
:
305 print("Invalid YAML format: {}".format(exc
))
307 # TODO capture other controlled exceptions here
308 # TODO remove the ClientException captures from all places, unless they do something different
311 if __name__
== "__main__":