def cloudfoundry_deployment_status(deployment_id): install_status = {} all_status = process_controller("/contrib/CFV2InstallProcess/cloudfoundry/start_install/all_status", "get") current_status = process_controller("/contrib/CFV2InstallProcess/cloudfoundry/start_install/%s/status" % deployment_id, "get") working_index = all_status.index(current_status) steps = [] i = 1 for status in all_status: one_step = {} one_step["id"] = i one_step["name"] = status if i < working_index: one_step["status"] = "Done" elif i == working_index: one_step["status"] = "Working" else: one_step["status"] = "Waiting" steps.append(one_step) i += 1 install_status["status"] = (working_index + 1 >= all_status.length()) install_status["steps"] = steps return json.dumps(install_status)
def del_openstack_deployment(deployment_id): delete_task(deployment_id) headers = {'content-type': 'application/json'} command = {} command["name"] = "openstack-" + deployment_id + "-policy" text, status_code = razor("/api/commands/delete-policy", "post", pay_load=json.dumps(command), headers=headers) command = {} command["name"] = "openstack-" + deployment_id + "-tag" text, status_code = razor("/api/commands/delete-tag", "post", pay_load=json.dumps(command), headers=headers) text, status_code = node_assigner("/deployment/%s" % deployment_id, "delete") text, status_code = process_controller("/openstack/deployments/%s" % deployment_id, "delete") nodes, status_info = razor("/api/collections/nodes", "get") nodes = nodes["items"] for node in nodes: node_name = node["name"] one_node_info, status_code = razor("/api/collections/nodes/%s" % (node_name), "get") if "metadata" in one_node_info and "deployment_name" in one_node_info["metadata"].keys() and one_node_info["metadata"]["deployment_name"] == deployment_id: command = {} command["node"] = one_node_info["name"] command["key"] = "deployment_name" text, status_code = razor("/api/commands/remove-node-metadata", "post", pay_load=json.dumps(command), headers=headers) command["key"] = "id_macaddress" text, status_code = razor("/api/commands/remove-node-metadata", "post", pay_load=json.dumps(command), headers=headers) command["key"] = "to_allocate_hostname" text, status_code = razor("/api/commands/remove-node-metadata", "post", pay_load=json.dumps(command), headers=headers) command["key"] = "to_allocate_ip" text, status_code = razor("/api/commands/remove-node-metadata", "post", pay_load=json.dumps(command), headers=headers) return "Deleted"
def __scaleup_openstack(task_id, deployment_id): total_time = 0 process_controller("/openstack/deployments/%s/installation" % (deployment_id), "put") install_status, status_code = process_controller("/openstack/deployments/%s/status" % (deployment_id), "get") while not install_status['status'] == "FINISH" or install_status['status'] == "FAILED": time.sleep(each_check_span) total_time += each_check_span if total_time >= time_out_to_install_openstack: break install_status, status_code = process_controller("/openstack/deployments/%s/status" % (deployment_id), "get") if install_status['status'] == "FAILED": __log_status(task_id, status[8], False) else: __log_status(task_id, status[8], True)
def __do_setup(task_id, deployment_id, params): create_task(task_id) logger.info("Start to setup VNX backend for OpenStack %s" % deployment_id) result, status_code = process_controller( "/openstack/deployments/%s/storage/vnx" % deployment_id, "post", pay_load=json.dumps({"parameters": params}) ) if status_code > 200: update_task_status(task_id, "result", "failed") else: update_task_status(task_id, "result", "OK")
def __do_deploy(os_deployment_id, cf_domain, project, deployment_id, nfs_server_network, is_neutron, public_net_id,ftp_host): os_deployment = get_openstack_deployment(os_deployment_id) uaa_urls = "\"uaa.%s\", \"\login.%s\"" % (cf_domain, cf_domain) ccdb_type = "pgsql" ntp_server = os_deployment["ntp_server"][0] monitor_ip = os_deployment["monitor_server_ip"] orchestrator_ip = CONF.get("ProcessController","endpoint").split(":")[0] dns_nameservers = os_deployment["tor_dns"] heat_auth_url = "http://%s:5000/v2.0" % os_deployment["controller_ip"] openstack_username = "******" openstack_password = os_deployment["admin_password"] is_neutron_str = str(is_neutron) mco_client_ip = CONF.get("MCO","MCO_Client_IP") mco_client_username = CONF.get("MCO","MCO_Client_Username") mco_client_password = CONF.get("MCO","MCO_Client_Password") headers = {'content-type': 'application/json'} parameter_data = {} parameter_data["cf_domain"] = cf_domain parameter_data["deployment_id"] = deployment_id parameter_data["uaa_urls"] = uaa_urls parameter_data["ccdb_type"] = ccdb_type parameter_data["ntp_server"] = ntp_server parameter_data["monitor_ip"] = monitor_ip parameter_data["orchestrator_ip"] = orchestrator_ip parameter_data["nfs_server_network"] = nfs_server_network parameter_data["dns_nameservers"] = dns_nameservers parameter_data["heat_auth_url"] = heat_auth_url parameter_data["openstack_username"] = openstack_username parameter_data["openstack_password"] = openstack_password parameter_data["neutron"] = is_neutron_str parameter_data["mco_client_ip"] = mco_client_ip parameter_data["mco_client_username"] = mco_client_username parameter_data["mco_client_password"] = mco_client_password parameter_data["public_net_id"] = public_net_id parameter_data["ftp_host"] = ftp_host data = {} data["parameters"] = parameter_data data["timeout_mins"] = time_out_to_install_cloudfoundry process_controller("/contrib/CFV2InstallProcess/create_cf_cluster/%s/%s" % (project, deployment_id), "post", pay_load=json.dumps(data), headers=headers)
def __create_openstack_process(deployment_id, mac_table, deployment_parameters): ntp_server_list = [deployment_parameters['ntp_server']] controller_ip = deployment_parameters['controller_ip'] monitor_contacts = [deployment_parameters['admin_email']] parameters_map = deployment_parameters parameters_map["deployment_id"] = deployment_id parameters_map["domain_name"] = "lss.emc.com" parameters_map["monitor_contacts"] = monitor_contacts parameters_map["ntp_server"] = ntp_server_list parameters_map["mysql_root_password"] = "******" parameters_map["rabbitmq_user"] = "******" parameters_map["rabbitmq_password"] = "******" parameters_map["external_nic"] = "eth1" parameters_map["controller_management_address"] = controller_ip parameters_map["storage_management_address"] = controller_ip parameters_map["storage_api_address"] = controller_ip parameters_map["system_disk_partition"] = "/dev/hba1" deployment_id, status_code = process_controller("/openstack/deployments", "post", pay_load = json.dumps({"parameters":parameters_map}))
def __get_openstack_process(task_id, deployment_id): deployment_parameters, status_code = process_controller("/openstack/deployments/%s" % deployment_id, "get") __log_status(task_id, status[1], True) __log_status(task_id, status[2], status_code) return deployment_parameters