OpenCloud catalog, provides also workspaces, workflows and schedules
Go to file
2024-04-09 15:40:03 +02:00
conf Solved the problem of generating swagger and minimal image (scratch) 2024-02-19 17:57:06 +01:00
controllers Modified the conf loading process, now with onion in conf/conf.go 2024-02-19 17:57:06 +01:00
docs Improved doc 2024-03-22 10:00:35 +01:00
models added user input handling methods 2024-03-22 11:27:25 +01:00
out/docs/UML/plantuml/diagram_object_models added some doc 2024-04-09 15:40:03 +02:00
routers Fixed router not working 2024-02-19 17:57:06 +01:00
scripts applied models changes 2024-03-18 11:25:59 +01:00
selfapi initial commit 2023-03-03 14:43:11 +01:00
services Swagger returning only 404s 2024-02-19 17:57:06 +01:00
.dockerignore initial commit 2023-03-03 14:43:11 +01:00
.gitignore initial commit 2023-03-03 14:43:11 +01:00
conf_template.json Modified the conf loading process, now with onion in conf/conf.go 2024-02-19 17:57:06 +01:00
docker_catalog.json Swagger returning only 404s 2024-02-19 17:57:06 +01:00
docker-compose.backend.yml Fixed router not working 2024-02-19 17:57:06 +01:00
docker-compose.multi.yml initial commit 2023-03-03 14:43:11 +01:00
docker-compose.yml Swagger returning only 404s 2024-02-19 17:57:06 +01:00
Dockerfile fixed a typo 2024-04-09 15:39:32 +02:00
go.mod updated docs and data to work on workflow 2024-02-29 17:43:14 +01:00
go.sum updated docs and data to work on workflow 2024-02-29 17:43:14 +01:00
LICENSE Initial commit 2023-03-03 11:49:07 +01:00
local_catalog.json improved Dockerisation 2024-02-19 17:57:06 +01:00
main.go Swagger returning only 404s 2024-02-19 17:57:06 +01:00
README.md updated docs and data to work on workflow 2024-02-29 17:43:14 +01:00

OC Catalog

OpenCloud Catalog API

Uses the Beego framework

To install the Beego bee command :

go install github.com/beego/bee/v2@master

Running the app locally

In order to run the application we need to correct some errors that beego generates.

Router generation

Beego generates the routers from the comment of the controllers methods. However, there seems to be some errors when we let beego generate th routers from bee run.

We need to use bee generate routers to have a working router file.

Swagger generation

Using bee run -downdoc=true -gendoc=true beego download a swagger template and generate the JSON file (swagger.json) in swagger/. However the swagger template in swagger/index.html does not change the exemple's url for our current JSON file. When running locally we have to edit the call to construct the object holding the swagger information, with the parameter url set with the relative path to our JSON swagger file :

const ui = SwaggerUIBundle({
        url: "swagger.json",
        ...
        ...
      });

This issue is fixed in the Dockerfile build with two sed to change the value of the swagger file URL.

Deployment with Docker compose

Deploy with docker: docker-compose -f docker-compose.yml -f docker-compose.backend.yml up --build

and populate DB (or other scripts) with: docker exec -it oc-catalog_oc-catalog_1 ./scripts/populate_models.sh ./scripts/demo.json

or out of docker ./scripts/populate_models.sh ./scripts/demo.json

Dev

  • Start DB with docker-compose up -d
  • Run the API with bee run -downdoc=true -gendoc=true

Multinode

Deploy :

docker-compose -f docker-compose.yml -f docker-compose.backend.yml -f docker-compose.multi.yml up --build

Populating the MongoDB database

From the root of the projet run :

./scripts/multinode.sh ./scripts/demo.json

This script should be updated to be ran from anywhere.

More documentation

Visit the docs/ directory