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)
Example #2
0
 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
Example #3
0
 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)