Esempio n. 1
0
 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)
Esempio n. 2
0
 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)
Esempio n. 3
0
 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())
Esempio n. 4
0
 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())
Esempio n. 5
0
    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())