def handle_order(self, order): """Handle secret creation using meta info. If type is key create secret if type is asymmetric create secrets create containers if type is certificate TBD :param order: Order to process. :return: None if no follow on processing is needed for this task, otherwise a :class:`FollowOnProcessingStatusDTO` instance with information on how to process this task into the future. """ result_follow_on = common.FollowOnProcessingStatusDTO() order_info = order.to_dict_fields() order_type = order_info.get('type') meta_info = order_info.get('meta') if order_info.get('creator_id'): meta_info.setdefault('creator_id', order_info.get('creator_id')) # Retrieve the project. project = self.project_repo.get(order.project_id) if order_type == models.OrderType.KEY: # Create Secret new_secret = plugin.generate_secret( meta_info, meta_info.get('payload_content_type', 'application/octet-stream'), project ) order.secret_id = new_secret.id LOG.debug("...done creating keys order's secret.") elif order_type == models.OrderType.ASYMMETRIC: # Create asymmetric Secret new_container = plugin.generate_asymmetric_secret( meta_info, meta_info.get('payload_content_type', 'application/octet-stream'), project) order.container_id = new_container.id LOG.debug("...done creating asymmetric order's secret.") elif order_type == models.OrderType.CERTIFICATE: # Request a certificate new_container = cert.issue_certificate_request( order, project, result_follow_on) if new_container: order.container_id = new_container.id LOG.debug("...done requesting a certificate.") else: raise NotImplementedError( u._('Order type "{order_type}" not implemented.').format( order_type=order_type)) return result_follow_on
def _create_secret_for_project(self, project_data): secret_info = {"name": uuidutils.generate_uuid(dashed=False), "algorithm": "aes", "bit_length": 256, "mode": "cbc", "payload_content_type": "application/octet-stream"} new_secret = plugin.generate_secret( secret_info, secret_info.get('payload_content_type'), project_data) return new_secret
def _create_secret_for_project(self, project_data): secret_info = {"name": uuid.uuid4().hex, "algorithm": "aes", "bit_length": 256, "mode": "cbc", "payload_content_type": "application/octet-stream"} new_secret = plugin.generate_secret( secret_info, secret_info.get('payload_content_type'), project_data, self.repos) return new_secret
def handle_order(self, order): """Handle secret creation using meta info. If type is key create secret if type is asymmetric create secrets create containers if type is certificate TBD :param order: Order to process. :return: None if no follow on processing is needed for this task, otherwise a :class:`FollowOnProcessingStatusDTO` instance with information on how to process this task into the future. """ result_follow_on = common.FollowOnProcessingStatusDTO() order_info = order.to_dict_fields() order_type = order_info.get('type') meta_info = order_info.get('meta') if order_info.get('creator_id'): meta_info.setdefault('creator_id', order_info.get('creator_id')) # Retrieve the project. project = self.project_repo.get(order.project_id) if order_type == models.OrderType.KEY: # Create Secret new_secret = plugin.generate_secret( meta_info, meta_info.get('payload_content_type', 'application/octet-stream'), project) order.secret_id = new_secret.id LOG.debug(u._("...done creating keys order's secret.")) elif order_type == models.OrderType.ASYMMETRIC: # Create asymmetric Secret new_container = plugin.generate_asymmetric_secret( meta_info, meta_info.get('payload_content_type', 'application/octet-stream'), project) order.container_id = new_container.id LOG.debug(u._("...done creating asymmetric order's secret.")) elif order_type == models.OrderType.CERTIFICATE: # Request a certificate new_container = cert.issue_certificate_request( order, project, result_follow_on) if new_container: order.container_id = new_container.id LOG.debug(u._("...done requesting a certificate.")) else: raise NotImplementedError( u._('Order type "{order_type}" not implemented.').format( order_type=order_type)) return result_follow_on
def _create_secret_for_project(self, project_data): secret_info = { "name": uuidutils.generate_uuid(dashed=False), "algorithm": "aes", "bit_length": 256, "mode": "cbc", "payload_content_type": "application/octet-stream" } new_secret = plugin.generate_secret( secret_info, secret_info.get('payload_content_type'), project_data) return new_secret
def handle_order(self, order): """Handle secret creation using meta info. If type is key create secret if type is asymmetric create secrets create containers if type is certificate TBD :param order: Order to process. """ order_info = order.to_dict_fields() order_type = order_info.get('type') meta_info = order_info.get('meta') # Retrieve the project. project = self.repos.project_repo.get(order.project_id) if order_type == models.OrderType.KEY: # Create Secret new_secret = plugin.generate_secret( meta_info, meta_info.get('payload_content_type', 'application/octet-stream'), project, self.repos ) order.secret_id = new_secret.id LOG.debug("...done creating keys order's secret.") elif order_type == models.OrderType.ASYMMETRIC: # Create asymmetric Secret new_container = plugin.generate_asymmetric_secret( meta_info, meta_info.get('payload_content_type', 'application/octet-stream'), project, self.repos) order.container_id = new_container.id LOG.debug("...done creating asymmetric order's secret.") elif order_type == models.OrderType.CERTIFICATE: # Request a certificate new_container = cert.issue_certificate_request( order, project, self.repos) if new_container: order.container_id = new_container.id LOG.debug("...done requesting a certificate.") else: raise NotImplementedError( u._('Order type "{order_type}" not implemented.').format( order_type=order_type))
def handle_order(self, order): """Handle secret creation using meta info. If type is key create secret if type is asymmetric create secrets create containers if type is certificate TBD :param order: Order to process. """ order_info = order.to_dict_fields() order_type = order_info.get('type') meta_info = order_info.get('meta') # Retrieve the project. project = self.repos.project_repo.get(order.tenant_id) if order_type == models.OrderType.KEY: # Create Secret new_secret = plugin.generate_secret( meta_info, meta_info.get('payload_content_type', 'application/octet-stream'), project, self.repos ) order.secret_id = new_secret.id LOG.debug("...done creating keys order's secret.") elif order_type == models.OrderType.ASYMMETRIC: # Create asymmetric Secret new_container = plugin.generate_asymmetric_secret( meta_info, meta_info.get('payload_content_type', 'application/octet-stream'), project, self.repos) order.container_id = new_container.id LOG.debug("...done creating asymmetric order's secret.") elif order_type == models.OrderType.CERTIFICATE: # Request a certificate new_container = cert.issue_certificate_request( order, project, self.repos) if new_container: order.container_id = new_container.id LOG.debug("...done requesting a certificate.") else: raise NotImplementedError( 'Order type "{0}" not implemented.'.format(order_type))