Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
+------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------+
| GUI Actions | API call(s) | Notes | CLI action (expected command) | Api call(s) | Notes |
+------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------+
| Nodes Actions | | | | | |
| fetchNodes() | IronicApiService.getNodes(), IronicApiService.getPorts(), IronicInspectorApiService.getIntrospectionStatuses() | | Ironic CLI | | |
| registerNodes(nodesToRegister) | Mistral Workflow: tripleo.baremetal.v1.register_or_update input: { nodes_json: nodesToRegister, kernel_name: 'bm-deploy-kernel', ramdisk_name: 'bm-deploy-ramdisk' } | | openstack overcloud node import | Mistral Workflow: tripleo.baremetal.v1.register_or_update input: { nodes_json: nodesToRegister, kernel_name: 'bm-deploy-kernel', ramdisk_name: 'bm-deploy-ramdisk' } | |
| fetchNodeIntrospectionData(nodeId) | IronicInspectorApiService.getIntrospectionData(nodeId) | | Ironic CLI | | |
| startNodesIntrospection(nodeIds) | Mistral Workflow: tripleo.baremetal.v1.introspect input: { node_uuids: nodeIds, max_retry_attempts: 1 } | | openstack overcloud node introspect | | |
| tagNodes(nodeIds, tag) | IronicApiService.patchNode(nodePatch) | | Ironic CLI | | |
| provideNodes | Mistral Workflow: tripleo.baremetal.v1.provide input: { node_uuids: nodeIds } | | openstack overcloud node provide | | |
| manageNodes(nodeIds) | Mistral Workflow: tripleo.baremetal.v1.manage input: { node_uuids: nodeIds } | | ? | | |
| deleteNodes(nodeIds) | IronicApiService.deleteNode(nodeId) | | Ironic CLI | | |
| Plans Actions | | | | | |
| fetchPlans() | Mistral Action: tripleo.plan.list | | openstack overcloud plan list | Mistral Workflow: tripleo.plan_management.v1.list_plans | |
| fetchPlanFiles(planName) | SwiftApiService.getContainer(planName) | | opestack object list <planName> | | |
| fetchPlanDetails(planName) // action to get information from plan-environment.yaml | SwiftApiService.getObject(planName, PLAN_ENVIRONMENT) | Used to retrieve deployment plan description, could be avoided by including description fetching as part of plans listing. Performance needs to be considered though | openstack object save <planName> plan-environment.yaml (?) | | |
| createDefaultPlan(planName) | Mistral Workflow: tripleo.plan_management.v1.create_deployment_plan input: { container: planName, use_default_templates: true } | | openstack overcloud plan create <planName> | | |
| createPlan(planName, planFiles) // by providing directory of files | Mistral Action: tripleo.plan.create_container input: { container: planName } SwiftApiService.createObject(container, fileName, files[fileName]) // uploading all files one by one to swift Mistral Workflow: tripleo.plan_management.v1.create_deployment_plan input: { container: planName } | | openstack overcloud plan create <planName> --templates TEMPLATES | | |
| createPlanFromTarball(planName, file) | Mistral Action: tripleo.plan.create_container input: { container: planName } SwiftApiService.uploadTarball(planName, file) Mistral Workflow: tripleo.plan_management.v1.create_deployment_plan input: { container: planName } | https://github.com/openstack/tripleo-common/blob/master/workbooks/plan_management.yaml#L363 | N/A | | |
| createPlanFromGit(planName, gitUrl) | Mistral Workflow: tripleo.plan_management.v1.create_deployment_plan input: { container: planName, source_url: gitUrl } | | openstack overcloud plan create --source-url SOURCE_URL | | |
| updatePlan(planName, planFiles) // by providing directory of files | SwiftApiService.createObject(container, fileName, files[fileName]) // uploading all files one by one to swift Mistral Workflow: tripleo.plan_management.v1.update_deployment_plan input: { container: planName } | | N/A (update_deployment_plan in tripleoclient/workflows/plan_management.py is available though) | | |
| updatePlanFromTarball(planName, tarballFile) | SwiftApiService.uploadTarball(planName, file) Mistral Workflow: tripleo.plan_management.v1.update_deployment_plan input: { container: planName } | | N/A | | |
| updatePlanFromGit(planName, gitUrl) | Mistral Workflow: tripleo.plan_management.v1.update_deployment_plan input: { container: planName, source_url: gitUrl } | | Not implemented | | |
| deletePlan(planName) | Mistral Action: tripleo.plan.delete input: { container: planName } | https://github.com/openstack/tripleo-common/blob/master/workbooks/plan_management.yaml#L363 | openstack overcloud plan delete <planName> | | |
| exportPlan(planName) | Mistral Workflow: tripleo.plan_management.v1.export_deployment_plan input: { plan: planName } | | openstack overcloud plan export <planName> | | |
| Heat Environments Actions | | | | | |
| fetchEnvironmentConfiguration(planName) | Mistral Action: tripleo.heat_capabilities.get input: { container: planName } | | openstack overcloud plan capabilities list (Not implemented) | | |
| updateEnvironmentConfiguration(planName, data) | Mistral Action: tripleo.heat_capabilities.update input: { environments: data, container: planName } | | openstack overcloud plan capabilities update (Not implemented) | | |
| Parameters Actions | | | | | |
| fetchParameters(planName) | Mistral Action: tripleo.parameters.get_flatten input: { container: planName } | | openstack overcloud parameters list (Not implemented) | | |
| updateParameters(planName, data) | Mistral Action tripleo.parameters.update input: { container: planName, parameters: data } | | openstack overcloud parameters update (Not implemented) | | |
| Roles Actions | | | | | |
| fetchRoles(planName) | Mistral Action: tripleo.role.list input: { container: planName, detail: true } | should be calling the workflow: https://github.com/openstack/tripleo-common/blob/master/workbooks/plan_management.yaml#L818 | openstack overcloud roles list --current | | |
| fetchAvailableRoles(planName) | Mistral Workflow: tripleo.plan_management.v1.list_available_roles input: { container: planName } | https://github.com/openstack/python-tripleoclient/blob/master/tripleoclient/v1/overcloud_plan_roles.py#L22 | openstack overcloud roles list | | |
| selectRoles(planName, roleNames) | Mistral Workflow: tripleo.plan_management.v1.select_roles input: { container: planName, role_names: roleNames } | | openstack overcloud roles select | | |
| Deployment Actions | | | | | |
| getDeploymentStatus(planName) | SwiftApiService.getObject(`${planName}-messages`, 'deployment_status.yaml') | Should use existing workflow | openstack overcloud plan message list | | |
| deployPlan(planName) | Mistral Workflow: tripleo.deployment.v1.deploy_plan input: { container: planName, timeout: 240, config_download: true } | | openstack overcloud deploy --so --many --args --here | There is also "openstack overcloud plan deploy" it probably needs to be removed | |
| undeployPlan(planName) | Mistral Workflow: tripleo.deployment.v1.undeploy_plan input: { container: planName, timeout: 240 } | | openstack stack delete | | |
| recoverDeploymentStatus(planName) | Mistral Workflow: tripleo.deployment.v1.recover_deployment_status input: { container: planName } | | openstack stack recover | | |
| getDeploymentFailures(planName) | Mistral Workflow: tripleo.deployment.v1.get_deployment_failures input: { plan: planName } | | openstack stack failure list | | |
| Stacks Actions | | | | | |
| fetchStacks() | HeatApiService.getStacks() // then for each stack to get outputs HeatApiService.getStack(stack.stack_name, stack.id) | | openstack stack list openstack stack output show <stack id> (Whatever it is) | | |
| fetchResources(stackName, stackId) | HeatApiService.getResources(stackName, stackId) | | openstack stack resource list <stack id> | | |
| Validations Actions | | | | | |
| fetchValidations() | Mistral Action: tripleo.validations.list_validations | | openstack tripleo validation list? | | |
| runValidation(id, currentPlanName) | Mistral Workflow: tripleo.validations.v1.run_validation input: { validation_name: id, plan: currentPlanName } | | openstack tripleo validation run? | | |
| runValidationGroups(groups, currentPlanName) | Mistral Workflow tripleo.validations.v1.run_groups input: { group_names: groups, plan: currentPlanName } | | openstack tripleo validation group list? | | |
| listValidationsResults(planName) | MistralApiService.getWorkflowExecutions() | | openstack | | |
+------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------+-------+
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment