This wiki is for developers.
Contents
Table of Contents | ||
---|---|---|
|
High Level Architecture
Akraino workflow process is designed by using spring boot and embedded Camunda workflow engine. The workflow process and Spring boot application provide external rest API. Each external API is responsible for invoking respective Camunda workflow process. Camunda reads the process definitions from the document store or the classpath.
Portal application
The portal application is responsible to initiate the build and deployment process. It is responsible for consuming the public API provided by Akraino spring boot application. It is also responsible for updating the appropriate response, which is provided by the Akraino API.
Akraino Public API
Akraino public API defines the rest API for each portal process. The portal application uses this API to execute various process like build, deploy etc.
Akraino has the following APIs
- Build
- Deploy
- Apache
- ONAP
- Airship
Build
This API is used to build and verify the tar file.
Building the tar file will be done by using the shell script, and the same script is executed as part of the workflow process. The rest endpoint for this API is /build/.
The input parameters for this endpoint is as below.
Code Block | ||
---|---|---|
| ||
{ "filepath": "string", "fileparams": "string", "targetfolder": "string" } |
Info |
---|
• "filepath" path parameter is used to pass the script filename including the file path, which is used to create the tar file. • "fileparams" parameter is used to pass the parameters to the script file. • "targetfolder" is the folder where generated YAML files will be stored, and it is used by the java process to validate the generated YAML files. |
The output of the build API is given below
Code Block | ||
---|---|---|
| ||
{ "message": "string", "status": 0 } |
Info |
---|
Status Code 200 = Build Completed Status Code other than 200 = Build API Failed For each status, an appropriate message is returned. |
Deploy
The rest endpoint for this API is /deploy/
The input parameters for this endpoint is below.
Code Block | ||
---|---|---|
| ||
{ "sitename": "string" "filepath": "string", "fileparams": "string", "winscpfilepath": "string" "winscpfileparams": "string", "remotserver": "string", "port": 0, "username": "string", "password": "string", "destdir": "string", "remotefilename": "string", "remotefileparams": "string", "deploymentverifier": "string", "deploymentverifierfileparams": "string", "noofiterations": 0, "waittime": 0, "postverificationscript": "string", “postverificationScriptparams”: “string” } |
Info |
---|
|
The output of the deployed API is given below
Code Block | ||
---|---|---|
| ||
{ "message": "string", "status": 0 } |
Info |
---|
Status Code 200 = Deploy Completed Status Code other than 200 = Deploy API Failed For each status, an appropriate message is returned. Deployed API will send intermediate status by consuming Portal status update API. |
The intermediate status response is given below.
Code Block | ||
---|---|---|
| ||
{ "siteName": "string", "buildStatus": "string", "createTarStatus": "string", "genesisNodeStatus": "string", "deployToolsStatus": "string", "deployStatus": "string", } |
After completion of the respective status, API will start sending response to the Portal API, which is used to display the intermediate deploy status in Portal.
Tempest
The rest endpoint for this API is /tempest/
The input parameters for Tempest is given below.
Code Block | ||
---|---|---|
| ||
{ "sitename": "string" "filename": "string", "fileparams": "string", "filetrasferscript": "string" "filetransferparams": "string", "remotserver": "string", "port": 0, "username": "string", "password": "string", "destdir": "string", "deploymentverifier": "string", "verifierparams": "string", "noofiterations": 0, "waittime": 0, } |
Info |
---|
|
Apache
The rest endpoint for this API is /apache/
The input parameters for Apache is given below.
Code Block | ||
---|---|---|
| ||
{ "sitename": "string" "filename": "string", "fileparams": "string", "filetrasferscript": "string" "filetransferparams": "string", "remotserver": "string", "port": 0, "username": "string", "password": "string", "destdir": "string", "deploymentverifier": "string", "verifierparams": "string", "noofiterations": 0, "waittime": 0, } |
Info |
---|
|
ONAP
The rest endpoint for this API is /onap/
The input parameters for ONAP is given below.
Code Block | ||
---|---|---|
| ||
{ "sitename": "string" "filename": "string", "fileparams": "string", "filetrasferscript": "string" "filetransferparams": "string", "remotserver": "string", "port": 0, "username": "string", "password": "string", "destdir": "string", "deploymentverifier": "string", "verifierparams": "string", "noofiterations": 0, "waittime": 0, } |
Info |
---|
|
Airship
The rest endpoint for this API is /airship/
The input parameters for airship is given below.
Code Block |
---|
{ “sitename”:”string”, "filepath": "string", "fileparams": "string", “winscpdir”:”string”, "winscpfilepath": "string" "winscpfileparams": "string", "remotserver": "string", "port": 0, "username": "string", "password": "string", "destdir": "string", "remotefilename": "string", "remotefileparams": "string", } |
Info |
---|
|
Camunda BPM Engine
Camunda is a lightweight Business process engine, which will take the business process definitions and execute the business flow. Akraino workflow process has different rest API and each rest API is backed by respective business process workflow. Camunda Business process engine is embedded into the spring boot application, and when we start the spring boot application, Camunda business engine will read the process workflows from the class-path.
Business process workflows
All akraino rest APIs are backed by Camunda business process engine. Each rest API has its own business process. The business process workflows are given below.
Build Business process workflow
Deploy Business process workflow
Tempest Business process workflow
Apache Business process workflow
ONAP Business process workflow
Airship Business process workflow