2 from osmclient
.common
import OsmAPI
3 from prettytable
import PrettyTable
8 @click.option('--hostname',default
=None,envvar
='OSM_HOSTNAME',help='hostname of server. Also can set OSM_HOSTNAME in environment')
10 def cli(ctx
,hostname
):
12 print("either hostname option or OSM_HOSTNAME environment variable needs to be specified")
14 ctx
.obj
=OsmAPI
.OsmAPI(hostname
)
16 @cli.command(name
='ns-list')
19 ctx
.obj
.list_ns_instance()
21 @cli.command(name
='nsd-list')
24 ctx
.obj
.list_ns_catalog()
26 @cli.command(name
='vnfd-list')
29 ctx
.obj
.list_vnf_catalog()
31 @cli.command(name
='vnf-list')
34 resp
=ctx
.obj
.list_vnfr()
35 table
=PrettyTable(['vnf name','id','operational status','config Status','mgmt interface','nsr id'])
37 for vnfr
in resp
['vnfr:vnfr']:
38 if not 'mgmt-interface' in vnfr
:
39 vnfr
['mgmt-interface'] = {}
40 vnfr
['mgmt-interface']['ip-address'] = None
41 table
.add_row([vnfr
['name'],vnfr
['id'],vnfr
['operational-status'],vnfr
['config-status'],vnfr
['mgmt-interface']['ip-address'],vnfr
['nsr-id-ref']])
45 @cli.command(name
='vnf-monitoring-show')
46 @click.argument('vnf_name')
48 def vnf_monitoring_show(ctx
,vnf_name
):
49 resp
=ctx
.obj
.get_vnf_monitoring(vnf_name
)
50 table
=PrettyTable(['vnf name','monitoring name','value','units'])
53 table
.add_row([vnf_name
,monitor
['name'],monitor
['value-integer'],monitor
['units']])
57 @cli.command(name
='ns-monitoring-show')
58 @click.argument('ns_name')
60 def ns_monitoring_show(ctx
,ns_name
):
61 resp
=ctx
.obj
.get_ns_monitoring(ns_name
)
62 table
=PrettyTable(['vnf name','monitoring name','value','units'])
64 for key
,val
in resp
.items():
66 table
.add_row([key
,monitor
['name'],monitor
['value-integer'],monitor
['units']])
70 @cli.command(name
='ns-create')
71 @click.argument('nsd_name')
72 @click.argument('ns_name')
73 @click.argument('vim_account')
74 @click.option('--admin_status',default
='ENABLED',help='administration status')
75 @click.option('--ssh_keys',default
=None,help='comma separated list of keys to inject to vnfs')
76 @click.option('--vim_network_prefix',default
=None,help='vim network name prefix')
78 def ns_create(ctx
,nsd_name
,ns_name
,vim_account
,admin_status
,ssh_keys
,vim_network_prefix
):
79 ctx
.obj
.instantiate_ns(nsd_name
,ns_name
,vim_network_prefix
=vim_network_prefix
,ssh_keys
=ssh_keys
,account
=vim_account
)
81 @cli.command(name
='ns-delete')
82 @click.argument('ns_name')
84 def ns_delete(ctx
,ns_name
):
85 ctx
.obj
.terminate_ns(ns_name
)
88 @cli.command(name='keypair-list')
90 def keypair_list(ctx):
91 resp=ctx.obj.list_key_pair()
92 table=PrettyTable(['key Name','key'])
94 table.add_row([kp['name'],kp['key']])
99 @cli.command(name
='upload-package')
100 @click.argument('filename')
102 def upload_package(ctx
,filename
):
103 ctx
.obj
.upload_package(filename
)
105 @cli.command(name
='ns-show')
106 @click.argument('ns_name')
108 def ns_show(ctx
,ns_name
):
109 ctx
.obj
.show_ns(ns_name
)
111 @cli.command(name
='ns-scaling-show')
112 @click.argument('ns_name')
114 def show_ns_scaling(ctx
,ns_name
):
115 ctx
.obj
.show_ns_scaling(ns_name
)
117 @cli.command(name
='nsd-delete')
118 @click.argument('nsd_name')
120 def nsd_delete(ctx
,nsd_name
):
121 ctx
.obj
.delete_nsd(nsd_name
)
123 @cli.command(name
='vnfd-delete')
124 @click.argument('vnfd_name')
126 def nsd_delete(ctx
,vnfd_name
):
127 ctx
.obj
.delete_vnfd(vnfd_name
)
129 @cli.command(name
='config-agent-list')
131 def config_agent_list(ctx
):
132 table
=PrettyTable(['name','account-type','details'])
133 for account
in ctx
.obj
.get_config_agents():
134 table
.add_row([account
['name'],account
['account-type'],account
['juju']])
138 @cli.command(name
='config-agent-delete')
139 @click.argument('name')
141 def config_agent_delete(ctx
,name
):
142 ctx
.obj
.delete_config_agent(name
)
144 @cli.command(name
='config-agent-add')
145 @click.argument('name')
146 @click.argument('account_type')
147 @click.argument('server')
148 @click.argument('user')
149 @click.argument('secret')
151 def config_agent_add(ctx
,name
,account_type
,server
,user
,secret
):
152 ctx
.obj
.add_config_agent(name
,account_type
,server
,user
,secret
)
155 @cli.command(name='vim-create')
156 @click.argument('name')
157 @click.argument('user')
158 @click.argument('password')
159 @click.argument('auth_url')
160 @click.argument('tenant')
161 @click.argument('mgmt_network')
162 @click.argument('floating_ip_pool')
163 @click.option('--account_type',default='openstack')
165 def vim_create(ctx,name,user,password,auth_url,tenant,mgmt_network,floating_ip_pool,account_type):
166 ctx.obj.add_vim_account(name,user,password,auth_url,tenant,mgmt_network,floating_ip_pool,account_type)
169 @cli.command(name
='vim-list')
172 resp
=ctx
.obj
.list_vim_accounts()
173 table
=PrettyTable(['ro-account','datacenter name','uuid'])
174 for roaccount
in resp
:
175 for datacenter
in roaccount
['datacenters']:
176 table
.add_row([roaccount
['name'],datacenter
['name'],datacenter
['uuid']])
180 @cli.command(name
='vcs-list')
183 resp
=ctx
.obj
.get_vcs_info()
184 table
=PrettyTable(['component name','state'])
185 for component
in resp
:
186 table
.add_row([component
['component_name'],component
['state']])
190 if __name__
== '__main__':