def delete(self, context, id): try: vip = self._api.virtual_ip_read(id=id) except NoIdError: loadbalancer.VipNotFound(vip_id=id) self._delete_virtual_interface( vip.get_virtual_machine_interface_refs()) super(VirtualIpManager, self).delete(context, id)
def _get_resource(self, context, model, id): try: r = self._get_by_id(context, model, id) except exc.NoResultFound: with excutils.save_and_reraise_exception(): if issubclass(model, Vip): raise loadbalancer.VipNotFound(vip_id=id) elif issubclass(model, Pool): raise loadbalancer.PoolNotFound(pool_id=id) elif issubclass(model, Member): raise loadbalancer.MemberNotFound(member_id=id) elif issubclass(model, HealthMonitor): raise loadbalancer.HealthMonitorNotFound(monitor_id=id) return r
def update_status(self, context, model, id, status, status_description=None): with context.session.begin(subtransactions=True): if issubclass(model, Vip): try: v_db = (self._model_query(context, model). filter(model.id == id). options(orm.noload('port')). one()) except exc.NoResultFound: raise loadbalancer.VipNotFound(vip_id=id) else: v_db = self._get_resource(context, model, id) if v_db.status != status: v_db.status = status # update status_description in two cases: # - new value is passed # - old value is not None (needs to be updated anyway) if status_description or v_db['status_description']: v_db.status_description = status_description
def get_exception_notfound(self, id=None): return loadbalancer.VipNotFound(vip_id=id)