Loading charts/meep-webhook/templates/deployment.yaml +1 −1 Original line number Original line Diff line number Diff line Loading @@ -56,4 +56,4 @@ spec: - name: init-{{ .Values.deployment.dependency }} - name: init-{{ .Values.deployment.dependency }} image: busybox image: busybox imagePullPolicy: IfNotPresent imagePullPolicy: IfNotPresent command: ['sh', '-c', 'until nslookup {{ .Values.deployment.dependency }} ; do echo wiating for {{ .Values.deployment.dependency }}; sleep2; done;'] command: ['sh', '-c', 'until nslookup {{ .Values.deployment.dependency }} ; do echo waiting for {{ .Values.deployment.dependency }}; sleep 0.25; done;'] go-apps/meep-ctrl-engine/api/swagger.yaml +35 −20 Original line number Original line Diff line number Diff line Loading @@ -349,6 +349,9 @@ definitions: Scenario: Scenario: type: "object" type: "object" properties: properties: version: type: "string" description: "Scenario version" name: name: type: "string" type: "string" description: "Unique scenario name" description: "Unique scenario name" Loading Loading @@ -464,53 +467,47 @@ definitions: enum: enum: - "ZONE" - "ZONE" - "COMMON" - "COMMON" netChar: $ref: "#/definitions/NetworkCharacteristics" interFogLatency: interFogLatency: type: "integer" type: "integer" description: "Latency in ms between fog nodes (or PoAs) within zone" description: "**DEPRECATED** As of release 1.3.0, no longer supported" interFogLatencyVariation: interFogLatencyVariation: type: "integer" type: "integer" description: "Latency variation in ms between fog nodes (or PoAs) within zone" description: "**DEPRECATED** As of release 1.3.0, no longer supported" interFogThroughput: interFogThroughput: type: "integer" type: "integer" description: "The limit of the traffic supported between fog nodes (or PoAs)\ description: "**DEPRECATED** As of release 1.3.0, no longer supported" \ within the zone" interFogPacketLoss: interFogPacketLoss: type: "number" type: "number" format: "double" format: "double" description: "Packet lost (in terms of percentage) between fog nodes (or PoAs)\ description: "**DEPRECATED** As of release 1.3.0, no longer supported" \ within the zone" interEdgeLatency: interEdgeLatency: type: "integer" type: "integer" description: "Latency in ms between edge nodes within zone" description: "**DEPRECATED** As of release 1.3.0, no longer supported" interEdgeLatencyVariation: interEdgeLatencyVariation: type: "integer" type: "integer" description: "Latency variation in ms between edge nodes within zone" description: "**DEPRECATED** As of release 1.3.0, no longer supported" interEdgeThroughput: interEdgeThroughput: type: "integer" type: "integer" description: "The limit of the traffic supported between edge nodes within\ description: "**DEPRECATED** As of release 1.3.0, no longer supported" \ the zone" interEdgePacketLoss: interEdgePacketLoss: type: "number" type: "number" format: "double" format: "double" description: "Packet lost (in terms of percentage) between edge nodes within\ description: "**DEPRECATED** As of release 1.3.0, no longer supported" \ the zone" edgeFogLatency: edgeFogLatency: type: "integer" type: "integer" description: "Latency in ms between fog nodes (or PoAs) and edge nodes within\ description: "**DEPRECATED** As of release 1.3.0, replaced by netChar latency" \ zone" edgeFogLatencyVariation: edgeFogLatencyVariation: type: "integer" type: "integer" description: "Latency variation in ms between fog nodes (or PoAs) and edge\ description: "**DEPRECATED** As of release 1.3.0, replaced by netChar latencyVariation" \ nodes within zone" edgeFogThroughput: edgeFogThroughput: type: "integer" type: "integer" description: "The limit of the traffic supported between fog nodes (or PoAs)\ description: "**DEPRECATED** As of release 1.3.0, replaced by netChar throughput" \ and edge nodes within the zone" edgeFogPacketLoss: edgeFogPacketLoss: type: "number" type: "number" format: "double" format: "double" description: "Packet lost (in terms of percentage) between fog nodes (or PoAs)\ description: "**DEPRECATED** As of release 1.3.0, replaced by netChar packetLoss" \ and edge nodes within the zone" meta: meta: type: "object" type: "object" description: "Key/Value Pair Map (string, string)" description: "Key/Value Pair Map (string, string)" Loading @@ -527,6 +524,24 @@ definitions: $ref: "#/definitions/NetworkLocation" $ref: "#/definitions/NetworkLocation" description: "Logical zone (MEC network) object" description: "Logical zone (MEC network) object" example: {} example: {} NetworkCharacteristics: type: "object" properties: latency: type: "integer" description: "Latency in ms" latencyVariation: type: "integer" description: "Latency variation in ms" throughput: type: "integer" description: "Throughput limit in Mbps" packetLoss: type: "number" format: "double" description: "Packet loss percentage" description: "Network characteristics object" example: {} NetworkLocation: NetworkLocation: type: "object" type: "object" properties: properties: Loading go-apps/meep-ctrl-engine/go.sum +2 −0 Original line number Original line Diff line number Diff line Loading @@ -8,6 +8,8 @@ github.com/RyanCarrier/dijkstra-1 v0.0.0-20170512020943-0e5801a26345 h1:fgSpoKVi github.com/RyanCarrier/dijkstra-1 v0.0.0-20170512020943-0e5801a26345/go.mod h1:OK4EvWJ441LQqGzed5NGB6vKBAE34n3z7iayPcEwr30= github.com/RyanCarrier/dijkstra-1 v0.0.0-20170512020943-0e5801a26345/go.mod h1:OK4EvWJ441LQqGzed5NGB6vKBAE34n3z7iayPcEwr30= github.com/albertorestifo/dijkstra v0.0.0-20160910063646-aba76f725f72 h1:uGeGZl8PxSq8VZGG4QK5njJTFA4/G/x5CYORvQVXtAE= github.com/albertorestifo/dijkstra v0.0.0-20160910063646-aba76f725f72 h1:uGeGZl8PxSq8VZGG4QK5njJTFA4/G/x5CYORvQVXtAE= github.com/albertorestifo/dijkstra v0.0.0-20160910063646-aba76f725f72/go.mod h1:o+JdB7VetTHjLhU0N57x18B9voDBQe0paApdEAEoEfw= github.com/albertorestifo/dijkstra v0.0.0-20160910063646-aba76f725f72/go.mod h1:o+JdB7VetTHjLhU0N57x18B9voDBQe0paApdEAEoEfw= github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/flimzy/diff v0.1.5 h1:QfOwp+TuGCeWWFxFtXqCdepnz0SeaImgNfMm6vWz3y8= github.com/flimzy/diff v0.1.5 h1:QfOwp+TuGCeWWFxFtXqCdepnz0SeaImgNfMm6vWz3y8= Loading go-apps/meep-ctrl-engine/server/ctrl-engine.go +50 −2 Original line number Original line Diff line number Diff line Loading @@ -36,6 +36,10 @@ import ( watchdog "github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-watchdog" watchdog "github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-watchdog" ) ) type Scenario struct { Name string `json:"name,omitempty"` } const scenarioDBName = "scenarios" const scenarioDBName = "scenarios" const activeScenarioName = "active" const activeScenarioName = "active" const moduleName string = "meep-ctrl-engine" const moduleName string = "meep-ctrl-engine" Loading Loading @@ -78,6 +82,34 @@ func CtrlEngineInit() (err error) { } } log.Info("Connected to Scenario DB") log.Info("Connected to Scenario DB") // Retrieve scenario list from DB scenarioList, err := getScenarioList(db) if err != nil { log.Error(err.Error()) return err } // Validate DB scenarios & upgrade them if compatible for _, scenario := range scenarioList { validScenario, status, err := mod.ValidateScenario(scenario) if err == nil && status == mod.ValidatorStatusUpdated { // Retrieve scenario name s := new(Scenario) err = json.Unmarshal(validScenario, s) if err != nil || s.Name == "" { return errors.New("Failed to get scenario name from valid scenario") } // Update scenario in DB rev, err := setScenario(db, s.Name, validScenario) if err != nil { return errors.New("Failed to update scenario with error: " + err.Error()) } log.Debug("Scenario updated with rev: ", rev) } } // Create new active scenario model activeModel, err = mod.NewModel(mod.DbAddress, moduleName, "activeScenario") activeModel, err = mod.NewModel(mod.DbAddress, moduleName, "activeScenario") if err != nil { if err != nil { log.Error("Failed to create model: ", err.Error()) log.Error("Failed to create model: ", err.Error()) Loading Loading @@ -130,8 +162,16 @@ func ceCreateScenario(w http.ResponseWriter, r *http.Request) { return return } } // Validate scenario validScenario, _, err := mod.ValidateScenario(b) if err != nil { log.Error(err.Error()) http.Error(w, err.Error(), http.StatusBadRequest) return } // Add new scenario to DB // Add new scenario to DB rev, err := addScenario(db, scenarioName, b) rev, err := addScenario(db, scenarioName, validScenario) if err != nil { if err != nil { log.Error(err.Error()) log.Error(err.Error()) http.Error(w, err.Error(), http.StatusConflict) http.Error(w, err.Error(), http.StatusConflict) Loading Loading @@ -272,8 +312,16 @@ func ceSetScenario(w http.ResponseWriter, r *http.Request) { return return } } // Validate scenario validScenario, _, err := mod.ValidateScenario(b) if err != nil { log.Error(err.Error()) http.Error(w, err.Error(), http.StatusBadRequest) return } // Update scenario in DB // Update scenario in DB rev, err := setScenario(db, scenarioName, b) rev, err := setScenario(db, scenarioName, validScenario) if err != nil { if err != nil { log.Error(err.Error()) log.Error(err.Error()) http.Error(w, err.Error(), http.StatusNotFound) http.Error(w, err.Error(), http.StatusNotFound) Loading go-packages/meep-ctrl-engine-client/README.md +1 −0 Original line number Original line Diff line number Diff line Loading @@ -48,6 +48,7 @@ Class | Method | HTTP request | Description - [ExternalConfig](docs/ExternalConfig.md) - [ExternalConfig](docs/ExternalConfig.md) - [GpuConfig](docs/GpuConfig.md) - [GpuConfig](docs/GpuConfig.md) - [IngressService](docs/IngressService.md) - [IngressService](docs/IngressService.md) - [NetworkCharacteristics](docs/NetworkCharacteristics.md) - [NetworkLocation](docs/NetworkLocation.md) - [NetworkLocation](docs/NetworkLocation.md) - [NodeServiceMaps](docs/NodeServiceMaps.md) - [NodeServiceMaps](docs/NodeServiceMaps.md) - [PhysicalLocation](docs/PhysicalLocation.md) - [PhysicalLocation](docs/PhysicalLocation.md) Loading Loading
charts/meep-webhook/templates/deployment.yaml +1 −1 Original line number Original line Diff line number Diff line Loading @@ -56,4 +56,4 @@ spec: - name: init-{{ .Values.deployment.dependency }} - name: init-{{ .Values.deployment.dependency }} image: busybox image: busybox imagePullPolicy: IfNotPresent imagePullPolicy: IfNotPresent command: ['sh', '-c', 'until nslookup {{ .Values.deployment.dependency }} ; do echo wiating for {{ .Values.deployment.dependency }}; sleep2; done;'] command: ['sh', '-c', 'until nslookup {{ .Values.deployment.dependency }} ; do echo waiting for {{ .Values.deployment.dependency }}; sleep 0.25; done;']
go-apps/meep-ctrl-engine/api/swagger.yaml +35 −20 Original line number Original line Diff line number Diff line Loading @@ -349,6 +349,9 @@ definitions: Scenario: Scenario: type: "object" type: "object" properties: properties: version: type: "string" description: "Scenario version" name: name: type: "string" type: "string" description: "Unique scenario name" description: "Unique scenario name" Loading Loading @@ -464,53 +467,47 @@ definitions: enum: enum: - "ZONE" - "ZONE" - "COMMON" - "COMMON" netChar: $ref: "#/definitions/NetworkCharacteristics" interFogLatency: interFogLatency: type: "integer" type: "integer" description: "Latency in ms between fog nodes (or PoAs) within zone" description: "**DEPRECATED** As of release 1.3.0, no longer supported" interFogLatencyVariation: interFogLatencyVariation: type: "integer" type: "integer" description: "Latency variation in ms between fog nodes (or PoAs) within zone" description: "**DEPRECATED** As of release 1.3.0, no longer supported" interFogThroughput: interFogThroughput: type: "integer" type: "integer" description: "The limit of the traffic supported between fog nodes (or PoAs)\ description: "**DEPRECATED** As of release 1.3.0, no longer supported" \ within the zone" interFogPacketLoss: interFogPacketLoss: type: "number" type: "number" format: "double" format: "double" description: "Packet lost (in terms of percentage) between fog nodes (or PoAs)\ description: "**DEPRECATED** As of release 1.3.0, no longer supported" \ within the zone" interEdgeLatency: interEdgeLatency: type: "integer" type: "integer" description: "Latency in ms between edge nodes within zone" description: "**DEPRECATED** As of release 1.3.0, no longer supported" interEdgeLatencyVariation: interEdgeLatencyVariation: type: "integer" type: "integer" description: "Latency variation in ms between edge nodes within zone" description: "**DEPRECATED** As of release 1.3.0, no longer supported" interEdgeThroughput: interEdgeThroughput: type: "integer" type: "integer" description: "The limit of the traffic supported between edge nodes within\ description: "**DEPRECATED** As of release 1.3.0, no longer supported" \ the zone" interEdgePacketLoss: interEdgePacketLoss: type: "number" type: "number" format: "double" format: "double" description: "Packet lost (in terms of percentage) between edge nodes within\ description: "**DEPRECATED** As of release 1.3.0, no longer supported" \ the zone" edgeFogLatency: edgeFogLatency: type: "integer" type: "integer" description: "Latency in ms between fog nodes (or PoAs) and edge nodes within\ description: "**DEPRECATED** As of release 1.3.0, replaced by netChar latency" \ zone" edgeFogLatencyVariation: edgeFogLatencyVariation: type: "integer" type: "integer" description: "Latency variation in ms between fog nodes (or PoAs) and edge\ description: "**DEPRECATED** As of release 1.3.0, replaced by netChar latencyVariation" \ nodes within zone" edgeFogThroughput: edgeFogThroughput: type: "integer" type: "integer" description: "The limit of the traffic supported between fog nodes (or PoAs)\ description: "**DEPRECATED** As of release 1.3.0, replaced by netChar throughput" \ and edge nodes within the zone" edgeFogPacketLoss: edgeFogPacketLoss: type: "number" type: "number" format: "double" format: "double" description: "Packet lost (in terms of percentage) between fog nodes (or PoAs)\ description: "**DEPRECATED** As of release 1.3.0, replaced by netChar packetLoss" \ and edge nodes within the zone" meta: meta: type: "object" type: "object" description: "Key/Value Pair Map (string, string)" description: "Key/Value Pair Map (string, string)" Loading @@ -527,6 +524,24 @@ definitions: $ref: "#/definitions/NetworkLocation" $ref: "#/definitions/NetworkLocation" description: "Logical zone (MEC network) object" description: "Logical zone (MEC network) object" example: {} example: {} NetworkCharacteristics: type: "object" properties: latency: type: "integer" description: "Latency in ms" latencyVariation: type: "integer" description: "Latency variation in ms" throughput: type: "integer" description: "Throughput limit in Mbps" packetLoss: type: "number" format: "double" description: "Packet loss percentage" description: "Network characteristics object" example: {} NetworkLocation: NetworkLocation: type: "object" type: "object" properties: properties: Loading
go-apps/meep-ctrl-engine/go.sum +2 −0 Original line number Original line Diff line number Diff line Loading @@ -8,6 +8,8 @@ github.com/RyanCarrier/dijkstra-1 v0.0.0-20170512020943-0e5801a26345 h1:fgSpoKVi github.com/RyanCarrier/dijkstra-1 v0.0.0-20170512020943-0e5801a26345/go.mod h1:OK4EvWJ441LQqGzed5NGB6vKBAE34n3z7iayPcEwr30= github.com/RyanCarrier/dijkstra-1 v0.0.0-20170512020943-0e5801a26345/go.mod h1:OK4EvWJ441LQqGzed5NGB6vKBAE34n3z7iayPcEwr30= github.com/albertorestifo/dijkstra v0.0.0-20160910063646-aba76f725f72 h1:uGeGZl8PxSq8VZGG4QK5njJTFA4/G/x5CYORvQVXtAE= github.com/albertorestifo/dijkstra v0.0.0-20160910063646-aba76f725f72 h1:uGeGZl8PxSq8VZGG4QK5njJTFA4/G/x5CYORvQVXtAE= github.com/albertorestifo/dijkstra v0.0.0-20160910063646-aba76f725f72/go.mod h1:o+JdB7VetTHjLhU0N57x18B9voDBQe0paApdEAEoEfw= github.com/albertorestifo/dijkstra v0.0.0-20160910063646-aba76f725f72/go.mod h1:o+JdB7VetTHjLhU0N57x18B9voDBQe0paApdEAEoEfw= github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/flimzy/diff v0.1.5 h1:QfOwp+TuGCeWWFxFtXqCdepnz0SeaImgNfMm6vWz3y8= github.com/flimzy/diff v0.1.5 h1:QfOwp+TuGCeWWFxFtXqCdepnz0SeaImgNfMm6vWz3y8= Loading
go-apps/meep-ctrl-engine/server/ctrl-engine.go +50 −2 Original line number Original line Diff line number Diff line Loading @@ -36,6 +36,10 @@ import ( watchdog "github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-watchdog" watchdog "github.com/InterDigitalInc/AdvantEDGE/go-packages/meep-watchdog" ) ) type Scenario struct { Name string `json:"name,omitempty"` } const scenarioDBName = "scenarios" const scenarioDBName = "scenarios" const activeScenarioName = "active" const activeScenarioName = "active" const moduleName string = "meep-ctrl-engine" const moduleName string = "meep-ctrl-engine" Loading Loading @@ -78,6 +82,34 @@ func CtrlEngineInit() (err error) { } } log.Info("Connected to Scenario DB") log.Info("Connected to Scenario DB") // Retrieve scenario list from DB scenarioList, err := getScenarioList(db) if err != nil { log.Error(err.Error()) return err } // Validate DB scenarios & upgrade them if compatible for _, scenario := range scenarioList { validScenario, status, err := mod.ValidateScenario(scenario) if err == nil && status == mod.ValidatorStatusUpdated { // Retrieve scenario name s := new(Scenario) err = json.Unmarshal(validScenario, s) if err != nil || s.Name == "" { return errors.New("Failed to get scenario name from valid scenario") } // Update scenario in DB rev, err := setScenario(db, s.Name, validScenario) if err != nil { return errors.New("Failed to update scenario with error: " + err.Error()) } log.Debug("Scenario updated with rev: ", rev) } } // Create new active scenario model activeModel, err = mod.NewModel(mod.DbAddress, moduleName, "activeScenario") activeModel, err = mod.NewModel(mod.DbAddress, moduleName, "activeScenario") if err != nil { if err != nil { log.Error("Failed to create model: ", err.Error()) log.Error("Failed to create model: ", err.Error()) Loading Loading @@ -130,8 +162,16 @@ func ceCreateScenario(w http.ResponseWriter, r *http.Request) { return return } } // Validate scenario validScenario, _, err := mod.ValidateScenario(b) if err != nil { log.Error(err.Error()) http.Error(w, err.Error(), http.StatusBadRequest) return } // Add new scenario to DB // Add new scenario to DB rev, err := addScenario(db, scenarioName, b) rev, err := addScenario(db, scenarioName, validScenario) if err != nil { if err != nil { log.Error(err.Error()) log.Error(err.Error()) http.Error(w, err.Error(), http.StatusConflict) http.Error(w, err.Error(), http.StatusConflict) Loading Loading @@ -272,8 +312,16 @@ func ceSetScenario(w http.ResponseWriter, r *http.Request) { return return } } // Validate scenario validScenario, _, err := mod.ValidateScenario(b) if err != nil { log.Error(err.Error()) http.Error(w, err.Error(), http.StatusBadRequest) return } // Update scenario in DB // Update scenario in DB rev, err := setScenario(db, scenarioName, b) rev, err := setScenario(db, scenarioName, validScenario) if err != nil { if err != nil { log.Error(err.Error()) log.Error(err.Error()) http.Error(w, err.Error(), http.StatusNotFound) http.Error(w, err.Error(), http.StatusNotFound) Loading
go-packages/meep-ctrl-engine-client/README.md +1 −0 Original line number Original line Diff line number Diff line Loading @@ -48,6 +48,7 @@ Class | Method | HTTP request | Description - [ExternalConfig](docs/ExternalConfig.md) - [ExternalConfig](docs/ExternalConfig.md) - [GpuConfig](docs/GpuConfig.md) - [GpuConfig](docs/GpuConfig.md) - [IngressService](docs/IngressService.md) - [IngressService](docs/IngressService.md) - [NetworkCharacteristics](docs/NetworkCharacteristics.md) - [NetworkLocation](docs/NetworkLocation.md) - [NetworkLocation](docs/NetworkLocation.md) - [NodeServiceMaps](docs/NodeServiceMaps.md) - [NodeServiceMaps](docs/NodeServiceMaps.md) - [PhysicalLocation](docs/PhysicalLocation.md) - [PhysicalLocation](docs/PhysicalLocation.md) Loading