This wiki page is for developers.
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.
{ "filepath": "string", "fileparams": "string", "targetfolder": "string" }
• "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
{ "message": "string", "status": 0 }
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.
{ "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” }
- "filepath" parameter is used to execute the local shell script.
- "fileparams" is used to pass the parameters to the local shell script
- "winscpfilepath" is used to move the files from the local to the remote machine.
- '"winscpfileparams" is used to pass the parameters to the SCP shell script.
- "remotserver", "username", "password", and "port" is used to connect to the remote machine to execute the script.
- "destdir" is the directory where the remote script file is located.
- "remotefilename" is the shell script file which needs to be executed in the remote machine.
- "remotefileparams" is used to pass the parameters to the remote script file.
- "deploymentverifier" is a script file, which is used to verify the deployment process.
- "deploymentverifierfileparams" is the input parameter to the deployment verification script.
"noofiterations" is used to execute the deployment verification script multiple times within specified intervals.
- "waittime" is used to specify the deployment verification script intervals.
- "postverificationscript" is used to pass the post verification script filename.
- “postverificationScriptparams” are used to pass the parameters to the post verification script.
The output of the deployed API is given below
{ "message": "string", "status": 0 }
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.
{ "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.
{ "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, }
- "filename" parameter is used to execute the local shell script
- "fileparams" is used to pass the parameters to the local shell script
- "filetrasferscript" is used to pass the script file which is used to move the files from local to remote machine.
- "filetransferparams" is used to pass the parameters to the SCP shell script.
- "remotserver", "username", "password", and "port" is used to connect to the remote machine to execute the script.
- "destdir" is the directory where the remote script file is located.
- "remotefilename" is the shell script file which needs to be executed in the remote machine.
- "remotefileparams" is used to pass the parameters to the remote script file.
- "deploymentverifier" is a script file, which is used to verify the deployment process.
- "deploymentverifierfileparams" is the input parameter to the deployment verification script.
"noofiterations" is used to execute the deployment verification script multiple times within specified intervals.
- "waittime" is used to specify the deployment verification script intervals.
Apache
The rest endpoint for this API is /apache/
The input parameters for Apache is given below.
{ "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, }
- "filename" parameter is used to execute the local shell script
- "fileparams" is used to pass the parameters to the local shell script
- "filetrasferscript" is used to pass the script file which is used to move the files from local to remote machine.
- "filetransferparams" is used to pass the parameters to the SCP shell script.
- "remotserver", "username", "password", and "port" is used to connect to the remote machine to execute the script.
- "destdir" is the directory where the remote script file is located.
- "deploymentverifier" is a script file, which is used to verify the deployment process.
- "noofiterations" is used to execute the deployment verification script multiple times within specified intervals.
- "waittime" is used to specify the deployment verification script intervals.
ONAP
The rest endpoint for this API is /onap/
The input parameters for ONAP is given below.
{ "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, }
- “sitename” parameter is used to pass the site name.
- "filepath" parameter is used to execute the local shell script.
- "fileparams" is used to pass the parameters to the local shell script.
- "filetrasferscript" is used to pass the script file which is used to move the files from local to remote machine.
- "filetransferparams" is used to pass the parameters to the SCP shell script.
- "remotserver", "username", "password", and "port" is used to connect to the remote machine to execute the script.
- "destdir" is the directory where the remote script file is located.
- "deploymentverifier" is a script file, which is used to verify the deployment process.
- "deploymentverifier" is a script file, which is used to verify the deployment process.
- "noofiterations" is used to execute the deployment verification script multiple times within specified intervals.
- "waittime" is used to specify the deployment verification script intervals.
Airship
The rest endpoint for this API is /airship/
The input parameters for airship is given below.
{ “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", }
- “sitename” parameter is used to pass the site name.
- "filepath" parameter is used to execute the local shell script.
- "fileparams" is used to pass the parameters to the local shell script.
- “winscpdir” is used to pass the win SCP script file directory.
- "winscpfilepath" is used to pass the script file which is used to move the files from local to the remote machine.
- "winscpfileparams" is used to pass the parameters to the SCP shell script .
- "remotserver", "username", "password", and "port" is used to connect to the remote machine to execute the script.
- "destdir" is the directory where the remote script file is located.
- "remotefilename" is the remote shell script file where we need to execute in remote machine.
- "remotefileparams" is used to pass the parameters to the remote script file.
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