From 51f13141530f8470f03a476bd95a49d811fe4bd1 Mon Sep 17 00:00:00 2001 From: Ethan Kaley Date: Mon, 28 Nov 2016 14:05:21 -0500 Subject: [PATCH] create res, check if lease exists, remove and error if it doesnt (#32) --- ipam/reservations.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/ipam/reservations.go b/ipam/reservations.go index 75ed998..735465e 100644 --- a/ipam/reservations.go +++ b/ipam/reservations.go @@ -40,10 +40,16 @@ func (ipam *Ipam) CreateReservation(reservation models.Reservation) error { return err } - return session.DB(IpamDatabase).C(IpamCollectionLeases).Update( + err = session.DB(IpamDatabase).C(IpamCollectionLeases).Update( bson.M{"reservation": nil, "subnet": reservation.Subnet}, bson.M{"$set": bson.M{"reservation": reservation.ID}}, ) + if err != nil { + session.DB(IpamDatabase).C(IpamCollectionReservations).Remove(reservation) + return err + } + + return nil } // UpdateReservation updates a Reservation.