Merge "Added ns-scale-vdu command for VDU scaling"
authorgarciadeblas <gerardo.garciadeblas@telefonica.com>
Tue, 27 Nov 2018 10:55:35 +0000 (11:55 +0100)
committerGerrit Code Review <root@osm.etsi.org>
Tue, 27 Nov 2018 10:55:35 +0000 (11:55 +0100)
1  2 
osmclient/scripts/osm.py

@@@ -1567,12 -1462,45 +1567,52 @@@ def ns_action(ctx
          exit(1)
  
  
+ @cli.command(name='ns-scale-vdu')
+ @click.argument('ns_name' )
+ @click.option('--vnf-name', prompt=True, help="member-vnf-index to scale")
+ @click.option('--scaling-group', prompt=True, help="scaling-group-descriptor name to use")
+ @click.option('--scale-in', default=False, is_flag=True, help="performs a scale in operation")
+ @click.option('--scale-out', default=False, is_flag=True, help="performs a scale out operation (by default)")
+ @click.pass_context
+ def ns_scale_vdu(ctx,
+               ns_name,
+               vnf_name,
+               scaling_group,
+               scale_in,
+               scale_out):
+     """executes a VNF VDU scale over a NS instance
+     NS_NAME: name or ID of the NS instance
+     """
+     try:
+         check_client_version(ctx.obj, ctx.command.name)
+         op_data={}
+         if not scale_in and not scale_out:
+             scale_out = True
+             # print("You must provide scale type with option '--vnf-scale-in' or '--vnf-scale-out'")
+             # exit(1)
+         op_data["scaleType"] = "SCALE_VNF"
+         op_data["scaleVnfData"] = {}
+         if scale_in:
+             op_data["scaleVnfData"]["scaleVnfType"] = "SCALE_IN"
+         else:
+             op_data["scaleVnfData"]["scaleVnfType"] = "SCALE_OUT"
+         op_data["scaleVnfData"]["scaleByStepData"] = {
+             "member-vnf-index": vnf_name,
+             "scaling-group-descriptor": scaling_group,
+         }
+         ctx.obj.ns.exec_op(ns_name, op_name='scale', op_data=op_data)
+     except ClientException as inst:
+         print((inst.message))
+         exit(1)
  if __name__ == '__main__':
 -    cli()
 +    try:
 +        cli()
 +    except pycurl.error as e:
 +        print(e)
 +        print('Maybe "--hostname" option or OSM_HOSTNAME' +
 +            'environment variable needs to be specified')
 +        exit(1)
 +