Source code for selvpcclient.resources.floatingips

from selvpcclient import base
from selvpcclient.util import resource_filter


[docs]class FloatingIP(base.Resource): """Represents a floating ip."""
[docs] def delete(self): """Delete current floatingip from domain.""" self.manager.delete(self.id)
[docs]class FloatingIPManager(base.Manager): """Manager class for manipulating floating ip.""" resource_class = FloatingIP @resource_filter def list(self, detailed=False): """Get list of all floatingips in current domain. :param bool detailed: Include info about servers. (optional) :rtype: list of :class:`FloatingIP` """ return self._list('/floatingips?detailed=' + str(detailed), 'floatingips')
[docs] def add(self, project_id, floatingips): """Create floatingips in project. :param string project_id: Project id. :param dict floatingips: Dict with key `floatingips` and value as array of items region and quantity:: { "floatingips": [ { "region": "ru-1", "quantity": 4 } ] } :rtype: list of :class:`FloatingIP` """ url = '/floatingips/projects/{}'.format(project_id) return self._list(url, 'floatingips', body=floatingips)
[docs] def show(self, floatingip_id): """ Show detailed floatingip information. :param string floatingip_id: Floatingip id. :rtype: :class:`FloatingIP` """ return self._get('/floatingips/{}'.format(floatingip_id), 'floatingip')
[docs] def delete(self, floatingip_id): """Delete floatingip from domain. :param string floatingip_id: Floating ip id. """ self._delete('/floatingips/{}'.format(floatingip_id))