From e33ae4613a7ad7c544a4beb9afea9ff35699b1d6 Mon Sep 17 00:00:00 2001 From: TerryHowe Date: Sun, 12 Jul 2015 19:28:50 -0600 Subject: [PATCH] Add query params to all the proxy list calls Change-Id: Ib2baa319593dae81206695c15c02574b24b17473 --- openstack/compute/v2/_proxy.py | 34 ++++--- openstack/database/v1/_proxy.py | 28 ++++-- openstack/identity/v2/_proxy.py | 21 ++-- openstack/identity/v3/_proxy.py | 63 ++++++++---- openstack/image/v1/_proxy.py | 7 +- openstack/image/v2/_proxy.py | 14 ++- openstack/key_management/v1/_proxy.py | 21 ++-- openstack/metric/v1/_proxy.py | 7 +- openstack/network/v2/_proxy.py | 122 +++++++++++++++++------- openstack/object_store/v1/_proxy.py | 19 ++-- openstack/orchestration/v1/_proxy.py | 14 ++- openstack/proxy.py | 2 +- openstack/telemetry/v2/_proxy.py | 49 +++++++--- openstack/tests/unit/test_proxy.py | 8 +- openstack/tests/unit/test_proxy_base.py | 4 + 15 files changed, 287 insertions(+), 126 deletions(-) diff --git a/openstack/compute/v2/_proxy.py b/openstack/compute/v2/_proxy.py index 7b1c8f45..b5b35234 100644 --- a/openstack/compute/v2/_proxy.py +++ b/openstack/compute/v2/_proxy.py @@ -39,13 +39,16 @@ class Proxy(proxy.BaseProxy): return extension.Extension.find(self.session, name_or_id, ignore_missing=ignore_missing) - def extensions(self): + def extensions(self, **query): """Retrieve a generator of extensions + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of extension instances. :rtype: :class:`~openstack.compute.v2.extension.Extension` """ - return self._list(extension.Extension, paginated=False) + return self._list(extension.Extension, paginated=False, **query) def find_flavor(self, name_or_id, ignore_missing=True): """Find a single flavor @@ -177,7 +180,7 @@ class Proxy(proxy.BaseProxy): otherwise :class:`~openstack.compute.v2.image.Image`. *Default: ``True``* :param kwargs \*\*query: Optional query parameters to be sent to limit - the flavors being returned. + the resources being returned. :returns: A generator of image objects """ @@ -237,13 +240,16 @@ class Proxy(proxy.BaseProxy): return keypair.Keypair.find(self.session, name_or_id, ignore_missing=ignore_missing) - def keypairs(self): + def keypairs(self, **query): """Return a generator of keypairs + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of keypair objects :rtype: :class:`~openstack.compute.v2.keypair.Keypair` """ - return self._list(keypair.Keypair, paginated=False) + return self._list(keypair.Keypair, paginated=False, **query) def update_keypair(self, value, **attrs): """Update a keypair @@ -363,8 +369,7 @@ class Proxy(proxy.BaseProxy): # Server expects changes-since, but we use an underscore # so it can be a proper Python name. if "changes_since" in query: - val = query.pop("changes_since") - query["changes-since"] = val + query["changes-since"] = query.pop("changes_since") return self._list(srv, paginated=True, **query) @@ -444,13 +449,17 @@ class Proxy(proxy.BaseProxy): """ return self._get(server_interface.ServerInterface, value) - def server_interfaces(self): + def server_interfaces(self, **query): """Return a generator of server interfaces + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of ServerInterface objects :rtype: :class:`~openstack.compute.v2.server_interface.ServerInterface` """ - return self._list(server_interface.ServerInterface, paginated=False) + return self._list(server_interface.ServerInterface, paginated=False, + **query) def update_server_interface(self, value, **attrs): """Update a server interface @@ -481,10 +490,13 @@ class Proxy(proxy.BaseProxy): return server_ip.ServerIP.find(self.session, name_or_id, ignore_missing=ignore_missing) - def server_ips(self): + def server_ips(self, **query): """Return a generator of server IPs + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of ServerIP objects :rtype: :class:`~openstack.compute.v2.server_ip.ServerIP` """ - return self._list(server_ip.ServerIP, paginated=False) + return self._list(server_ip.ServerIP, paginated=False, **query) diff --git a/openstack/database/v1/_proxy.py b/openstack/database/v1/_proxy.py index f4855e75..f576ceff 100644 --- a/openstack/database/v1/_proxy.py +++ b/openstack/database/v1/_proxy.py @@ -60,13 +60,16 @@ class Proxy(proxy.BaseProxy): return database.Database.find(self.session, name_or_id, ignore_missing=ignore_missing) - def databases(self): + def databases(self, **query): """Return a generator of databases + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of database objects :rtype: :class:`~openstack.database.v1.database.Database` """ - return self._list(database.Database, paginated=False) + return self._list(database.Database, paginated=False, **query) def get_database(self, value): """Get a single database @@ -107,13 +110,16 @@ class Proxy(proxy.BaseProxy): """ return self._get(flavor.Flavor, value) - def flavors(self): + def flavors(self, **query): """Return a generator of flavors + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of flavor objects :rtype: :class:`~openstack.database.v1.flavor.Flavor` """ - return self._list(flavor.Flavor, paginated=False) + return self._list(flavor.Flavor, paginated=False, **query) def create_instance(self, **attrs): """Create a new instance from attributes @@ -169,13 +175,16 @@ class Proxy(proxy.BaseProxy): """ return self._get(instance.Instance, value) - def instances(self): + def instances(self, **query): """Return a generator of instances + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of instance objects :rtype: :class:`~openstack.database.v1.instance.Instance` """ - return self._list(instance.Instance, paginated=False) + return self._list(instance.Instance, paginated=False, **query) def update_instance(self, value, **attrs): """Update a instance @@ -232,13 +241,16 @@ class Proxy(proxy.BaseProxy): return user.User.find(self.session, name_or_id, ignore_missing=ignore_missing) - def users(self): + def users(self, **query): """Return a generator of users + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of user objects :rtype: :class:`~openstack.database.v1.user.User` """ - return self._list(user.User, paginated=False) + return self._list(user.User, paginated=False, **query) def get_user(self, value): """Get a single user diff --git a/openstack/identity/v2/_proxy.py b/openstack/identity/v2/_proxy.py index f98d058e..e4674a17 100644 --- a/openstack/identity/v2/_proxy.py +++ b/openstack/identity/v2/_proxy.py @@ -71,13 +71,16 @@ class Proxy(proxy.BaseProxy): """ return self._get(role.Role, value) - def roles(self): + def roles(self, **query): """Retrieve a generator of roles + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of role instances. :rtype: :class:`~openstack.identity.v2.role.Role` """ - return self._list(role.Role, paginated=True) + return self._list(role.Role, paginated=True, **query) def update_role(self, value, **attrs): """Update a role @@ -145,13 +148,16 @@ class Proxy(proxy.BaseProxy): """ return self._get(tenant.Tenant, value) - def tenants(self): + def tenants(self, **query): """Retrieve a generator of tenants + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of tenant instances. :rtype: :class:`~openstack.identity.v2.tenant.Tenant` """ - return self._list(tenant.Tenant, paginated=True) + return self._list(tenant.Tenant, paginated=True, **query) def update_tenant(self, value, **attrs): """Update a tenant @@ -219,13 +225,16 @@ class Proxy(proxy.BaseProxy): """ return self._get(user.User, value) - def users(self): + def users(self, **query): """Retrieve a generator of users + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of user instances. :rtype: :class:`~openstack.identity.v2.user.User` """ - return self._list(user.User, paginated=True) + return self._list(user.User, paginated=True, **query) def update_user(self, value, **attrs): """Update a user diff --git a/openstack/identity/v3/_proxy.py b/openstack/identity/v3/_proxy.py index 63affe72..c27243c0 100644 --- a/openstack/identity/v3/_proxy.py +++ b/openstack/identity/v3/_proxy.py @@ -80,14 +80,17 @@ class Proxy(proxy.BaseProxy): """ return self._get(credential.Credential, value) - def credentials(self): + def credentials(self, **query): """Retrieve a generator of credentials + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of credentials instances. :rtype: :class:`~openstack.identity.v3.credential.Credential` """ # TODO(briancurtin): This is paginated but requires base list changes. - return self._list(credential.Credential, paginated=False) + return self._list(credential.Credential, paginated=False, **query) def update_credential(self, value, **attrs): """Update a credential @@ -156,14 +159,17 @@ class Proxy(proxy.BaseProxy): """ return self._get(domain.Domain, value) - def domains(self): + def domains(self, **query): """Retrieve a generator of domains + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of domain instances. :rtype: :class:`~openstack.identity.v3.domain.Domain` """ # TODO(briancurtin): This is paginated but requires base list changes. - return self._list(domain.Domain, paginated=False) + return self._list(domain.Domain, paginated=False, **query) def update_domain(self, value, **attrs): """Update a domain @@ -232,14 +238,17 @@ class Proxy(proxy.BaseProxy): """ return self._get(endpoint.Endpoint, value) - def endpoints(self): + def endpoints(self, **query): """Retrieve a generator of endpoints + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of endpoint instances. :rtype: :class:`~openstack.identity.v3.endpoint.Endpoint` """ # TODO(briancurtin): This is paginated but requires base list changes. - return self._list(endpoint.Endpoint, paginated=False) + return self._list(endpoint.Endpoint, paginated=False, **query) def update_endpoint(self, value, **attrs): """Update a endpoint @@ -309,14 +318,17 @@ class Proxy(proxy.BaseProxy): """ return self._get(group.Group, value) - def groups(self): + def groups(self, **query): """Retrieve a generator of groups + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of group instances. :rtype: :class:`~openstack.identity.v3.group.Group` """ # TODO(briancurtin): This is paginated but requires base list changes. - return self._list(group.Group, paginated=False) + return self._list(group.Group, paginated=False, **query) def update_group(self, value, **attrs): """Update a group @@ -384,14 +396,17 @@ class Proxy(proxy.BaseProxy): """ return self._get(policy.Policy, value) - def policies(self): + def policies(self, **query): """Retrieve a generator of policies + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of policy instances. :rtype: :class:`~openstack.identity.v3.policy.Policy` """ # TODO(briancurtin): This is paginated but requires base list changes. - return self._list(policy.Policy, paginated=False) + return self._list(policy.Policy, paginated=False, **query) def update_policy(self, value, **attrs): """Update a policy @@ -459,14 +474,17 @@ class Proxy(proxy.BaseProxy): """ return self._get(project.Project, value) - def projects(self): + def projects(self, **query): """Retrieve a generator of projects + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of project instances. :rtype: :class:`~openstack.identity.v3.project.Project` """ # TODO(briancurtin): This is paginated but requires base list changes. - return self._list(project.Project, paginated=False) + return self._list(project.Project, paginated=False, **query) def update_project(self, value, **attrs): """Update a project @@ -534,14 +552,17 @@ class Proxy(proxy.BaseProxy): """ return self._get(service.Service, value) - def services(self): + def services(self, **query): """Retrieve a generator of services + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of service instances. :rtype: :class:`~openstack.identity.v3.service.Service` """ # TODO(briancurtin): This is paginated but requires base list changes. - return self._list(service.Service, paginated=False) + return self._list(service.Service, paginated=False, **query) def update_service(self, value, **attrs): """Update a service @@ -609,14 +630,17 @@ class Proxy(proxy.BaseProxy): """ return self._get(user.User, value) - def users(self): + def users(self, **query): """Retrieve a generator of users + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of user instances. :rtype: :class:`~openstack.identity.v3.user.User` """ # TODO(briancurtin): This is paginated but requires base list changes. - return self._list(user.User, paginated=False) + return self._list(user.User, paginated=False, **query) def update_user(self, value, **attrs): """Update a user @@ -684,14 +708,17 @@ class Proxy(proxy.BaseProxy): """ return self._get(trust.Trust, value) - def trusts(self): + def trusts(self, **query): """Retrieve a generator of trusts + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of trust instances. :rtype: :class:`~openstack.identity.v3.trust.Trust` """ # TODO(briancurtin): This is paginated but requires base list changes. - return self._list(trust.Trust, paginated=False) + return self._list(trust.Trust, paginated=False, **query) def update_trust(self, value, **attrs): """Update a trust diff --git a/openstack/image/v1/_proxy.py b/openstack/image/v1/_proxy.py index 6fd4b0ab..1d052eb3 100644 --- a/openstack/image/v1/_proxy.py +++ b/openstack/image/v1/_proxy.py @@ -69,13 +69,16 @@ class Proxy(proxy.BaseProxy): """ return self._get(image.Image, value) - def images(self): + def images(self, **query): """Return a generator of images + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of image objects :rtype: :class:`~openstack.image.v1.image.Image` """ - return self._list(image.Image, paginated=True) + return self._list(image.Image, paginated=True, **query) def update_image(self, value, **attrs): """Update a image diff --git a/openstack/image/v2/_proxy.py b/openstack/image/v2/_proxy.py index 2988024e..dd8a4dd9 100644 --- a/openstack/image/v2/_proxy.py +++ b/openstack/image/v2/_proxy.py @@ -71,13 +71,16 @@ class Proxy(proxy.BaseProxy): """ return self._get(image.Image, value) - def images(self): + def images(self, **query): """Return a generator of images + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of image objects :rtype: :class:`~openstack.image.v2.image.Image` """ - return self._list(image.Image, paginated=True) + return self._list(image.Image, paginated=True, **query) def update_image(self, value, **attrs): """Update a image @@ -145,13 +148,16 @@ class Proxy(proxy.BaseProxy): """ return self._get(member.Member, value) - def members(self, **params): + def members(self, **query): """Return a generator of members + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of member objects :rtype: :class:`~openstack.image.v2.member.Member` """ - return self._list(member.Member, paginated=False) + return self._list(member.Member, paginated=False, **query) def update_member(self, value, **attrs): """Update a member diff --git a/openstack/key_management/v1/_proxy.py b/openstack/key_management/v1/_proxy.py index 95d738b9..09a2d330 100644 --- a/openstack/key_management/v1/_proxy.py +++ b/openstack/key_management/v1/_proxy.py @@ -74,13 +74,16 @@ class Proxy(proxy.BaseProxy): """ return self._get(container.Container, value) - def containers(self): + def containers(self, **query): """Return a generator of containers + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of container objects :rtype: :class:`~openstack.key_management.v1.container.Container` """ - return self._list(container.Container, paginated=False) + return self._list(container.Container, paginated=False, **query) def update_container(self, value, **attrs): """Update a container @@ -151,13 +154,16 @@ class Proxy(proxy.BaseProxy): """ return self._get(order.Order, value) - def orders(self): + def orders(self, **query): """Return a generator of orders + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of order objects :rtype: :class:`~openstack.key_management.v1.order.Order` """ - return self._list(order.Order, paginated=False) + return self._list(order.Order, paginated=False, **query) def update_order(self, value, **attrs): """Update a order @@ -227,13 +233,16 @@ class Proxy(proxy.BaseProxy): """ return self._get(secret.Secret, value) - def secrets(self): + def secrets(self, **query): """Return a generator of secrets + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of secret objects :rtype: :class:`~openstack.key_management.v1.secret.Secret` """ - return self._list(secret.Secret, paginated=False) + return self._list(secret.Secret, paginated=False, **query) def update_secret(self, value, **attrs): """Update a secret diff --git a/openstack/metric/v1/_proxy.py b/openstack/metric/v1/_proxy.py index 1c755be9..e25e9303 100644 --- a/openstack/metric/v1/_proxy.py +++ b/openstack/metric/v1/_proxy.py @@ -16,10 +16,13 @@ from openstack import proxy class Proxy(proxy.BaseProxy): - def capabilities(self): + def capabilities(self, **query): """Return a generator of capabilities + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of capability objects :rtype: :class:`~openstack.metric.v1.capabilities.Capabilities` """ - return self._list(capabilities.Capabilities, paginated=False) + return self._list(capabilities.Capabilities, paginated=False, **query) diff --git a/openstack/network/v2/_proxy.py b/openstack/network/v2/_proxy.py index d55307c0..d7f5898d 100644 --- a/openstack/network/v2/_proxy.py +++ b/openstack/network/v2/_proxy.py @@ -47,13 +47,16 @@ class Proxy(proxy.BaseProxy): return extension.Extension.find(self.session, name_or_id, ignore_missing=ignore_missing) - def extensions(self): + def extensions(self, **query): """Return a generator of extensions + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of extension objects :rtype: :class:`~openstack.network.v2.extension.Extension` """ - return self._list(extension.Extension, paginated=False) + return self._list(extension.Extension, paginated=False, **query) def create_ip(self, **attrs): """Create a new floating ip from attributes @@ -119,13 +122,16 @@ class Proxy(proxy.BaseProxy): """ return self._get(floating_ip.FloatingIP, value) - def ips(self): + def ips(self, **query): """Return a generator of ips + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of floating IP objects :rtype: :class:`~openstack.network.v2.floating_ip.FloatingIP` """ - return self._list(floating_ip.FloatingIP, paginated=False) + return self._list(floating_ip.FloatingIP, paginated=False, **query) def update_ip(self, value, **attrs): """Update a ip @@ -199,13 +205,17 @@ class Proxy(proxy.BaseProxy): """ return self._get(health_monitor.HealthMonitor, value) - def health_monitors(self): + def health_monitors(self, **query): """Return a generator of health monitors + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of health monitor objects :rtype: :class:`~openstack.network.v2.health_monitor.HealthMonitor` """ - return self._list(health_monitor.HealthMonitor, paginated=False) + return self._list(health_monitor.HealthMonitor, paginated=False, + **query) def update_health_monitor(self, value, **attrs): """Update a health monitor @@ -275,13 +285,16 @@ class Proxy(proxy.BaseProxy): """ return self._get(listener.Listener, value) - def listeners(self): + def listeners(self, **query): """Return a generator of listeners + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of listener objects :rtype: :class:`~openstack.network.v2.listener.Listener` """ - return self._list(listener.Listener, paginated=False) + return self._list(listener.Listener, paginated=False, **query) def update_listener(self, value, **attrs): """Update a listener @@ -354,13 +367,16 @@ class Proxy(proxy.BaseProxy): """ return self._get(load_balancer.LoadBalancer, value) - def load_balancers(self): + def load_balancers(self, **query): """Return a generator of load balancers + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of load balancer objects :rtype: :class:`~openstack.network.v2.load_balancer.LoadBalancer` """ - return self._list(load_balancer.LoadBalancer, paginated=False) + return self._list(load_balancer.LoadBalancer, paginated=False, **query) def update_load_balancer(self, value, **attrs): """Update a load balancer @@ -434,13 +450,17 @@ class Proxy(proxy.BaseProxy): """ return self._get(metering_label.MeteringLabel, value) - def metering_labels(self): + def metering_labels(self, **query): """Return a generator of metering labels + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of metering label objects :rtype: :class:`~openstack.network.v2.metering_label.MeteringLabel` """ - return self._list(metering_label.MeteringLabel, paginated=False) + return self._list(metering_label.MeteringLabel, paginated=False, + **query) def update_metering_label(self, value, **attrs): """Update a metering label @@ -517,15 +537,18 @@ class Proxy(proxy.BaseProxy): """ return self._get(metering_label_rule.MeteringLabelRule, value) - def metering_label_rules(self): + def metering_label_rules(self, **query): """Return a generator of metering label rules + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of metering label rule objects :rtype: :class:`~openstack.network.v2.metering_label_rule. MeteringLabelRule` """ return self._list(metering_label_rule.MeteringLabelRule, - paginated=False) + paginated=False, **query) def update_metering_label_rule(self, value, **attrs): """Update a metering label rule @@ -596,13 +619,16 @@ class Proxy(proxy.BaseProxy): """ return self._get(network.Network, value) - def networks(self): + def networks(self, **query): """Return a generator of networks + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of network objects :rtype: :class:`~openstack.network.v2.network.Network` """ - return self._list(network.Network, paginated=False) + return self._list(network.Network, paginated=False, **query) def update_network(self, value, **attrs): """Update a network @@ -670,13 +696,16 @@ class Proxy(proxy.BaseProxy): """ return self._get(_pool.Pool, value) - def pools(self): + def pools(self, **query): """Return a generator of pools + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of pool objects :rtype: :class:`~openstack.network.v2.pool.Pool` """ - return self._list(_pool.Pool, paginated=False) + return self._list(_pool.Pool, paginated=False, **query) def update_pool(self, value, **attrs): """Update a pool @@ -757,19 +786,22 @@ class Proxy(proxy.BaseProxy): return self._get(pool_member.PoolMember, member, path_args={'pool_id': pool.id}) - def pool_members(self, pool): + def pool_members(self, pool, **query): """Return a generator of pool members :param pool: The pool can be either the ID of a pool or a :class:`~openstack.network.v2.pool.Pool` instance that the member belongs to. + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. :returns: A generator of pool member objects :rtype: :class:`~openstack.network.v2.pool_member.PoolMember` """ pool = _pool.Pool.from_id(pool) return self._list(pool_member.PoolMember, - path_args={'pool_id': pool.id}, paginated=False) + path_args={'pool_id': pool.id}, paginated=False, + **query) def update_pool_member(self, member, **attrs): """Update a pool member @@ -838,13 +870,16 @@ class Proxy(proxy.BaseProxy): """ return self._get(port.Port, value) - def ports(self): + def ports(self, **query): """Return a generator of ports + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of port objects :rtype: :class:`~openstack.network.v2.port.Port` """ - return self._list(port.Port, paginated=False) + return self._list(port.Port, paginated=False, **query) def update_port(self, value, **attrs): """Update a port @@ -876,13 +911,16 @@ class Proxy(proxy.BaseProxy): result.append(puerta) return result - def quotas(self): + def quotas(self, **query): """Return a generator of quotas + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of quota objects :rtype: :class:`~openstack.network.v2.quota.Quota` """ - return self._list(quota.Quota, paginated=False) + return self._list(quota.Quota, paginated=False, **query) def create_router(self, **attrs): """Create a new router from attributes @@ -937,13 +975,16 @@ class Proxy(proxy.BaseProxy): """ return self._get(router.Router, value) - def routers(self): + def routers(self, **query): """Return a generator of routers + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of router objects :rtype: :class:`~openstack.network.v2.router.Router` """ - return self._list(router.Router, paginated=False) + return self._list(router.Router, paginated=False, **query) def update_router(self, value, **attrs): """Update a router @@ -1022,13 +1063,17 @@ class Proxy(proxy.BaseProxy): """ return self._get(security_group.SecurityGroup, value) - def security_groups(self): + def security_groups(self, **query): """Return a generator of security groups + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of security group objects :rtype: :class:`~openstack.network.v2.security_group.SecurityGroup` """ - return self._list(security_group.SecurityGroup, paginated=False) + return self._list(security_group.SecurityGroup, paginated=False, + **query) def update_security_group(self, value, **attrs): """Update a security group @@ -1128,15 +1173,18 @@ class Proxy(proxy.BaseProxy): """ return self._get(security_group_rule.SecurityGroupRule, value) - def security_group_rules(self): + def security_group_rules(self, **query): """Return a generator of security group rules + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of security group rule objects :rtype: :class:`~openstack.network.v2.security_group_rule. SecurityGroupRule` """ return self._list(security_group_rule.SecurityGroupRule, - paginated=False) + paginated=False, **query) def update_security_group_rule(self, value, **attrs): """Update a security group rule @@ -1207,13 +1255,16 @@ class Proxy(proxy.BaseProxy): """ return self._get(subnet.Subnet, value) - def subnets(self): + def subnets(self, **query): """Return a generator of subnets + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of subnet objects :rtype: :class:`~openstack.network.v2.subnet.Subnet` """ - return self._list(subnet.Subnet, paginated=False) + return self._list(subnet.Subnet, paginated=False, **query) def update_subnet(self, value, **attrs): """Update a subnet @@ -1286,13 +1337,16 @@ class Proxy(proxy.BaseProxy): """ return self._get(vpn_service.VPNService, value) - def vpn_services(self): + def vpn_services(self, **query): """Return a generator of vpn services + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of vpn service objects :rtype: :class:`~openstack.network.v2.vpn_service.VPNService` """ - return self._list(vpn_service.VPNService, paginated=False) + return self._list(vpn_service.VPNService, paginated=False, **query) def update_vpn_service(self, value, **attrs): """Update a vpn service diff --git a/openstack/object_store/v1/_proxy.py b/openstack/object_store/v1/_proxy.py index a210c6dd..008545ea 100644 --- a/openstack/object_store/v1/_proxy.py +++ b/openstack/object_store/v1/_proxy.py @@ -38,21 +38,16 @@ class Proxy(proxy.BaseProxy): """ container.update(self.session) - def containers(self, **kwargs): + def containers(self, **query): """Obtain Container objects for this account. - :param int limit: Set the limit of how many containers to retrieve - in each request to the server. By default, the value is ``None``, - retrieving the maximum amount of containers per request that - your server allows. - :param str marker: The name of the container to begin iterating from. - By default, the value is ``None``, returning all available - containers. + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. :rtype: A generator of :class:`~openstack.object_store.v1.container.Container` objects. """ - return _container.Container.list(self.session, **kwargs) + return _container.Container.list(self.session, **query) def get_container_metadata(self, value): """Get metatdata for a container @@ -109,13 +104,15 @@ class Proxy(proxy.BaseProxy): self._delete(_container.Container, value, ignore_missing=ignore_missing) - def objects(self, container, **kwargs): + def objects(self, container, **query): """Return a generator that yields the Container's objects. :param container: A container object or the name of a container that you want to retrieve objects from. :type container: :class:`~openstack.object_store.v1.container.Container` + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. :rtype: A generator of :class:`~openstack.object_store.v1.obj.Object` objects. @@ -124,7 +121,7 @@ class Proxy(proxy.BaseProxy): objs = _obj.Object.list(self.session, path_args={"container": container.name}, - **kwargs) + **query) # TODO(briancurtin): Objects have to know their container at this # point, otherwise further operations like getting their metadata # or downloading them is a hassle because the end-user would have diff --git a/openstack/orchestration/v1/_proxy.py b/openstack/orchestration/v1/_proxy.py index 40270ad9..ea6bf342 100644 --- a/openstack/orchestration/v1/_proxy.py +++ b/openstack/orchestration/v1/_proxy.py @@ -45,13 +45,16 @@ class Proxy(proxy.BaseProxy): return stack.Stack.find(self.session, name_or_id, ignore_missing=ignore_missing) - def stacks(self): + def stacks(self, **query): """Return a generator of stacks + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of stack objects :rtype: :class:`~openstack.orchestration.v1.stack.Stack` """ - return self._list(stack.Stack, paginated=False) + return self._list(stack.Stack, paginated=False, **query) def get_stack(self, value): """Get a single stack @@ -86,11 +89,14 @@ class Proxy(proxy.BaseProxy): return resource.wait_for_status(self.session, value, status, failures, interval, wait) - def resources(self, value): + def resources(self, value, **query): """Return a generator of resources :param value: This can be a stack object, or the name of a stack for which the resources are to be listed. + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of resource objects if the stack exists and there are resources in it. If the stack cannot be found, an exception is thrown. @@ -119,4 +125,4 @@ class Proxy(proxy.BaseProxy): 'stack_id': stk.id, } return self._list(stack_resource.Resource, paginated=False, - path_args=path_args) + path_args=path_args, **query) diff --git a/openstack/proxy.py b/openstack/proxy.py index b46915f1..9b0fb035 100644 --- a/openstack/proxy.py +++ b/openstack/proxy.py @@ -186,7 +186,7 @@ class BaseProxy(object): query = res._convert_ids(query) return res.list(self.session, path_args=path_args, paginated=paginated, - **query) + params=query) def _head(self, resource_type, value=None, path_args=None): """Retrieve a resource's header diff --git a/openstack/telemetry/v2/_proxy.py b/openstack/telemetry/v2/_proxy.py index 7deb54e9..c7e70375 100644 --- a/openstack/telemetry/v2/_proxy.py +++ b/openstack/telemetry/v2/_proxy.py @@ -75,13 +75,16 @@ class Proxy(proxy.BaseProxy): """ return self._get(alarm.Alarm, value) - def alarms(self): + def alarms(self, **query): """Return a generator of alarms + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of alarm objects :rtype: :class:`~openstack.telemetry.v2.alarm.Alarm` """ - return self._list(alarm.Alarm, paginated=False) + return self._list(alarm.Alarm, paginated=False, **query) def update_alarm(self, value, **attrs): """Update a alarm @@ -111,16 +114,19 @@ class Proxy(proxy.BaseProxy): return alarm_change.AlarmChange.find(self.session, name_or_id, ignore_missing=ignore_missing) - def alarm_changes(self, value): + def alarm_changes(self, value, **query): """Return a generator of alarm changes :param value: Alarm resource or id for alarm. + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of alarm change objects :rtype: :class:`~openstack.telemetry.v2.alarm_change.AlarmChange` """ alarm_id = alarm.Alarm.from_id(value).id return self._list(alarm_change.AlarmChange, paginated=False, - path_args={'alarm_id': alarm_id}) + path_args={'alarm_id': alarm_id}, **query) def find_capability(self, name_or_id, ignore_missing=True): """Find a single capability @@ -137,13 +143,16 @@ class Proxy(proxy.BaseProxy): return capability.Capability.find(self.session, name_or_id, ignore_missing=ignore_missing) - def capabilities(self): + def capabilities(self, **query): """Return a generator of capabilities + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of capability objects :rtype: :class:`~openstack.telemetry.v2.capability.Capability` """ - return self._list(capability.Capability, paginated=False) + return self._list(capability.Capability, paginated=False, **query) def find_meter(self, name_or_id, ignore_missing=True): """Find a single meter @@ -159,13 +168,16 @@ class Proxy(proxy.BaseProxy): return meter.Meter.find(self.session, name_or_id, ignore_missing=ignore_missing) - def meters(self): + def meters(self, **query): """Return a generator of meters + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of meter objects :rtype: :class:`~openstack.telemetry.v2.meter.Meter` """ - return self._list(meter.Meter, paginated=False) + return self._list(meter.Meter, paginated=False, **query) def find_resource(self, name_or_id, ignore_missing=True): """Find a single resource @@ -195,13 +207,16 @@ class Proxy(proxy.BaseProxy): """ return self._get(resource.Resource, value) - def resources(self): + def resources(self, **query): """Return a generator of resources + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of resource objects :rtype: :class:`~openstack.telemetry.v2.resource.Resource` """ - return self._list(resource.Resource, paginated=False) + return self._list(resource.Resource, paginated=False, **query) def create_sample(self, **attrs): """Create a new sample from attributes @@ -229,13 +244,16 @@ class Proxy(proxy.BaseProxy): return sample.Sample.find(self.session, name_or_id, ignore_missing=ignore_missing) - def samples(self): + def samples(self, **query): """Return a generator of samples + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of sample objects :rtype: :class:`~openstack.telemetry.v2.sample.Sample` """ - return self._list(sample.Sample, paginated=False) + return self._list(sample.Sample, paginated=False, **query) def find_statistics(self, name_or_id, ignore_missing=True): """Find a single statistics @@ -252,13 +270,16 @@ class Proxy(proxy.BaseProxy): return statistics.Statistics.find(self.session, name_or_id, ignore_missing=ignore_missing) - def statistics(self, value): + def statistics(self, value, **query): """Return a generator of statistics :param value: Meter resource or name for a meter. + :param kwargs \*\*query: Optional query parameters to be sent to limit + the resources being returned. + :returns: A generator of statistics objects :rtype: :class:`~openstack.telemetry.v2.statistics.Statistics` """ meter_name = meter.Meter.from_name(value).name return self._list(statistics.Statistics, paginated=False, - path_args={'meter_name': meter_name}) + path_args={'meter_name': meter_name}, **query) diff --git a/openstack/tests/unit/test_proxy.py b/openstack/tests/unit/test_proxy.py index 36142441..36cf3f6f 100644 --- a/openstack/tests/unit/test_proxy.py +++ b/openstack/tests/unit/test_proxy.py @@ -263,11 +263,9 @@ class TestProxyList(testtools.TestCase): paginated=paginated, **query) self.assertEqual(self.fake_response, rv) - ListableResource.list.assert_called_once_with(self.session, - path_args=path_args, - paginated=paginated, - a=self.fake_a, - b=self.fake_b) + ListableResource.list.assert_called_once_with( + self.session, path_args=path_args, paginated=paginated, + params={'a': self.fake_a, 'b': self.fake_b}) def test_list_paginated(self): self._test_list(self.fake_path_args, True, **self.fake_query) diff --git a/openstack/tests/unit/test_proxy_base.py b/openstack/tests/unit/test_proxy_base.py index 35b4b5a7..a95b12dc 100644 --- a/openstack/tests/unit/test_proxy_base.py +++ b/openstack/tests/unit/test_proxy_base.py @@ -149,7 +149,11 @@ class TestProxyBase(base.TestCase): **kwargs): expected_kwargs = kwargs.pop("expected_kwargs", {}) expected_kwargs.update({"paginated": paginated}) + expected_kwargs['limit'] = 2 + method_kwargs = kwargs.pop("method_kwargs", {}) + method_kwargs['limit'] = 2 self._verify2(mock_method, test_method, + method_kwargs=method_kwargs, expected_args=[resource_type], expected_kwargs=expected_kwargs, expected_result=["result"],