def listall(self, detailed=True, search_opts=None, marker=None, limit=None): """ Get a list of servers. :param detailed: Whether to return detailed server info (optional). :param search_opts: Search options to filter out servers (optional). :param marker: Begin returning servers that appear later in the server list than that represented by this server id (optional). :param limit: Maximum number of servers to return (optional). :rtype: list of :class:`Server` """ if search_opts is None: search_opts = {} qparams = {} for opt, val in six.iteritems(search_opts): if val: qparams[opt] = val if marker: qparams['marker'] = marker if limit: qparams['limit'] = limit query_string = "?%s" % urlutils.urlencode(qparams) if qparams else "" detail = "" if detailed: detail = "/detailall" return self._list("/servers%s%s" % (detail, query_string), "servers")
def list(self, detailed=True, search_opts=None, marker=None, limit=None): """ Get a list of servers. :param detailed: Whether to return detailed server info (optional). :param search_opts: Search options to filter out servers (optional). :param marker: Begin returning servers that appear later in the server list than that represented by this server id (optional). :param limit: Maximum number of servers to return (optional). :rtype: list of :class:`Server` """ if search_opts is None: search_opts = {} qparams = {} for opt, val in six.iteritems(search_opts): if val: qparams[opt] = val if marker: qparams['marker'] = marker if limit: qparams['limit'] = limit query_string = "?%s" % urlutils.urlencode(qparams) if qparams else "" detail = "" if detailed: detail = "/detail" return self._list("/servers%s%s" % (detail, query_string), "servers")
def get_for_ip(self, domain, ip): """Return a list of entries for the given domain and ip or name.""" qparams = {'ip': ip} params = "?%s" % urlutils.urlencode(qparams) return self._list("/os-floating-ip-dns/%s/entries%s" % (_quote_domain(domain), params), "dns_entries")
def list(self, base_url=None, **kwargs): """List the collection. :param base_url: if provided, the generated URL will be appended to it """ kwargs = self._filter_kwargs(kwargs) return self._list( '%(base_url)s%(query)s' % { 'base_url': self.build_url(base_url=base_url, **kwargs), 'query': '?%s' % urlutils.urlencode(kwargs) if kwargs else '', }, self.collection_key)
def list(self, search_opts=None): """ Get a list of all security_groups :rtype: list of :class:`SecurityGroup` """ search_opts = search_opts or {} qparams = dict((k, v) for (k, v) in six.iteritems(search_opts) if v) query_string = '?%s' % urlutils.urlencode(qparams) if qparams else '' return self._list('/os-security-groups%s' % query_string, 'security_groups')
def get(self, reserved=False, tenant_id=None): """ Get a specific extension. :rtype: :class:`Limits` """ opts = {} if reserved: opts['reserved'] = 1 if tenant_id: opts['tenant_id'] = tenant_id query_string = "?%s" % urlutils.urlencode(opts) if opts else "" return self._get("/limits%s" % query_string, "limits")
def list(self, detailed=True, limit=None): """ Get a list of all images. :rtype: list of :class:`Image` :param limit: maximum number of images to return. """ params = {} detail = '' if detailed: detail = '/detail' if limit: params['limit'] = int(limit) query = '?%s' % urlutils.urlencode(params) if params else '' return self._list('/images%s%s' % (detail, query), 'images')
def list(self, detailed=True, search_opts=None): """ Get a list of all volumes. :rtype: list of :class:`Volume` """ search_opts = search_opts or {} qparams = dict((k, v) for (k, v) in six.iteritems(search_opts) if v) query_string = '?%s' % urlutils.urlencode(qparams) if qparams else '' if detailed is True: return self._list("/volumes/detail%s" % query_string, "volumes") else: return self._list("/volumes%s" % query_string, "volumes")
def list(self, host=None, status=None, cell_name=None): """ Get a list of migrations. :param host: (optional) filter migrations by host name. :param status: (optional) filter migrations by status. :param cell_name: (optional) filter migrations for a cell. """ opts = {} if host: opts['host'] = host if status: opts['status'] = status if cell_name: opts['cell_name'] = cell_name query_string = "?%s" % urlutils.urlencode(opts) if opts else "" return self._list("/os-migrations%s" % query_string, "migrations")
def list(self, detailed=True, is_public=True): """ Get a list of all flavors. :rtype: list of :class:`Flavor`. """ qparams = {} # is_public is ternary - None means give all flavors. # By default Nova assumes True and gives admins public flavors # and flavors from their own projects only. if not is_public: qparams['is_public'] = is_public query_string = "?%s" % urlutils.urlencode(qparams) if qparams else "" detail = "" if detailed: detail = "/detail" return self._list("/flavors%s%s" % (detail, query_string), "flavors")
def find(self, base_url=None, **kwargs): """Find a single item with attributes matching ``**kwargs``. :param base_url: if provided, the generated URL will be appended to it """ kwargs = self._filter_kwargs(kwargs) rl = self._list( '%(base_url)s%(query)s' % { 'base_url': self.build_url(base_url=base_url, **kwargs), 'query': '?%s' % urlutils.urlencode(kwargs) if kwargs else '', }, self.collection_key) num = len(rl) if num == 0: msg = "No %s matching %s." % (self.resource_class.__name__, kwargs) raise exceptions.NotFound(404, msg) elif num > 1: raise exceptions.NoUniqueMatch else: return rl[0]
def list(self, host=None, status=None, cell_name=None): """ Get a list of migrations. :param host: (optional) filter migrations by host name. :param status: (optional) filter migrations by status. :param cell_name: (optional) filter migrations for a cell. """ opts = {} if host: opts['host'] = host if status: opts['status'] = status if cell_name: opts['cell_name'] = cell_name # Transform the dict to a sequence of two-element tuples in fixed # order, then the encoded string will be consistent in Python 2&3. new_opts = sorted(opts.items(), key=lambda x: x[0]) query_string = "?%s" % urlutils.urlencode(new_opts) if new_opts else "" return self._list("/os-migrations%s" % query_string, "migrations")
def list(self, detailed=True, search_opts=None, marker=None, limit=None): """ Get a list of servers. :param detailed: Whether to return detailed server info (optional). :param search_opts: Search options to filter out servers (optional). :param marker: Begin returning servers that appear later in the server list than that represented by this server id (optional). :param limit: Maximum number of servers to return (optional). :rtype: list of :class:`Server` """ if search_opts is None: search_opts = {} qparams = {} for opt, val in six.iteritems(search_opts): if val: qparams[opt] = val if marker: qparams['marker'] = marker if limit: qparams['limit'] = limit # Transform the dict to a sequence of two-element tuples in fixed # order, then the encoded string will be consistent in Python 2&3. if qparams: new_qparams = sorted(qparams.items(), key=lambda x: x[0]) query_string = "?%s" % urlutils.urlencode(new_qparams) else: query_string = "" detail = "" if detailed: detail = "/detail" return self._list("/servers%s%s" % (detail, query_string), "servers")
def list(self, detailed=True, search_opts=None): """ Get a list of servers. :param detailed: Whether to return detailed server info (optional). :param search_opts: Search options to filter out servers (optional). :rtype: list of :class:`Server` """ if search_opts is None: search_opts = {} qparams = {} for opt, val in six.iteritems(search_opts): if val: qparams[opt] = val query_string = "?%s" % urlutils.urlencode(qparams) if qparams else "" detail = "" if detailed: detail = "/detail" return self._list("/servers%s%s" % (detail, query_string), "servers")