change default configuration to do not proxy the VIM VNF consoles
[osm/RO.git] / openmano_schemas.py
index 8af4682..a8c92a0 100644 (file)
@@ -24,7 +24,7 @@
 '''
 JSON schemas used by openmano httpserver.py module to parse the different files and messages sent through the API 
 '''
 '''
 JSON schemas used by openmano httpserver.py module to parse the different files and messages sent through the API 
 '''
-__author__="Alfonso Tierno, Gerardo Garcia"
+__author__="Alfonso Tierno, Gerardo Garcia, Pablo Montes"
 __date__ ="$09-oct-2014 09:09:48$"
 
 #Basis schemas
 __date__ ="$09-oct-2014 09:09:48$"
 
 #Basis schemas
@@ -54,6 +54,8 @@ object_schema={"type":"object"}
 schema_version_2={"type":"integer","minimum":2,"maximum":2}
 #schema_version_string={"type":"string","enum": ["0.1", "2", "0.2", "3", "0.3"]}
 log_level_schema={"type":"string", "enum":["DEBUG", "INFO", "WARNING","ERROR","CRITICAL"]}
 schema_version_2={"type":"integer","minimum":2,"maximum":2}
 #schema_version_string={"type":"string","enum": ["0.1", "2", "0.2", "3", "0.3"]}
 log_level_schema={"type":"string", "enum":["DEBUG", "INFO", "WARNING","ERROR","CRITICAL"]}
+checksum_schema={"type":"string", "pattern":"^[0-9a-fA-F]{32}$"}
+size_schema={"type":"integer","minimum":1,"maximum":100}
 
 metadata_schema={
     "type":"object",
 
 metadata_schema={
     "type":"object",
@@ -274,10 +276,11 @@ datacenter_associate_schema={
         "datacenter":{
             "type":"object",
             "properties":{
         "datacenter":{
             "type":"object",
             "properties":{
-                "vim_tenant": id_schema,
-                "vim_tenant_name": nameshort_schema,
+                "vim_tenant": name_schema,
+                "vim_tenant_name": name_schema,
                 "vim_username": nameshort_schema,
                 "vim_password": nameshort_schema,
                 "vim_username": nameshort_schema,
                 "vim_password": nameshort_schema,
+                "config": {"type": "object"}
             },
 #            "required": ["vim_tenant"],
             "additionalProperties": True
             },
 #            "required": ["vim_tenant"],
             "additionalProperties": True
@@ -447,7 +450,9 @@ bridge_interfaces_schema={
             "bandwidth":bandwidth_schema,
             "vpci":pci_schema,
             "mac_address": mac_schema,
             "bandwidth":bandwidth_schema,
             "vpci":pci_schema,
             "mac_address": mac_schema,
-            "model": {"type":"string", "enum":["virtio","e1000","ne2k_pci","pcnet","rtl8139"]}
+            "model": {"type":"string", "enum":["virtio","e1000","ne2k_pci","pcnet","rtl8139"]},
+            "port-security": {"type" : "boolean"},
+            "floating-ip": {"type" : "boolean"}
         },
         "additionalProperties": False,
         "required": ["name"]
         },
         "additionalProperties": False,
         "required": ["name"]
@@ -461,7 +466,10 @@ devices_schema={
         "properties":{
             "type":{"type":"string", "enum":["disk","cdrom","xml"] },
             "image": path_schema,
         "properties":{
             "type":{"type":"string", "enum":["disk","cdrom","xml"] },
             "image": path_schema,
-            "image metadata": metadata_schema, 
+            "image name": name_schema,
+            "image checksum": checksum_schema,
+            "image metadata": metadata_schema,
+            "size": size_schema,
             "vpci":pci_schema,
             "xml":xml_text_schema,
         },
             "vpci":pci_schema,
             "xml":xml_text_schema,
         },
@@ -493,6 +501,8 @@ vnfc_schema = {
         "name": name_schema,
         "description": description_schema,
         "VNFC image": {"oneOf": [path_schema, http_schema]},
         "name": name_schema,
         "description": description_schema,
         "VNFC image": {"oneOf": [path_schema, http_schema]},
+        "image name": name_schema,
+        "image checksum": checksum_schema,
         "image metadata": metadata_schema, 
         #"cloud-config": cloud_config_schema, #common for all vnfs in the scenario
         "processor": {
         "image metadata": metadata_schema, 
         #"cloud-config": cloud_config_schema, #common for all vnfs in the scenario
         "processor": {
@@ -522,7 +532,11 @@ vnfc_schema = {
         "devices": devices_schema
         
     },
         "devices": devices_schema
         
     },
-    "required": ["name", "VNFC image"],
+    "required": ["name"],
+    "oneOf": [
+        {"required": ["VNFC image"]},
+        {"required": ["image name"]}
+    ],
     "additionalProperties": False
 }
 
     "additionalProperties": False
 }