def lease_create(values): values = values.copy() lease = models.Lease() reservations = values.pop("reservations", []) events = values.pop("events", []) lease.update(values) session = get_session() with session.begin(): try: lease.save(session=session) except common_db_exc.DBDuplicateEntry as e: # raise exception about duplicated columns (e.columns) raise db_exc.BlazarDBDuplicateEntry(model=lease.__class__.__name__, columns=e.columns) try: for r in reservations: reservation = models.Reservation() reservation.update({"lease_id": lease.id}) reservation.update(r) reservation.save(session=session) except common_db_exc.DBDuplicateEntry as e: # raise exception about duplicated columns (e.columns) raise db_exc.BlazarDBDuplicateEntry( model=reservation.__class__.__name__, columns=e.columns) try: for e in events: event = models.Event() event.update({"lease_id": lease.id}) event.update(e) event.save(session=session) except common_db_exc.DBDuplicateEntry as e: # raise exception about duplicated columns (e.columns) raise db_exc.BlazarDBDuplicateEntry(model=event.__class__.__name__, columns=e.columns) return lease_get(lease.id)
def fip_allocation_create(allocation_values): values = allocation_values.copy() fip_allocation = models.FloatingIPAllocation() fip_allocation.update(values) session = get_session() with session.begin(): try: fip_allocation.save(session=session) except common_db_exc.DBDuplicateEntry as e: # raise exception about duplicated columns (e.columns) raise db_exc.BlazarDBDuplicateEntry( model=fip_allocation.__class__.__name__, columns=e.columns) return fip_allocation_get(fip_allocation.id)
def required_fip_create(required_fip_values): values = required_fip_values.copy() required_fip = models.RequiredFloatingIP() required_fip.update(values) session = get_session() with session.begin(): try: required_fip.save(session=session) except common_db_exc.DBDuplicateEntry as e: # raise exception about duplicated columns (e.columns) raise db_exc.BlazarDBDuplicateEntry( model=required_fip.__class__.__name__, columns=e.columns) return required_fip_get(required_fip.id)
def host_create(values): values = values.copy() host = models.ComputeHost() host.update(values) session = get_session() with session.begin(): try: host.save(session=session) except common_db_exc.DBDuplicateEntry as e: # raise exception about duplicated columns (e.columns) raise db_exc.BlazarDBDuplicateEntry(model=host.__class__.__name__, columns=e.columns) return host_get(host.id)
def reservation_create(values): values = values.copy() reservation = models.Reservation() reservation.update(values) session = get_session() with session.begin(): try: reservation.save(session=session) except common_db_exc.DBDuplicateEntry as e: # raise exception about duplicated columns (e.columns) raise db_exc.BlazarDBDuplicateEntry( model=reservation.__class__.__name__, columns=e.columns) return reservation_get(reservation.id)