def submit_task(self, flow_factory, **kwargs): """submit a task. """ with self.persistence as persistence: with self.driver.job_board( self.jobboard_backend_conf.copy(), persistence=persistence) as board: job_id = uuidutils.generate_uuid() job_name = '-'.join([flow_factory.__name__, job_id]) job_logbook = logbook.LogBook(job_name) flow_detail = logbook.FlowDetail(job_name, uuidutils.generate_uuid()) factory_args = () factory_kwargs = {} engines.save_factory_details(flow_detail, flow_factory, factory_args, factory_kwargs) job_logbook.add(flow_detail) persistence.get_connection().save_logbook(job_logbook) job_details = { 'store': kwargs } job = board.post(job_name, book=job_logbook, details=job_details) LOG.info("%s posted" % (job))
def _setup_test_stack(self, stack_name): t = template_format.parse(wp_template) templ = template.Template(t) stack = parser.Stack(self.ctx, stack_name, templ, environment.Environment({'key_name': 'test'}), stack_id=uuidutils.generate_uuid()) return (templ, stack)
def create_group(self, name): session = db.get_session() try: with session.begin(): group_db = models.HashMapGroup( name=name, group_id=uuidutils.generate_uuid()) session.add(group_db) return group_db except exception.DBDuplicateEntry: raise api.GroupAlreadyExists(name, group_db.group_id)
def create_service(self, name): session = db.get_session() try: with session.begin(): service_db = models.HashMapService(name=name) service_db.service_id = uuidutils.generate_uuid() session.add(service_db) return service_db except exception.DBDuplicateEntry: service_db = self.get_service(name=name) raise api.ServiceAlreadyExists( service_db.name, service_db.service_id)
def create_mapping(self, cost, map_type='rate', value=None, service_id=None, field_id=None, group_id=None): if field_id and service_id: raise ValueError('You can only specify one parent.') if not value and not service_id: raise ValueError('You must either specify a value' ' or a service_id') elif value and service_id: raise ValueError('You can\'t specify a value' ' and a service_id.') field_fk = None if field_id: field_db = self.get_field(uuid=field_id) field_fk = field_db.id service_fk = None if service_id: service_db = self.get_service(uuid=service_id) service_fk = service_db.id group_fk = None if group_id: group_db = self.get_group(uuid=group_id) group_fk = group_db.id session = db.get_session() try: with session.begin(): field_map = models.HashMapMapping( mapping_id=uuidutils.generate_uuid(), value=value, cost=cost, field_id=field_fk, service_id=service_fk, map_type=map_type) if group_fk: field_map.group_id = group_fk session.add(field_map) except exception.DBDuplicateEntry: raise api.MappingAlreadyExists(value, field_map.field_id) except exception.DBError: raise api.NoSuchType(map_type) # FIXME(sheeprine): backref are not populated as they used to be. # Querying the item again to get backref. field_map = self.get_mapping(field_map.mapping_id) return field_map
def create_field(self, service_uuid, name): service_db = self.get_service(uuid=service_uuid) session = db.get_session() try: with session.begin(): field_db = models.HashMapField( service_id=service_db.id, name=name, field_id=uuidutils.generate_uuid()) session.add(field_db) # FIXME(sheeprine): backref are not populated as they used to be. # Querying the item again to get backref. field_db = self.get_field(service_uuid=service_uuid, name=name) except exception.DBDuplicateEntry: raise api.FieldAlreadyExists(field_db.name, field_db.field_id) else: return field_db
def create_threshold(self, level, cost, map_type='rate', service_id=None, field_id=None, group_id=None): if field_id and service_id: raise ValueError('You can only specify one parent.') field_fk = None if field_id: field_db = self.get_field(uuid=field_id) field_fk = field_db.id service_fk = None if service_id: service_db = self.get_service(uuid=service_id) service_fk = service_db.id group_fk = None if group_id: group_db = self.get_group(uuid=group_id) group_fk = group_db.id session = db.get_session() try: with session.begin(): threshold_db = models.HashMapThreshold( threshold_id=uuidutils.generate_uuid(), level=level, cost=cost, field_id=field_fk, service_id=service_fk, map_type=map_type) if group_fk: threshold_db.group_id = group_fk session.add(threshold_db) except exception.DBDuplicateEntry: raise api.ThresholdAlreadyExists(level, threshold_db.field_id) except exception.DBError: raise api.NoSuchType(map_type) # FIXME(sheeprine): backref are not populated as they used to be. # Querying the item again to get backref. threshold_db = self.get_threshold(threshold_db.threshold_id) return threshold_db
def test_generate_uuid(self): uuid_string = uuidutils.generate_uuid() self.assertTrue(isinstance(uuid_string, str)) self.assertEqual(len(uuid_string), 36) # make sure there are 4 dashes self.assertEqual(len(uuid_string.replace('-', '')), 32)
def generate_request_id(): return 'req-' + uuidutils.generate_uuid()
def generate_request_id(): return "req-" + uuidutils.generate_uuid()
def __init__(self, name, uuid=None): self.id = uuid if uuid else uuidutils.generate_uuid() self.name = name
def test_delete_unknown_field(self): self.assertRaises(api.NoSuchField, self._db_api.delete_field, uuidutils.generate_uuid())
def test_delete_unknown_group(self): self.assertRaises(api.NoSuchGroup, self._db_api.delete_group, uuidutils.generate_uuid())