Ejemplo n.º 1
0
 def _filter_by_properties(self, images):
     new_images = []
     for img in images:
         props = [dict(img["properties"])]
         if self["prop"]:
             props = filter_dicts_by_dict(props, self["prop"])
         if props and self["prop_like"]:
             props = filter_dicts_by_dict(props, self["prop_like"], exact_match=False)
         if props:
             new_images.append(img)
     return new_images
Ejemplo n.º 2
0
 def _filter_by_metadata(self, images):
     new_images = []
     for img in images:
         meta = [dict(img["metadata"])]
         if self["meta"]:
             meta = filter_dicts_by_dict(meta, self["meta"])
         if meta and self["meta_like"]:
             meta = filter_dicts_by_dict(meta, self["meta_like"], exact_match=False)
         if meta:
             new_images.append(img)
     return new_images
Ejemplo n.º 3
0
 def _filter_by_metadata(self, images):
     new_images = []
     for img in images:
         meta = [dict(img['metadata'])]
         if self['meta']:
             meta = filter_dicts_by_dict(meta, self['meta'])
         if meta and self['meta_like']:
             meta = filter_dicts_by_dict(
                 meta, self['meta_like'], exact_match=False)
         if meta:
             new_images.append(img)
     return new_images
Ejemplo n.º 4
0
 def _filter_by_properties(self, images):
     new_images = []
     for img in images:
         props = [dict(img['properties'])]
         if self['prop']:
             props = filter_dicts_by_dict(props, self['prop'])
         if props and self['prop_like']:
             props = filter_dicts_by_dict(
                 props, self['prop_like'], exact_match=False)
         if props:
             new_images.append(img)
     return new_images
Ejemplo n.º 5
0
 def _filter_by_metadata(self, servers):
     new_servers = []
     for srv in servers:
         if 'metadata' not in srv:
             continue
         meta = [dict(srv['metadata'])]
         if self['meta']:
             meta = filter_dicts_by_dict(meta, self['meta'])
         if meta and self['meta_like']:
             meta = filter_dicts_by_dict(
                 meta, self['meta_like'], exact_match=False)
         if meta:
             new_servers.append(srv)
     return new_servers
Ejemplo n.º 6
0
 def _apply_common_filters(self, servers):
     common_filters = dict()
     if self['status']:
         common_filters['status'] = self['status']
     if self['user_id'] or self['user_name']:
         uuid = self['user_id'] or self._username2uuid(self['user_name'])
         common_filters['user_id'] = uuid
     return filter_dicts_by_dict(servers, common_filters)
Ejemplo n.º 7
0
 def _apply_common_filters(self, flavors):
     common_filters = dict()
     if self['ram']:
         common_filters['ram'] = self['ram']
     if self['vcpus']:
         common_filters['vcpus'] = self['vcpus']
     if self['disk']:
         common_filters['disk'] = self['disk']
     if self['disk_template']:
         common_filters['SNF:disk_template'] = self['disk_template']
     return filter_dicts_by_dict(flavors, common_filters)
Ejemplo n.º 8
0
    def test_filter_dicts_by_dict(self):
        from kamaki.cli.utils import filter_dicts_by_dict

        dlist = [
            dict(k1='v1', k2='v2', k3='v3'),
            dict(k1='v1'),
            dict(k2='v2', k3='v3'),
            dict(k1='V1', k3='V3'),
            dict()]
        for l, f, em, cs, exp in (
                (dlist, dlist[2], True, False, dlist[0:1] + dlist[2:3]),
                (dlist, dlist[1], True, False, dlist[0:2] + dlist[3:4]),
                (dlist, dlist[1], True, True, dlist[0:2]),
                (dlist, {'k3': 'v'}, True, False, []),
                (dlist, {'k3': 'v'}, False, False, dlist[0:1] + dlist[2:4]),
                (dlist, {'k3': 'v'}, False, True, dlist[0:1] + dlist[2:3]),
                (dlist, {'k3': 'v'}, True, True, []),
                (dlist, dlist[4], True, False, dlist),
                ):
            self.assertEqual(exp, filter_dicts_by_dict(l, f, em, cs))
Ejemplo n.º 9
0
 def _run(self):
     r = self.client.get_endpoints()['access']['serviceCatalog']
     r = self._filter_by_name(r)
     if self['endpoint_type']:
         r = filter_dicts_by_dict(r, dict(type=self['endpoint_type']))
     self.print_(r)
Ejemplo n.º 10
0
 def _filter_by_user(self, images):
     uuid = self['user_id'] or self._username2uuid(self['user_name'])
     return filter_dicts_by_dict(images, dict(user_id=uuid))
Ejemplo n.º 11
0
 def _exact_id_filter(self, items):
     return filter_dicts_by_dict(items, dict(
         id=self['id'])) if (self['id']) else items
Ejemplo n.º 12
0
 def _filter_by_owner(self, images):
     ouuid = self['owner'] or self._username2uuid(self['owner_name'])
     return filter_dicts_by_dict(images, dict(owner=ouuid))
Ejemplo n.º 13
0
 def _filter_by_user(self, images):
     uuid = self["user_id"] or self._username2uuid(self["user_name"])
     return filter_dicts_by_dict(images, dict(user_id=uuid))
Ejemplo n.º 14
0
 def _filter_by_owner(self, images):
     ouuid = self["owner"] or self._username2uuid(self["owner_name"])
     return filter_dicts_by_dict(images, dict(owner=ouuid))
Ejemplo n.º 15
0
 def _exact_id_filter(self, items):
     return filter_dicts_by_dict(items, dict(id=self['id'])) if (
         self['id']) else items
Ejemplo n.º 16
0
 def _exact_name_filter(self, items):
     return filter_dicts_by_dict(items, dict(name=self['name'] or '')) if (
         self['name']) else items
Ejemplo n.º 17
0
 def _run(self):
     r = self.client.get_endpoints()['access']['serviceCatalog']
     r = self._filter_by_name(r)
     if self['endpoint_type']:
         r = filter_dicts_by_dict(r, dict(type=self['endpoint_type']))
     self.print_(r)
Ejemplo n.º 18
0
 def _exact_name_filter(self, items):
     return filter_dicts_by_dict(items, dict(
         name=self['name'] or '')) if (self['name']) else items