diff --git a/README.md b/README.md
index 346355d6..9ca330b7 100644
--- a/README.md
+++ b/README.md
@@ -12,15 +12,17 @@
- [cm-butterfly](#cm-butterfly)
- [Overview](#overview)
- [Prerequisition](#prerequisition)
- - [Recommend Envionment (Test Finished)](#recommend-envionment-test-finished)
- - [1. Project clone from remote git repository](#1-project-clone-from-remote-git-repository)
- - [2. cm-butterfly needs to run with cloud-migrator subsystems.](#2-cm-butterfly-needs-to-run-with-cloud-migrator-subsystems)
- - [3.User credential registration ⭐⭐](#3user-credential-registration-)
- - [4. subsystem's api host and endpoint configuration](#4-subsystems-api-host-and-endpoint-configuration)
- - [5. self auth settings](#5-self-auth-settings)
+ - [Recommend Envionment (Test Finished)](#recommend-envionment-test-finished)
- [How to Run](#how-to-run)
- - [Change butterfly backend api host](#change-butterfly-backend-api-host)
- - [Explore Awesome cm-butterfly](#explore-awesome-cm-butterfly)
+ - [1. Project clone from remote git repository](#1-project-clone-from-remote-git-repository)
+ - [2. CM-Butterfly needs to run with cloud-migrator subsystems.](#2-cm-butterfly-needs-to-run-with-cloud-migrator-subsystems)
+ - [3.CSP User credential registration ⭐⭐](#3csp-user-credential-registration-)
+ - [4. Subsystem's api host and endpoint configuration](#4-subsystems-api-host-and-endpoint-configuration)
+ - [5. Self auth settings (Optional)](#5-self-auth-settings-optional)
+ - [6. Configure Nginx for Backend API and Access Control](#6-configure-nginx-for-backend-api-and-access-control)
+ - [Update backend url nginx reverse proxy configuration](#update-backend-url-nginx-reverse-proxy-configuration)
+ - [Restrict aceess based on the `Origin` header](#restrict-aceess-based-on-the-origin-header)
+ - [7. Explore Awesome cm-butterfly](#7-explore-awesome-cm-butterfly)
***
# cm-butterfly
@@ -29,28 +31,42 @@ cm-butterfly is a framework that provides a GUI environment for a multi-cloud mi
## Prerequisition
-
-#### Recommend Envionment (Test Finished)
+### Recommend Envionment (Test Finished)
- Ubuntu 22.04
- Go 1.23.0
- Docker engine 25.0.0
-
+
+## How to Run
### 1. Project clone from remote git repository
```bash
git clone https://github.com/cloud-barista/cm-butterfly.git
```
-### 2. cm-butterfly needs to run with cloud-migrator subsystems.
+or if you need specific version with minimize the size
+
+```bash
+git clone --depth 1 --branch v0.3.0 https://github.com/cloud-barista/cm-butterfly.git
+```
+
+### 2. CM-Butterfly needs to run with cloud-migrator subsystems.
cm-butterfly requires execution on each server because it uses the open APIs of several subsystems that make up the cloud migrator project.
-To execute each subsystem, you can execute it from the repository of each subsystem, or you can execute the entire platform using [cm-mayfly](https://github.com/cloud-barista/cm-mayfly), which provides execution and status at the cloud migration platform level.
+To execute each subsystem, you can clone it from the repository of each subsystem.
-You can check the detailed execution method by checking the README.md of each subsystem.
+However, we strongly recommend using the cm-mayfly tool to run the entire platform. It is configured to fully utilize all the features of the cloud-migrator.
-- [cm-spider](https://github.com/cloud-barista/cb-spider/tree/v0.9.6) (v0.9.6)
+Follow the guide in the link. You can run the cloud-migrator with a simple terminal command and access the console.
+
+[cm-mayfly](https://github.com/cloud-barista/cm-mayfly), which provides execution and check status at the cloud migration platform level.
+
+
+If you want to check the detailed information about each subsystem, please visit the link below.
+
+- [cm-spider](https://github.com/cloud-barista/cb-spider)
- [cm-tumblebug](https://github.com/cloud-barista/cb-tumblebug)
- [cm-honeybee](https://github.com/cloud-barista/cm-honeybee)
+- [cm-damselfly](https://github.com/cloud-barista/cm-damselfly)
- [cm-beetle](https://github.com/cloud-barista/cm-beetle)
- [cm-grasshopper](https://github.com/cloud-barista/cm-grasshopper)
- [cm-cicada](https://github.com/cloud-barista/cm-cicada)
@@ -58,8 +74,10 @@ You can check the detailed execution method by checking the README.md of each su
-## 3.User credential registration ⭐⭐
-In cm-butterfly, it is necessary to register user credentials for each CSP. Registered user's CSP credentials are used for tasks such as provisioning virtual machines in a remote environment during performance evaluations, or for retrieving price or cost information from CSP.
+### 3.CSP User credential registration ⭐⭐
+> This step is very important, so I've marked it with stars.
+
+In cm-butterfly, it is necessary to register user credentials for each CSP. Registered user's CSP credentials are used for tasks such as provisioning virtual machines in CSP's remote environment while executing workflow, performnace test preperation, or for retrieving price or cost information from CSP.
Among the subsystems used by cm-butterfly, `CB-TUMBLEBUG` provides a user-friendly process for registering and storing multi-cloud information. It is recommended to register user credentials using the credential registration method provided by `CB-TUMBLEBUG`.
@@ -68,95 +86,75 @@ Follow the guide for initializing CB-Tumblebug to configure multi-cloud informat
> 👉 [Initialize CB-Tumblebug to configure Multi-Cloud info](https://github.com/cloud-barista/cb-tumblebug?tab=readme-ov-file#3-initialize-cb-tumblebug-to-configure-multi-cloud-info)
-### 4. subsystem's api host and endpoint configuration
+### 4. Subsystem's api host and endpoint configuration
⭐ cm-butterfly reads the `cm-butterfly/api/conf/api.yaml` file to configure the host of the subsystem called by cm-butterfly and the API endpoint of each subsystem.
You can call all the APIs configured in api.yaml through the same request format and response format, and you can call them using the operationId, which is a unique value of each API, to call the API.
> 🧨NOTE🧨
-> Except when cm-butterfly and all other servers that are linked are developed in your own local environment, you must use the actual IP address, not localhost or 127.0.0.1, because they are accessed from the client's web browser.
+> Except when cm-butterfly and all other servers that are linked are developed in your own local environment, you must use the actual IP address or Domain name, not localhost or 127.0.0.1, because they are accessed from the client's web browser.
-1) Clone cm-butterfly project if you needed.
- ```bash
- git clone https://github.com/cloud-barista/cm-butterfly.git
-
- ```
+Modify the value of services.{subsystem-name}.baseurl. The host currently in use by default is set to the service DNS of the Docker container. If changes are necessary (if there is a IP address or domain), you need to change the corresponding value. Requests will be sent to the URL defined in api.yaml.
+
+ ```yaml
+ ```yaml
-2) Copy sample `api.yaml` file.
- ```bash
- cd cm-butterfly
- cp ./api/conf/api.yaml.sample ./api/conf/api.yaml
+```yaml
- ```
+ cb-spider: #service name
+ version: 0.10.0
+ baseurl: http://cb-spider:1024/spider ## change this end with /spider
+ auth:
+ type: basic
+ username:
+ password:
+
+ cb-tumblebug:
+ version: 0.10.0
+ baseurl: http://cb-tumblebug:1323/tumblebug ## change this end with /tumblebug
+ auth:
+ type: basic
+ username: default
+ password: default
+
+ cm-beetle:
+ version: 0.3.0
+ baseurl: http://cm-beetle:8056/beetle ## change this end with /beetle
+ auth:
+
+ # others ...
+```
+
-3) Modify the value of services.{subsystem-name}.baseurl.
- ```yaml
+### 5. Self auth settings (Optional)
+By default, cm-butterfly supports one user with migration privileges. (The featrue that add and delete users are not currently provided.)
- cb-spider: #service name
- version: 0.9.4
- baseurl: http://localhost:1024/spider ## change this end with /spider
- auth:
- type: basic
- username:
- password:
-
- cb-tumblebug:
- version: 0.9.12
- baseurl: http://localhost:1323/tumblebug ## change this end with /tumblebug
- auth:
- type: basic
- username: default
- password: default
+When the application starts, it reads `./api/conf/authsetting.yaml`, creates `user.dat` in the same conf folder, and then reads the dat file to process user login.
- cm-beetle:
- version: 0.2.2
- baseurl: http://localhost:8056/beetle ## change this end with /beetle
- auth:
+The default user login information is as follows.
- # others ...
- ```
+> - userId: `cmiguser`
+> - userPassword: `cmiguserPassword!`
-### 5. self auth settings
-By default, cm-butterfly supports one user with migration privileges. (The ability to add and delete users is not currently provided.)
-When the application starts, it reads ./api/conf/authsetting.yaml, creates user.dat in the same conf folder, and then reads the dat file to process user login.
+Before running cm-butterfly, if you want to change the value for login credentials, you need to update user login information to `authsettings.yaml` and run it.
-Before running cm-butterfly, you need to add user login information to authsettings.yaml and run it.
```bash
-cp ./api/conf/authsetting.yaml.sample ./api/conf/authsetting.yaml
+sed -i 's/id: cmiguser/id: what-ever-you-want-id/' ./api/conf/authsetting.yaml
+sed -i 's/password: cmiguserPassword!/password: what-ever-you-want-password/' ./api/conf/authsetting.yaml
```
-The default user login information is as follows.
-
-- userId: `cmiguser`
-- userPassword: `cmiguserPassword!`
-
-Please change the ID and password appropriately as needed!
-
---
-## How to Run
-You can run cm-butterfly in a container environment via docker compose.
-```bash
-cd scripts
-docker compose up -d
-
- ⠴ Network scripts_cm-butterfly-network Created 2.6s
- ⠼ Volume "scripts_cm-butterfly-db" Created 2.5s
- ✔ Container cm-butterfly-db Started 1.8s
- ✔ Container cm-butterfly-api Started 1.2s
- ✔ Container cm-butterfly-front Started 1.4s
-```
-
-
-### Change butterfly backend api host
-The front of cm-butterfly includes a web server, nginx. It uses nginx's reverse proxy to make http calls to the backend API.
+### 6. Configure Nginx for Backend API and Access Control
+#### Update backend url nginx reverse proxy configuration
+The frontend of cm-butterfly includes a web server, `nginx`. It uses nginx's reverse proxy to make http calls to the backend API.
If the API server is not running in the same container environment but is running remotely, you can modify the web server configuration in `./front/nginx.conf` to specify a reverse proxy for the backend host.
@@ -164,7 +162,7 @@ Currently, the container name defined in docker compose is set to DNS using http
```text
# other configuration
- proxy_pass
+ proxy_pass
```
Here's a simple terminal command for you, just run it from the root of your project.
@@ -173,9 +171,23 @@ sed -i 's|proxy_pass http://cm-butterfly-api:4000;|proxy_pass https://whatever.h
```
+#### Restrict aceess based on the `Origin` header
+
+In `./front/nginx.conf`, there is the commented part.
+
+```text
+# if ($http_origin != "http://localhost") {
+# return 403;
+# }
+```
+
+This commented block is intended to restrict API access to requests comming only from written domain, enhancing security by preventing unauthorized origins.
+
+To enable this functionaliy, simply remove the `#` symbols.
+
---
-## Explore Awesome cm-butterfly
+### 7. Explore Awesome cm-butterfly
If you run it through docker compose, you can see the login page by accessing `http://localhost/auth/login`. The user credentials are registered with the default ID and password, and if you log in, you can use cm-butterfly, which supports cloud migration.
diff --git a/api/conf/api.yaml b/api/conf/api.yaml
index c296f7fe..738af505 100644
--- a/api/conf/api.yaml
+++ b/api/conf/api.yaml
@@ -2,7 +2,7 @@ cliSpecVersion: v1
# Service Definitions (Framework Server Basic informations)
services:
cb-spider: #service name
- version: 0.9.8
+ version: 0.10.0
baseurl: http://cb-spider:1024/spider # baseurl is Scheme + Host + Base Path
auth: #If you need an authentication method, describe the type and username and password in the sub
type: basic
@@ -10,7 +10,7 @@ services:
password:
cb-tumblebug:
- version: 0.9.22
+ version: 0.10.0
baseurl: http://cb-tumblebug:1323/tumblebug
auth:
type: basic
@@ -18,7 +18,7 @@ services:
password: default
cm-beetle:
- version: 0.2.3
+ version: 0.3.0
baseurl: http://cm-beetle:8056/beetle
auth:
type: basic
@@ -26,27 +26,27 @@ services:
password: default
cm-ant:
- version: 0.2.5
+ version: 0.3.0
baseurl: http://cm-ant:8880/ant
auth:
cm-honeybee:
- version: 0.2.9
+ version: 0.3.0
baseurl: http://cm-honeybee:8081/honeybee
auth:
cm-cicada:
- version: 0.2.2
+ version: 0.3.0
baseurl: http://cm-cicada:8083/cicada
auth:
cm-grasshopper:
- version: main
+ version: 0.3.0
baseurl: http://cm-grasshopper:8084/grasshopper
auth:
cm-damselfly:
- version: 0.2.0
+ version: 0.3.0
baseurl: http://cm-damselfly:8088/damselfly
auth:
type: basic
@@ -1407,6 +1407,22 @@ serviceActions:
description: "Create or update a label for a resource identified by its uid"
cm-beetle:
+ Deleteuser:
+ method: delete
+ resourcePath: /sample/users/{id}
+ description: "Delete a user with the given information."
+ Patchuser:
+ method: patch
+ resourcePath: /sample/users/{id}
+ description: "Patch a user with the given information."
+ Getuser:
+ method: get
+ resourcePath: /sample/users/{id}
+ description: "Get information of a user with a specific ID."
+ Updateuser:
+ method: put
+ resourcePath: /sample/users/{id}
+ description: "Update a user with the given information."
Testtracing:
method: get
resourcePath: /test/tracing
@@ -1415,6 +1431,10 @@ serviceActions:
method: get
resourcePath: /httpVersion
description: "Checks and logs the HTTP version of the incoming request to the server console."
+ Listinfra:
+ method: get
+ resourcePath: /migration/ns/{nsId}/mci
+ description: "Get the migrated multi-cloud infrastructure (MCI)"
Migrateinfra:
method: post
resourcePath: /migration/ns/{nsId}/mci
@@ -1443,96 +1463,89 @@ serviceActions:
method: post
resourcePath: /sample/users
description: "Create a new user with the given information."
- Getuser:
- method: get
- resourcePath: /sample/users/{id}
- description: "Get information of a user with a specific ID."
- Updateuser:
- method: put
- resourcePath: /sample/users/{id}
- description: "Update a user with the given information."
- Deleteuser:
- method: delete
- resourcePath: /sample/users/{id}
- description: "Delete a user with the given information."
- Patchuser:
- method: patch
- resourcePath: /sample/users/{id}
- description: "Patch a user with the given information."
+
cm-ant:
- Getestimatecost:
+ Getloadtestexecutionstate:
method: get
- resourcePath: /api/v1/cost/estimate
- description: "Fetch estimated cost details based on provider, region, instance type, and resource specifications. Pagination support is provided through `Page` and `Size` parameters."
- Updateandgetestimatecost:
+ resourcePath: /api/v1/load/tests/state/{loadTestKey}
+ description: "Retrieve a load test execution state by load test key."
+ Installloadgenerator:
method: post
- resourcePath: /api/v1/cost/estimate
- description: "Update the estimate cost based on provided specifications and retrieve the updated cost estimation. Required fields for each specification include `ProviderName`, `RegionName`, and `InstanceType`. Specifications can also be provided in a formatted string using `+` delimiter."
+ resourcePath: /api/v1/load/generators
+ description: "Install a load generator either locally or remotely."
+ Getallloadgeneratorinstallinfo:
+ method: get
+ resourcePath: /api/v1/load/generators
+ description: "Retrieve a list of all installed load generators with pagination support."
Getallmonitoringagentinfos:
method: get
- resourcePath: /api/v1/load/monitoring/agents
+ resourcePath: /api/v1/load/monitoring/agent
description: "Retrieve monitoring agent information based on specified criteria."
+ Getallloadtestexecutioninfos:
+ method: get
+ resourcePath: /api/v1/load/tests/infos
+ description: "Retrieve a list of all load test execution information with pagination support."
+ Getloadtestmetrics:
+ method: get
+ resourcePath: /api/v1/load/tests/result/metrics
+ description: "Retrieve load test metrics based on provided parameters."
+ Getallloadtestexecutionstate:
+ method: get
+ resourcePath: /api/v1/load/tests/state
+ description: "Retrieve a list of all load test execution states with pagination support."
Uninstallmonitoringagent:
method: post
- resourcePath: /api/v1/load/monitoring/agents/uninstall
+ resourcePath: /api/v1/load/monitoring/agent/uninstall
description: "Uninstall monitoring agents from specified VMs or all VMs in an mci."
Getloadtestresult:
method: get
- resourcePath: /api/v1/load/test/result
+ resourcePath: /api/v1/load/tests/result
description: "Retrieve load test result based on provided parameters."
- Runloadtest:
- method: post
- resourcePath: /api/v1/load/tests/run
- description: "Start a load test using the provided load test configuration."
- Getloadtestexecutionstate:
+ Getlastloadtestresult:
method: get
- resourcePath: /api/v1/load/tests/state/{loadTestKey}
- description: "Retrieve a load test execution state by load test key."
+ resourcePath: /api/v1/load/tests/result/last
+ description: "Retrieve last load test result based on provided parameters."
+ Getlastloadtestmetrics:
+ method: get
+ resourcePath: /api/v1/load/tests/result/metrics/last
+ description: "Retrieve last load test metrics based on provided parameters."
+ Stoploadtest:
+ method: post
+ resourcePath: /api/v1/load/tests/stop
+ description: "Stop a running load test using the provided load test key."
Antserverreadiness:
method: get
resourcePath: /readyz
description: "This endpoint checks if the CB-Ant API server is ready by verifying the status of both the load service and the cost service. If either service is unavailable, it returns a 503 status indicating the server is not ready."
+ Updateestimateforecastcostraw:
+ method: post
+ resourcePath: /api/v1/cost/estimate/forecast/raw
+ description: "Update and retrieve raw forecasted cost estimates for specified cost resources and additional AWS information over the past 14 days."
Uninstallloadgenerator:
method: delete
resourcePath: /api/v1/load/generators/{loadGeneratorInstallInfoId}
description: "Uninstall a previously installed load generator."
- Installmonitoringagent:
- method: post
- resourcePath: /api/v1/load/monitoring/agent/install
- description: "Install a monitoring agent on specific mci."
- Getloadtestmetrics:
- method: get
- resourcePath: /api/v1/load/test/metrics
- description: "Retrieve load test metrics based on provided parameters."
- Getallloadtestexecutioninfos:
- method: get
- resourcePath: /api/v1/load/tests/infos
- description: "Retrieve a list of all load test execution information with pagination support."
Getloadtestexecutioninfo:
method: get
resourcePath: /api/v1/load/tests/infos/{loadTestKey}
description: "Retrieve the load test execution state information for a specific load test key."
+ Runloadtest:
+ method: post
+ resourcePath: /api/v1/load/tests/run
+ description: "Start a load test using the provided load test configuration."
Getlastloadtestexecutionstate:
method: get
resourcePath: /api/v1/load/tests/state/last
description: "Retrieve a last load test execution state by given ids."
- Updateestimateforecastcostraw:
- method: post
- resourcePath: /api/v1/cost/estimate/forecast/raw
- description: "Update and retrieve raw forecasted cost estimates for specified cost resources and additional AWS information over the past 14 days."
- Getallloadgeneratorinstallinfo:
+ Getestimatecost:
method: get
- resourcePath: /api/v1/load/generators
- description: "Retrieve a list of all installed load generators with pagination support."
- Installloadgenerator:
+ resourcePath: /api/v1/cost/estimate
+ description: "Fetch estimated cost details based on provider, region, instance type, and resource specifications. Pagination support is provided through `Page` and `Size` parameters."
+ Updateandgetestimatecost:
method: post
- resourcePath: /api/v1/load/generators
- description: "Install a load generator either locally or remotely."
- Getallloadtestexecutionstate:
- method: get
- resourcePath: /api/v1/load/tests/state
- description: "Retrieve a list of all load test execution states with pagination support."
+ resourcePath: /api/v1/cost/estimate
+ description: "Update the estimate cost based on provided specifications and retrieve the updated cost estimation. Required fields for each specification include `ProviderName`, `RegionName`, and `InstanceType`. Specifications can also be provided in a formatted string using `+` delimiter."
Getestimateforecastcost:
method: get
resourcePath: /api/v1/cost/estimate/forecast
@@ -1541,48 +1554,60 @@ serviceActions:
method: post
resourcePath: /api/v1/cost/estimate/forecast
description: "Update and retrieve forecasted cost estimates for a specified namespace and migration configuration ID over the past 14 days."
- Stoploadtest:
+ Installmonitoringagent:
method: post
- resourcePath: /api/v1/load/tests/stop
- description: "Stop a running load test using the provided load test key."
+ resourcePath: /api/v1/load/monitoring/agent/install
+ description: "Install a monitoring agent on specific mci."
cm-honeybee:
- Health-Check-Readyz:
+ Import-Helm:
+ method: post
+ resourcePath: /source_group/{sgId}/connection_info/{connId}/import/helm
+ description: "Import the helm information."
+ Get-Helm-Info-Source-Group:
method: get
- resourcePath: /readyz
- description: "Check Honeybee is ready"
- Get-Software-Info:
+ resourcePath: /source_group/{sgId}/helm
+ description: "Get the helm information for all connections in the source group."
+ Get-Kubernetes-Info-Source-Group:
method: get
- resourcePath: /source_group/{sgId}/connection_info/{connId}/software
- description: "Get the software information of the connection information."
+ resourcePath: /source_group/{sgId}/kubernetes
+ description: "Get the kubernetes information for all connections in the source group."
+ Get-Connection-Info:
+ method: get
+ resourcePath: /source_group/{sgId}/connection_info/{connId}
+ description: "Get the connection information."
+ Update-Connection-Info:
+ method: put
+ resourcePath: /source_group/{sgId}/connection_info/{connId}
+ description: "Update the connection information."
+ Delete-Connection-Info:
+ method: delete
+ resourcePath: /source_group/{sgId}/connection_info/{connId}
+ description: "Delete the connection information."
+ Get-Helm-Info:
+ method: get
+ resourcePath: /source_group/{sgId}/connection_info/{connId}/helm
+ description: "Get the helm information of the connection information."
+ Import-Kubernetes:
+ method: post
+ resourcePath: /source_group/{sgId}/connection_info/{connId}/import/kubernetes
+ description: "Import the kubernetes information."
+ Get-Infra-Info:
+ method: get
+ resourcePath: /source_group/{sgId}/connection_info/{connId}/infra
+ description: "Get the infra information of the connection information."
+ Refresh-Connection-Info-Status:
+ method: put
+ resourcePath: /source_group/{sgId}/connection_info/{connId}/refresh
+ description: "Refresh the connection info status."
Get-Infra-Info-Source-Group-Refined:
method: get
resourcePath: /source_group/{sgId}/infra/refined
description: "Get the refined infra information for all connections in the source group."
- Get-Benchmark-Info:
- method: get
- resourcePath: /bench/{connId}
- description: "Get the benchmark information of the connection information."
- Import-Helm:
- method: post
- resourcePath: /source_group/{sgId}/connection_info/{connId}/import/helm
- description: "Import the helm information."
- Import-Infra-Source-Group:
- method: post
- resourcePath: /source_group/{sgId}/import/infra
- description: "Import infra information for all connections in the source group."
Get-Software-Info-Source-Group:
method: get
resourcePath: /source_group/{sgId}/software
description: "Get the software information for all connections in the source group."
- Stop-Benchmark:
- method: post
- resourcePath: /bench/{connId}/stop
- description: "Stop the benchmark"
- Get-Connection-Info-Directly:
- method: get
- resourcePath: /connection_info/{connId}
- description: "Get the connection information directly."
Get-Source-Group:
method: get
resourcePath: /source_group/{sgId}
@@ -1595,6 +1620,38 @@ serviceActions:
method: delete
resourcePath: /source_group/{sgId}
description: "Delete the source group."
+ Import-Infra-Source-Group:
+ method: post
+ resourcePath: /source_group/{sgId}/import/infra
+ description: "Import infra information for all connections in the source group."
+ Get-Infra-Info-Source-Group:
+ method: get
+ resourcePath: /source_group/{sgId}/infra
+ description: "Get the infra information for all connections in the source group."
+ Get-Benchmark-Info:
+ method: get
+ resourcePath: /bench/{connId}
+ description: "Get the benchmark information of the connection information."
+ Register-Target-To-Source-Group:
+ method: post
+ resourcePath: /source_group/{sgId}/target
+ description: "Register target information to the source group."
+ Refresh-Source-Group-Connection-Info-Status:
+ method: put
+ resourcePath: /source_group/{sgId}/refresh
+ description: "Refresh connection info status of the source group."
+ Get-Software-Info:
+ method: get
+ resourcePath: /source_group/{sgId}/connection_info/{connId}/software
+ description: "Get the software information of the connection information."
+ Import-Kubernetes-Source-Group:
+ method: post
+ resourcePath: /source_group/{sgId}/import/kubernetes
+ description: "Import kubernetes information for all connections in the source group."
+ Health-Check-Readyz:
+ method: get
+ resourcePath: /readyz
+ description: "Check Honeybee is ready"
List-Connection-Info:
method: get
resourcePath: /source_group/{sgId}/connection_info
@@ -1603,58 +1660,34 @@ serviceActions:
method: post
resourcePath: /source_group/{sgId}/connection_info
description: "Create the connection information."
- Get-Connection-Info:
- method: get
- resourcePath: /source_group/{sgId}/connection_info/{connId}
- description: "Get the connection information."
- Update-Connection-Info:
- method: put
- resourcePath: /source_group/{sgId}/connection_info/{connId}
- description: "Update the connection information."
- Delete-Connection-Info:
- method: delete
- resourcePath: /source_group/{sgId}/connection_info/{connId}
- description: "Delete the connection information."
- Get-Kubernetes-Info:
- method: get
- resourcePath: /source_group/{sgId}/connection_info/{connId}/kubernetes
- description: "Get the kubernetes information of the connection information."
- Get-Helm-Info-Source-Group:
- method: get
- resourcePath: /source_group/{sgId}/helm
- description: "Get the helm information for all connections in the source group."
- Get-Kubernetes-Info-Source-Group:
- method: get
- resourcePath: /source_group/{sgId}/kubernetes
- description: "Get the kubernetes information for all connections in the source group."
- Import-Kubernetes-Source-Group:
+ Import-Software:
method: post
- resourcePath: /source_group/{sgId}/import/kubernetes
- description: "Import kubernetes information for all connections in the source group."
+ resourcePath: /source_group/{sgId}/connection_info/{connId}/import/software
+ description: "Import the software information."
+ Stop-Benchmark:
+ method: post
+ resourcePath: /bench/{connId}/stop
+ description: "Stop the benchmark"
+ Get-Infra-Info-Refined:
+ method: get
+ resourcePath: /source_group/{sgId}/connection_info/{connId}/infra/refined
+ description: "Get the refined infra information of the connection information."
Import-Software-Source-Group:
method: post
resourcePath: /source_group/{sgId}/import/software
description: "Import software information for all connections in the source group."
- Get-Infra-Info-Source-Group:
- method: get
- resourcePath: /source_group/{sgId}/infra
- description: "Get the infra information for all connections in the source group."
- Refresh-Source-Group-Connection-Info-Status:
- method: put
- resourcePath: /source_group/{sgId}/refresh
- description: "Refresh connection info status of the source group."
Import-Infra:
method: post
resourcePath: /source_group/{sgId}/connection_info/{connId}/import/infra
description: "Import the infra information."
- Get-Infra-Info-Refined:
+ Get-Connection-Info-Directly:
method: get
- resourcePath: /source_group/{sgId}/connection_info/{connId}/infra/refined
- description: "Get the refined infra information of the connection information."
- Import-Helm-Source-Group:
- method: post
- resourcePath: /source_group/{sgId}/import/helm
- description: "Import helm information for all connections in the source group."
+ resourcePath: /connection_info/{connId}
+ description: "Get the connection information directly."
+ Refresh-Connection-Info-Status-Directly:
+ method: put
+ resourcePath: /connection_info/{connId}/refresh
+ description: "Refresh the connection info status directly."
List-Source-Group:
method: get
resourcePath: /source_group
@@ -1663,40 +1696,52 @@ serviceActions:
method: post
resourcePath: /source_group
description: "Register the source group."
- Import-Kubernetes:
+ Get-Kubernetes-Info:
+ method: get
+ resourcePath: /source_group/{sgId}/connection_info/{connId}/kubernetes
+ description: "Get the kubernetes information of the connection information."
+ Import-Helm-Source-Group:
method: post
- resourcePath: /source_group/{sgId}/connection_info/{connId}/import/kubernetes
- description: "Import the kubernetes information."
+ resourcePath: /source_group/{sgId}/import/helm
+ description: "Import helm information for all connections in the source group."
Run-Benchmark-Info:
method: post
resourcePath: /bench/{connId}/run
description: "Run the benchmark information of the connection information. If no Benchmark Agent is present on the connected server, it will be automatically installed, and the benchmark will be executed."
- Get-Helm-Info:
- method: get
- resourcePath: /source_group/{sgId}/connection_info/{connId}/helm
- description: "Get the helm information of the connection information."
- Import-Software:
- method: post
- resourcePath: /source_group/{sgId}/connection_info/{connId}/import/software
- description: "Import the software information."
- Get-Infra-Info:
- method: get
- resourcePath: /source_group/{sgId}/connection_info/{connId}/infra
- description: "Get the infra information of the connection information."
- Register-Target-To-Source-Group:
- method: post
- resourcePath: /source_group/{sgId}/target
- description: "Register target information to the source group."
cm-cicada:
- List-Task-Component:
+ Get-Task-Directly:
method: get
- resourcePath: /task_component
- description: "Get a list of task component."
- Create-Task-Component:
- method: post
- resourcePath: /task_component
- description: "Register the task component."
+ resourcePath: /task/{taskId}
+ description: "Get the task directly."
+ Get-Task-Component-By-Name:
+ method: get
+ resourcePath: /task_component/name/{tcName}
+ description: "Get the task component by name."
+ Get-Task-Component:
+ method: get
+ resourcePath: /task_component/{tcId}
+ description: "Get the task component."
+ Update-Task-Component:
+ method: put
+ resourcePath: /task_component/{tcId}
+ description: "Update the task component."
+ Delete-Task-Component:
+ method: delete
+ resourcePath: /task_component/{tcId}
+ description: "Delete the task component."
+ Get-Task-Logs:
+ method: get
+ resourcePath: /workflow/{wfId}/workflowRun/{wfRunId}/task/{taskId}/taskTryNum/{taskTyNum}/logs
+ description: "Get the task Logs."
+ List-Workflow-Template:
+ method: get
+ resourcePath: /workflow_template
+ description: "Get a list of workflow template."
+ Get-Import-Errors:
+ method: get
+ resourcePath: /importErrors
+ description: "Get the importErrors."
List-Workflow:
method: get
resourcePath: /workflow
@@ -1709,54 +1754,58 @@ serviceActions:
method: get
resourcePath: /workflow/name/{wfName}
description: "Get the workflow by name."
+ List-Task-From-Task-Group:
+ method: get
+ resourcePath: /workflow/{wfId}/task_group/{tgId}/task
+ description: "Get a task list from the task group."
+ Health-Check-Readyz:
+ method: get
+ resourcePath: /readyz
+ description: "Check Cicada is ready"
Get-Event-Logs:
method: get
resourcePath: /workflow/{wfId}/eventlogs
description: "Get Eventlog."
+ Get-Workflow-Runs:
+ method: get
+ resourcePath: /workflow/{wfId}/runs
+ description: "Get the task Logs."
+ Get-Workflowversion:
+ method: get
+ resourcePath: /workflow/{wfId}/version/{verId}
+ description: "Get the WorkflowVersion."
Get-Task-Instances:
method: get
resourcePath: /workflow/{wfId}/workflowRun/{wfRunId}/taskInstances
description: "Get the task Logs."
- Get-Task-Directly:
- method: get
- resourcePath: /task/{taskId}
- description: "Get the task directly."
- Get-Task-Component-By-Name:
+ Get-Task-Group-Directly:
method: get
- resourcePath: /task_component/name/{tcName}
- description: "Get the task component by name."
- Get-Workflow-Runs:
+ resourcePath: /task_group/{tgId}
+ description: "Get the task group directly."
+ List-Task:
method: get
- resourcePath: /workflow/{wfId}/runs
- description: "Get the task Logs."
+ resourcePath: /workflow/{wfId}/task
+ description: "Get a task list of the workflow."
Get-Task-Group:
method: get
resourcePath: /workflow/{wfId}/task_group/{tgId}
description: "Get the task group."
- Clear-Task-Instances:
- method: post
- resourcePath: /workflow/{wfId}/workflowRun/{wfRunId}/task/{taskId}/clear
- description: "Clear the task Instance."
- Get-Task-Logs:
+ List-Workflowversion:
method: get
- resourcePath: /workflow/{wfId}/workflowRun/{wfRunId}/task/{taskId}/taskTryNum/{taskTyNum}/logs
- description: "Get the task Logs."
- Get-Workflow-Template-By-Name:
- method: get
- resourcePath: /workflow_template/name/{wfName}
- description: "Get the workflow template by name."
+ resourcePath: /workflow/{wfId}/version
+ description: "Get a workflowVersion list."
Get-Workflow-Template:
method: get
resourcePath: /workflow_template/{wftId}
description: "Get the workflow template."
- Get-Import-Errors:
- method: get
- resourcePath: /importErrors
- description: "Get the importErrors."
- Get-Task-Group-Directly:
+ List-Task-Component:
method: get
- resourcePath: /task_group/{tgId}
- description: "Get the task group directly."
+ resourcePath: /task_component
+ description: "Get a list of task component."
+ Create-Task-Component:
+ method: post
+ resourcePath: /task_component
+ description: "Register the task component."
Get-Workflow:
method: get
resourcePath: /workflow/{wfId}
@@ -1769,72 +1818,60 @@ serviceActions:
method: delete
resourcePath: /workflow/{wfId}
description: "Delete the workflow."
- Run-Workflow:
- method: post
- resourcePath: /workflow/{wfId}/run
- description: "Run the workflow."
- List-Task:
- method: get
- resourcePath: /workflow/{wfId}/task
- description: "Get a task list of the workflow."
- List-Task-From-Task-Group:
- method: get
- resourcePath: /workflow/{wfId}/task_group/{tgId}/task
- description: "Get a task list from the task group."
- List-Workflow-Template:
- method: get
- resourcePath: /workflow_template
- description: "Get a list of workflow template."
- Health-Check-Readyz:
- method: get
- resourcePath: /readyz
- description: "Check Cicada is ready"
- Get-Task-Component:
+ Get-Workflow-Template-By-Name:
method: get
- resourcePath: /task_component/{tcId}
- description: "Get the task component."
- Update-Task-Component:
- method: put
- resourcePath: /task_component/{tcId}
- description: "Update the task component."
- Delete-Task-Component:
- method: delete
- resourcePath: /task_component/{tcId}
- description: "Delete the task component."
+ resourcePath: /workflow_template/name/{wfName}
+ description: "Get the workflow template by name."
Get-Task:
method: get
resourcePath: /workflow/{wfId}/task/{taskId}
description: "Get the task."
- List-Task-Group:
- method: get
- resourcePath: /workflow/{wfId}/task_group
- description: "Get a task group list of the workflow."
Get-Task-From-Task-Group:
method: get
resourcePath: /workflow/{wfId}/task_group/{tgId}/task/{taskId}
description: "Get the task from the task group."
+ Clear-Task-Instances:
+ method: post
+ resourcePath: /workflow/{wfId}/workflowRun/{wfRunId}/task/{taskId}/clear
+ description: "Clear the task Instance."
+ Run-Workflow:
+ method: post
+ resourcePath: /workflow/{wfId}/run
+ description: "Run the workflow."
+ List-Task-Group:
+ method: get
+ resourcePath: /workflow/{wfId}/task_group
+ description: "Get a task group list of the workflow."
cm-grasshopper:
- Health-Check-Readyz:
+ Get-Migration-List:
method: get
- resourcePath: /readyz
- description: "Check Grasshopper is ready"
- Get-Execution-List:
- method: post
- resourcePath: /software/execution_list
- description: "Get software migration execution list."
- Install-Software:
- method: post
- resourcePath: /software/install
- description: "Install pieces of software to target."
+ resourcePath: /software/migration_list/{sgId}
+ description: "Get software migration list."
Register-Software:
method: post
resourcePath: /software/register
- description: 'Register the software.