Example #1
0
 def create_reservation(self, values):
     """Create reservation."""
     reservation_values = {
         'lease_id': values['lease_id'],
         'resource_id': values['resource_id'],
         'resource_type': values['resource_type'],
         'status': 'pending'
     }
     db_api.reservation_create(reservation_values)
Example #2
0
 def create_reservation(self, values):
     """Create reservation."""
     reservation_values = {
         'lease_id': values['lease_id'],
         'resource_id': values['resource_id'],
         'resource_type': values['resource_type'],
         'status': 'pending'
     }
     db_api.reservation_create(reservation_values)
 def create_reservation(self, values):
     """Create reservation."""
     pool = rp.ReservationPool()
     pool_name = str(uuid.uuid4())
     pool_instance = pool.create(name=pool_name)
     reservation_values = {
         'id': pool_name,
         'lease_id': values['lease_id'],
         'resource_id': pool_instance.id,
         'resource_type': values['resource_type'],
         'status': 'pending',
     }
     reservation = db_api.reservation_create(reservation_values)
     count_range = str(values['min']) + '-' + str(values['max'])
     host_values = {
         'reservation_id': reservation['id'],
         'resource_properties': values['resource_properties'],
         'hypervisor_properties': values['hypervisor_properties'],
         'count_range': count_range,
         'status': 'pending',
     }
     db_api.host_reservation_create(host_values)
     host_ids = self._matching_hosts(
         values['hypervisor_properties'],
         values['resource_properties'],
         count_range,
         values['start_date'],
         values['end_date'],
     )
     if not host_ids:
         raise manager_ex.NotEnoughHostsAvailable()
     for host_id in host_ids:
         db_api.host_allocation_create({'compute_host_id': host_id,
                                       'reservation_id': reservation['id']})
Example #4
0
 def create_reservation(self, values):
     """Create reservation."""
     pool = rp.ReservationPool()
     pool_name = str(uuid.uuid4())
     pool_instance = pool.create(name=pool_name)
     reservation_values = {
         'id': pool_name,
         'lease_id': values['lease_id'],
         'resource_id': pool_instance.id,
         'resource_type': values['resource_type'],
         'status': 'pending',
     }
     reservation = db_api.reservation_create(reservation_values)
     min_host = values['min']
     max_host = values['max']
     if not min_host:
         raise manager_ex.MissingParameter(param="min")
     if not max_host:
         raise manager_ex.MissingParameter(param="max")
     try:
         min_host = int(str(min_host))
     except ValueError:
         raise manager_ex.MalformedParameter(param="min")
     try:
         max_host = int(str(max_host))
     except ValueError:
         raise manager_ex.MalformedParameter(param="max")
     count_range = str(values['min']) + '-' + str(values['max'])
     host_values = {
         'reservation_id': reservation['id'],
         'resource_properties': values['resource_properties'],
         'hypervisor_properties': values['hypervisor_properties'],
         'count_range': count_range,
         'status': 'pending',
     }
     db_api.host_reservation_create(host_values)
     host_ids = self._matching_hosts(
         values['hypervisor_properties'],
         values['resource_properties'],
         count_range,
         values['start_date'],
         values['end_date'],
     )
     if not host_ids:
         pool.delete(pool_name)
         raise manager_ex.NotEnoughHostsAvailable()
     for host_id in host_ids:
         db_api.host_allocation_create({'compute_host_id': host_id,
                                       'reservation_id': reservation['id']})
Example #5
0
 def create_reservation(self, values):
     """Create reservation."""
     pool = rp.ReservationPool()
     pool_name = str(uuid.uuid4())
     pool_instance = pool.create(name=pool_name)
     reservation_values = {
         'id': pool_name,
         'lease_id': values['lease_id'],
         'resource_id': pool_instance.id,
         'resource_type': values['resource_type'],
         'status': 'pending',
     }
     reservation = db_api.reservation_create(reservation_values)
     count_range = str(values['min']) + '-' + str(values['max'])
     host_values = {
         'reservation_id': reservation['id'],
         'resource_properties': values['resource_properties'],
         'hypervisor_properties': values['hypervisor_properties'],
         'count_range': count_range,
         'status': 'pending',
     }
     db_api.host_reservation_create(host_values)
     host_ids = self._matching_hosts(
         values['hypervisor_properties'],
         values['resource_properties'],
         count_range,
         values['start_date'],
         values['end_date'],
     )
     if not host_ids:
         raise manager_ex.NotEnoughHostsAvailable()
     for host_id in host_ids:
         db_api.host_allocation_create({
             'compute_host_id': host_id,
             'reservation_id': reservation['id']
         })