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