diff --git a/Dockerfile b/Dockerfile
index 1ed82d0..a46f314 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,4 +1,4 @@
-FROM golang:alpine as builder
+FROM golang:alpine AS builder
WORKDIR /app
@@ -20,11 +20,11 @@ FROM scratch
WORKDIR /app
-COPY --from=builder /app/oc-workflow /usr/bin/
+COPY --from=builder /app/oc-scheduler /usr/bin/
COPY --from=builder /app/swagger /app/swagger
-COPY docker_workflow.json /etc/oc/workflow.json
+COPY docker_scheduler.json /etc/oc/scheduler.json
EXPOSE 8080
-ENTRYPOINT ["oc-workflow"]
+ENTRYPOINT ["oc-scheduler"]
diff --git a/README.md b/README.md
index 3441eb4..ab730f2 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
-# oc-workflow OpenCloud workflow service.
+# oc-scheduler OpenCloud scheduler service.
-Manages user workflows
+Manages user schedulers
To build :
@@ -9,8 +9,4 @@ To build :
If default Swagger page is displayed instead of tyour api, change url in swagger/index.html file to :
- url: "swagger.json"
-
-To launch demo workflow :
-
-`./populate.sh ./demo.json`
\ No newline at end of file
+ url: "swagger.json"
\ No newline at end of file
diff --git a/conf/app.conf b/conf/app.conf
index 4520ff2..929a516 100644
--- a/conf/app.conf
+++ b/conf/app.conf
@@ -1,4 +1,4 @@
-appname = oc-workflow
+appname = oc-scheduler
httpport = 8080
runmode = dev
autorender = false
diff --git a/controllers/workflow.go b/controllers/workflow.go
deleted file mode 100644
index 8da2472..0000000
--- a/controllers/workflow.go
+++ /dev/null
@@ -1,99 +0,0 @@
-package controllers
-
-import (
- "encoding/json"
-
- oclib "cloud.o-forge.io/core/oc-lib"
- beego "github.com/beego/beego/v2/server/web"
-)
-
-// Operations about workflow
-type WorkflowController struct {
- beego.Controller
-}
-
-// @Title Search
-// @Description search workspace
-// @Param search path string true "the word search you want to get"
-// @Success 200 {workspace} models.workspace
-// @router /search/:search [get]
-func (o *WorkflowController) Search() {
- // store and return Id or post with UUID
- search := o.Ctx.Input.Param(":search")
- o.Data["json"] = oclib.Search(nil, search, oclib.LibDataEnum(oclib.WORKFLOW))
- o.ServeJSON()
-}
-
-// @Title Update
-// @Description create workflows
-// @Param id path string true "the workflowid you want to get"
-// @Param body body models.workflow true "The workflow content"
-// @Success 200 {object} models.workflow
-// @router /:id [put]
-func (o *WorkflowController) Put() {
- // store and return Id or post with UUID
- var res map[string]interface{}
- id := o.Ctx.Input.Param(":id")
- json.Unmarshal(o.Ctx.Input.CopyBody(10000), &res)
- o.Data["json"] = oclib.UpdateOne(oclib.LibDataEnum(oclib.WORKFLOW), res, id)
- o.ServeJSON()
-}
-
-// @Title Create
-// @Description create workflows
-// @Param data body json true "body for data content (Json format)"
-// @Success 200 {object} models.workflow
-// @router / [post]
-func (o *WorkflowController) Post() {
- var res map[string]interface{}
- json.Unmarshal(o.Ctx.Input.CopyBody(10000), &res)
- o.Data["json"] = oclib.StoreOne(oclib.LibDataEnum(oclib.WORKFLOW), res)
- o.ServeJSON()
-}
-
-// @Title Publish
-// @Description create workflows
-// @Param id path string true "the workflowid you want to get"
-// @Success 200 {object} models.workflow
-// @router /publish/:id [post]
-func (o *WorkflowController) Publish() {
- id := o.Ctx.Input.Param(":id")
- data := oclib.LoadOne(oclib.LibDataEnum(oclib.WORKFLOW), id)
- if data.Data != nil {
- o.Data["json"] = oclib.CopyOne(oclib.LibDataEnum(oclib.WORKFLOW_RESOURCE), data.Data.Serialize())
- } else {
- o.Data["json"] = data
- }
- o.ServeJSON()
-}
-
-// @Title GetAll
-// @Description find workflow by workflowid
-// @Success 200 {workflow} models.workflow
-// @router / [get]
-func (o *WorkflowController) GetAll() {
- o.Data["json"] = oclib.LoadAll(oclib.LibDataEnum(oclib.WORKFLOW))
- o.ServeJSON()
-}
-
-// @Title Get
-// @Description find workflow by workflowid
-// @Param id path string true "the workflowid you want to get"
-// @Success 200 {workflow} models.workflow
-// @router /:id [get]
-func (o *WorkflowController) Get() {
- id := o.Ctx.Input.Param(":id")
- o.Data["json"] = oclib.LoadOne(oclib.LibDataEnum(oclib.WORKFLOW), id)
- o.ServeJSON()
-}
-
-// @Title Delete
-// @Description delete the workflow
-// @Param id path string true "The workflowId you want to delete"
-// @Success 200 {string} delete success!
-// @router /:id [delete]
-func (o *WorkflowController) Delete() {
- id := o.Ctx.Input.Param(":id")
- o.Data["json"] = oclib.DeleteOne(oclib.LibDataEnum(oclib.WORKFLOW), id)
- o.ServeJSON()
-}
diff --git a/controllers/workflow_execution.go b/controllers/workflow_execution.go
index 943cede..035a43c 100644
--- a/controllers/workflow_execution.go
+++ b/controllers/workflow_execution.go
@@ -5,6 +5,7 @@ import (
oclib "cloud.o-forge.io/core/oc-lib"
dbs "cloud.o-forge.io/core/oc-lib/dbs"
+ w "cloud.o-forge.io/core/oc-lib/models/workflow"
beego "github.com/beego/beego/v2/server/web"
"go.mongodb.org/mongo-driver/bson/primitive"
)
@@ -54,3 +55,52 @@ func (o *WorkflowExecutionController) Get() {
o.Data["json"] = oclib.LoadOne(oclib.LibDataEnum(oclib.WORKFLOW_EXECUTION), id)
o.ServeJSON()
}
+
+// @Title Check
+// @Description check booking
+// @Param start_date path string "the booking start date" format "2006-01-02T15:04:05"
+// @Param end_date path string "the booking end date" format "2006-01-02T15:04:05"
+// @Success 200 {object} models.object
+// @router /check/:start_date/:end_date [get]
+func (o *WorkflowExecutionController) Check() {
+ // store and return Id or post with UUID
+ date, err := time.Parse("2006-01-02T15:04:05", o.Ctx.Input.Param(":start_date"))
+ if err != nil {
+ o.Data["json"] = map[string]interface{}{
+ "data": map[string]interface{}{
+ "is_available": false,
+ },
+ "code": 400,
+ "error": err,
+ }
+ } else {
+ date2, err := time.Parse("2006-01-02T15:04:05", o.Ctx.Input.Param(":end_date"))
+ if err != nil {
+ o.Data["json"] = map[string]interface{}{
+ "data": map[string]interface{}{
+ "is_available": false,
+ },
+ "code": 400,
+ "error": err,
+ }
+ } else {
+ workflow := &w.Workflow{}
+ workflow.Schedule = &w.WorkflowSchedule{Start: &date, End: &date2}
+ isAvailable := workflow.CheckBooking()
+ code := 200
+ err := ""
+ if !isAvailable {
+ code = 409
+ err = "booking not available"
+ }
+ o.Data["json"] = map[string]interface{}{
+ "data": map[string]interface{}{
+ "is_available": isAvailable,
+ },
+ "code": code,
+ "error": err,
+ }
+ }
+ }
+ o.ServeJSON()
+}
diff --git a/controllers/workflow_resource.go b/controllers/workflow_resource.go
deleted file mode 100644
index dfa49e9..0000000
--- a/controllers/workflow_resource.go
+++ /dev/null
@@ -1,83 +0,0 @@
-package controllers
-
-import (
- "encoding/json"
-
- oclib "cloud.o-forge.io/core/oc-lib"
- beego "github.com/beego/beego/v2/server/web"
-)
-
-// Operations about workflow
-type WorkflowResourceController struct {
- beego.Controller
-}
-
-// @Title Search
-// @Description search workspace
-// @Param search path string true "the word search you want to get"
-// @Success 200 {workspace} models.workspace
-// @router /search/:search [get]
-func (o *WorkflowResourceController) Search() {
- // store and return Id or post with UUID
- search := o.Ctx.Input.Param(":search")
- o.Data["json"] = oclib.Search(nil, search, oclib.LibDataEnum(oclib.WORKFLOW_RESOURCE))
- o.ServeJSON()
-}
-
-// @Title GetAll
-// @Description find workflow by workflowid
-// @Success 200 {workflow} models.workflow
-// @router / [get]
-func (o *WorkflowResourceController) GetAll() {
- o.Data["json"] = oclib.LoadAll(oclib.LibDataEnum(oclib.WORKFLOW_RESOURCE))
- o.ServeJSON()
-}
-
-// @Title Update
-// @Description create workflows
-// @Param id path string true "the workflowid you want to get"
-// @Param body body models.workflow true "The workflow content"
-// @Success 200 {object} models.workflow
-// @router /:id [put]
-func (o *WorkflowResourceController) Put() {
- // store and return Id or post with UUID
- var res map[string]interface{}
- id := o.Ctx.Input.Param(":id")
- json.Unmarshal(o.Ctx.Input.CopyBody(10000), &res)
- o.Data["json"] = oclib.UpdateOne(oclib.LibDataEnum(oclib.WORKFLOW_RESOURCE), res, id)
- o.ServeJSON()
-}
-
-// @Title Create
-// @Description create workflows
-// @Param data body json true "body for data content (Json format)"
-// @Success 200 {object} models.workflow
-// @router / [post]
-func (o *WorkflowResourceController) Post() {
- var res map[string]interface{}
- json.Unmarshal(o.Ctx.Input.CopyBody(10000), &res)
- o.Data["json"] = oclib.StoreOne(oclib.LibDataEnum(oclib.WORKFLOW_RESOURCE), res)
- o.ServeJSON()
-}
-
-// @Title Get
-// @Description find workflows
-// @Param id path string true "the workflowid you want to get"
-// @Success 200 {workflow} models.workflow
-// @router /:id [get]
-func (o *WorkflowResourceController) Get() {
- id := o.Ctx.Input.Param(":id")
- o.Data["json"] = oclib.LoadOne(oclib.LibDataEnum(oclib.WORKFLOW_RESOURCE), id)
- o.ServeJSON()
-}
-
-// @Title Delete
-// @Description delete the workflow
-// @Param id path string true "The workflowId you want to delete"
-// @Success 200 {string} delete success!
-// @router /:id [delete]
-func (o *WorkflowResourceController) Delete() {
- id := o.Ctx.Input.Param(":id")
- o.Data["json"] = oclib.DeleteOne(oclib.LibDataEnum(oclib.WORKFLOW_RESOURCE), id)
- o.ServeJSON()
-}
diff --git a/demo.json b/demo.json
deleted file mode 100644
index 02bbe44..0000000
--- a/demo.json
+++ /dev/null
@@ -1,765 +0,0 @@
-[
- {
- "api": "/oc/data/",
- "content": [
- {
- "name": "Mundi Sentienl 3 SRAL Images",
- "short_description": "Mundi Sentinels 3 SAR Altiemter image",
- "logo": "https://cloud.o-forge.io/core/deperecated-oc-catalog/src/branch/main/scripts/local_imgs/Mundi Sentienl 3 SRAL Images.png",
- "description": "A very long description of what this data is",
- "owner": "Mundi Web",
- "example": "string",
- "datatype": "string",
- "source_url": "string"
- },
- {
- "name": "Mundi Sentienl 3 OLCI Images",
- "short_description": "Mundi Sentinels 3 Ocean and land color Altiemter image",
- "logo": "https://cloud.o-forge.io/core/deperecated-oc-catalog/src/branch/main/scripts/local_imgs/Mundi Sentienl 3 OLCI Images.png",
- "description": "A very long description of what this data is",
- "owner": "Mundi Web",
- "example": "string",
- "datatype": "string",
- "source_url": "string"
- },
- {
- "name": "Meteo-France forecasts",
- "short_description": "Meteo France weather forecasts",
- "logo": "https://cloud.o-forge.io/core/deperecated-oc-catalog/src/branch/main/scripts/local_imgs/Meteo-France forecasts.png",
- "description": "A very long description of what this data is",
- "owner": "Meteo-France",
- "example": "string",
- "datatype": "string",
- "source_url": "string"
- },
- {
- "name": "Meteo-France wind archive",
- "short_description": "Meteo France wind archive",
- "logo": "https://cloud.o-forge.io/core/deperecated-oc-catalog/src/branch/main/scripts/local_imgs/Meteo-France wind archive.png",
- "description": "A very long description of what this data is",
- "owner": "Meteo-France",
- "example": "string",
- "datatype": "string",
- "source_url": "string"
- }
- ]
- },
- {
- "api": "/oc/processing/",
- "content": [
- {
- "name": "SAR High points",
- "short_description": "SAR Altimeter High points extraction Software",
- "logo": "https://cloud.o-forge.io/core/deperecated-oc-catalog/src/branch/main/scripts/local_imgs/SAR High points.png",
- "description": "A very long description of what this data is",
- "owner": "IRT",
- "price": 300,
- "license": "GPLv2",
- "cpus": [{
- "cores": 8,
- "architecture": "x86",
- "shared": false
- }],
- "ram": 1024,
- "storage": 300,
- "gpus": [
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- }
- ],
- "disk_io": "30 MB/s",
- "parallel": true,
- "scaling_model": 2,
- "source_url": "http://www.google.com"
- },
- {
- "name": "Flammable vegetation slicer",
- "short_description": "Analyze land cover and define optimum vegetation slices to prevent fire propagation",
- "logo": "https://cloud.o-forge.io/core/deperecated-oc-catalog/src/branch/main/scripts/local_imgs/Flammable vegetation slicer.png",
- "description": "A very long description of what this data is",
- "cpus": [{
- "cores": 8,
- "architecture": "x86",
- "shared": false
- }],
- "ram": 4096,
- "storage": 30000,
- "disk_io": "30 MB/s",
- "parallel": true,
- "scaling_model": 2,
- "owner": "Gob.fr",
- "price": 330,
- "license": "Copyright",
- "source_url": "http://www.google.com"
- },
- {
- "name": "Long term fire risk mitigation planner",
- "short_description": "Long term fire risk mitigation planner : provides list of actions to be performed to mitigate fire propagation",
- "logo": "https://cloud.o-forge.io/core/deperecated-oc-catalog/src/branch/main/scripts/local_imgs/Long term fire risk mitigation planner.png",
- "description": "A very long description of what this data is",
- "cpus": [{
- "cores": 8,
- "architecture": "x86",
- "shared": false
- }],
- "ram": 1024,
- "disk_io": "30 MB/s",
- "parallel": false,
- "scaling_model": 2,
- "owner": "Gob.fr",
- "price": 30,
- "license": "GPLv3",
- "source_url": "http://www.google.com"
- },
- {
- "name": "Fire propagation simulator",
- "short_description": "Fire propagation simulator",
- "logo": "https://cloud.o-forge.io/core/deperecated-oc-catalog/src/branch/main/scripts/local_imgs/Fire propagation simulator.png",
- "description": "A very long description of what this data is",
- "cpus": [{
- "cores": 8,
- "architecture": "x86",
- "shared": false
- }],
- "ram": 8192,
- "storage": 30000,
- "gpus": [
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- }
- ],
- "disk_io": "30 MB/s",
- "parallel": true,
- "scaling_model": 2,
- "owner": "Gob.fr",
- "price": 39,
- "license": "GPLv3",
- "source_url": "http://www.google.com"
- },
- {
- "name": "Environment builder",
- "short_description": "build simulated environment from real environmental data and fire mitigation rules ",
- "logo": "https://cloud.o-forge.io/core/deperecated-oc-catalog/src/branch/main/scripts/local_imgs/Environment builder.png",
- "description": "A very long description of what this data is",
- "cpus": [{
- "cores": 8,
- "architecture": "x86",
- "shared": false
- }],
- "ram": 2049,
- "storage": 500,
- "gpus": [
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- }
- ],
- "disk_io": "30 MB/s",
- "parallel": true,
- "scaling_model": 2,
- "owner": "Gob.fr",
- "price": 39,
- "license": "GPLv3",
- "source_url": "http://www.google.com"
- },
- {
- "name": "CURL",
- "image" : "curlimages/curl:7.88.1",
- "short_description": "Transfer or retrieve information from or to a server ",
- "logo": "https://cloud.o-forge.io/core/deperecated-oc-catalog/src/branch/main/scripts/local_imgs/curl-logo.png",
- "description": "curl is a tool for transferring data from or to a server. It supports these protocols: DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, TFTP, WS and WSS.",
- "owner": "IRT",
- "price": 300,
- "license": "GPLv2",
- "cpus": [{
- "cores": 8,
- "architecture": "x86",
- "shared": false
- }],
- "ram": 1024,
- "storage": 300,
- "gpus": [
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- }
- ],
- "disk_io": "30 MB/s",
- "parallel": true,
- "scaling_model": 2,
- "source_url": "http://www.google.com"
- },
- {
- "name": "alpine",
- "image" : "alpine:3.7",
- "short_description": "A minimal Docker image ",
- "logo": "https://cloud.o-forge.io/core/deperecated-oc-catalog/src/branch/main/scripts/local_imgs/alpine-logo.png",
- "description": "Alpine Linux is a Linux distribution built around musl libc and BusyBox. The image is only 5 MB in size and has access to a package repository that is much more complete than other BusyBox based images. This makes Alpine Linux a great image base for utilities and even production applications",
- "owner": "IRT",
- "price": 300,
- "license": "GPLv2",
- "cpus": [{
- "cores": 8,
- "architecture": "x86",
- "shared": false
- }],
- "ram": 1024,
- "storage": 300,
- "gpus": [
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- }
- ],
- "disk_io": "30 MB/s",
- "parallel": true,
- "scaling_model": 2,
- "source_url": "http://www.google.com"
- },
- {
- "name": "alpr",
- "image" : "openalpr/openalpr",
- "short_description": "Open source Automatic License Plate Recognition library.",
- "logo": "https://cloud.o-forge.io/core/deperecated-oc-catalog/src/branch/main/scripts/local_imgs/alpr-logo.png",
- "description": "Deploy license plate and vehicle recognition with Rekorās OpenALPR suite of solutions designed to provide invaluable vehicle intelligence which enhances business capabilities, automates tasks, and increases overall community safety!",
- "owner": "IRT",
- "price": 300,
- "license": "GPLv2",
- "cpus": [{
- "cores": 8,
- "architecture": "x86",
- "shared": false
- }],
- "ram": 1024,
- "storage": 300,
- "gpus": [
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- }
- ],
- "disk_io": "30 MB/s",
- "parallel": true,
- "scaling_model": 2,
- "source_url": "http://www.google.com"
- },
- {
- "name": "imagemagic",
- "image" : "dpokidov/imagemagick:7.1.0-62-2",
- "short_description": "ImageMagickĀ® is a free, open-source software suite, used for editing and manipulating digital images.",
- "logo": "https://cloud.o-forge.io/core/deperecated-oc-catalog/src/branch/main/scripts/local_imgs/imagemagic-logo.png",
- "description": "Use ImageMagick to create, edit, compose, and convert digital images. Resize an image, crop it, change its shades and colors, add captions, and more.",
- "owner": "IRT",
- "price": 300,
- "license": "GPLv2",
- "cpus": [{
- "cores": 8,
- "architecture": "x86",
- "shared": false
- }],
- "ram": 1024,
- "storage": 300,
- "gpus": [
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- }
- ],
- "disk_io": "30 MB/s",
- "parallel": true,
- "scaling_model": 2,
- "source_url": "http://www.google.com"
- },
- {
- "name": "Mosquito server",
- "short_description": "open source message broker that implements the MQTT protocol versions 5.0, 3.1.1 and 3.1.",
- "logo": "https://cloud.o-forge.io/core/deperecated-oc-catalog/src/branch/main/scripts/local_imgs/mosquitto-logo.png",
- "description": "A very long description of what this storage is",
- "owner": "IRT",
- "price": 300,
- "license": "GPLv2",
- "cpus": [{
- "cores": 8,
- "architecture": "x86",
- "shared": false
- }],
- "ram": 1024,
- "storage": 300,
- "gpus": [
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- }
- ],
- "disk_io": "30 MB/s",
- "parallel": true,
- "scaling_model": 2,
- "source_url": "http://www.google.com"
- }
- ]
- },
- {
- "api": "/oc/storage/",
- "content": [
- {
- "name": "IRT risk database",
- "short_description": "IRT Database instance",
- "logo": "https://cloud.o-forge.io/core/deperecated-oc-catalog/src/branch/main/scripts/local_imgs/IRT risk database.png",
- "owner": "IRT",
- "description": "A very long description of what this storage is",
- "type": "database",
- "acronym": "DC_myDC",
- "size": 4000,
- "price": 90,
- "encryption": false,
- "redundancy": "RAID5",
- "throughput": "r:200,w:150",
- "source_url": "http://www.google.com"
- },
- {
- "name": "IRT local file storage",
- "short_description": "S3 compliant IRT file storage",
- "logo": "https://cloud.o-forge.io/core/deperecated-oc-catalog/src/branch/main/scripts/local_imgs/IRT local file storage.png",
- "description": "A very long description of what this storage is",
- "owner": "IRT",
- "acronym": "DC_myDC",
- "size": 40000,
- "encryption": false,
- "redundancy": "RAID5S",
- "throughput": "r:300,w:350",
- "price": 90,
- "source_url": "http://www.google.com"
- }
- ]
- },
- {
- "api": "/oc/datacenter/",
- "content": [
- {
- "name": "Mundi datacenter",
- "acronym": "DC_myDC",
- "hosts": [
- "localhost:49618",
- "oc-catalog:49618"
- ],
- "short_description": "Mundi Opencloud Instance",
- "logo": "https://cloud.o-forge.io/core/deperecated-oc-catalog/src/branch/main/scripts/local_imgs/Mundi datacenter.png",
- "description": "A very long description of what this data is",
- "type": "datacenter",
- "bookingPrice": 650,
- "owner": "IRT",
- "cpus": [{
- "cores": 8,
- "architecture": "x86",
- "shared": false
- }],
- "ram": {
- "size": 16384,
- "ecc": false
- },
- "gpus": [
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- }
- ],
- "source_url": "http://www.google.com"
- },
- {
- "name": "CNES datacenter",
- "acronym": "DC_superDC1",
- "hosts": [
- "localhost:49619",
- "dc1:49618"
- ],
- "short_description": "CNES Opencloud Instance",
- "logo": "https://cloud.o-forge.io/core/deperecated-oc-catalog/src/branch/main/scripts/local_imgs/CNES datacenter.png",
- "description": "A very long description of what this data is",
- "type": "datacenter",
- "bookingPrice": 650,
- "owner": "IRT",
- "cpus": [{
- "cores": 32,
- "architecture": "x86",
- "shared": false
- }],
- "ram": {
- "size": 100000,
- "ecc": false
- },
- "gpus": [],
- "source_url": "http://www.google.com"
- },
- {
- "name": "Meteo France datacenter",
- "acronym": "DC_superDC2",
- "hosts": [
- "localhost:49620",
- "dc2:49618"
- ],
- "short_description": "Meteo France Opencloud Instance",
- "logo": "https://cloud.o-forge.io/core/deperecated-oc-catalog/src/branch/main/scripts/local_imgs/Meteo France datacenter.png",
- "description": "A very long description of what this data is",
- "type": "datacenter",
- "bookingPrice": 650,
- "owner": "Meteo France",
- "cpus": [{
- "cores": 16,
- "architecture": "x86",
- "shared": false
- }],
- "ram": {
- "size": 32786,
- "ecc": false
- },
- "gpus": [
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- },
- {
- "cuda_cores": 10496,
- "model": "RTX 3090 FE",
- "memory": 24000,
- "tensor_cores": 328
- }
- ],
- "source_url": "http://www.google.com"
- }
- ]
- }
-]
\ No newline at end of file
diff --git a/docker-compose.yml b/docker-compose.yml
index 41ff40a..fb76fdc 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,13 +1,13 @@
version: '3.4'
services:
- oc-workflow:
+ oc-scheduler:
environment:
- MONGO_DATABASE=DC_myDC
- image: 'oc-workflow:latest'
+ image: 'oc-scheduler:latest'
ports:
- - 8088:8080
- container_name: oc-workflow
+ - 8090:8080
+ container_name: oc-scheduler
networks:
- catalog
diff --git a/docker_scheduler.json b/docker_scheduler.json
new file mode 100644
index 0000000..fb0d686
--- /dev/null
+++ b/docker_scheduler.json
@@ -0,0 +1,4 @@
+{
+ "MONGO_URL":"mongodb://localhost:27017/",
+ "MONGO_DATABASE":"DC_myDC"
+}
\ No newline at end of file
diff --git a/docker_workflow.json b/docker_workflow.json
deleted file mode 100644
index 5bf4004..0000000
--- a/docker_workflow.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "MONGO_URL":"mongodb://mongo:27017/",
- "MONGO_DATABASE":"DC_myDC"
-}
\ No newline at end of file
diff --git a/go.mod b/go.mod
index 1e06464..3283e78 100644
--- a/go.mod
+++ b/go.mod
@@ -1,4 +1,4 @@
-module oc-workflow
+module oc-scheduler
go 1.22.0
@@ -11,7 +11,7 @@ require (
)
require (
- cloud.o-forge.io/core/oc-lib v0.0.0-20240806064253-29fcd0e34a72 // indirect
+ cloud.o-forge.io/core/oc-lib v0.0.0-20240808150044-2ae15c720ab6 // indirect
filippo.io/edwards25519 v1.1.0 // indirect
github.com/beego/bee/v2 v2.1.0 // indirect
github.com/beorn7/perks v1.0.1 // indirect
@@ -23,7 +23,7 @@ require (
github.com/flosch/pongo2 v0.0.0-20200913210552-0d938eb266f3 // indirect
github.com/flosch/pongo2/v6 v6.0.0 // indirect
github.com/fsnotify/fsnotify v1.7.0 // indirect
- github.com/gabriel-vasile/mimetype v1.4.4 // indirect
+ github.com/gabriel-vasile/mimetype v1.4.5 // indirect
github.com/go-delve/delve v1.23.0 // indirect
github.com/go-delve/liner v1.2.3-0.20231231155935-4726ab1d7f62 // indirect
github.com/go-playground/locales v0.14.1 // indirect
@@ -57,6 +57,7 @@ require (
github.com/prometheus/common v0.55.0 // indirect
github.com/prometheus/procfs v0.15.1 // indirect
github.com/rivo/uniseg v0.4.7 // indirect
+ github.com/robfig/cron/v3 v3.0.1 // indirect
github.com/rs/zerolog v1.33.0 // indirect
github.com/sagikazarmark/locafero v0.6.0 // indirect
github.com/sagikazarmark/slog-shim v0.1.0 // indirect
@@ -75,19 +76,19 @@ require (
github.com/xdg-go/pbkdf2 v1.0.0 // indirect
github.com/xdg-go/scram v1.1.2 // indirect
github.com/xdg-go/stringprep v1.0.4 // indirect
- github.com/youmark/pkcs8 v0.0.0-20240424034433-3c2c7870ae76 // indirect
- go.mongodb.org/mongo-driver v1.16.0 // indirect
+ github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78 // indirect
+ go.mongodb.org/mongo-driver v1.16.1 // indirect
go.starlark.net v0.0.0-20240705175910-70002002b310 // indirect
go.uber.org/atomic v1.11.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
golang.org/x/arch v0.8.0 // indirect
- golang.org/x/crypto v0.25.0 // indirect
+ golang.org/x/crypto v0.26.0 // indirect
golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect
golang.org/x/mod v0.19.0 // indirect
- golang.org/x/net v0.27.0 // indirect
- golang.org/x/sync v0.7.0 // indirect
- golang.org/x/sys v0.22.0 // indirect
- golang.org/x/text v0.16.0 // indirect
+ golang.org/x/net v0.28.0 // indirect
+ golang.org/x/sync v0.8.0 // indirect
+ golang.org/x/sys v0.23.0 // indirect
+ golang.org/x/text v0.17.0 // indirect
golang.org/x/tools v0.23.0 // indirect
google.golang.org/protobuf v1.34.2 // indirect
gopkg.in/ini.v1 v1.67.0 // indirect
diff --git a/go.sum b/go.sum
index 86660fb..d3b5d6b 100644
--- a/go.sum
+++ b/go.sum
@@ -138,6 +138,22 @@ cloud.o-forge.io/core/oc-lib v0.0.0-20240805134753-17f62b649523 h1:/gN4169dtvbyi
cloud.o-forge.io/core/oc-lib v0.0.0-20240805134753-17f62b649523/go.mod h1:V5EL+NV2s9P1/BcFm3/icfLeBYVVMLl1Z0F0eecJZGo=
cloud.o-forge.io/core/oc-lib v0.0.0-20240806064253-29fcd0e34a72 h1:JWnarWFrCNWPrk3CAuQ66YM/fzTTmvgBcLMSNCoIZaA=
cloud.o-forge.io/core/oc-lib v0.0.0-20240806064253-29fcd0e34a72/go.mod h1:V5EL+NV2s9P1/BcFm3/icfLeBYVVMLl1Z0F0eecJZGo=
+cloud.o-forge.io/core/oc-lib v0.0.0-20240807165025-9040d141c8ca h1:Cc4kj+Aj2PRzC+1SFvwD/nichwWrerK2evwIn/KFoFk=
+cloud.o-forge.io/core/oc-lib v0.0.0-20240807165025-9040d141c8ca/go.mod h1:V5EL+NV2s9P1/BcFm3/icfLeBYVVMLl1Z0F0eecJZGo=
+cloud.o-forge.io/core/oc-lib v0.0.0-20240808074700-47cd9361318f h1:LmJ5BJgN515exnFWZwmCXOdnTgRQA+uw6t5h9isDEQE=
+cloud.o-forge.io/core/oc-lib v0.0.0-20240808074700-47cd9361318f/go.mod h1:V5EL+NV2s9P1/BcFm3/icfLeBYVVMLl1Z0F0eecJZGo=
+cloud.o-forge.io/core/oc-lib v0.0.0-20240808075405-f45ad91687c4 h1:3xqz2s6r/PONqLKjoFX3P4OBYTn8eAfQNOT+zRVRCTE=
+cloud.o-forge.io/core/oc-lib v0.0.0-20240808075405-f45ad91687c4/go.mod h1:V5EL+NV2s9P1/BcFm3/icfLeBYVVMLl1Z0F0eecJZGo=
+cloud.o-forge.io/core/oc-lib v0.0.0-20240808092610-1cfd684e89b3 h1:goQa/fcp8ULInVerr5EmXBNftqQ5oKpb0pdHICSwgfA=
+cloud.o-forge.io/core/oc-lib v0.0.0-20240808092610-1cfd684e89b3/go.mod h1:V5EL+NV2s9P1/BcFm3/icfLeBYVVMLl1Z0F0eecJZGo=
+cloud.o-forge.io/core/oc-lib v0.0.0-20240808093957-5ac4492369be h1:a/6mBp9cEtOn7Wv2iQelVhL4296ytKSI8vQ1UNS2QFg=
+cloud.o-forge.io/core/oc-lib v0.0.0-20240808093957-5ac4492369be/go.mod h1:V5EL+NV2s9P1/BcFm3/icfLeBYVVMLl1Z0F0eecJZGo=
+cloud.o-forge.io/core/oc-lib v0.0.0-20240808135648-4688d9c68146 h1:D2ENrOnIpkGAs8G1RD/eNMI4UAukAb3cPIj9hYVWdXI=
+cloud.o-forge.io/core/oc-lib v0.0.0-20240808135648-4688d9c68146/go.mod h1:V5EL+NV2s9P1/BcFm3/icfLeBYVVMLl1Z0F0eecJZGo=
+cloud.o-forge.io/core/oc-lib v0.0.0-20240808142619-8dc009564a13 h1:JSkXsMjScEOhiZ+Xb7m3uQrWizcsCMd+xBtgNH3Ijg8=
+cloud.o-forge.io/core/oc-lib v0.0.0-20240808142619-8dc009564a13/go.mod h1:V5EL+NV2s9P1/BcFm3/icfLeBYVVMLl1Z0F0eecJZGo=
+cloud.o-forge.io/core/oc-lib v0.0.0-20240808150044-2ae15c720ab6 h1:uePDhEWN1kcF3XByLH/WTb/+wPDGe2cuG/jG0VqJOGw=
+cloud.o-forge.io/core/oc-lib v0.0.0-20240808150044-2ae15c720ab6/go.mod h1:V5EL+NV2s9P1/BcFm3/icfLeBYVVMLl1Z0F0eecJZGo=
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA=
filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4=
@@ -218,6 +234,8 @@ github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uq
github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk=
github.com/gabriel-vasile/mimetype v1.4.4 h1:QjV6pZ7/XZ7ryI2KuyeEDE8wnh7fHP9YnQy+R0LnH8I=
github.com/gabriel-vasile/mimetype v1.4.4/go.mod h1:JwLei5XPtWdGiMFB5Pjle1oEeoSeEuJfJE+TtfvdB/s=
+github.com/gabriel-vasile/mimetype v1.4.5 h1:J7wGKdGu33ocBOhGy0z653k/lFKLFDPJMG8Gql0kxn4=
+github.com/gabriel-vasile/mimetype v1.4.5/go.mod h1:ibHel+/kbxn9x2407k1izTA1S81ku1z/DlgOW2QE0M4=
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
github.com/go-check/check v0.0.0-20180628173108-788fd7840127/go.mod h1:9ES+weclKsC9YodN5RgxqK/VD9HM9JsCSh7rNhMZE98=
github.com/go-delve/delve v1.20.2 h1:rgPK7Iqb1oQk+i2Ilg0fpH6p5LqyixYiAt4N3Lhx4/Y=
@@ -444,6 +462,8 @@ github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY=
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
+github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs=
+github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro=
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ=
@@ -534,10 +554,14 @@ github.com/xdg-go/stringprep v1.0.4/go.mod h1:mPGuuIYwz7CmR2bT9j4GbQqutWS1zV24gi
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
github.com/youmark/pkcs8 v0.0.0-20240424034433-3c2c7870ae76 h1:tBiBTKHnIjovYoLX/TPkcf+OjqqKGQrPtGT3Foz+Pgo=
github.com/youmark/pkcs8 v0.0.0-20240424034433-3c2c7870ae76/go.mod h1:SQliXeA7Dhkt//vS29v3zpbEwoa+zb2Cn5xj5uO4K5U=
+github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78 h1:ilQV1hzziu+LLM3zUTJ0trRztfwgjqKnBWNtSRkbmwM=
+github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78/go.mod h1:aL8wCCfTfSfmXjznFBSZNN13rSJjlIOI1fUNAtF7rmI=
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
go.mongodb.org/mongo-driver v1.16.0 h1:tpRsfBJMROVHKpdGyc1BBEzzjDUWjItxbVSZ8Ls4BQ4=
go.mongodb.org/mongo-driver v1.16.0/go.mod h1:oB6AhJQvFQL4LEHyXi6aJzQJtBiTQHiAd83l0GdFaiw=
+go.mongodb.org/mongo-driver v1.16.1 h1:rIVLL3q0IHM39dvE+z2ulZLp9ENZKThVfuvN/IiN4l8=
+go.mongodb.org/mongo-driver v1.16.1/go.mod h1:oB6AhJQvFQL4LEHyXi6aJzQJtBiTQHiAd83l0GdFaiw=
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
go.starlark.net v0.0.0-20220816155156-cfacd8902214 h1:MqijAN3S61c7KWasOk+zIqIjHQPN6WUra/X3+YAkQxQ=
@@ -564,6 +588,8 @@ golang.org/x/crypto v0.0.0-20191112222119-e1110fd1c708/go.mod h1:LzIPMQfyMNhhGPh
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30=
golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M=
+golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw=
+golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@@ -609,6 +635,8 @@ golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs=
golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys=
golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE=
+golang.org/x/net v0.28.0 h1:a9JDOJc5GMUJ0+UDqmLT86WiEy7iWyIhz8gz8E4e5hE=
+golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -620,6 +648,8 @@ golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJ
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M=
golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
+golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ=
+golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -649,6 +679,8 @@ golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI=
golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+golang.org/x/sys v0.23.0 h1:YfKFowiIMvtgl1UERQoTPPToxltDeZfbj4H7dVUCwmM=
+golang.org/x/sys v0.23.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@@ -659,6 +691,8 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4=
golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI=
+golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc=
+golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
diff --git a/main.go b/main.go
index 34e87bf..bbcb9d5 100644
--- a/main.go
+++ b/main.go
@@ -1,20 +1,20 @@
package main
import (
- _ "oc-workflow/routers"
+ _ "oc-scheduler/routers"
oclib "cloud.o-forge.io/core/oc-lib"
beego "github.com/beego/beego/v2/server/web"
"github.com/goraz/onion"
)
-const defaultConfigFile = "/etc/oc/workflow.json"
-const localConfigFile = "./docker_workflow.json"
+const defaultConfigFile = "/etc/oc/scheduler.json"
+const localConfigFile = "./docker_scheduler.json"
func main() {
configFile := ""
var o *onion.Onion
- l3 := onion.NewEnvLayerPrefix("_", "OCWORKFLOW_")
+ l3 := onion.NewEnvLayerPrefix("_", "OCSCHEDULER_")
l1, err := onion.NewFileLayer(localConfigFile, nil)
if err == nil {
configFile = localConfigFile
@@ -36,7 +36,7 @@ func main() {
o.GetStringDefault("MONGO_URL", "mongodb://127.0.0.1:27017"),
o.GetStringDefault("MONGO_DATABASE", "DC_myDC"),
)
- oclib.Init("oc-workflow")
+ oclib.Init("oc-scheduler")
// Normal beego init
//if beego.BConfig.RunMode == "dev" {
beego.BConfig.WebConfig.DirectoryIndex = true
diff --git a/oc-workflow b/oc-scheduler
similarity index 75%
rename from oc-workflow
rename to oc-scheduler
index 5961f23..592958d 100755
Binary files a/oc-workflow and b/oc-scheduler differ
diff --git a/populate.sh b/populate.sh
deleted file mode 100755
index 5ecbfba..0000000
--- a/populate.sh
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/usr/bin/bash
-
-
-# Must specify a JSON with a following structure:
-
-ENDPOINT="http://localhost:8087"
-if [[ $DOCKER_ENVIRONMENT ]]; then
- ENDPOINT="http://oc-catalog:8087"
-fi
-
-if [[ $DOCKER_ENDPOINT ]]; then
- ENDPOINT="$DOCKER_ENDPOINT"
-fi
-
-[[ -z $1 ]] && { echo "Must specify a json path"; exit 1; }
-[[ ! -f $1 ]] && { echo "$1 is not a file"; exit 1; }
-cat "$1" | jq empty || { echo "$1 is not a valid JSON"; exit 1; }
-
-########
-
-while read row; do
- TRGT_ENDPOINT=$(echo $row | jq -r '.api')
-
- while read item; do
- echo `echo $item | jq -r '.name'` to $ENDPOINT${TRGT_ENDPOINT}
- answer=$(curl --fail "$ENDPOINT${TRGT_ENDPOINT}" \
- -X POST \
- -H "Content-Type: application/json" \
- -d "$item")
- echo $answer
- if [[ $? -ne 0 || "$answer" == *""* ]]; then
- exit 1
- fi
- done < <(echo "$row" | jq -c '.content[]')
-done < <(jq -c '.[]' $1)
-
-
-echo
-echo
-echo
-echo "All models submitted correctly!"
diff --git a/routers/commentsRouter.go b/routers/commentsRouter.go
index de71851..b807482 100644
--- a/routers/commentsRouter.go
+++ b/routers/commentsRouter.go
@@ -7,7 +7,7 @@ import (
func init() {
- beego.GlobalControllerRouter["oc-workflow/controllers:VersionController"] = append(beego.GlobalControllerRouter["oc-workflow/controllers:VersionController"],
+ beego.GlobalControllerRouter["oc-scheduler/controllers:VersionController"] = append(beego.GlobalControllerRouter["oc-scheduler/controllers:VersionController"],
beego.ControllerComments{
Method: "GetAll",
Router: `/`,
@@ -16,16 +16,7 @@ func init() {
Filters: nil,
Params: nil})
- beego.GlobalControllerRouter["oc-workflow/controllers:WorkflowController"] = append(beego.GlobalControllerRouter["oc-workflow/controllers:WorkflowController"],
- beego.ControllerComments{
- Method: "Post",
- Router: `/`,
- AllowHTTPMethods: []string{"post"},
- MethodParams: param.Make(),
- Filters: nil,
- Params: nil})
-
- beego.GlobalControllerRouter["oc-workflow/controllers:WorkflowController"] = append(beego.GlobalControllerRouter["oc-workflow/controllers:WorkflowController"],
+ beego.GlobalControllerRouter["oc-scheduler/controllers:WorkflowExecutionController"] = append(beego.GlobalControllerRouter["oc-scheduler/controllers:WorkflowExecutionController"],
beego.ControllerComments{
Method: "GetAll",
Router: `/`,
@@ -34,16 +25,7 @@ func init() {
Filters: nil,
Params: nil})
- beego.GlobalControllerRouter["oc-workflow/controllers:WorkflowController"] = append(beego.GlobalControllerRouter["oc-workflow/controllers:WorkflowController"],
- beego.ControllerComments{
- Method: "Put",
- Router: `/:id`,
- AllowHTTPMethods: []string{"put"},
- MethodParams: param.Make(),
- Filters: nil,
- Params: nil})
-
- beego.GlobalControllerRouter["oc-workflow/controllers:WorkflowController"] = append(beego.GlobalControllerRouter["oc-workflow/controllers:WorkflowController"],
+ beego.GlobalControllerRouter["oc-scheduler/controllers:WorkflowExecutionController"] = append(beego.GlobalControllerRouter["oc-scheduler/controllers:WorkflowExecutionController"],
beego.ControllerComments{
Method: "Get",
Router: `/:id`,
@@ -52,52 +34,16 @@ func init() {
Filters: nil,
Params: nil})
- beego.GlobalControllerRouter["oc-workflow/controllers:WorkflowController"] = append(beego.GlobalControllerRouter["oc-workflow/controllers:WorkflowController"],
+ beego.GlobalControllerRouter["oc-scheduler/controllers:WorkflowExecutionController"] = append(beego.GlobalControllerRouter["oc-scheduler/controllers:WorkflowExecutionController"],
beego.ControllerComments{
- Method: "Delete",
- Router: `/:id`,
- AllowHTTPMethods: []string{"delete"},
- MethodParams: param.Make(),
- Filters: nil,
- Params: nil})
-
- beego.GlobalControllerRouter["oc-workflow/controllers:WorkflowController"] = append(beego.GlobalControllerRouter["oc-workflow/controllers:WorkflowController"],
- beego.ControllerComments{
- Method: "Publish",
- Router: `/publish/:id`,
- AllowHTTPMethods: []string{"post"},
- MethodParams: param.Make(),
- Filters: nil,
- Params: nil})
-
- beego.GlobalControllerRouter["oc-workflow/controllers:WorkflowController"] = append(beego.GlobalControllerRouter["oc-workflow/controllers:WorkflowController"],
- beego.ControllerComments{
- Method: "Search",
- Router: `/search/:search`,
+ Method: "Check",
+ Router: `/check/:start_date/:end_date`,
AllowHTTPMethods: []string{"get"},
MethodParams: param.Make(),
Filters: nil,
Params: nil})
- beego.GlobalControllerRouter["oc-workflow/controllers:WorkflowExecutionController"] = append(beego.GlobalControllerRouter["oc-workflow/controllers:WorkflowExecutionController"],
- beego.ControllerComments{
- Method: "GetAll",
- Router: `/`,
- AllowHTTPMethods: []string{"get"},
- MethodParams: param.Make(),
- Filters: nil,
- Params: nil})
-
- beego.GlobalControllerRouter["oc-workflow/controllers:WorkflowExecutionController"] = append(beego.GlobalControllerRouter["oc-workflow/controllers:WorkflowExecutionController"],
- beego.ControllerComments{
- Method: "Get",
- Router: `/:id`,
- AllowHTTPMethods: []string{"get"},
- MethodParams: param.Make(),
- Filters: nil,
- Params: nil})
-
- beego.GlobalControllerRouter["oc-workflow/controllers:WorkflowExecutionController"] = append(beego.GlobalControllerRouter["oc-workflow/controllers:WorkflowExecutionController"],
+ beego.GlobalControllerRouter["oc-scheduler/controllers:WorkflowExecutionController"] = append(beego.GlobalControllerRouter["oc-scheduler/controllers:WorkflowExecutionController"],
beego.ControllerComments{
Method: "Search",
Router: `/search/:start_date/:end_date`,
@@ -106,58 +52,4 @@ func init() {
Filters: nil,
Params: nil})
- beego.GlobalControllerRouter["oc-workflow/controllers:WorkflowResourceController"] = append(beego.GlobalControllerRouter["oc-workflow/controllers:WorkflowResourceController"],
- beego.ControllerComments{
- Method: "GetAll",
- Router: `/`,
- AllowHTTPMethods: []string{"get"},
- MethodParams: param.Make(),
- Filters: nil,
- Params: nil})
-
- beego.GlobalControllerRouter["oc-workflow/controllers:WorkflowResourceController"] = append(beego.GlobalControllerRouter["oc-workflow/controllers:WorkflowResourceController"],
- beego.ControllerComments{
- Method: "Post",
- Router: `/`,
- AllowHTTPMethods: []string{"post"},
- MethodParams: param.Make(),
- Filters: nil,
- Params: nil})
-
- beego.GlobalControllerRouter["oc-workflow/controllers:WorkflowResourceController"] = append(beego.GlobalControllerRouter["oc-workflow/controllers:WorkflowResourceController"],
- beego.ControllerComments{
- Method: "Put",
- Router: `/:id`,
- AllowHTTPMethods: []string{"put"},
- MethodParams: param.Make(),
- Filters: nil,
- Params: nil})
-
- beego.GlobalControllerRouter["oc-workflow/controllers:WorkflowResourceController"] = append(beego.GlobalControllerRouter["oc-workflow/controllers:WorkflowResourceController"],
- beego.ControllerComments{
- Method: "Get",
- Router: `/:id`,
- AllowHTTPMethods: []string{"get"},
- MethodParams: param.Make(),
- Filters: nil,
- Params: nil})
-
- beego.GlobalControllerRouter["oc-workflow/controllers:WorkflowResourceController"] = append(beego.GlobalControllerRouter["oc-workflow/controllers:WorkflowResourceController"],
- beego.ControllerComments{
- Method: "Delete",
- Router: `/:id`,
- AllowHTTPMethods: []string{"delete"},
- MethodParams: param.Make(),
- Filters: nil,
- Params: nil})
-
- beego.GlobalControllerRouter["oc-workflow/controllers:WorkflowResourceController"] = append(beego.GlobalControllerRouter["oc-workflow/controllers:WorkflowResourceController"],
- beego.ControllerComments{
- Method: "Search",
- Router: `/search/:search`,
- AllowHTTPMethods: []string{"get"},
- MethodParams: param.Make(),
- Filters: nil,
- Params: nil})
-
}
diff --git a/routers/router.go b/routers/router.go
index aadbaa9..d9f63d8 100644
--- a/routers/router.go
+++ b/routers/router.go
@@ -8,23 +8,13 @@
package routers
import (
- "oc-workflow/controllers"
+ "oc-scheduler/controllers"
beego "github.com/beego/beego/v2/server/web"
)
func init() {
ns := beego.NewNamespace("/oc/",
- beego.NSNamespace("/workflow",
- beego.NSInclude(
- &controllers.WorkflowController{},
- ),
- ),
- beego.NSNamespace("/workflow/resource",
- beego.NSInclude(
- &controllers.WorkflowResourceController{},
- ),
- ),
beego.NSNamespace("/workflow_execution",
beego.NSInclude(
&controllers.WorkflowExecutionController{},
diff --git a/swagger/swagger.json b/swagger/swagger.json
index 0880ef2..9822e60 100644
--- a/swagger/swagger.json
+++ b/swagger/swagger.json
@@ -29,312 +29,6 @@
}
}
},
- "/workflow/": {
- "get": {
- "tags": [
- "workflow"
- ],
- "description": "find workflow by workflowid\n\u003cbr\u003e",
- "operationId": "WorkflowController.GetAll",
- "responses": {
- "200": {
- "description": "{workflow} models.workflow"
- }
- }
- },
- "post": {
- "tags": [
- "workflow"
- ],
- "description": "create workflows\n\u003cbr\u003e",
- "operationId": "WorkflowController.Create",
- "parameters": [
- {
- "in": "body",
- "name": "data",
- "description": "body for data content (Json format)",
- "required": true,
- "schema": {
- "$ref": "#/definitions/json"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "",
- "schema": {
- "$ref": "#/definitions/models.workflow"
- }
- }
- }
- }
- },
- "/workflow/publish/{id}": {
- "post": {
- "tags": [
- "workflow"
- ],
- "description": "create workflows\n\u003cbr\u003e",
- "operationId": "WorkflowController.Publish",
- "parameters": [
- {
- "in": "path",
- "name": "id",
- "description": "the workflowid you want to get",
- "required": true,
- "type": "string"
- }
- ],
- "responses": {
- "200": {
- "description": "",
- "schema": {
- "$ref": "#/definitions/models.workflow"
- }
- }
- }
- }
- },
- "/workflow/resource/": {
- "get": {
- "tags": [
- "workflow/resource"
- ],
- "description": "find workflow by workflowid\n\u003cbr\u003e",
- "operationId": "WorkflowResourceController.GetAll",
- "responses": {
- "200": {
- "description": "{workflow} models.workflow"
- }
- }
- },
- "post": {
- "tags": [
- "workflow/resource"
- ],
- "description": "create workflows\n\u003cbr\u003e",
- "operationId": "WorkflowResourceController.Create",
- "parameters": [
- {
- "in": "body",
- "name": "data",
- "description": "body for data content (Json format)",
- "required": true,
- "schema": {
- "$ref": "#/definitions/json"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "",
- "schema": {
- "$ref": "#/definitions/models.workflow"
- }
- }
- }
- }
- },
- "/workflow/resource/search/{search}": {
- "get": {
- "tags": [
- "workflow/resource"
- ],
- "description": "search workspace\n\u003cbr\u003e",
- "operationId": "WorkflowResourceController.Search",
- "parameters": [
- {
- "in": "path",
- "name": "search",
- "description": "the word search you want to get",
- "required": true,
- "type": "string"
- }
- ],
- "responses": {
- "200": {
- "description": "{workspace} models.workspace"
- }
- }
- }
- },
- "/workflow/resource/{id}": {
- "get": {
- "tags": [
- "workflow/resource"
- ],
- "description": "find workflows\n\u003cbr\u003e",
- "operationId": "WorkflowResourceController.Get",
- "parameters": [
- {
- "in": "path",
- "name": "id",
- "description": "the workflowid you want to get",
- "required": true,
- "type": "string"
- }
- ],
- "responses": {
- "200": {
- "description": "{workflow} models.workflow"
- }
- }
- },
- "put": {
- "tags": [
- "workflow/resource"
- ],
- "description": "create workflows\n\u003cbr\u003e",
- "operationId": "WorkflowResourceController.Update",
- "parameters": [
- {
- "in": "path",
- "name": "id",
- "description": "the workflowid you want to get",
- "required": true,
- "type": "string"
- },
- {
- "in": "body",
- "name": "body",
- "description": "The workflow content",
- "required": true,
- "schema": {
- "$ref": "#/definitions/models.workflow"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "",
- "schema": {
- "$ref": "#/definitions/models.workflow"
- }
- }
- }
- },
- "delete": {
- "tags": [
- "workflow/resource"
- ],
- "description": "delete the workflow\n\u003cbr\u003e",
- "operationId": "WorkflowResourceController.Delete",
- "parameters": [
- {
- "in": "path",
- "name": "id",
- "description": "The workflowId you want to delete",
- "required": true,
- "type": "string"
- }
- ],
- "responses": {
- "200": {
- "description": "{string} delete success!"
- }
- }
- }
- },
- "/workflow/search/{search}": {
- "get": {
- "tags": [
- "workflow"
- ],
- "description": "search workspace\n\u003cbr\u003e",
- "operationId": "WorkflowController.Search",
- "parameters": [
- {
- "in": "path",
- "name": "search",
- "description": "the word search you want to get",
- "required": true,
- "type": "string"
- }
- ],
- "responses": {
- "200": {
- "description": "{workspace} models.workspace"
- }
- }
- }
- },
- "/workflow/{id}": {
- "get": {
- "tags": [
- "workflow"
- ],
- "description": "find workflow by workflowid\n\u003cbr\u003e",
- "operationId": "WorkflowController.Get",
- "parameters": [
- {
- "in": "path",
- "name": "id",
- "description": "the workflowid you want to get",
- "required": true,
- "type": "string"
- }
- ],
- "responses": {
- "200": {
- "description": "{workflow} models.workflow"
- }
- }
- },
- "put": {
- "tags": [
- "workflow"
- ],
- "description": "create workflows\n\u003cbr\u003e",
- "operationId": "WorkflowController.Update",
- "parameters": [
- {
- "in": "path",
- "name": "id",
- "description": "the workflowid you want to get",
- "required": true,
- "type": "string"
- },
- {
- "in": "body",
- "name": "body",
- "description": "The workflow content",
- "required": true,
- "schema": {
- "$ref": "#/definitions/models.workflow"
- }
- }
- ],
- "responses": {
- "200": {
- "description": "",
- "schema": {
- "$ref": "#/definitions/models.workflow"
- }
- }
- }
- },
- "delete": {
- "tags": [
- "workflow"
- ],
- "description": "delete the workflow\n\u003cbr\u003e",
- "operationId": "WorkflowController.Delete",
- "parameters": [
- {
- "in": "path",
- "name": "id",
- "description": "The workflowId you want to delete",
- "required": true,
- "type": "string"
- }
- ],
- "responses": {
- "200": {
- "description": "{string} delete success!"
- }
- }
- }
- },
"/workflow_execution/": {
"get": {
"tags": [
@@ -349,6 +43,39 @@
}
}
},
+ "/workflow_execution/check/{start_date}/{end_date}": {
+ "get": {
+ "tags": [
+ "workflow_execution"
+ ],
+ "description": "check booking\n\u003cbr\u003e",
+ "operationId": "WorkflowExecutionController.Check",
+ "parameters": [
+ {
+ "in": "path",
+ "name": "start_date",
+ "description": "2006-01-02T15:04:05",
+ "type": "string",
+ "default": "the booking start date"
+ },
+ {
+ "in": "path",
+ "name": "end_date",
+ "description": "2006-01-02T15:04:05",
+ "type": "string",
+ "default": "the booking end date"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "",
+ "schema": {
+ "$ref": "#/definitions/models.object"
+ }
+ }
+ }
+ }
+ },
"/workflow_execution/search/{start_date}/{end_date}": {
"get": {
"tags": [
@@ -404,24 +131,12 @@
}
},
"definitions": {
- "json": {
- "title": "json",
- "type": "object"
- },
- "models.workflow": {
- "title": "workflow",
+ "models.object": {
+ "title": "object",
"type": "object"
}
},
"tags": [
- {
- "name": "workflow",
- "description": "Operations about workflow\n"
- },
- {
- "name": "workflow/resource",
- "description": "Operations about workflow\n"
- },
{
"name": "workflow_execution",
"description": "Operations about workflow\n"
diff --git a/swagger/swagger.yml b/swagger/swagger.yml
index 8e16d0a..d731277 100644
--- a/swagger/swagger.yml
+++ b/swagger/swagger.yml
@@ -23,233 +23,6 @@ paths:
responses:
"200":
description: ""
- /workflow/:
- get:
- tags:
- - workflow
- description: |-
- find workflow by workflowid
-
- operationId: WorkflowController.GetAll
- responses:
- "200":
- description: '{workflow} models.workflow'
- post:
- tags:
- - workflow
- description: |-
- create workflows
-
- operationId: WorkflowController.Create
- parameters:
- - in: body
- name: data
- description: body for data content (Json format)
- required: true
- schema:
- $ref: '#/definitions/json'
- responses:
- "200":
- description: ""
- schema:
- $ref: '#/definitions/models.workflow'
- /workflow/{id}:
- get:
- tags:
- - workflow
- description: |-
- find workflow by workflowid
-
- operationId: WorkflowController.Get
- parameters:
- - in: path
- name: id
- description: the workflowid you want to get
- required: true
- type: string
- responses:
- "200":
- description: '{workflow} models.workflow'
- put:
- tags:
- - workflow
- description: |-
- create workflows
-
- operationId: WorkflowController.Update
- parameters:
- - in: path
- name: id
- description: the workflowid you want to get
- required: true
- type: string
- - in: body
- name: body
- description: The workflow content
- required: true
- schema:
- $ref: '#/definitions/models.workflow'
- responses:
- "200":
- description: ""
- schema:
- $ref: '#/definitions/models.workflow'
- delete:
- tags:
- - workflow
- description: |-
- delete the workflow
-
- operationId: WorkflowController.Delete
- parameters:
- - in: path
- name: id
- description: The workflowId you want to delete
- required: true
- type: string
- responses:
- "200":
- description: '{string} delete success!'
- /workflow/publish/{id}:
- post:
- tags:
- - workflow
- description: |-
- create workflows
-
- operationId: WorkflowController.Publish
- parameters:
- - in: path
- name: id
- description: the workflowid you want to get
- required: true
- type: string
- responses:
- "200":
- description: ""
- schema:
- $ref: '#/definitions/models.workflow'
- /workflow/resource/:
- get:
- tags:
- - workflow/resource
- description: |-
- find workflow by workflowid
-
- operationId: WorkflowResourceController.GetAll
- responses:
- "200":
- description: '{workflow} models.workflow'
- post:
- tags:
- - workflow/resource
- description: |-
- create workflows
-
- operationId: WorkflowResourceController.Create
- parameters:
- - in: body
- name: data
- description: body for data content (Json format)
- required: true
- schema:
- $ref: '#/definitions/json'
- responses:
- "200":
- description: ""
- schema:
- $ref: '#/definitions/models.workflow'
- /workflow/resource/{id}:
- get:
- tags:
- - workflow/resource
- description: |-
- find workflows
-
- operationId: WorkflowResourceController.Get
- parameters:
- - in: path
- name: id
- description: the workflowid you want to get
- required: true
- type: string
- responses:
- "200":
- description: '{workflow} models.workflow'
- put:
- tags:
- - workflow/resource
- description: |-
- create workflows
-
- operationId: WorkflowResourceController.Update
- parameters:
- - in: path
- name: id
- description: the workflowid you want to get
- required: true
- type: string
- - in: body
- name: body
- description: The workflow content
- required: true
- schema:
- $ref: '#/definitions/models.workflow'
- responses:
- "200":
- description: ""
- schema:
- $ref: '#/definitions/models.workflow'
- delete:
- tags:
- - workflow/resource
- description: |-
- delete the workflow
-
- operationId: WorkflowResourceController.Delete
- parameters:
- - in: path
- name: id
- description: The workflowId you want to delete
- required: true
- type: string
- responses:
- "200":
- description: '{string} delete success!'
- /workflow/resource/search/{search}:
- get:
- tags:
- - workflow/resource
- description: |-
- search workspace
-
- operationId: WorkflowResourceController.Search
- parameters:
- - in: path
- name: search
- description: the word search you want to get
- required: true
- type: string
- responses:
- "200":
- description: '{workspace} models.workspace'
- /workflow/search/{search}:
- get:
- tags:
- - workflow
- description: |-
- search workspace
-
- operationId: WorkflowController.Search
- parameters:
- - in: path
- name: search
- description: the word search you want to get
- required: true
- type: string
- responses:
- "200":
- description: '{workspace} models.workspace'
/workflow_execution/:
get:
tags:
@@ -278,6 +51,30 @@ paths:
responses:
"200":
description: '{workflow} models.workflow'
+ /workflow_execution/check/{start_date}/{end_date}:
+ get:
+ tags:
+ - workflow_execution
+ description: |-
+ check booking
+
+ operationId: WorkflowExecutionController.Check
+ parameters:
+ - in: path
+ name: start_date
+ description: 2006-01-02T15:04:05
+ type: string
+ default: the booking start date
+ - in: path
+ name: end_date
+ description: 2006-01-02T15:04:05
+ type: string
+ default: the booking end date
+ responses:
+ "200":
+ description: ""
+ schema:
+ $ref: '#/definitions/models.object'
/workflow_execution/search/{start_date}/{end_date}:
get:
tags:
@@ -301,19 +98,10 @@ paths:
"200":
description: '{workspace} models.workspace'
definitions:
- json:
- title: json
- type: object
- models.workflow:
- title: workflow
+ models.object:
+ title: object
type: object
tags:
-- name: workflow
- description: |
- Operations about workflow
-- name: workflow/resource
- description: |
- Operations about workflow
- name: workflow_execution
description: |
Operations about workflow
diff --git a/tests/default_test.go b/tests/default_test.go
index 4e77c84..11b6219 100644
--- a/tests/default_test.go
+++ b/tests/default_test.go
@@ -6,7 +6,7 @@ import (
"testing"
"runtime"
"path/filepath"
- _ "oc-workflow/routers"
+ _ "oc-scheduler/routers"
beego "github.com/beego/beego/v2/server/web"
"github.com/beego/beego/v2/core/logs"