def list(self, limit=None, marker=None): # pylint:disable=protected-access if self.provider._keystone_version == 3: os_regions = [ OpenStackRegion(self.provider, region) for region in self.provider.keystone.regions.list() ] return ClientPagedResultList(self.provider, os_regions, limit=limit, marker=marker) else: # Keystone v3 onwards supports directly listing regions # but for v2, this convoluted method is necessary. regions = ( endpoint.get('region') or endpoint.get('region_id') for svc in self.provider.keystone.service_catalog.get_data() for endpoint in svc.get('endpoints', [])) regions = set(region for region in regions if region) os_regions = [ OpenStackRegion(self.provider, region) for region in regions ] return ClientPagedResultList(self.provider, os_regions, limit=limit, marker=marker)
def test_client_paged_result_list(self): objects = self.objects # A list with limit=2 and marker=None results = ClientPagedResultList(self.provider, objects, 2, None) self.assertListEqual(results, list(itertools.islice(objects, 2))) self.assertEqual(results.marker, objects[1].id) self.assertTrue(results.is_truncated) self.assertTrue(results.supports_total) self.assertEqual(results.total_results, 4) self.assertEqual(results.data, objects) # A list with limit=2 and marker=2 results = ClientPagedResultList(self.provider, objects, 2, 2) self.assertListEqual(results, list(itertools.islice(objects, 2, 4))) self.assertEqual(results.marker, None) self.assertFalse(results.is_truncated) self.assertTrue(results.supports_total) self.assertEqual(results.total_results, 4) self.assertEqual(results.data, objects) # A list with limit=2 and marker=3 results = ClientPagedResultList(self.provider, objects, 2, 3) self.assertListEqual(results, list(itertools.islice(objects, 3, 4))) self.assertFalse(results.is_truncated) self.assertEqual(results.marker, None) self.assertEqual(results.data, objects) self.assertFalse( results.supports_server_paging, "Client paged result" " lists should return False for server paging.")
def list(self, limit=None, marker=None): firewalls = [ OpenStackVMFirewall(self.provider, fw) for fw in self.provider.os_conn.network.security_groups()] return ClientPagedResultList(self.provider, firewalls, limit=limit, marker=marker)
def list(self, limit=None, marker=None): routers = self.provider.vpc_conn.get_all_route_tables() aws_routers = [AWSRouter(self.provider, r) for r in routers] return ClientPagedResultList(self.provider, aws_routers, limit=limit, marker=marker)
def find(self, name, limit=None, marker=None): objects = [obj for obj in self if obj.name == name] return ClientPagedResultList(self._provider, objects, limit=limit, marker=marker)
def list(self, limit=None, marker=None): floating_ips = [AzureFloatingIP(self._provider, floating_ip, self._network_id) for floating_ip in self._provider.azure_client. list_floating_ips()] return ClientPagedResultList(self._provider, floating_ips, limit=limit, marker=marker)
def list(self, limit=None, marker=None): routers = self.provider.neutron.list_routers().get('routers') os_routers = [OpenStackRouter(self.provider, r) for r in routers] return ClientPagedResultList(self.provider, os_routers, limit=limit, marker=marker)
def find(self, name, limit=None, marker=None): sgs = [self.provider.os_conn.network.find_security_group(name)] results = [OpenStackVMFirewall(self.provider, sg) for sg in sgs if sg] return ClientPagedResultList(self.provider, results, limit=limit, marker=marker)
def find(self, name, limit=None, marker=None): networks = [OpenStackNetwork(self.provider, network) for network in self.provider.neutron.list_networks( name=name) .get('networks') if network] return ClientPagedResultList(self.provider, networks, limit=limit, marker=marker)
def list(self, limit=None, marker=None): log.debug("OpenStack listing of all current internet gateways") igl = [OpenStackInternetGateway(self._provider, n) for n in self._provider.networking.networks if n.external and self._check_fip_connectivity(n)] return ClientPagedResultList(self._provider, igl, limit=limit, marker=marker)
def list(self, limit=None, marker=None, collection=None, **kwargs): """ List a set of resources. :type collection: ``ResourceCollection`` :param collection: Boto resource collection object corresponding to the current resource. See http://boto3.readthedocs.io/ en/latest/guide/collections.html """ limit = limit or self.provider.config.default_result_limit collection = collection or self.boto_collection.filter(**kwargs) pag_type, resume_token, boto_objs = self._make_query( collection, limit, marker) # Wrap in CB objects. results = [self.cb_resource(self.provider, obj) for obj in boto_objs] if pag_type == 'server': log.debug("Using server pagination.") return ServerPagedResultList( is_truncated=True if resume_token else False, marker=resume_token if resume_token else None, supports_total=False, data=results) else: log.debug("Did not received a resume token, will page in client" " if necessary.") return ClientPagedResultList(self.provider, results, limit=limit, marker=marker)
def list(self, network=None, zone=None, limit=None, marker=None): """ If the zone is not given, we list all subnetworks, in all regions. """ filter = None if network is not None: network = (network if isinstance(network, GCENetwork) else self.provider.networking.networks.get(network)) filter = 'network eq %s' % network.resource_url region_names = [] if zone: region_names.append(self._zone_to_region_name(zone)) else: for r in self.provider.compute.regions: region_names.append(r.name) subnets = [] for region_name in region_names: response = (self.provider.gce_compute.subnetworks().list( project=self.provider.project_name, region=region_name, filter=filter).execute()) for subnet in response.get('items', []): subnets.append(GCESubnet(self.provider, subnet)) return ClientPagedResultList(self.provider, subnets, limit=limit, marker=marker)
def list(self, limit=None, marker=None): fips = [OpenStackFloatingIP(self._provider, fip) for fip in self._provider.os_conn.network.ips( floating_network_id=self.gateway.id )] return ClientPagedResultList(self._provider, fips, limit=limit, marker=marker)
def list(self, limit=None, marker=None): regions = [ AWSRegion(self.provider, region) for region in self.provider.ec2_conn.meta.client.describe_regions() .get('Regions', [])] return ClientPagedResultList(self.provider, regions, limit=limit, marker=marker)
def list(self, limit=None, marker=None): vm_types = [ AWSVMType(self.provider, vm_type) for vm_type in self.instance_data ] return ClientPagedResultList(self.provider, vm_types, limit=limit, marker=marker)
def find(self, name, limit=None, marker=None): filtr = {'tag:Name': name} routers = self.provider.vpc_conn.get_all_route_tables(filters=filtr) aws_routers = [AWSRouter(self.provider, r) for r in routers] return ClientPagedResultList(self.provider, aws_routers, limit=limit, marker=marker)
def find(self, **kwargs): obj_list = self filters = ['name'] matches = cb_helpers.generic_find(filters, kwargs, obj_list) return ClientPagedResultList(self._provider, list(matches), limit=None, marker=None)
def list(self, network=None, limit=None, marker=None): """ List subnets """ return ClientPagedResultList(self.provider, self._list_subnets(network), limit=limit, marker=marker)
def list(self, limit=None, marker=None): networks = [ AWSNetwork(self.provider, network) for network in self.provider.vpc_conn.get_all_vpcs() ] return ClientPagedResultList(self.provider, networks, limit=limit, marker=marker)
def list(self, limit=None, marker=None): regions = [ AWSRegion(self.provider, region) for region in self.provider.ec2_conn.get_all_regions() ] return ClientPagedResultList(self.provider, regions, limit=limit, marker=marker)
def list(self, limit=None, marker=None): routes = [ AzureRouter(self.provider, route) for route in self.provider.azure_client.list_route_tables() ] return ClientPagedResultList(self.provider, routes, limit=limit, marker=marker)
def find(self, limit=None, marker=None, **kwargs): """ GCE networks are global. There is at most one network with a given name. """ obj_list = self filters = ['name', 'label'] matches = cb_helpers.generic_find(filters, kwargs, obj_list) return ClientPagedResultList(self._provider, list(matches))
def list(self, limit=None, marker=None): """ List all snapshots. """ snaps = [ AzureSnapshot(self.provider, obj) for obj in self.provider.azure_client.list_snapshots() ] return ClientPagedResultList(self.provider, snaps, limit, marker)
def list(self, limit=None, marker=None): regions = [ AzureRegion(self.provider, region) for region in self.provider.azure_client.list_locations() ] return ClientPagedResultList(self.provider, regions, limit=limit, marker=marker)
def find(self, name, limit=None, marker=None): """ Get all security groups associated with your account. """ sgs = self.provider.nova.security_groups.findall(name=name) results = [OpenStackSecurityGroup(self.provider, sg) for sg in sgs] return ClientPagedResultList(self.provider, results, limit=limit, marker=marker)
def find(self, name, limit=None, marker=None): """ Searches in bucket names for a substring. """ buckets = [bucket for bucket in self if name in bucket.name] return ClientPagedResultList(self.provider, buckets, limit=limit, marker=marker)
def find(self, name, limit=None, marker=None): """ Searches for a key pair by a given list of attributes. """ keypairs = self.provider.nova.keypairs.findall(name=name) results = [OpenStackKeyPair(self.provider, kp) for kp in keypairs] return ClientPagedResultList(self.provider, results, limit=limit, marker=marker)
def list(self, limit=None, marker=None): # Filter out firewall rules with priority < 3500 because values # between 3500 and 4096 are assumed to be owned by cloudbridge # default rules. # pylint:disable=protected-access rules = [AzureVMFirewallRule(self.firewall, rule) for rule in self.firewall._vm_firewall.security_rules if rule.priority < 3500] return ClientPagedResultList(self._provider, rules, limit=limit, marker=marker)
def list(self, limit=None, marker=None): """ List all volumes. """ azure_vols = self.provider.azure_client.list_disks() cb_vols = [AzureVolume(self.provider, vol) for vol in azure_vols] return ClientPagedResultList(self.provider, cb_vols, limit=limit, marker=marker)
def list(self, limit=None, marker=None): """ List all volumes. """ aws_vols = self.provider.ec2_conn.get_all_volumes() cb_vols = [AWSVolume(self.provider, vol) for vol in aws_vols] return ClientPagedResultList(self.provider, cb_vols, limit=limit, marker=marker)