summaryrefslogtreecommitdiffstats
path: root/src/orchestrator/api
diff options
context:
space:
mode:
Diffstat (limited to 'src/orchestrator/api')
-rw-r--r--src/orchestrator/api/add_intents_handler.go5
-rw-r--r--src/orchestrator/api/app_intent_handler.go5
-rw-r--r--src/orchestrator/api/app_profilehandler.go5
-rw-r--r--src/orchestrator/api/apphandler.go5
-rw-r--r--src/orchestrator/api/composite_app_handler.go5
-rw-r--r--src/orchestrator/api/composite_profilehandler.go5
-rw-r--r--src/orchestrator/api/composite_profilehandler_test.go4
-rw-r--r--src/orchestrator/api/controllerhandler.go5
-rw-r--r--src/orchestrator/api/controllerhandler_test.go4
-rw-r--r--src/orchestrator/api/deployment_intent_groups_handler.go5
-rw-r--r--src/orchestrator/api/generic_placement_intent_handler.go5
-rw-r--r--src/orchestrator/api/json-schemas/cluster-kv.json54
-rw-r--r--src/orchestrator/api/json-schemas/cluster-label.json13
-rw-r--r--src/orchestrator/api/json-schemas/composite-app.json45
-rw-r--r--src/orchestrator/api/json-schemas/composite-profile.json46
-rw-r--r--src/orchestrator/api/json-schemas/controller.json73
-rw-r--r--src/orchestrator/api/json-schemas/deployment-group-intent.json79
-rw-r--r--src/orchestrator/api/json-schemas/deployment-intent.json55
-rw-r--r--src/orchestrator/api/json-schemas/generic-placement-intent-app.json117
-rw-r--r--src/orchestrator/api/json-schemas/generic-placement-intent.json51
-rw-r--r--src/orchestrator/api/json-schemas/metadata.json37
-rw-r--r--src/orchestrator/api/json-schemas/network-load-interface.json77
-rw-r--r--src/orchestrator/api/json-schemas/network-workload.json67
-rw-r--r--src/orchestrator/api/json-schemas/provider-network.json122
-rw-r--r--src/orchestrator/api/json-schemas/virtual-network.json75
-rw-r--r--src/orchestrator/api/projecthandler.go6
-rw-r--r--src/orchestrator/api/projecthandler_test.go4
27 files changed, 43 insertions, 931 deletions
diff --git a/src/orchestrator/api/add_intents_handler.go b/src/orchestrator/api/add_intents_handler.go
index 21a33739..66f3839a 100644
--- a/src/orchestrator/api/add_intents_handler.go
+++ b/src/orchestrator/api/add_intents_handler.go
@@ -27,6 +27,8 @@ import (
"github.com/gorilla/mux"
)
+var addIntentJSONFile string = "json-schemas/deployment-intent.json"
+
type intentHandler struct {
client moduleLib.IntentManager
}
@@ -46,9 +48,8 @@ func (h intentHandler) addIntentHandler(w http.ResponseWriter, r *http.Request)
return
}
- jsonFile := "json-schemas/deployment-intent.json"
// Verify JSON Body
- err, httpError := validation.ValidateJsonSchemaData(jsonFile, i)
+ err, httpError := validation.ValidateJsonSchemaData(addIntentJSONFile, i)
if err != nil {
http.Error(w, err.Error(), httpError)
return
diff --git a/src/orchestrator/api/app_intent_handler.go b/src/orchestrator/api/app_intent_handler.go
index a51b9b92..1d48f8a6 100644
--- a/src/orchestrator/api/app_intent_handler.go
+++ b/src/orchestrator/api/app_intent_handler.go
@@ -26,6 +26,8 @@ import (
moduleLib "github.com/onap/multicloud-k8s/src/orchestrator/pkg/module"
)
+var appIntentJSONFile string = "json-schemas/generic-placement-intent-app.json"
+
/* Used to store backend implementation objects
Also simplifies mocking for unit testing purposes
*/
@@ -48,9 +50,8 @@ func (h appIntentHandler) createAppIntentHandler(w http.ResponseWriter, r *http.
return
}
- jsonFile := "json-schemas/generic-placement-intent-app.json"
// Verify JSON Body
- err, httpError := validation.ValidateJsonSchemaData(jsonFile, a)
+ err, httpError := validation.ValidateJsonSchemaData(appIntentJSONFile, a)
if err != nil {
http.Error(w, err.Error(), httpError)
return
diff --git a/src/orchestrator/api/app_profilehandler.go b/src/orchestrator/api/app_profilehandler.go
index 2fa0f26d..58cd2145 100644
--- a/src/orchestrator/api/app_profilehandler.go
+++ b/src/orchestrator/api/app_profilehandler.go
@@ -34,6 +34,8 @@ import (
pkgerrors "github.com/pkg/errors"
)
+var appProfileJSONFile string = "json-schemas/metadata.json"
+
/* Used to store backend implementation objects
Also simplifies mocking for unit testing purposes
*/
@@ -73,9 +75,8 @@ func (h appProfileHandler) createAppProfileHandler(w http.ResponseWriter, r *htt
return
}
- jsonFile := "json-schemas/metadata.json"
// Verify JSON Body
- err, httpError := validation.ValidateJsonSchemaData(jsonFile, ap)
+ err, httpError := validation.ValidateJsonSchemaData(appProfileJSONFile, ap)
if err != nil {
http.Error(w, err.Error(), httpError)
return
diff --git a/src/orchestrator/api/apphandler.go b/src/orchestrator/api/apphandler.go
index 7d901a8f..7429f5c2 100644
--- a/src/orchestrator/api/apphandler.go
+++ b/src/orchestrator/api/apphandler.go
@@ -33,6 +33,8 @@ import (
"github.com/gorilla/mux"
)
+var appJSONFile string = "json-schemas/metadata.json"
+
// appHandler to store backend implementations objects
// Also simplifies mocking for unit testing purposes
type appHandler struct {
@@ -70,9 +72,8 @@ func (h appHandler) createAppHandler(w http.ResponseWriter, r *http.Request) {
return
}
- jsonFile := "json-schemas/metadata.json"
// Verify JSON Body
- err, httpError := validation.ValidateJsonSchemaData(jsonFile, a)
+ err, httpError := validation.ValidateJsonSchemaData(appJSONFile, a)
if err != nil {
http.Error(w, err.Error(), httpError)
return
diff --git a/src/orchestrator/api/composite_app_handler.go b/src/orchestrator/api/composite_app_handler.go
index 1e69c353..d531b28d 100644
--- a/src/orchestrator/api/composite_app_handler.go
+++ b/src/orchestrator/api/composite_app_handler.go
@@ -26,6 +26,8 @@ import (
moduleLib "github.com/onap/multicloud-k8s/src/orchestrator/pkg/module"
)
+var caJSONFile string = "json-schemas/composite-app.json"
+
// compositeAppHandler to store backend implementations objects
// Also simplifies mocking for unit testing purposes
type compositeAppHandler struct {
@@ -47,9 +49,8 @@ func (h compositeAppHandler) createHandler(w http.ResponseWriter, r *http.Reques
http.Error(w, err.Error(), http.StatusUnprocessableEntity)
return
}
- jsonFile := "json-schemas/composite-app.json"
// Verify JSON Body
- err, httpError := validation.ValidateJsonSchemaData(jsonFile, c)
+ err, httpError := validation.ValidateJsonSchemaData(caJSONFile, c)
if err != nil {
http.Error(w, err.Error(), httpError)
return
diff --git a/src/orchestrator/api/composite_profilehandler.go b/src/orchestrator/api/composite_profilehandler.go
index 5a3fb19c..de1c8f2d 100644
--- a/src/orchestrator/api/composite_profilehandler.go
+++ b/src/orchestrator/api/composite_profilehandler.go
@@ -27,6 +27,8 @@ import (
"github.com/gorilla/mux"
)
+var caprofileJSONFile string = "json-schemas/metadata.json"
+
/* Used to store backend implementation objects
Also simplifies mocking for unit testing purposes
*/
@@ -49,9 +51,8 @@ func (h compositeProfileHandler) createHandler(w http.ResponseWriter, r *http.Re
return
}
- jsonFile := "json-schemas/metadata.json"
// Verify JSON Body
- err, httpError := validation.ValidateJsonSchemaData(jsonFile, cpf)
+ err, httpError := validation.ValidateJsonSchemaData(caprofileJSONFile, cpf)
if err != nil {
http.Error(w, err.Error(), httpError)
return
diff --git a/src/orchestrator/api/composite_profilehandler_test.go b/src/orchestrator/api/composite_profilehandler_test.go
index ec3ec24b..d1e34230 100644
--- a/src/orchestrator/api/composite_profilehandler_test.go
+++ b/src/orchestrator/api/composite_profilehandler_test.go
@@ -70,6 +70,10 @@ func (m *mockCompositeProfileManager) DeleteCompositeProfile(name string, projec
return m.Err
}
+func init() {
+ caprofileJSONFile = "../json-schemas/metadata.json"
+}
+
func Test_compositeProfileHandler_createHandler(t *testing.T) {
testCases := []struct {
label string
diff --git a/src/orchestrator/api/controllerhandler.go b/src/orchestrator/api/controllerhandler.go
index be300d89..418aa70f 100644
--- a/src/orchestrator/api/controllerhandler.go
+++ b/src/orchestrator/api/controllerhandler.go
@@ -28,6 +28,8 @@ import (
pkgerrors "github.com/pkg/errors"
)
+var controllerJSONFile string = "json-schemas/controller.json"
+
// Used to store backend implementations objects
// Also simplifies mocking for unit testing purposes
type controllerHandler struct {
@@ -87,9 +89,8 @@ func (h controllerHandler) createHandler(w http.ResponseWriter, r *http.Request)
return
}
- jsonFile := "json-schemas/controller.json"
// Verify JSON Body
- err, httpError := validation.ValidateJsonSchemaData(jsonFile, m)
+ err, httpError := validation.ValidateJsonSchemaData(controllerJSONFile, m)
if err != nil {
http.Error(w, err.Error(), httpError)
return
diff --git a/src/orchestrator/api/controllerhandler_test.go b/src/orchestrator/api/controllerhandler_test.go
index 6cbb2a79..ecc2d1f7 100644
--- a/src/orchestrator/api/controllerhandler_test.go
+++ b/src/orchestrator/api/controllerhandler_test.go
@@ -73,6 +73,10 @@ func (m *mockControllerManager) InitControllers() {
return
}
+func init() {
+ controllerJSONFile = "../json-schemas/controller.json"
+}
+
func TestControllerCreateHandler(t *testing.T) {
testCases := []struct {
label string
diff --git a/src/orchestrator/api/deployment_intent_groups_handler.go b/src/orchestrator/api/deployment_intent_groups_handler.go
index 76dea14c..b9466a2c 100644
--- a/src/orchestrator/api/deployment_intent_groups_handler.go
+++ b/src/orchestrator/api/deployment_intent_groups_handler.go
@@ -27,6 +27,8 @@ import (
"github.com/gorilla/mux"
)
+var dpiJSONFile string = "json-schemas/deployment-group-intent.json"
+
/* Used to store backend implementation objects
Also simplifies mocking for unit testing purposes
*/
@@ -49,9 +51,8 @@ func (h deploymentIntentGroupHandler) createDeploymentIntentGroupHandler(w http.
return
}
- jsonFile := "json-schemas/deployment-group-intent.json"
// Verify JSON Body
- err, httpError := validation.ValidateJsonSchemaData(jsonFile, d)
+ err, httpError := validation.ValidateJsonSchemaData(dpiJSONFile, d)
if err != nil {
http.Error(w, err.Error(), httpError)
return
diff --git a/src/orchestrator/api/generic_placement_intent_handler.go b/src/orchestrator/api/generic_placement_intent_handler.go
index 16f1f234..2415ae2c 100644
--- a/src/orchestrator/api/generic_placement_intent_handler.go
+++ b/src/orchestrator/api/generic_placement_intent_handler.go
@@ -27,6 +27,8 @@ import (
"github.com/gorilla/mux"
)
+var gpiJSONFile string = "json-schemas/generic-placement-intent.json"
+
/* Used to store backend implementation objects
Also simplifies mocking for unit testing purposes
*/
@@ -49,9 +51,8 @@ func (h genericPlacementIntentHandler) createGenericPlacementIntentHandler(w htt
return
}
- jsonFile := "json-schemas/generic-placement-intent.json"
// Verify JSON Body
- err, httpError := validation.ValidateJsonSchemaData(jsonFile, g)
+ err, httpError := validation.ValidateJsonSchemaData(gpiJSONFile, g)
if err != nil {
http.Error(w, err.Error(), httpError)
return
diff --git a/src/orchestrator/api/json-schemas/cluster-kv.json b/src/orchestrator/api/json-schemas/cluster-kv.json
deleted file mode 100644
index c7013bab..00000000
--- a/src/orchestrator/api/json-schemas/cluster-kv.json
+++ /dev/null
@@ -1,54 +0,0 @@
-{
- "$schema": "http://json-schema.org/schema#",
- "type": "object",
- "properties": {
- "spec": {
- "required": [
- "kv"
- ],
- "type": "object",
- "properties": {
- "kv": {
- "items": {
- "additionalProperties": {
- "type": "string",
- "maxLength": 128
- },
- "type": "object"
- },
- "type": "array"
- }
- }
- },
- "metadata": {
- "required": ["name"],
- "properties": {
- "userData2": {
- "description": "User relevant data for the resource",
- "type": "string",
- "example": "Some more data",
- "maxLength": 512
- },
- "userData1": {
- "description": "User relevant data for the resource",
- "type": "string",
- "example": "Some data",
- "maxLength": 512
- },
- "name": {
- "description": "Name of the resource",
- "type": "string",
- "example": "ResName",
- "maxLength": 128,
- "pattern": "[-_0-9a-zA-Z]+$"
- },
- "description": {
- "description": "Description for the resource",
- "type": "string",
- "example": "Resource description",
- "maxLength": 1024
- }
- }
- }
- }
- } \ No newline at end of file
diff --git a/src/orchestrator/api/json-schemas/cluster-label.json b/src/orchestrator/api/json-schemas/cluster-label.json
deleted file mode 100644
index 22267b3d..00000000
--- a/src/orchestrator/api/json-schemas/cluster-label.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "$schema": "http://json-schema.org/schema#",
- "type": "object",
- "properties": {
- "label-name": {
- "description": "Logical Cloud to use for this intent",
- "type": "string",
- "example": "cluster-label-1",
- "maxLength": 128,
- "pattern": "[-_0-9a-zA-Z]+$"
- }
- }
- } \ No newline at end of file
diff --git a/src/orchestrator/api/json-schemas/composite-app.json b/src/orchestrator/api/json-schemas/composite-app.json
deleted file mode 100644
index 3f976831..00000000
--- a/src/orchestrator/api/json-schemas/composite-app.json
+++ /dev/null
@@ -1,45 +0,0 @@
-{
- "$schema": "http://json-schema.org/schema#",
- "type": "object",
- "properties": {
- "spec": {
- "version": {
- "description": "Composite Application Version",
- "type": "string",
- "example": "v1",
- "maxLength": 128,
- "pattern": "[-_0-9a-zA-Z]+$"
- }
- },
- "metadata": {
- "required": ["name"],
- "properties": {
- "userData2": {
- "description": "User relevant data for the resource",
- "type": "string",
- "example": "Some more data",
- "maxLength": 512
- },
- "userData1": {
- "description": "User relevant data for the resource",
- "type": "string",
- "example": "Some data",
- "maxLength": 512
- },
- "name": {
- "description": "Name of the resource",
- "type": "string",
- "example": "ResName",
- "maxLength": 128,
- "pattern": "[-_0-9a-zA-Z]+$"
- },
- "description": {
- "description": "Description for the resource",
- "type": "string",
- "example": "Resource description",
- "maxLength": 1024
- }
- }
- }
- }
- } \ No newline at end of file
diff --git a/src/orchestrator/api/json-schemas/composite-profile.json b/src/orchestrator/api/json-schemas/composite-profile.json
deleted file mode 100644
index e404a64c..00000000
--- a/src/orchestrator/api/json-schemas/composite-profile.json
+++ /dev/null
@@ -1,46 +0,0 @@
-{
- "$schema": "http://json-schema.org/schema#",
- "type": "object",
- "properties": {
- "app-name": {
- "description": "Application Name",
- "required": [
- "app-name"
- ],
- "type": "string",
- "example": "Application1",
- "maxLength": 128,
- "pattern": "[-_0-9a-zA-Z]+$"
- },
- "metadata": {
- "required": ["name"],
- "properties": {
- "userData2": {
- "description": "User relevant data for the resource",
- "type": "string",
- "example": "Some more data",
- "maxLength": 512
- },
- "userData1": {
- "description": "User relevant data for the resource",
- "type": "string",
- "example": "Some data",
- "maxLength": 512
- },
- "name": {
- "description": "Name of the resource",
- "type": "string",
- "example": "ResName",
- "maxLength": 128,
- "pattern": "[-_0-9a-zA-Z]+$"
- },
- "description": {
- "description": "Description for the resource",
- "type": "string",
- "example": "Resource description",
- "maxLength": 1024
- }
- }
- }
- }
- } \ No newline at end of file
diff --git a/src/orchestrator/api/json-schemas/controller.json b/src/orchestrator/api/json-schemas/controller.json
deleted file mode 100644
index 3263ff21..00000000
--- a/src/orchestrator/api/json-schemas/controller.json
+++ /dev/null
@@ -1,73 +0,0 @@
-{
- "$schema": "http://json-schema.org/schema#",
- "type": "object",
- "properties": {
- "spec": {
- "required": [
- "host",
- "port",
- "type",
- "priority"
- ],
- "type": "object",
- "properties": {
- "priority": {
- "description": "Priority of controller to be called",
- "type": "integer",
- "example": 4,
- "minimum": 0,
- "maximum": 100
- },
- "host": {
- "description": "Controller reachibility information",
- "type": "string",
- "example": "10.7.100.4",
- "maxLength": 128
- },
- "type": {
- "description": "Type of controller (placement, action are 2 types supported)",
- "type": "string",
- "example": "placement",
- "maxLength": 48
- },
- "port": {
- "description": "Port for controller",
- "type": "integer",
- "minimum": 0,
- "maximum": 50000,
- "example": 9029
- }
- }
- },
- "metadata": {
- "required": ["name"],
- "properties": {
- "userData2": {
- "description": "User relevant data for the resource",
- "type": "string",
- "example": "Some more data",
- "maxLength": 512
- },
- "userData1": {
- "description": "User relevant data for the resource",
- "type": "string",
- "example": "Some data",
- "maxLength": 512
- },
- "name": {
- "description": "Name of the resource",
- "type": "string",
- "example": "ResName",
- "maxLength": 128,
- "pattern": "[-_0-9a-zA-Z]+$"
- },
- "description": {
- "description": "Description for the resource",
- "type": "string",
- "example": "Resource description",
- "maxLength": 1024
- }
- }
- }
- }
- } \ No newline at end of file
diff --git a/src/orchestrator/api/json-schemas/deployment-group-intent.json b/src/orchestrator/api/json-schemas/deployment-group-intent.json
deleted file mode 100644
index 2740747b..00000000
--- a/src/orchestrator/api/json-schemas/deployment-group-intent.json
+++ /dev/null
@@ -1,79 +0,0 @@
-{
- "$schema": "http://json-schema.org/schema#",
- "type": "object",
- "properties": {
- "spec": {
- "required": [
- "profile",
- "version"
- ],
- "type": "object",
- "description": "DepSpecData has profile, version, OverrideValuesObj",
- "properties": {
- "override-values": {
- "items": {
- "required": [
- "app-name",
- "values"
- ],
- "type": "object",
- "description": "OverrideValues has appName and ValuesObj",
- "properties": {
- "app-name": {
- "type": "string"
- },
- "values": {
- "additionalProperties": {
- "type": "string",
- "maxLength": 128
- },
- "type": "object"
- }
- }
- },
- "type": "array"
- },
- "profile": {
- "type": "string",
- "maxLength": 128,
- "pattern": "[-_0-9a-zA-Z]+$"
- },
- "version": {
- "type": "string",
- "maxLength": 128,
- "pattern": "[-_0-9a-zA-Z]+$"
- }
- }
- },
- "metadata": {
- "required": ["name"],
- "properties": {
- "userData2": {
- "description": "User relevant data for the resource",
- "type": "string",
- "example": "Some more data",
- "maxLength": 512
- },
- "userData1": {
- "description": "User relevant data for the resource",
- "type": "string",
- "example": "Some data",
- "maxLength": 512
- },
- "name": {
- "description": "Name of the resource",
- "type": "string",
- "example": "ResName",
- "maxLength": 128,
- "pattern": "[-_0-9a-zA-Z]+$"
- },
- "description": {
- "description": "Description for the resource",
- "type": "string",
- "example": "Resource description",
- "maxLength": 1024
- }
- }
- }
- }
- } \ No newline at end of file
diff --git a/src/orchestrator/api/json-schemas/deployment-intent.json b/src/orchestrator/api/json-schemas/deployment-intent.json
deleted file mode 100644
index 6bdc0b43..00000000
--- a/src/orchestrator/api/json-schemas/deployment-intent.json
+++ /dev/null
@@ -1,55 +0,0 @@
-{
- "$schema": "http://json-schema.org/schema#",
- "type": "object",
- "properties": {
- "spec": {
- "required": [
- "intent"
- ],
- "type": "object",
- "description": "IntentSpecData has Intent",
- "properties": {
- "intent": {
- "additionalProperties": {
- "type": "string",
- "maxLength": 128
- },
- "type": "object",
- "example": {
- "generic-placement-intent": "gpi-name"
- }
- }
- }
- },
- "metadata": {
- "required": ["name"],
- "properties": {
- "userData2": {
- "description": "User relevant data for the resource",
- "type": "string",
- "example": "Some more data",
- "maxLength": 512
- },
- "userData1": {
- "description": "User relevant data for the resource",
- "type": "string",
- "example": "Some data",
- "maxLength": 512
- },
- "name": {
- "description": "Name of the resource",
- "type": "string",
- "example": "ResName",
- "maxLength": 128,
- "pattern": "[-_0-9a-zA-Z]+$"
- },
- "description": {
- "description": "Description for the resource",
- "type": "string",
- "example": "Resource description",
- "maxLength": 1024
- }
- }
- }
- }
-} \ No newline at end of file
diff --git a/src/orchestrator/api/json-schemas/generic-placement-intent-app.json b/src/orchestrator/api/json-schemas/generic-placement-intent-app.json
deleted file mode 100644
index 0b6447c2..00000000
--- a/src/orchestrator/api/json-schemas/generic-placement-intent-app.json
+++ /dev/null
@@ -1,117 +0,0 @@
-{
- "$schema": "http://json-schema.org/schema#",
- "type": "object",
- "properties": {
- "spec": {
- "properties": {
- "app-name": {
- "type": "string",
- "example": "appl",
- "maxLength": 128
- },
- "anyOf": {
- "items": {
- "type": "object",
- "description": "AnyOf consists of Array of ProviderName & ClusterLabelNames",
- "properties": {
- "cluster-label-name": {
- "type": "string",
- "example": "east",
- "maxLength": 128
- },
- "provider-name": {
- "type": "string",
- "example": "provider1",
- "maxLength": 128
- },
- "cluster-name": {
- "type": "string",
- "example": "cluster1",
- "maxLength": 128
- }
- }
- },
- "type": "array"
- },
- "allOf": {
- "items": {
- "type": "object",
- "description": "AllOf ProviderName, ClusterName, ClusterLabelName and AnyOfArray",
- "properties": {
- "provider-name": {
- "type": "string",
- "example": "provider2",
- "maxLength": 128
- },
- "cluster-label-name": {
- "type": "string",
- "example": "west",
- "maxLength": 128
- },
- "anyOf": {
- "items": {
- "type": "object",
- "description": "AnyOf consists of Array of ProviderName & ClusterLabelNames",
- "properties": {
- "cluster-label-name": {
- "type": "string",
- "example": "east",
- "maxLength": 128
- },
- "provider-name": {
- "type": "string",
- "example": "provider1",
- "maxLength": 128
- },
- "cluster-name": {
- "type": "string",
- "example": "cluster1",
- "maxLength": 128
- }
- }
- },
- "type": "array"
- },
- "cluster-name": {
- "type": "string",
- "example": "cluster2",
- "maxLength": 128
- }
- }
- },
- "type": "array"
- }
- }
- },
- "metadata": {
- "required": ["name"],
- "properties": {
- "userData2": {
- "description": "User relevant data for the resource",
- "type": "string",
- "example": "Some more data",
- "maxLength": 512
- },
- "userData1": {
- "description": "User relevant data for the resource",
- "type": "string",
- "example": "Some data",
- "maxLength": 512
- },
- "name": {
- "description": "Name of the resource",
- "type": "string",
- "example": "ResName",
- "maxLength": 128,
- "pattern": "[-_0-9a-zA-Z]+$"
- },
- "description": {
- "description": "Description for the resource",
- "type": "string",
- "example": "Resource description",
- "maxLength": 1024
- }
- }
- }
- }
-} \ No newline at end of file
diff --git a/src/orchestrator/api/json-schemas/generic-placement-intent.json b/src/orchestrator/api/json-schemas/generic-placement-intent.json
deleted file mode 100644
index 44df9087..00000000
--- a/src/orchestrator/api/json-schemas/generic-placement-intent.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
- "$schema": "http://json-schema.org/schema#",
- "type": "object",
- "properties": {
- "spec": {
- "type": "object",
- "description": "Spec",
- "properties": {
- "logical-cloud": {
- "description": "Logical Cloud to use for this intent",
- "required": [
- "logical-cloud"
- ],
- "type": "string",
- "example": "cloud1",
- "maxLength": 128
- }
- }
- },
- "metadata": {
- "required": ["name"],
- "properties": {
- "userData2": {
- "description": "User relevant data for the resource",
- "type": "string",
- "example": "Some more data",
- "maxLength": 512
- },
- "userData1": {
- "description": "User relevant data for the resource",
- "type": "string",
- "example": "Some data",
- "maxLength": 512
- },
- "name": {
- "description": "Name of the resource",
- "type": "string",
- "example": "ResName",
- "maxLength": 128,
- "pattern": "[-_0-9a-zA-Z]+$"
- },
- "description": {
- "description": "Description for the resource",
- "type": "string",
- "example": "Resource description",
- "maxLength": 1024
- }
- }
- }
- }
- } \ No newline at end of file
diff --git a/src/orchestrator/api/json-schemas/metadata.json b/src/orchestrator/api/json-schemas/metadata.json
deleted file mode 100644
index 960545ee..00000000
--- a/src/orchestrator/api/json-schemas/metadata.json
+++ /dev/null
@@ -1,37 +0,0 @@
-
-{
- "$schema": "http://json-schema.org/schema#",
- "type": "object",
- "properties": {
- "metadata": {
- "required": ["name"],
- "properties": {
- "userData2": {
- "description": "User relevant data for the resource",
- "type": "string",
- "example": "Some more data",
- "maxLength": 512
- },
- "userData1": {
- "description": "User relevant data for the resource",
- "type": "string",
- "example": "Some data",
- "maxLength": 512
- },
- "name": {
- "description": "Name of the resource",
- "type": "string",
- "example": "ResName",
- "maxLength": 128,
- "pattern": "[-_0-9a-zA-Z]+$"
- },
- "description": {
- "description": "Description for the resource",
- "type": "string",
- "example": "Resource description",
- "maxLength": 1024
- }
- }
- }
- }
- } \ No newline at end of file
diff --git a/src/orchestrator/api/json-schemas/network-load-interface.json b/src/orchestrator/api/json-schemas/network-load-interface.json
deleted file mode 100644
index dd5b40d1..00000000
--- a/src/orchestrator/api/json-schemas/network-load-interface.json
+++ /dev/null
@@ -1,77 +0,0 @@
-{
- "$schema": "http://json-schema.org/schema#",
- "type": "object",
- "properties": {
- "spec": {
- "required": [
- "interface",
- "name"
- ],
- "type": "object",
- "properties": {
- "interface": {
- "description": "interface Name",
- "type": "string",
- "example": "eth0",
- "maxLength": 128,
- "pattern": "[-_0-9a-zA-Z]+$"
- },
- "macAddress": {
- "description": "Name of the network",
- "type": "string",
- "example": "x.x.x.x",
- "maxLength": 128
- },
- "ipAddress": {
- "description": "Name of the network",
- "type": "string",
- "example": "0.0.0.0",
- "maxLength": 128
- },
- "name": {
- "description": "Name of the network",
- "type": "string",
- "example": "provider-1",
- "maxLength": 128,
- "pattern": "[-_0-9a-zA-Z]+$"
- },
- "defaultGateway": {
- "description": "Is this interface default gateway",
- "type": "boolean",
- "example": false,
- "maxLength": 128
- }
- }
- },
- "metadata": {
- "required": ["name"],
- "properties": {
- "userData2": {
- "description": "User relevant data for the resource",
- "type": "string",
- "example": "Some more data",
- "maxLength": 512
- },
- "userData1": {
- "description": "User relevant data for the resource",
- "type": "string",
- "example": "Some data",
- "maxLength": 512
- },
- "name": {
- "description": "Name of the resource",
- "type": "string",
- "example": "ResName",
- "maxLength": 128,
- "pattern": "[-_0-9a-zA-Z]+$"
- },
- "description": {
- "description": "Description for the resource",
- "type": "string",
- "example": "Resource description",
- "maxLength": 1024
- }
- }
- }
- }
- } \ No newline at end of file
diff --git a/src/orchestrator/api/json-schemas/network-workload.json b/src/orchestrator/api/json-schemas/network-workload.json
deleted file mode 100644
index c5dc14cb..00000000
--- a/src/orchestrator/api/json-schemas/network-workload.json
+++ /dev/null
@@ -1,67 +0,0 @@
-{
- "$schema": "http://json-schema.org/schema#",
- "type": "object",
- "properties": {
- "spec": {
- "type": "object",
- "description": "Newtwork Workload Intent",
- "properties": {
- "spec": {
- "type": "object",
- "properties": {
- "workload-resource": {
- "description": "Name of the workload",
- "type": "string",
- "example": "firewall",
- "maxLength": 254,
- "pattern": "[-_0-9a-zA-Z]+$"
- },
- "type": {
- "description": "Type of the workload",
- "type": "string",
- "example": "deployment",
- "maxLength": 128
- },
- "application-name": {
- "description": "Application Name",
- "type": "string",
- "example": "Application1",
- "maxLength": 128,
- "pattern": "[-_0-9a-zA-Z]+$"
- }
- }
- },
- "metadata": {
- "required": ["name"],
- "properties": {
- "userData2": {
- "description": "User relevant data for the resource",
- "type": "string",
- "example": "Some more data",
- "maxLength": 512
- },
- "userData1": {
- "description": "User relevant data for the resource",
- "type": "string",
- "example": "Some data",
- "maxLength": 512
- },
- "name": {
- "description": "Name of the resource",
- "type": "string",
- "example": "ResName",
- "maxLength": 128,
- "pattern": "[-_0-9a-zA-Z]+$"
- },
- "description": {
- "description": "Description for the resource",
- "type": "string",
- "example": "Resource description",
- "maxLength": 1024
- }
- }
- }
- }
- }
- }
-} \ No newline at end of file
diff --git a/src/orchestrator/api/json-schemas/provider-network.json b/src/orchestrator/api/json-schemas/provider-network.json
deleted file mode 100644
index 0aef0304..00000000
--- a/src/orchestrator/api/json-schemas/provider-network.json
+++ /dev/null
@@ -1,122 +0,0 @@
-{
- "$schema": "http://json-schema.org/schema#",
- "type": "object",
- "properties": {
- "spec": {
- "required": [
- "cniType",
- "ipv4Subnets",
- "providerNetType",
- "vlan"
- ],
- "type": "object",
- "properties": {
- "ipv4Subnets": {
- "items": {
- "required": [
- "name",
- "subnet"
- ],
- "type": "object",
- "properties": {
- "subnet": {
- "type": "string",
- "maxLength": 128,
- "pattern": "[-_0-9a-zA-Z]+$"
- },
- "excludeIps": {
- "type": "string",
- "maxLength": 128
- },
- "gateway": {
- "type": "string",
- "maxLength": 128
- },
- "name": {
- "type": "string",
- "maxLength": 128,
- "pattern": "[-_0-9a-zA-Z]+$"
- }
- }
- },
- "type": "array"
- },
- "cniType": {
- "type": "string",
- "maxLength": 128,
- "pattern": "[-_0-9a-zA-Z]+$"
- },
- "vlan": {
- "required": [
- "logicalInterfaceName",
- "nodeLabelList",
- "providerInterfaceName",
- "vlanID",
- "vlanNodeSelector"
- ],
- "type": "object",
- "properties": {
- "vlanNodeSelector": {
- "type": "string",
- "maxLength": 128
- },
- "nodeLabelList": {
- "items": {
- "type": "string",
- "maxLength": 128
- },
- "type": "array"
- },
- "providerInterfaceName": {
- "type": "string",
- "maxLength": 128
- },
- "vlanID": {
- "type": "string",
- "maxLength": 128
- },
- "logicalInterfaceName": {
- "type": "string",
- "maxLength": 128
- }
- }
- },
- "providerNetType": {
- "type": "string",
- "maxLength": 128,
- "pattern": "[-_0-9a-zA-Z]+$"
- }
- }
- },
- "metadata": {
- "required": ["name"],
- "properties": {
- "userData2": {
- "description": "User relevant data for the resource",
- "type": "string",
- "example": "Some more data",
- "maxLength": 512
- },
- "userData1": {
- "description": "User relevant data for the resource",
- "type": "string",
- "example": "Some data",
- "maxLength": 512
- },
- "name": {
- "description": "Name of the resource",
- "type": "string",
- "example": "ResName",
- "maxLength": 128,
- "pattern": "[-_0-9a-zA-Z]+$"
- },
- "description": {
- "description": "Description for the resource",
- "type": "string",
- "example": "Resource description",
- "maxLength": 1024
- }
- }
- }
- }
-} \ No newline at end of file
diff --git a/src/orchestrator/api/json-schemas/virtual-network.json b/src/orchestrator/api/json-schemas/virtual-network.json
deleted file mode 100644
index f2bc9d3d..00000000
--- a/src/orchestrator/api/json-schemas/virtual-network.json
+++ /dev/null
@@ -1,75 +0,0 @@
-{
- "$schema": "http://json-schema.org/schema#",
- "type": "object",
- "properties": {
- "spec": {
- "properties": {
- "ipv4Subnets": {
- "items": {
- "required": [
- "name",
- "subnet"
- ],
- "type": "object",
- "properties": {
- "subnet": {
- "type": "string",
- "maxLength": 128,
- "pattern": "[-_0-9a-zA-Z]+$"
- },
- "excludeIps": {
- "type": "string",
- "maxLength": 1024
- },
- "gateway": {
- "type": "string",
- "maxLength": 128
- },
- "name": {
- "type": "string",
- "maxLength": 128,
- "pattern": "[-_0-9a-zA-Z]+$"
- }
- }
- },
- "type": "array"
- },
- "cniType": {
- "type": "string",
- "maxLength": 128,
- "pattern": "[-_0-9a-zA-Z]+$"
- }
- }
- },
- "metadata": {
- "required": ["name"],
- "properties": {
- "userData2": {
- "description": "User relevant data for the resource",
- "type": "string",
- "example": "Some more data",
- "maxLength": 512
- },
- "userData1": {
- "description": "User relevant data for the resource",
- "type": "string",
- "example": "Some data",
- "maxLength": 512
- },
- "name": {
- "description": "Name of the resource",
- "type": "string",
- "example": "ResName",
- "maxLength": 128,
- "pattern": "[-_0-9a-zA-Z]+$"
- },
- "description": {
- "description": "Description for the resource",
- "type": "string",
- "example": "Resource description",
- "maxLength": 1024
- }
- }
- }
- }
-} \ No newline at end of file
diff --git a/src/orchestrator/api/projecthandler.go b/src/orchestrator/api/projecthandler.go
index f130d283..07cd79ce 100644
--- a/src/orchestrator/api/projecthandler.go
+++ b/src/orchestrator/api/projecthandler.go
@@ -26,6 +26,8 @@ import (
moduleLib "github.com/onap/multicloud-k8s/src/orchestrator/pkg/module"
)
+var projectJSONFile string = "json-schemas/metadata.json"
+
// Used to store backend implementations objects
// Also simplifies mocking for unit testing purposes
type projectHandler struct {
@@ -47,9 +49,9 @@ func (h projectHandler) createHandler(w http.ResponseWriter, r *http.Request) {
http.Error(w, err.Error(), http.StatusUnprocessableEntity)
return
}
- jsonFile := "json-schemas/metadata.json"
+
// Verify JSON Body
- err, httpError := validation.ValidateJsonSchemaData(jsonFile, p)
+ err, httpError := validation.ValidateJsonSchemaData(projectJSONFile, p)
if err != nil {
http.Error(w, err.Error(), httpError)
return
diff --git a/src/orchestrator/api/projecthandler_test.go b/src/orchestrator/api/projecthandler_test.go
index ef5fdf07..5e88bab9 100644
--- a/src/orchestrator/api/projecthandler_test.go
+++ b/src/orchestrator/api/projecthandler_test.go
@@ -64,6 +64,10 @@ func (m *mockProjectManager) GetAllProjects() ([]moduleLib.Project, error) {
return []moduleLib.Project{}, m.Err
}
+func init() {
+ projectJSONFile = "../json-schemas/metadata.json"
+}
+
func TestProjectCreateHandler(t *testing.T) {
testCases := []struct {
label string