-
Notifications
You must be signed in to change notification settings - Fork 96
/
Copy pathEraMariaProvision.json
1 lines (1 loc) · 30 KB
/
EraMariaProvision.json
1
{"status":{},"spec":{"description":"","resources":{"client_attrs":{"None":{"y":443,"x":658.75},"f9a4c530_deployment":{"y":304,"x":511},"f6be2786_deployment":{"y":331,"x":827.75}},"service_definition_list":[{"singleton":false,"action_list":[{"description":"System action for creating an application","type":"system","critical":false,"runbook":{"task_definition_list":[{"target_any_local_reference":{"kind":"app_service","name":"Era"},"retries":"0","description":"","child_tasks_local_reference_list":[],"name":"0bfadcbf_dag","attrs":{"edges":[],"type":""},"timeout_secs":"0","type":"DAG","variable_list":[]}],"description":"","name":"975ed99a_runbook","main_task_local_reference":{"kind":"app_task","name":"0bfadcbf_dag"},"variable_list":[]},"name":"action_create"},{"description":"System action for deleting an application. Deletes created VMs as well","type":"system","critical":false,"runbook":{"task_definition_list":[{"target_any_local_reference":{"kind":"app_service","name":"Era"},"retries":"0","description":"","child_tasks_local_reference_list":[],"name":"9ade3d68_dag","attrs":{"edges":[],"type":""},"timeout_secs":"0","type":"DAG","variable_list":[]}],"description":"","name":"cf884050_runbook","main_task_local_reference":{"kind":"app_task","name":"9ade3d68_dag"},"variable_list":[]},"name":"action_delete"},{"description":"System action for restarting an application","type":"system","critical":false,"runbook":{"task_definition_list":[{"target_any_local_reference":{"kind":"app_service","name":"Era"},"retries":"0","description":"","child_tasks_local_reference_list":[],"name":"1124d60e_dag","attrs":{"edges":[],"type":""},"timeout_secs":"0","type":"DAG","variable_list":[]}],"description":"","name":"6bcf94d3_runbook","main_task_local_reference":{"kind":"app_task","name":"1124d60e_dag"},"variable_list":[]},"name":"action_restart"},{"description":"System action for starting an application","type":"system","critical":false,"runbook":{"task_definition_list":[{"target_any_local_reference":{"kind":"app_service","name":"Era"},"retries":"0","description":"","child_tasks_local_reference_list":[],"name":"0ae24e3c_dag","attrs":{"edges":[],"type":""},"timeout_secs":"0","type":"DAG","variable_list":[]}],"description":"","name":"84c12573_runbook","main_task_local_reference":{"kind":"app_task","name":"0ae24e3c_dag"},"variable_list":[]},"name":"action_start"},{"description":"System action for stopping an application","type":"system","critical":false,"runbook":{"task_definition_list":[{"target_any_local_reference":{"kind":"app_service","name":"Era"},"retries":"0","description":"","child_tasks_local_reference_list":[],"name":"bf858e3b_dag","attrs":{"edges":[],"type":""},"timeout_secs":"0","type":"DAG","variable_list":[]}],"description":"","name":"6e2e5ff2_runbook","main_task_local_reference":{"kind":"app_task","name":"bf858e3b_dag"},"variable_list":[]},"name":"action_stop"}],"depends_on_list":[],"name":"Era","port_list":[],"tier":"","variable_list":[{"val_type":"STRING","description":"","name":"CLEANUP_OPERATION_ID","type":"LOCAL","value":"","label":"","attrs":{"type":""}},{"val_type":"STRING","description":"","name":"CLUSTER_ID","type":"LOCAL","value":"","label":"","attrs":{"type":""}},{"val_type":"STRING","description":"","name":"COMPUTE_PROF_ID","type":"LOCAL","value":"","label":"","attrs":{"type":""}},{"val_type":"STRING","description":"","name":"CREATE_OPERATION_ID","type":"LOCAL","value":"","label":"","attrs":{"type":""}},{"val_type":"STRING","description":"","name":"DB_ENTITY_NAME","type":"LOCAL","value":"","label":"","attrs":{"type":""}},{"val_type":"STRING","description":"","name":"DB_ID","type":"LOCAL","value":"","label":"","attrs":{"type":""}},{"val_type":"STRING","description":"","name":"DB_PARAM_ID","type":"LOCAL","value":"","label":"","attrs":{"type":""}},{"val_type":"STRING","description":"","name":"DB_SERVER_ID","type":"LOCAL","value":"","label":"","attrs":{"type":""}},{"val_type":"STRING","description":"","name":"DB_SERVER_IP","type":"LOCAL","value":"","label":"","attrs":{"type":""}},{"val_type":"STRING","description":"","name":"DEREGISTER_OPERATION_ID","type":"LOCAL","value":"","label":"","attrs":{"type":""}},{"val_type":"STRING","description":"","name":"NETWORK_PROF_ID","type":"LOCAL","value":"","label":"","attrs":{"type":""}},{"val_type":"STRING","description":"","name":"SLA_ID","type":"LOCAL","value":"","label":"","attrs":{"type":""}},{"val_type":"STRING","description":"","name":"SOFTWARE_PROF_ID","type":"LOCAL","value":"","label":"","attrs":{"type":""}}],"description":""},{"singleton":false,"action_list":[{"description":"System action for creating an application","type":"system","critical":false,"runbook":{"task_definition_list":[{"target_any_local_reference":{"kind":"app_service","name":"Maria"},"retries":"0","description":"","child_tasks_local_reference_list":[],"name":"6fba9cbb_dag","attrs":{"edges":[],"type":""},"timeout_secs":"0","type":"DAG","variable_list":[]}],"description":"","name":"01945104_runbook","main_task_local_reference":{"kind":"app_task","name":"6fba9cbb_dag"},"variable_list":[]},"name":"action_create"},{"description":"System action for deleting an application. Deletes created VMs as well","type":"system","critical":false,"runbook":{"task_definition_list":[{"target_any_local_reference":{"kind":"app_service","name":"Maria"},"retries":"0","description":"","child_tasks_local_reference_list":[],"name":"8bee20f0_dag","attrs":{"edges":[],"type":""},"timeout_secs":"0","type":"DAG","variable_list":[]}],"description":"","name":"fe42eb38_runbook","main_task_local_reference":{"kind":"app_task","name":"8bee20f0_dag"},"variable_list":[]},"name":"action_delete"},{"description":"System action for restarting an application","type":"system","critical":false,"runbook":{"task_definition_list":[{"target_any_local_reference":{"kind":"app_service","name":"Maria"},"retries":"0","description":"","child_tasks_local_reference_list":[],"name":"04cc6e24_dag","attrs":{"edges":[],"type":""},"timeout_secs":"0","type":"DAG","variable_list":[]}],"description":"","name":"ffd25064_runbook","main_task_local_reference":{"kind":"app_task","name":"04cc6e24_dag"},"variable_list":[]},"name":"action_restart"},{"description":"System action for starting an application","type":"system","critical":false,"runbook":{"task_definition_list":[{"target_any_local_reference":{"kind":"app_service","name":"Maria"},"retries":"0","description":"","child_tasks_local_reference_list":[],"name":"9d7e4dfb_dag","attrs":{"edges":[],"type":""},"timeout_secs":"0","type":"DAG","variable_list":[]}],"description":"","name":"ef6acd35_runbook","main_task_local_reference":{"kind":"app_task","name":"9d7e4dfb_dag"},"variable_list":[]},"name":"action_start"},{"description":"System action for stopping an application","type":"system","critical":false,"runbook":{"task_definition_list":[{"target_any_local_reference":{"kind":"app_service","name":"Maria"},"retries":"0","description":"","child_tasks_local_reference_list":[],"name":"897e9b24_dag","attrs":{"edges":[],"type":""},"timeout_secs":"0","type":"DAG","variable_list":[]}],"description":"","name":"b81e8f8b_runbook","main_task_local_reference":{"kind":"app_task","name":"897e9b24_dag"},"variable_list":[]},"name":"action_stop"}],"depends_on_list":[],"name":"Maria","port_list":[],"tier":"","variable_list":[],"description":""}],"substrate_definition_list":[{"description":"","action_list":[],"type":"EXISTING_VM","name":"EraServer","readiness_probe":{"connection_type":"SSH","disable_readiness_probe":true,"address":"@@{ip_address}@@","delay_secs":"60","connection_port":22,"login_credential_local_reference":{"kind":"app_credential","name":"era_creds"}},"os_type":"Linux","create_spec":{"type":"PROVISION_EXISTING_MACHINE","address":"@@{era_ip}@@"},"variable_list":[]},{"description":"","action_list":[],"type":"EXISTING_VM","name":"Era_Maria_DB","readiness_probe":{"connection_type":"SSH","disable_readiness_probe":false,"address":"@@{ip_address}@@","delay_secs":"60","connection_port":22,"login_credential_local_reference":{"kind":"app_credential","name":"db_server_creds"}},"os_type":"Linux","create_spec":{"type":"PROVISION_EXISTING_MACHINE","address":"@@{Era.DB_SERVER_IP}@@"},"variable_list":[]}],"credential_definition_list":[{"username":"era","description":"","type":"KEY","secret":{"attrs":{"is_secret_modified":false,"secret_reference":{}}},"name":"db_server_creds"},{"username":"admin","description":"","type":"PASSWORD","secret":{"attrs":{"is_secret_modified":false,"secret_reference":{}}},"name":"era_creds"}],"package_definition_list":[{"description":"","action_list":[],"type":"DEB","service_local_reference_list":[{"kind":"app_service","name":"Era"}],"name":"EraPackage","version":"","options":{"install_runbook":{"task_definition_list":[{"target_any_local_reference":{"kind":"app_package","name":"EraPackage"},"retries":"0","description":"","message_list":[],"child_tasks_local_reference_list":[{"kind":"app_task","name":"1GetClusterID"},{"kind":"app_task","name":"2GetProfileIDs"},{"kind":"app_task","name":"3GetSLAID"},{"kind":"app_task","name":"4ProvisionDB"},{"kind":"app_task","name":"5MonitorOperation"},{"kind":"app_task","name":"6GetDatabaseInfo"}],"name":"7bd63f34_dag","state":"ACTIVE","attrs":{"edges":[{"from_task_reference":{"kind":"app_task","name":"1GetClusterID"},"edge_type":"user_defined","type":"","to_task_reference":{"kind":"app_task","name":"2GetProfileIDs"}},{"from_task_reference":{"kind":"app_task","name":"2GetProfileIDs"},"edge_type":"user_defined","type":"","to_task_reference":{"kind":"app_task","name":"3GetSLAID"}},{"from_task_reference":{"kind":"app_task","name":"3GetSLAID"},"edge_type":"user_defined","type":"","to_task_reference":{"kind":"app_task","name":"4ProvisionDB"}},{"from_task_reference":{"kind":"app_task","name":"5MonitorOperation"},"edge_type":"user_defined","type":"","to_task_reference":{"kind":"app_task","name":"6GetDatabaseInfo"}},{"from_task_reference":{"kind":"app_task","name":"4ProvisionDB"},"edge_type":"user_defined","type":"","to_task_reference":{"kind":"app_task","name":"5MonitorOperation"}}],"type":""},"timeout_secs":"0","type":"DAG","variable_list":[]},{"target_any_local_reference":{"kind":"app_service","name":"Era"},"retries":"0","description":"","message_list":[],"child_tasks_local_reference_list":[],"name":"1GetClusterID","state":"ACTIVE","attrs":{"exit_status":[],"script":"# Set creds and headers\nera_user = '@@{era_creds.username}@@'\nera_pass = '@@{era_creds.secret}@@'\nheaders = {'Content-Type': 'application\/json', 'Accept': 'application\/json'}\n\n# Get Cluster ID\nurl = \"https:\/\/@@{era_ip}@@:8443\/era\/v0.8\/clusters\"\nresp = urlreq(url, verb='GET', auth='BASIC', user=era_user, passwd=era_pass, headers=headers)\nif resp.ok:\n print \"CLUSTER_ID={0}\".format(json.loads(resp.content)[0]['id'])\nelse:\n print \"Get Cluster ID request failed\", json.dumps(json.loads(resp.content), indent=4)\n exit(1)","eval_variables":["CLUSTER_ID"],"eval_scope":"local","type":"","script_type":"static"},"timeout_secs":"0","type":"SET_VARIABLE","variable_list":[]},{"target_any_local_reference":{"kind":"app_service","name":"Era"},"retries":"0","description":"","message_list":[],"child_tasks_local_reference_list":[],"name":"2GetProfileIDs","state":"ACTIVE","attrs":{"exit_status":[],"script":"# Set creds and headers\nera_user = '@@{era_creds.username}@@'\nera_pass = '@@{era_creds.secret}@@'\nheaders = {'Content-Type': 'application\/json', 'Accept': 'application\/json'}\n\n# Get Software Profile ID\nurl = \"https:\/\/@@{era_ip}@@:8443\/era\/v0.8\/profiles?type=Software&name=@@{software_profile}@@\"\nresp = urlreq(url, verb='GET', auth='BASIC', user=era_user, passwd=era_pass, headers=headers)\nif resp.ok:\n print \"SOFTWARE_PROF_ID={0}\".format(json.loads(resp.content)['id'])\nelse:\n print \"Get Software Profile ID request failed\", json.dumps(json.loads(resp.content), indent=4)\n exit(1)\n\n# Get Compute Profile ID\nurl = \"https:\/\/@@{era_ip}@@:8443\/era\/v0.8\/profiles?type=Compute&name=@@{compute_profile}@@\"\nresp = urlreq(url, verb='GET', auth='BASIC', user=era_user, passwd=era_pass, headers=headers)\nif resp.ok:\n print \"COMPUTE_PROF_ID={0}\".format(json.loads(resp.content)['id'])\nelse:\n print \"Get Compute Profile ID request failed\", json.dumps(json.loads(resp.content), indent=4)\n exit(1)\n\n# Get Network Profile ID\nurl = \"https:\/\/@@{era_ip}@@:8443\/era\/v0.8\/profiles?type=Network&name=@@{network_profile}@@\"\nresp = urlreq(url, verb='GET', auth='BASIC', user=era_user, passwd=era_pass, headers=headers)\nif resp.ok:\n print \"NETWORK_PROF_ID={0}\".format(json.loads(resp.content)['id'])\nelse:\n print \"Get Network Profile ID request failed\", json.dumps(json.loads(resp.content), indent=4)\n exit(1)\n\n# Get DB Parameter ID\nurl = \"https:\/\/@@{era_ip}@@:8443\/era\/v0.8\/profiles?type=Database_Parameter&name=@@{database_parameter}@@\"\nresp = urlreq(url, verb='GET', auth='BASIC', user=era_user, passwd=era_pass, headers=headers)\nif resp.ok:\n print \"DB_PARAM_ID={0}\".format(json.loads(resp.content)['id'])\nelse:\n print \"Get DB Parameter ID request failed\", json.dumps(json.loads(resp.content), indent=4)\n exit(1)","eval_variables":["COMPUTE_PROF_ID","DB_PARAM_ID","NETWORK_PROF_ID","SOFTWARE_PROF_ID"],"eval_scope":"local","type":"","script_type":"static"},"timeout_secs":"0","type":"SET_VARIABLE","variable_list":[]},{"target_any_local_reference":{"kind":"app_service","name":"Era"},"retries":"0","description":"","message_list":[],"child_tasks_local_reference_list":[],"name":"3GetSLAID","state":"ACTIVE","attrs":{"exit_status":[],"script":"# Set creds and headers\nera_user = '@@{era_creds.username}@@'\nera_pass = '@@{era_creds.secret}@@'\nheaders = {'Content-Type': 'application\/json', 'Accept': 'application\/json'}\n\n# Get the list of SLAs\nurl = \"https:\/\/@@{era_ip}@@:8443\/era\/v0.8\/slas\"\nresp = urlreq(url, verb='GET', auth='BASIC', user=era_user, passwd=era_pass, headers=headers)\n\n# Find the desired SLA, and set the corresponding ID to the variable\nif resp.ok:\n for sla in json.loads(resp.content):\n if sla['name'] == \"@@{sla_name}@@\":\n print \"SLA_ID={0}\".format(sla['id'])\nelse:\n print \"Get SLA request failed\", json.dumps(json.loads(resp.content), indent=4)\n exit(1)","eval_variables":["SLA_ID"],"eval_scope":"local","type":"","script_type":"static"},"timeout_secs":"0","type":"SET_VARIABLE","variable_list":[]},{"target_any_local_reference":{"kind":"app_service","name":"Era"},"retries":"0","description":"","message_list":[],"child_tasks_local_reference_list":[],"name":"4ProvisionDB","state":"ACTIVE","attrs":{"exit_status":[],"script":"# Set creds and headers\nera_user = '@@{era_creds.username}@@'\nera_pass = '@@{era_creds.secret}@@'\nheaders = {'Content-Type': 'application\/json', 'Accept': 'application\/json'}\n\n# Set the URL and payload\nurl = \"https:\/\/@@{era_ip}@@:8443\/era\/v0.8\/databases\/provision\"\npayload = {\n \"databaseName\": \"@@{db_name}@@\",\n \"databaseType\": \"mariadb_database\",\n \"databaseDescription\": \"Maria database provisioned by Calm Application @@{calm_application_name}@@\",\n \"clusterId\": \"@@{CLUSTER_ID}@@\",\n \"softwareProfileId\": \"@@{SOFTWARE_PROF_ID}@@\",\n \"computeProfileId\": \"@@{COMPUTE_PROF_ID}@@\",\n \"networkProfileId\": \"@@{NETWORK_PROF_ID}@@\",\n \"dbParameterProfileId\": \"@@{DB_PARAM_ID}@@\",\n \"provisionInfo\": [\n {\n \"name\": \"application_type\",\n \"value\": \"mariadb_database\"\n },\n {\n \"name\": \"listener_port\",\n \"value\": \"3306\"\n },\n {\n \"name\": \"database_size\",\n \"value\": \"200\"\n },\n {\n \"name\": \"working_dir\",\n \"value\": \"\/tmp\"\n },\n {\n \"name\": \"auto_tune_staging_drive\",\n \"value\": True\n },\n {\n \"name\": \"db_password\",\n \"value\": \"@@{db_password}@@\"\n },\n {\n \"name\": \"dbserver_name\",\n \"value\": \"MariaDB-@@{calm_time}@@\"\n },\n {\n \"name\": \"dbserver_description\",\n \"value\": \"Maria database server provisioned by Calm Application @@{calm_application_name}@@\"\n },\n {\n \"name\": \"ssh_public_key\",\n \"value\": \"@@{db_public_key}@@\"\n }\n ],\n \"timeMachineInfo\": {\n \"name\": \"MariaDB-@@{calm_time}@@_TM\",\n \"description\": \"MariaDB-@@{calm_time}@@ time machine\",\n \"slaId\": \"@@{SLA_ID}@@\",\n \"schedule\": {\n \"continuousSchedule\": {\n \"enabled\": True,\n \"logBackupInterval\": 30,\n \"snapshotsPerDay\": 30\n },\n \"snapshotTimeOfDay\": {\n \"hours\": 1,\n \"minutes\": 0,\n \"seconds\": 0\n },\n \"weeklySchedule\": {\n \"enabled\": True,\n \"dayOfWeek\": \"SUNDAY\"\n },\n \"monthlySchedule\": {\n \"enabled\": True,\n \"dayOfMonth\": 1\n },\n \"quartelySchedule\": {\n \"enabled\": True,\n \"startMonth\": \"JANUARY\",\n \"dayOfMonth\": 1\n },\n \"yearlySchedule\": {\n \"enabled\": False,\n \"month\": \"DECEMBER\",\n \"dayOfMonth\": 1\n }\n }\n }\n}\n\n# Make the call and set the response operation ID to the variable\nresp = urlreq(url, verb='POST', auth='BASIC', user=era_user, passwd=era_pass, params=json.dumps(payload), headers=headers)\nif resp.ok:\n print \"CREATE_OPERATION_ID={0}\".format(json.loads(resp.content)['operationId'])\nelse:\n print \"Post Database create request failed\", json.dumps(json.loads(resp.content), indent=4)\n exit(1)","eval_variables":["CREATE_OPERATION_ID"],"eval_scope":"local","type":"","script_type":"static"},"timeout_secs":"0","type":"SET_VARIABLE","variable_list":[]},{"target_any_local_reference":{"kind":"app_service","name":"Era"},"retries":"0","description":"","message_list":[],"child_tasks_local_reference_list":[],"name":"5MonitorOperation","state":"ACTIVE","attrs":{"exit_status":[],"script":"# Set creds, headers, and URL\nera_user = '@@{era_creds.username}@@'\nera_pass = '@@{era_creds.secret}@@'\nheaders = {'Content-Type': 'application\/json', 'Accept': 'application\/json'}\nurl = \"https:\/\/@@{era_ip}@@:8443\/era\/v0.8\/operations\/@@{CREATE_OPERATION_ID}@@\"\n\n# Monitor the operation\nfor x in range(20):\n \n print \"Sleeping for 60 seconds.\"\n sleep(60)\n resp = urlreq(url, verb='GET', auth='BASIC', user=era_user, passwd=era_pass, headers=headers)\n print \"Percentage Complete: {0}\".format(json.loads(resp.content)['percentageComplete'])\n \n # If complete, break out of loop\n if json.loads(resp.content)['percentageComplete'] == \"100\":\n break\n\n# If the operation did not complete within 20 minutes, assume it's not successful and error out\nif json.loads(resp.content)['percentageComplete'] != \"100\":\n print \"Get Operation ID timed out\", json.dumps(json.loads(resp.content), indent=4)\n exit(1)\n\n# Get the newly provision DB Entity Name and set it to a variable\nprint \"DB_ENTITY_NAME={0}\".format(json.loads(resp.content)['entityName'])","eval_variables":["DB_ENTITY_NAME"],"eval_scope":"local","type":"","script_type":"static"},"timeout_secs":"0","type":"SET_VARIABLE","variable_list":[]},{"target_any_local_reference":{"kind":"app_service","name":"Era"},"retries":"0","description":"","message_list":[],"child_tasks_local_reference_list":[],"name":"6GetDatabaseInfo","state":"ACTIVE","attrs":{"exit_status":[],"script":"# Set creds and headers\nera_user = '@@{era_creds.username}@@'\nera_pass = '@@{era_creds.secret}@@'\nheaders = {'Content-Type': 'application\/json', 'Accept': 'application\/json'}\n\n# Get DB Server IP and ID\nurl = \"https:\/\/@@{era_ip}@@:8443\/era\/v0.8\/databases\/name\/@@{DB_ENTITY_NAME}@@?detailed=true\"\nresp = urlreq(url, verb='GET', auth='BASIC', user=era_user, passwd=era_pass, headers=headers)\nif resp.ok:\n print \"DB_SERVER_IP={0}\".format(json.loads(resp.content)['hostIP'])\n print \"DB_ID={0}\".format(json.loads(resp.content)['id'])\n print \"DB_SERVER_ID={0}\".format(json.loads(resp.content)['primaryHost'])\nelse:\n print \"Get DB infor request failed\", json.dumps(json.loads(resp.content), indent=4)\n exit(1)","eval_variables":["DB_ID","DB_SERVER_ID","DB_SERVER_IP"],"eval_scope":"local","type":"","script_type":"static"},"timeout_secs":"0","type":"SET_VARIABLE","variable_list":[]}],"description":"","name":"a56589a3_runbook","state":"ACTIVE","main_task_local_reference":{"kind":"app_task","name":"7bd63f34_dag"},"message_list":[],"variable_list":[]},"type":"","uninstall_runbook":{"task_definition_list":[{"target_any_local_reference":{"kind":"app_package","name":"EraPackage"},"retries":"0","description":"","message_list":[],"child_tasks_local_reference_list":[{"kind":"app_task","name":"1CleanupDB"},{"kind":"app_task","name":"2MonitorCleanupOp"},{"kind":"app_task","name":"3DeregisterDBServer"},{"kind":"app_task","name":"4MonitorDeregOp"}],"name":"99b487fd_dag","state":"ACTIVE","attrs":{"edges":[{"from_task_reference":{"kind":"app_task","name":"1CleanupDB"},"edge_type":"user_defined","type":"","to_task_reference":{"kind":"app_task","name":"2MonitorCleanupOp"}},{"from_task_reference":{"kind":"app_task","name":"3DeregisterDBServer"},"edge_type":"user_defined","type":"","to_task_reference":{"kind":"app_task","name":"4MonitorDeregOp"}},{"from_task_reference":{"kind":"app_task","name":"2MonitorCleanupOp"},"edge_type":"user_defined","type":"","to_task_reference":{"kind":"app_task","name":"3DeregisterDBServer"}}],"type":""},"timeout_secs":"0","type":"DAG","variable_list":[]},{"target_any_local_reference":{"kind":"app_service","name":"Era"},"retries":"0","description":"","message_list":[],"child_tasks_local_reference_list":[],"name":"1CleanupDB","state":"ACTIVE","attrs":{"exit_status":[],"script":"# Set creds and headers\nera_user = '@@{era_creds.username}@@'\nera_pass = '@@{era_creds.secret}@@'\nheaders = {'Content-Type': 'application\/json', 'Accept': 'application\/json'}\n\n# Cleanup the DB and get Operation ID\nurl = \"https:\/\/@@{era_ip}@@:8443\/era\/v0.8\/databases\/@@{DB_ID}@@?storage-cleanup=true&tm-cleanup=true\"\nresp = urlreq(url, verb='DELETE', auth='BASIC', user=era_user, passwd=era_pass, headers=headers)\nif resp.ok:\n print \"CLEANUP_OPERATION_ID={0}\".format(json.loads(resp.content)['operationId'])\nelse:\n print \"Cleanup DB Operation failed\", json.dumps(json.loads(resp.content), indent=4)\n exit(1)","eval_variables":["CLEANUP_OPERATION_ID"],"eval_scope":"local","type":"","script_type":"static"},"timeout_secs":"0","type":"SET_VARIABLE","variable_list":[]},{"target_any_local_reference":{"kind":"app_service","name":"Era"},"retries":"0","description":"","message_list":[],"child_tasks_local_reference_list":[],"name":"2MonitorCleanupOp","state":"ACTIVE","attrs":{"script":"# Set creds, headers, and URL\nera_user = '@@{era_creds.username}@@'\nera_pass = '@@{era_creds.secret}@@'\nheaders = {'Content-Type': 'application\/json', 'Accept': 'application\/json'}\nurl = \"https:\/\/@@{era_ip}@@:8443\/era\/v0.8\/operations\/@@{CLEANUP_OPERATION_ID}@@\"\n\n# Monitor the operation\nfor x in range(20):\n \n print \"Sleeping for 30 seconds.\"\n sleep(30)\n resp = urlreq(url, verb='GET', auth='BASIC', user=era_user, passwd=era_pass, headers=headers)\n print \"Percentage Complete: {0}\".format(json.loads(resp.content)['percentageComplete'])\n \n # If complete, break out of loop\n if json.loads(resp.content)['percentageComplete'] == \"100\":\n break \n\n# If the operation did not complete within 10 minutes, assume it's not successful and error out\nif json.loads(resp.content)['percentageComplete'] != \"100\":\n print \"Cleanup Operation timed out\", json.dumps(json.loads(resp.content), indent=4)\n exit(1)","type":"","command_line_args":"","exit_status":[],"script_type":"static"},"timeout_secs":"0","type":"EXEC","variable_list":[]},{"target_any_local_reference":{"kind":"app_service","name":"Era"},"retries":"0","description":"","message_list":[],"child_tasks_local_reference_list":[],"name":"3DeregisterDBServer","state":"ACTIVE","attrs":{"exit_status":[],"script":"# Set creds and headers\nera_user = '@@{era_creds.username}@@'\nera_pass = '@@{era_creds.secret}@@'\nheaders = {'Content-Type': 'application\/json', 'Accept': 'application\/json'}\n\n# Cleanup the DB and get Operation ID\nurl = \"https:\/\/@@{era_ip}@@:8443\/era\/v0.8\/dbservers\/@@{DB_SERVER_ID}@@?remove=false&soft-remove=false&delete=true&delete-vm-snapshots=true&delete-vgs=true\"\nresp = urlreq(url, verb='DELETE', auth='BASIC', user=era_user, passwd=era_pass, headers=headers)\nif resp.ok:\n print \"DEREGISTER_OPERATION_ID={0}\".format(json.loads(resp.content)['operationId'])\nelse:\n print \"Deregister DB Server Operation failed\", json.dumps(json.loads(resp.content), indent=4)\n exit(1)","eval_variables":["DEREGISTER_OPERATION_ID"],"eval_scope":"local","type":"","script_type":"static"},"timeout_secs":"0","type":"SET_VARIABLE","variable_list":[]},{"target_any_local_reference":{"kind":"app_service","name":"Era"},"retries":"0","description":"","message_list":[],"child_tasks_local_reference_list":[],"name":"4MonitorDeregOp","state":"ACTIVE","attrs":{"script":"# Set creds, headers, and URL\nera_user = '@@{era_creds.username}@@'\nera_pass = '@@{era_creds.secret}@@'\nheaders = {'Content-Type': 'application\/json', 'Accept': 'application\/json'}\nurl = \"https:\/\/@@{era_ip}@@:8443\/era\/v0.8\/operations\/@@{DEREGISTER_OPERATION_ID}@@\"\n\n# Monitor the operation\nfor x in range(20):\n \n print \"Sleeping for 30 seconds.\"\n sleep(30)\n resp = urlreq(url, verb='GET', auth='BASIC', user=era_user, passwd=era_pass, headers=headers)\n print \"Percentage Complete: {0}\".format(json.loads(resp.content)['percentageComplete'])\n \n # If complete, break out of loop\n if json.loads(resp.content)['percentageComplete'] == \"100\":\n break \n\n# If the operation did not complete within 10 minutes, assume it's not successful and error out\nif json.loads(resp.content)['percentageComplete'] != \"100\":\n print \"Deregistration Operation timed out\", json.dumps(json.loads(resp.content), indent=4)\n exit(1)","type":"","command_line_args":"","exit_status":[],"script_type":"static"},"timeout_secs":"0","type":"EXEC","variable_list":[]}],"description":"","name":"a8f36ab1_runbook","state":"ACTIVE","main_task_local_reference":{"kind":"app_task","name":"99b487fd_dag"},"message_list":[],"variable_list":[]}},"variable_list":[]},{"description":"","action_list":[],"type":"DEB","service_local_reference_list":[{"kind":"app_service","name":"Maria"}],"name":"MariaPackage","version":"","options":{"install_runbook":{"task_definition_list":[{"target_any_local_reference":{"kind":"app_package","name":"MariaPackage"},"retries":"0","description":"","message_list":[],"child_tasks_local_reference_list":[],"name":"58ca4a03_dag","state":"ACTIVE","attrs":{"edges":[],"type":""},"timeout_secs":"0","type":"DAG","variable_list":[]}],"description":"","name":"8b1f1a7b_runbook","state":"ACTIVE","main_task_local_reference":{"kind":"app_task","name":"58ca4a03_dag"},"message_list":[],"variable_list":[]},"type":"","uninstall_runbook":{"task_definition_list":[{"target_any_local_reference":{"kind":"app_package","name":"MariaPackage"},"retries":"0","description":"","message_list":[],"child_tasks_local_reference_list":[],"name":"ee8bedbe_dag","state":"ACTIVE","attrs":{"edges":[],"type":""},"timeout_secs":"0","type":"DAG","variable_list":[]}],"description":"","name":"faacff5d_runbook","state":"ACTIVE","main_task_local_reference":{"kind":"app_task","name":"ee8bedbe_dag"},"message_list":[],"variable_list":[]}},"variable_list":[]}],"app_profile_list":[{"deployment_create_list":[{"type":"GREENFIELD","action_list":[],"depends_on_list":[],"name":"f6be2786_deployment","published_service_local_reference_list":[],"max_replicas":"1","package_local_reference_list":[{"kind":"app_package","name":"MariaPackage"}],"substrate_local_reference":{"kind":"app_substrate","name":"Era_Maria_DB"},"min_replicas":"1","variable_list":[],"description":""},{"type":"GREENFIELD","action_list":[],"depends_on_list":[],"name":"f9a4c530_deployment","published_service_local_reference_list":[],"max_replicas":"1","package_local_reference_list":[{"kind":"app_package","name":"EraPackage"}],"substrate_local_reference":{"kind":"app_substrate","name":"EraServer"},"min_replicas":"1","variable_list":[],"description":""}],"description":"","action_list":[],"name":"Default","variable_list":[{"val_type":"STRING","description":"","name":"compute_profile","type":"LOCAL","value":"DEFAULT_OOB_COMPUTE","label":"","attrs":{"type":""},"editables":{"value":true}},{"val_type":"STRING","description":"","name":"database_parameter","type":"LOCAL","value":"DEFAULT_MARIADB_PARAMS","label":"","attrs":{"type":""},"editables":{"value":true}},{"val_type":"STRING","description":"","name":"db_name","type":"LOCAL","value":"mdb_@@{calm_time(\"%Y%m%d%H%M\")}@@","label":"","editables":{"value":true}},{"val_type":"STRING","description":"","name":"db_password","type":"SECRET","value":"","label":"","attrs":{"is_secret_modified":false,"secret_reference":{},"type":""},"editables":{"value":true}},{"val_type":"STRING","description":"","name":"db_public_key","type":"LOCAL","value":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDUm18acWv344TgOXBuOnozuSXytDuqKFVE0+x7CK\/dZ6Y331lBF+f8AE\/Ng3tzxvCDUeth3pa7XO\/Y95zc+hTLGROBmWdgidfykBi2FeQ6hZOcsUDslPUL3Ig8UpPzbOva276YP3266+1BGjLi14neBSJvpSV2DvXQovMb57mhAWs9BlVj3UIviHBMQYXc9RUiyoTBYphqQi5THsQafEFEA+3EJ\/NLhqF4CTRZoxMk+VDZbQCCYk0SNEDvDnhEUCIQW1KDg8HDaHrCcRE8DKwi1dgDjASwcUeDuaFto0WrUaj8FdOvaIwjLKYC9DUgsPel+FOLNkg0cPi0vuXb1CGZ [email protected]","label":"","attrs":{"type":""},"editables":{"value":true}},{"val_type":"STRING","description":"","name":"era_ip","type":"LOCAL","value":"10.45.5.40","label":"","attrs":{"type":""},"editables":{"value":true}},{"val_type":"STRING","description":"","name":"network_profile","type":"LOCAL","value":"DEFAULT_OOB_NETWORK","label":"","attrs":{"type":""},"editables":{"value":true}},{"val_type":"STRING","description":"","name":"sla_name","type":"LOCAL","value":"GOLD","label":"","attrs":{"type":""},"editables":{"value":true}},{"val_type":"STRING","description":"","name":"software_profile","type":"LOCAL","value":"MARIADB_10.3_OOB","label":"","editables":{"value":true}}]}],"published_service_definition_list":[],"default_credential_local_reference":{"kind":"app_credential","name":"era_creds"},"type":"USER"},"name":"EraMariaProvision"},"api_version":"3.0","metadata":{"last_update_time":"1549829811739481","kind":"blueprint","spec_version":3,"creation_time":"1549829055112226","name":"EraMariaProvision"}}