Add version primitive at http server and client
[osm/RO.git] / openmano
index 45db340..7b33cb4 100755 (executable)
--- a/openmano
+++ b/openmano
@@ -1462,6 +1462,15 @@ def datacenter_edit(args):
         args.verbose += 1
     return _print_verbose(mano_response, args.verbose)
 
+def version(args):
+    headers_req = {'Accept': 'application/json', 'content-type': 'application/json'}
+    URLrequest = "http://%s:%s/openmano/version" % (mano_host, mano_port)
+
+    mano_response = requests.get(URLrequest, headers=headers_req)
+    logger.debug("openmano response: %s", mano_response.text)
+    print mano_response.text
+
+
 global mano_host
 global mano_port
 global mano_tenant
@@ -1474,8 +1483,10 @@ if __name__=="__main__":
     mano_datacenter = os.getenv('OPENMANO_DATACENTER',None)
     
     main_parser = ThrowingArgumentParser(description='User program to interact with OPENMANO-SERVER (openmanod)')
-    main_parser.add_argument('--version', action='version', version='%(prog)s ' + __version__ )
-    
+    main_parser.add_argument('--version', action='version', help="get version of this client",
+                            version='%(prog)s client version ' + __version__ +
+                                    " (Note: use '%(prog)s version' to get server version)")
+
     subparsers = main_parser.add_subparsers(help='commands')
     
     parent_parser = argparse.ArgumentParser(add_help=False)
@@ -1486,6 +1497,9 @@ if __name__=="__main__":
     config_parser.add_argument("-n", action="store_true", help="resolves tenant and datacenter names")
     config_parser.set_defaults(func=config)
 
+    version_parser = subparsers.add_parser('version', parents=[parent_parser], help="get server version")
+    version_parser.set_defaults(func=version)
+
     vnf_create_parser = subparsers.add_parser('vnf-create', parents=[parent_parser], help="adds a vnf into the catalogue")
     vnf_create_parser.add_argument("file", action="store", help="location of the JSON file describing the VNF").completer = FilesCompleter
     vnf_create_parser.add_argument("--name", action="store", help="name of the VNF (if it exists in the VNF descriptor, it is overwritten)")
@@ -1590,13 +1604,11 @@ if __name__=="__main__":
     tenant_list_parser.add_argument("name", nargs='?', help="name or uuid of the tenant")
     tenant_list_parser.set_defaults(func=tenant_list)
 
-    item_list=('tenant') #put tenant before so that help appear in order
-    for item in item_list:
-        element_edit_parser = subparsers.add_parser(item+'-edit', parents=[parent_parser], help="edits one "+item)
-        element_edit_parser.add_argument("name", help="name or uuid of the "+item)
-        element_edit_parser.add_argument("file", help="json/yaml text or file with the changes").completer = FilesCompleter
-        element_edit_parser.add_argument("-f","--force", action="store_true", help="do not prompt for confirmation")
-        element_edit_parser.set_defaults(func=element_edit, element=item + 's')
+    element_edit_parser = subparsers.add_parser('tenant-edit', parents=[parent_parser], help="edits one tenant")
+    element_edit_parser.add_argument("name", help="name or uuid of the tenant")
+    element_edit_parser.add_argument("file", help="json/yaml text or file with the changes").completer = FilesCompleter
+    element_edit_parser.add_argument("-f","--force", action="store_true", help="do not prompt for confirmation")
+    element_edit_parser.set_defaults(func=element_edit, element='tenants')
 
     datacenter_create_parser = subparsers.add_parser('datacenter-create', parents=[parent_parser], help="creates a new datacenter")
     datacenter_create_parser.add_argument("name", action="store", help="name for the datacenter")