Compare commits

...

2 Commits

Author SHA1 Message Date
mr
1bb89db5c8 Oc Catalog Full Controllers 2024-07-30 10:07:34 +02:00
mr
8be1828ddc demo data 2024-07-26 17:10:17 +02:00
15 changed files with 1009 additions and 157 deletions

View File

@ -11,3 +11,6 @@ If default Swagger page is displayed instead of tyour api, change url in swagger
url: "swagger.json" url: "swagger.json"
Populate :
`./populate.sh ./demo.sh`

View File

@ -52,7 +52,7 @@ func (o *DataController) GetAll() {
// @Description find data by key word // @Description find data by key word
// @Param search path string true "the search you want to get" // @Param search path string true "the search you want to get"
// @Success 200 {data} models.data // @Success 200 {data} models.data
// @router /:search [get] // @router /search/:search [get]
func (o *DataController) Search() { func (o *DataController) Search() {
search := o.Ctx.Input.Param(":search") search := o.Ctx.Input.Param(":search")
o.Data["json"] = oclib.Search(search, oclib.LibDataEnum(oclib.DATA_RESOURCE)) o.Data["json"] = oclib.Search(search, oclib.LibDataEnum(oclib.DATA_RESOURCE))

View File

@ -52,7 +52,7 @@ func (o *DatacenterController) GetAll() {
// @Description find datacenter by key word // @Description find datacenter by key word
// @Param search path string true "the search you want to get" // @Param search path string true "the search you want to get"
// @Success 200 {datacenter} models.datacenter // @Success 200 {datacenter} models.datacenter
// @router /:search [get] // @router /search/:search [get]
func (o *DatacenterController) Search() { func (o *DatacenterController) Search() {
search := o.Ctx.Input.Param(":search") search := o.Ctx.Input.Param(":search")
o.Data["json"] = oclib.Search(search, oclib.LibDataEnum(oclib.DATACENTER_RESOURCE)) o.Data["json"] = oclib.Search(search, oclib.LibDataEnum(oclib.DATACENTER_RESOURCE))

View File

@ -52,7 +52,7 @@ func (o *ProcessingController) GetAll() {
// @Description find processing by key word // @Description find processing by key word
// @Param search path string true "the search you want to get" // @Param search path string true "the search you want to get"
// @Success 200 {processing} models.processing // @Success 200 {processing} models.processing
// @router /:search [get] // @router /search/:search [get]
func (o *ProcessingController) Search() { func (o *ProcessingController) Search() {
search := o.Ctx.Input.Param(":search") search := o.Ctx.Input.Param(":search")
o.Data["json"] = oclib.Search(search, oclib.LibDataEnum(oclib.PROCESSING_RESOURCE)) o.Data["json"] = oclib.Search(search, oclib.LibDataEnum(oclib.PROCESSING_RESOURCE))

View File

@ -17,7 +17,12 @@ type ResourceController struct {
func (o *ResourceController) GetAll() { func (o *ResourceController) GetAll() {
results := map[string]interface{}{} results := map[string]interface{}{}
for _, resource := range []oclib.LibDataEnum{oclib.LibDataEnum(oclib.DATACENTER_RESOURCE), oclib.LibDataEnum(oclib.DATACENTER_RESOURCE), oclib.LibDataEnum(oclib.STORAGE_RESOURCE), oclib.LibDataEnum(oclib.PROCESSING_RESOURCE), oclib.LibDataEnum(oclib.WORKFLOW_RESOURCE)} { for _, resource := range []oclib.LibDataEnum{oclib.LibDataEnum(oclib.DATACENTER_RESOURCE), oclib.LibDataEnum(oclib.DATACENTER_RESOURCE), oclib.LibDataEnum(oclib.STORAGE_RESOURCE), oclib.LibDataEnum(oclib.PROCESSING_RESOURCE), oclib.LibDataEnum(oclib.WORKFLOW_RESOURCE)} {
results[resource.String()] = oclib.LoadAll(resource) d := oclib.LoadAll(resource)
if d.Code != 200 || len(d.Data) == 0 {
results[resource.String()] = []interface{}{}
} else {
results[resource.String()] = d
}
} }
o.Data["json"] = results o.Data["json"] = results
o.ServeJSON() o.ServeJSON()
@ -27,12 +32,17 @@ func (o *ResourceController) GetAll() {
// @Description find resource by key word // @Description find resource by key word
// @Param search path string true "the search you want to get" // @Param search path string true "the search you want to get"
// @Success 200 {resource} models.resource // @Success 200 {resource} models.resource
// @router /:search [get] // @router /search/:search [get]
func (o *ResourceController) Search() { func (o *ResourceController) Search() {
search := o.Ctx.Input.Param(":search") search := o.Ctx.Input.Param(":search")
results := map[string]interface{}{} results := map[string]interface{}{}
for _, resource := range []oclib.LibDataEnum{oclib.LibDataEnum(oclib.DATACENTER_RESOURCE), oclib.LibDataEnum(oclib.DATACENTER_RESOURCE), oclib.LibDataEnum(oclib.STORAGE_RESOURCE), oclib.LibDataEnum(oclib.PROCESSING_RESOURCE), oclib.LibDataEnum(oclib.WORKFLOW_RESOURCE)} { for _, resource := range []oclib.LibDataEnum{oclib.LibDataEnum(oclib.DATACENTER_RESOURCE), oclib.LibDataEnum(oclib.DATACENTER_RESOURCE), oclib.LibDataEnum(oclib.STORAGE_RESOURCE), oclib.LibDataEnum(oclib.PROCESSING_RESOURCE), oclib.LibDataEnum(oclib.WORKFLOW_RESOURCE)} {
results[resource.String()] = oclib.Search(search, resource) d := oclib.Search(search, resource)
if d.Code != 200 || len(d.Data) == 0 {
results[resource.String()] = []interface{}{}
} else {
results[resource.String()] = d
}
} }
o.Data["json"] = results o.Data["json"] = results
o.ServeJSON() o.ServeJSON()
@ -46,8 +56,14 @@ func (o *ResourceController) Search() {
func (o *ResourceController) Get() { func (o *ResourceController) Get() {
id := o.Ctx.Input.Param(":id") id := o.Ctx.Input.Param(":id")
results := map[string]interface{}{} results := map[string]interface{}{}
for _, resource := range []oclib.LibDataEnum{oclib.LibDataEnum(oclib.DATACENTER_RESOURCE), oclib.LibDataEnum(oclib.DATACENTER_RESOURCE), oclib.LibDataEnum(oclib.STORAGE_RESOURCE), oclib.LibDataEnum(oclib.PROCESSING_RESOURCE), oclib.LibDataEnum(oclib.WORKFLOW_RESOURCE)} { for _, resource := range []oclib.LibDataEnum{oclib.LibDataEnum(oclib.DATACENTER_RESOURCE),
results[resource.String()] = oclib.LoadOne(resource, id) oclib.LibDataEnum(oclib.DATACENTER_RESOURCE), oclib.LibDataEnum(oclib.STORAGE_RESOURCE), oclib.LibDataEnum(oclib.PROCESSING_RESOURCE), oclib.LibDataEnum(oclib.WORKFLOW_RESOURCE)} {
d := oclib.LoadOne(resource, id)
if d.Code != 200 {
results[resource.String()] = nil
} else {
results[resource.String()] = d
}
} }
o.Data["json"] = results o.Data["json"] = results
o.ServeJSON() o.ServeJSON()
@ -62,7 +78,12 @@ func (o *ResourceController) Delete() {
id := o.Ctx.Input.Param(":id") id := o.Ctx.Input.Param(":id")
results := map[string]interface{}{} results := map[string]interface{}{}
for _, resource := range []oclib.LibDataEnum{oclib.LibDataEnum(oclib.DATACENTER_RESOURCE), oclib.LibDataEnum(oclib.DATACENTER_RESOURCE), oclib.LibDataEnum(oclib.STORAGE_RESOURCE), oclib.LibDataEnum(oclib.PROCESSING_RESOURCE), oclib.LibDataEnum(oclib.WORKFLOW_RESOURCE)} { for _, resource := range []oclib.LibDataEnum{oclib.LibDataEnum(oclib.DATACENTER_RESOURCE), oclib.LibDataEnum(oclib.DATACENTER_RESOURCE), oclib.LibDataEnum(oclib.STORAGE_RESOURCE), oclib.LibDataEnum(oclib.PROCESSING_RESOURCE), oclib.LibDataEnum(oclib.WORKFLOW_RESOURCE)} {
results[resource.String()] = oclib.DeleteOne(resource, id) d := oclib.DeleteOne(resource, id)
if d.Code != 200 {
results[resource.String()] = nil
} else {
results[resource.String()] = d
}
} }
o.Data["json"] = results o.Data["json"] = results
o.ServeJSON() o.ServeJSON()

View File

@ -31,7 +31,7 @@ func (o *StorageController) Put() {
// @Description find storage by key word // @Description find storage by key word
// @Param search path string true "the search you want to get" // @Param search path string true "the search you want to get"
// @Success 200 {storage} models.storage // @Success 200 {storage} models.storage
// @router /:search [get] // @router /search/:search [get]
func (o *StorageController) Search() { func (o *StorageController) Search() {
search := o.Ctx.Input.Param(":search") search := o.Ctx.Input.Param(":search")
o.Data["json"] = oclib.Search(search, oclib.LibDataEnum(oclib.STORAGE_RESOURCE)) o.Data["json"] = oclib.Search(search, oclib.LibDataEnum(oclib.STORAGE_RESOURCE))

View File

@ -31,7 +31,7 @@ func (o *WorkflowController) Put() {
// @Description find workflow by key word // @Description find workflow by key word
// @Param search path string true "the search you want to get" // @Param search path string true "the search you want to get"
// @Success 200 {workflow} models.workflow // @Success 200 {workflow} models.workflow
// @router /:search [get] // @router /search/:search [get]
func (o *WorkflowController) Search() { func (o *WorkflowController) Search() {
search := o.Ctx.Input.Param(":search") search := o.Ctx.Input.Param(":search")
o.Data["json"] = oclib.Search(search, oclib.LibDataEnum(oclib.WORKFLOW_RESOURCE)) o.Data["json"] = oclib.Search(search, oclib.LibDataEnum(oclib.WORKFLOW_RESOURCE))

765
demo.json Normal file
View File

@ -0,0 +1,765 @@
[
{
"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 Rekors 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"
}
]
}
]

2
go.mod
View File

@ -11,7 +11,7 @@ require (
) )
require ( require (
cloud.o-forge.io/core/oc-lib v0.0.0-20240726121555-eb1417853a1c // indirect cloud.o-forge.io/core/oc-lib v0.0.0-20240730072752-250fefd0d85e // indirect
filippo.io/edwards25519 v1.1.0 // indirect filippo.io/edwards25519 v1.1.0 // indirect
github.com/beego/bee/v2 v2.1.0 // indirect github.com/beego/bee/v2 v2.1.0 // indirect
github.com/beorn7/perks v1.0.1 // indirect github.com/beorn7/perks v1.0.1 // indirect

22
go.sum
View File

@ -94,6 +94,28 @@ cloud.o-forge.io/core/oc-lib v0.0.0-20240726114510-8c97fca96c85 h1:PPFwnkl9m8WCr
cloud.o-forge.io/core/oc-lib v0.0.0-20240726114510-8c97fca96c85/go.mod h1:V5EL+NV2s9P1/BcFm3/icfLeBYVVMLl1Z0F0eecJZGo= cloud.o-forge.io/core/oc-lib v0.0.0-20240726114510-8c97fca96c85/go.mod h1:V5EL+NV2s9P1/BcFm3/icfLeBYVVMLl1Z0F0eecJZGo=
cloud.o-forge.io/core/oc-lib v0.0.0-20240726121555-eb1417853a1c h1:GS1E071bdeKpMgq9i6KMa87zUJkoB7+8miQlvVViHHs= cloud.o-forge.io/core/oc-lib v0.0.0-20240726121555-eb1417853a1c h1:GS1E071bdeKpMgq9i6KMa87zUJkoB7+8miQlvVViHHs=
cloud.o-forge.io/core/oc-lib v0.0.0-20240726121555-eb1417853a1c/go.mod h1:V5EL+NV2s9P1/BcFm3/icfLeBYVVMLl1Z0F0eecJZGo= cloud.o-forge.io/core/oc-lib v0.0.0-20240726121555-eb1417853a1c/go.mod h1:V5EL+NV2s9P1/BcFm3/icfLeBYVVMLl1Z0F0eecJZGo=
cloud.o-forge.io/core/oc-lib v0.0.0-20240726131936-87b7cda0ce28 h1:nx7xOMXuQHDJNkXw7NCFrsOG/PzbhKNV4/4Ea2arkzg=
cloud.o-forge.io/core/oc-lib v0.0.0-20240726131936-87b7cda0ce28/go.mod h1:V5EL+NV2s9P1/BcFm3/icfLeBYVVMLl1Z0F0eecJZGo=
cloud.o-forge.io/core/oc-lib v0.0.0-20240726144711-ff286583aada h1:pUe+iliStLC0vcK9Qkn5PZlE39QtcrCntH5cxduxZjE=
cloud.o-forge.io/core/oc-lib v0.0.0-20240726144711-ff286583aada/go.mod h1:V5EL+NV2s9P1/BcFm3/icfLeBYVVMLl1Z0F0eecJZGo=
cloud.o-forge.io/core/oc-lib v0.0.0-20240729121948-e2f722e17bb6 h1:EDwuA0giARIo5UFicOVGAkTIK0xQCk9HQJvNxcflflQ=
cloud.o-forge.io/core/oc-lib v0.0.0-20240729121948-e2f722e17bb6/go.mod h1:V5EL+NV2s9P1/BcFm3/icfLeBYVVMLl1Z0F0eecJZGo=
cloud.o-forge.io/core/oc-lib v0.0.0-20240729130759-8c3b92143e0e h1:abhr0aePGHBhBkuP7OYvCYPmOAVCTA9hlgeJltSpSOM=
cloud.o-forge.io/core/oc-lib v0.0.0-20240729130759-8c3b92143e0e/go.mod h1:V5EL+NV2s9P1/BcFm3/icfLeBYVVMLl1Z0F0eecJZGo=
cloud.o-forge.io/core/oc-lib v0.0.0-20240729132214-d77a403150d8 h1:SWTfZIJ7Nq+1cfrfMEKG95DTxwXISyz1ul0N9zexWK8=
cloud.o-forge.io/core/oc-lib v0.0.0-20240729132214-d77a403150d8/go.mod h1:V5EL+NV2s9P1/BcFm3/icfLeBYVVMLl1Z0F0eecJZGo=
cloud.o-forge.io/core/oc-lib v0.0.0-20240729135315-2f6fab2f7b23 h1:EyWdP+NCgVSdHW9jZbp0nlAwNVLro+yzWZL9mrgdZRM=
cloud.o-forge.io/core/oc-lib v0.0.0-20240729135315-2f6fab2f7b23/go.mod h1:V5EL+NV2s9P1/BcFm3/icfLeBYVVMLl1Z0F0eecJZGo=
cloud.o-forge.io/core/oc-lib v0.0.0-20240729142352-3e72510d53d8 h1:eZJVDix6Kq0CHLi78pKFp3keUcibJInk4NIzaBMegeQ=
cloud.o-forge.io/core/oc-lib v0.0.0-20240729142352-3e72510d53d8/go.mod h1:V5EL+NV2s9P1/BcFm3/icfLeBYVVMLl1Z0F0eecJZGo=
cloud.o-forge.io/core/oc-lib v0.0.0-20240729150539-dc30412f2edc h1:Q70pRG2f6fULpw+BE7ECQO7wk/Wy9VreZPrpuUXJ9yA=
cloud.o-forge.io/core/oc-lib v0.0.0-20240729150539-dc30412f2edc/go.mod h1:V5EL+NV2s9P1/BcFm3/icfLeBYVVMLl1Z0F0eecJZGo=
cloud.o-forge.io/core/oc-lib v0.0.0-20240730063928-0e96b5c01a4f h1:AQuTEgzKJCd05QKyI9yx6v65L4IbPQX7nQLaLvO+ots=
cloud.o-forge.io/core/oc-lib v0.0.0-20240730063928-0e96b5c01a4f/go.mod h1:V5EL+NV2s9P1/BcFm3/icfLeBYVVMLl1Z0F0eecJZGo=
cloud.o-forge.io/core/oc-lib v0.0.0-20240730065931-4730d5b4d401 h1:kp1sHyrRIoa4i9tjUuFvFMVRSfUC+093s9KcWLiURy8=
cloud.o-forge.io/core/oc-lib v0.0.0-20240730065931-4730d5b4d401/go.mod h1:V5EL+NV2s9P1/BcFm3/icfLeBYVVMLl1Z0F0eecJZGo=
cloud.o-forge.io/core/oc-lib v0.0.0-20240730072752-250fefd0d85e h1:1rBqh6/cGgCukaRhj0I5Ypb6ydA9/EHUsH/pw+1yJQ4=
cloud.o-forge.io/core/oc-lib v0.0.0-20240730072752-250fefd0d85e/go.mod h1:V5EL+NV2s9P1/BcFm3/icfLeBYVVMLl1Z0F0eecJZGo=
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= 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 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA=
filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4=

Binary file not shown.

41
populate.sh Executable file
View File

@ -0,0 +1,41 @@
#!/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" == *"<html>"* ]]; then
exit 1
fi
done < <(echo "$row" | jq -c '.content[]')
done < <(jq -c '.[]' $1)
echo
echo
echo
echo "All models submitted correctly!"

View File

@ -55,7 +55,7 @@ func init() {
beego.GlobalControllerRouter["oc-catalog/controllers:DataController"] = append(beego.GlobalControllerRouter["oc-catalog/controllers:DataController"], beego.GlobalControllerRouter["oc-catalog/controllers:DataController"] = append(beego.GlobalControllerRouter["oc-catalog/controllers:DataController"],
beego.ControllerComments{ beego.ControllerComments{
Method: "Search", Method: "Search",
Router: `/:search`, Router: `/search/:search`,
AllowHTTPMethods: []string{"get"}, AllowHTTPMethods: []string{"get"},
MethodParams: param.Make(), MethodParams: param.Make(),
Filters: nil, Filters: nil,
@ -109,7 +109,7 @@ func init() {
beego.GlobalControllerRouter["oc-catalog/controllers:DatacenterController"] = append(beego.GlobalControllerRouter["oc-catalog/controllers:DatacenterController"], beego.GlobalControllerRouter["oc-catalog/controllers:DatacenterController"] = append(beego.GlobalControllerRouter["oc-catalog/controllers:DatacenterController"],
beego.ControllerComments{ beego.ControllerComments{
Method: "Search", Method: "Search",
Router: `/:search`, Router: `/search/:search`,
AllowHTTPMethods: []string{"get"}, AllowHTTPMethods: []string{"get"},
MethodParams: param.Make(), MethodParams: param.Make(),
Filters: nil, Filters: nil,
@ -163,7 +163,7 @@ func init() {
beego.GlobalControllerRouter["oc-catalog/controllers:ProcessingController"] = append(beego.GlobalControllerRouter["oc-catalog/controllers:ProcessingController"], beego.GlobalControllerRouter["oc-catalog/controllers:ProcessingController"] = append(beego.GlobalControllerRouter["oc-catalog/controllers:ProcessingController"],
beego.ControllerComments{ beego.ControllerComments{
Method: "Search", Method: "Search",
Router: `/:search`, Router: `/search/:search`,
AllowHTTPMethods: []string{"get"}, AllowHTTPMethods: []string{"get"},
MethodParams: param.Make(), MethodParams: param.Make(),
Filters: nil, Filters: nil,
@ -199,7 +199,7 @@ func init() {
beego.GlobalControllerRouter["oc-catalog/controllers:ResourceController"] = append(beego.GlobalControllerRouter["oc-catalog/controllers:ResourceController"], beego.GlobalControllerRouter["oc-catalog/controllers:ResourceController"] = append(beego.GlobalControllerRouter["oc-catalog/controllers:ResourceController"],
beego.ControllerComments{ beego.ControllerComments{
Method: "Search", Method: "Search",
Router: `/:search`, Router: `/search/:search`,
AllowHTTPMethods: []string{"get"}, AllowHTTPMethods: []string{"get"},
MethodParams: param.Make(), MethodParams: param.Make(),
Filters: nil, Filters: nil,
@ -253,7 +253,7 @@ func init() {
beego.GlobalControllerRouter["oc-catalog/controllers:StorageController"] = append(beego.GlobalControllerRouter["oc-catalog/controllers:StorageController"], beego.GlobalControllerRouter["oc-catalog/controllers:StorageController"] = append(beego.GlobalControllerRouter["oc-catalog/controllers:StorageController"],
beego.ControllerComments{ beego.ControllerComments{
Method: "Search", Method: "Search",
Router: `/:search`, Router: `/search/:search`,
AllowHTTPMethods: []string{"get"}, AllowHTTPMethods: []string{"get"},
MethodParams: param.Make(), MethodParams: param.Make(),
Filters: nil, Filters: nil,
@ -316,7 +316,7 @@ func init() {
beego.GlobalControllerRouter["oc-catalog/controllers:WorkflowController"] = append(beego.GlobalControllerRouter["oc-catalog/controllers:WorkflowController"], beego.GlobalControllerRouter["oc-catalog/controllers:WorkflowController"] = append(beego.GlobalControllerRouter["oc-catalog/controllers:WorkflowController"],
beego.ControllerComments{ beego.ControllerComments{
Method: "Search", Method: "Search",
Router: `/:search`, Router: `/search/:search`,
AllowHTTPMethods: []string{"get"}, AllowHTTPMethods: []string{"get"},
MethodParams: param.Make(), MethodParams: param.Make(),
Filters: nil, Filters: nil,

View File

@ -52,6 +52,29 @@
} }
} }
}, },
"/data/search/{search}": {
"get": {
"tags": [
"data"
],
"description": "find data by key word\n\u003cbr\u003e",
"operationId": "DataController.Get",
"parameters": [
{
"in": "path",
"name": "search",
"description": "the search you want to get",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "{data} models.data"
}
}
}
},
"/data/{id}": { "/data/{id}": {
"get": { "get": {
"tags": [ "tags": [
@ -126,29 +149,6 @@
} }
} }
}, },
"/data/{search}": {
"get": {
"tags": [
"data"
],
"description": "find data by key word\n\u003cbr\u003e",
"operationId": "DataController.Get",
"parameters": [
{
"in": "path",
"name": "search",
"description": "the search you want to get",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "{data} models.data"
}
}
}
},
"/datacenter/": { "/datacenter/": {
"get": { "get": {
"tags": [ "tags": [
@ -186,6 +186,29 @@
} }
} }
}, },
"/datacenter/search/{search}": {
"get": {
"tags": [
"datacenter"
],
"description": "find datacenter by key word\n\u003cbr\u003e",
"operationId": "DatacenterController.Get",
"parameters": [
{
"in": "path",
"name": "search",
"description": "the search you want to get",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "{datacenter} models.datacenter"
}
}
}
},
"/datacenter/{id}": { "/datacenter/{id}": {
"get": { "get": {
"tags": [ "tags": [
@ -260,29 +283,6 @@
} }
} }
}, },
"/datacenter/{search}": {
"get": {
"tags": [
"datacenter"
],
"description": "find datacenter by key word\n\u003cbr\u003e",
"operationId": "DatacenterController.Get",
"parameters": [
{
"in": "path",
"name": "search",
"description": "the search you want to get",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "{datacenter} models.datacenter"
}
}
}
},
"/processing/": { "/processing/": {
"get": { "get": {
"tags": [ "tags": [
@ -320,6 +320,29 @@
} }
} }
}, },
"/processing/search/{search}": {
"get": {
"tags": [
"processing"
],
"description": "find processing by key word\n\u003cbr\u003e",
"operationId": "ProcessingController.Get",
"parameters": [
{
"in": "path",
"name": "search",
"description": "the search you want to get",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "{processing} models.processing"
}
}
}
},
"/processing/{id}": { "/processing/{id}": {
"get": { "get": {
"tags": [ "tags": [
@ -394,13 +417,27 @@
} }
} }
}, },
"/processing/{search}": { "/resource/": {
"get": { "get": {
"tags": [ "tags": [
"processing" "resource"
], ],
"description": "find processing by key word\n\u003cbr\u003e", "description": "find resource by id\n\u003cbr\u003e",
"operationId": "ProcessingController.Get", "operationId": "ResourceController.GetAll",
"responses": {
"200": {
"description": "{resource} models.resource"
}
}
}
},
"/resource/search/{search}": {
"get": {
"tags": [
"resource"
],
"description": "find resource by key word\n\u003cbr\u003e",
"operationId": "ResourceController.Get",
"parameters": [ "parameters": [
{ {
"in": "path", "in": "path",
@ -410,20 +447,6 @@
"type": "string" "type": "string"
} }
], ],
"responses": {
"200": {
"description": "{processing} models.processing"
}
}
}
},
"/resource/": {
"get": {
"tags": [
"resource"
],
"description": "find resource by id\n\u003cbr\u003e",
"operationId": "ResourceController.GetAll",
"responses": { "responses": {
"200": { "200": {
"description": "{resource} models.resource" "description": "{resource} models.resource"
@ -475,29 +498,6 @@
} }
} }
}, },
"/resource/{search}": {
"get": {
"tags": [
"resource"
],
"description": "find resource by key word\n\u003cbr\u003e",
"operationId": "ResourceController.Get",
"parameters": [
{
"in": "path",
"name": "search",
"description": "the search you want to get",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "{resource} models.resource"
}
}
}
},
"/storage/": { "/storage/": {
"get": { "get": {
"tags": [ "tags": [
@ -535,6 +535,29 @@
} }
} }
}, },
"/storage/search/{search}": {
"get": {
"tags": [
"storage"
],
"description": "find storage by key word\n\u003cbr\u003e",
"operationId": "StorageController.Get",
"parameters": [
{
"in": "path",
"name": "search",
"description": "the search you want to get",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "{storage} models.storage"
}
}
}
},
"/storage/{id}": { "/storage/{id}": {
"get": { "get": {
"tags": [ "tags": [
@ -609,29 +632,6 @@
} }
} }
}, },
"/storage/{search}": {
"get": {
"tags": [
"storage"
],
"description": "find storage by key word\n\u003cbr\u003e",
"operationId": "StorageController.Get",
"parameters": [
{
"in": "path",
"name": "search",
"description": "the search you want to get",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "{storage} models.storage"
}
}
}
},
"/version/": { "/version/": {
"get": { "get": {
"tags": [ "tags": [
@ -683,6 +683,29 @@
} }
} }
}, },
"/workflow/search/{search}": {
"get": {
"tags": [
"workflow"
],
"description": "find workflow by key word\n\u003cbr\u003e",
"operationId": "WorkflowController.Get",
"parameters": [
{
"in": "path",
"name": "search",
"description": "the search you want to get",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "{workflow} models.workflow"
}
}
}
},
"/workflow/{id}": { "/workflow/{id}": {
"get": { "get": {
"tags": [ "tags": [
@ -756,29 +779,6 @@
} }
} }
} }
},
"/workflow/{search}": {
"get": {
"tags": [
"workflow"
],
"description": "find workflow by key word\n\u003cbr\u003e",
"operationId": "WorkflowController.Get",
"parameters": [
{
"in": "path",
"name": "search",
"description": "the search you want to get",
"required": true,
"type": "string"
}
],
"responses": {
"200": {
"description": "{workflow} models.workflow"
}
}
}
} }
}, },
"definitions": { "definitions": {

View File

@ -95,7 +95,7 @@ paths:
responses: responses:
"200": "200":
description: '{data} delete success!' description: '{data} delete success!'
/data/{search}: /data/search/{search}:
get: get:
tags: tags:
- data - data
@ -195,7 +195,7 @@ paths:
responses: responses:
"200": "200":
description: '{datacenter} delete success!' description: '{datacenter} delete success!'
/datacenter/{search}: /datacenter/search/{search}:
get: get:
tags: tags:
- datacenter - datacenter
@ -295,7 +295,7 @@ paths:
responses: responses:
"200": "200":
description: '{processing} delete success!' description: '{processing} delete success!'
/processing/{search}: /processing/search/{search}:
get: get:
tags: tags:
- processing - processing
@ -356,7 +356,7 @@ paths:
responses: responses:
"200": "200":
description: '{resource} delete success!' description: '{resource} delete success!'
/resource/{search}: /resource/search/{search}:
get: get:
tags: tags:
- resource - resource
@ -456,7 +456,7 @@ paths:
responses: responses:
"200": "200":
description: '{storage} delete success!' description: '{storage} delete success!'
/storage/{search}: /storage/search/{search}:
get: get:
tags: tags:
- storage - storage
@ -567,7 +567,7 @@ paths:
responses: responses:
"200": "200":
description: '{workflow} delete success!' description: '{workflow} delete success!'
/workflow/{search}: /workflow/search/{search}:
get: get:
tags: tags:
- workflow - workflow