def _run(self): keypairs = self.client.list_keypairs() keypairs = [k['keypair'] for k in keypairs] if not self['detail']: remove_from_items(keypairs, 'public_key') keypairs = self._filter_by_name(keypairs) self.print_(keypairs)
def test_remove_from_items(self): from kamaki.cli.utils import remove_from_items for v in ('wrong', [1, 2, 3], [{}, 2, {}]): self.assertRaises(AssertionError, remove_from_items, v, 'none') d = dict(k1=1, k2=dict(k2=2, k3=3), k3=3, k4=4) for k in (d.keys() + ['kN']): tmp1, tmp2 = dict(d), dict(d) remove_from_items([tmp1, ], k) tmp1.pop(k, None) self.assert_dicts_are_equal(tmp1, tmp2) for k in (d.keys() + ['kN']): tmp1, tmp2 = dict(d), dict(d) remove_from_items([tmp1, tmp2], k) self.assert_dicts_are_equal(tmp1, tmp2)
def _run(self): withcommons = self['ram'] or self['vcpus'] or ( self['disk'] or self['disk_template']) detail = self['detail'] or withcommons flavors = self.client.list_flavors(detail) flavors = self._filter_by_name(flavors) flavors = self._filter_by_id(flavors) if withcommons: flavors = self._apply_common_filters(flavors) if not (self['detail'] or self['output_format']): remove_from_items(flavors, 'links') if detail and not self['detail']: for flv in flavors: for key in set(flv).difference(['id', 'name']): flv.pop(key) kwargs = dict(out=StringIO(), title=()) if self['more'] else {} self.print_(flavors, with_enumeration=self['enum'], **kwargs) if self['more']: pager(kwargs['out'].getvalue())
def _run(self): withcommons = self['ram'] or self['vcpus'] or (self['disk'] or self['disk_template']) detail = self['detail'] or withcommons flavors = self.client.list_flavors(detail) flavors = self._filter_by_name(flavors) flavors = self._filter_by_id(flavors) if withcommons: flavors = self._apply_common_filters(flavors) if not (self['detail'] or self['output_format']): remove_from_items(flavors, 'links') if detail and not self['detail']: for flv in flavors: for key in set(flv).difference(['id', 'name']): flv.pop(key) kwargs = dict(out=StringIO(), title=()) if self['more'] else {} self.print_(flavors, with_enumeration=self['enum'], **kwargs) if self['more']: pager(kwargs['out'].getvalue())
def _run(self): withimage = bool(self['image_id']) withflavor = bool(self['flavor_id']) withmeta = bool(self['meta'] or self['meta_like']) withcommons = bool( self['status'] or self['user_id'] or self['user_name']) detail = self['detail'] or ( withimage or withflavor or withmeta or withcommons) servers = self.client.list_servers(detail, self['since']) servers = self._filter_by_name(servers) servers = self._filter_by_id(servers) servers = self._apply_common_filters(servers) if withimage: servers = self._filter_by_image(servers) if withflavor: servers = self._filter_by_flavor(servers) if withmeta: servers = self._filter_by_metadata(servers) if self['detail'] and not ( self['json_output'] or self['output_format']): servers = self._add_user_name(servers) elif not (self['detail'] or ( self['json_output'] or self['output_format'])): remove_from_items(servers, 'links') if detail and not self['detail']: for srv in servers: for key in set(srv).difference(self.PERMANENTS): srv.pop(key) kwargs = dict(with_enumeration=self['enum']) if self['more']: kwargs['out'] = StringIO() kwargs['title'] = () if self['limit']: servers = servers[:self['limit']] self._print(servers, **kwargs) if self['more']: pager(kwargs['out'].getvalue())