Beispiel #1
0
    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))
Beispiel #2
0
 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)
Beispiel #3
0
 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)
Beispiel #4
0
 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)
Beispiel #5
0
 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
Beispiel #6
0
 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
Beispiel #7
0
 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)
Beispiel #9
0
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())
 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)