def handle_delivery(message): logger.info("Got: " + str(message)) try: message = message.decode() except (UnicodeDecodeError, AttributeError): pass parsed_json_message = json.loads(message) owner = parsed_json_message['owner'] tosca_file_name = 'tosca_template' tosca_template_dict = parsed_json_message['toscaTemplate'] tosca_template_path = save_tosca_template(tosca_template_dict) tosca_helper = ToscaHelper(sure_tosca_base_url, tosca_template_path) # nodes_to_deploy = tosca_helper.get_application_nodes() nodes_pairs = tosca_helper.get_deployment_node_pairs() deployService = DeployService(semaphore_base_url=semaphore_base_url, semaphore_username=semaphore_username, semaphore_password=semaphore_password) for node_pair in nodes_pairs: deployService.deploy(node_pair) response = {'toscaTemplate': tosca_template_dict} output_current_milli_time = int(round(time.time() * 1000)) response["creationDate"] = output_current_milli_time logger.info("Returning Deployment") logger.info("Output message:" + json.dumps(response)) return json.dumps(response)
def test(self): logger = logging.getLogger(__name__) message_file_path = str(Path.home()) + '/Downloads/message_deploy_request.json' if os.path.isfile(message_file_path): with open(message_file_path, 'r') as stream: parsed_json_message = json.load(stream) # owner = parsed_json_message['owner'] tosca_file_name = 'tosca_template' tosca_template_dict = parsed_json_message['toscaTemplate'] tmp_path = tempfile.mkdtemp() tosca_template_path = tmp_path + os.path.sep + 'toscaTemplate.yml' with open(tosca_template_path, 'w') as outfile: yaml.dump(tosca_template_dict, outfile, default_flow_style=False) sure_tosca_base_url = 'http://localhost:8081/tosca-sure/1.0.0' polemarch_base_url='http://localhost:30001/api/v2' semaphore_base_url = 'http://localhost:3000/api' tosca_service_is_up = ToscaHelper.service_is_up(sure_tosca_base_url) semaphore_is_up = ToscaHelper.service_is_up(semaphore_base_url) if tosca_service_is_up and semaphore_is_up: tosca_helper = ToscaHelper(sure_tosca_base_url,tosca_template_path) self.assertIsNotNone(tosca_helper.doc_id) nodes_to_deploy = tosca_helper.get_application_nodes() self.assertIsNotNone(nodes_to_deploy) nodes_pairs = tosca_helper.get_deployment_node_pairs() self.assertIsNotNone(nodes_pairs) username = '******' deployService = DeployService(polemarch_base_url=polemarch_base_url,polemarch_username=username,polemarch_password='******', semaphore_base_url=semaphore_base_url,semaphore_username=username,semaphore_password='******') for node_pair in nodes_pairs: deployService.deploy(node_pair)