~ubuntu-branches/ubuntu/raring/nova/raring-proposed

« back to all changes in this revision

Viewing changes to nova/api/openstack/compute/contrib/hosts.py

  • Committer: Package Import Robot
  • Author(s): Chuck Short, Adam Gandelman, Chuck Short
  • Date: 2012-11-23 09:04:58 UTC
  • mfrom: (1.1.66)
  • Revision ID: package-import@ubuntu.com-20121123090458-91565o7aev1i1h71
Tags: 2013.1~g1-0ubuntu1
[ Adam Gandelman ]
* debian/control: Ensure novaclient is upgraded with nova,
  require python-keystoneclient >= 1:2.9.0. (LP: #1073289)
* debian/patches/{ubuntu/*, rbd-security.patch}: Dropped, applied
  upstream.
* debian/control: Add python-testtools to Build-Depends.

[ Chuck Short ]
* New upstream version.
* Refreshed debian/patches/avoid_setuptools_git_dependency.patch.
* debian/rules: FTBFS if missing binaries.
* debian/nova-scheudler.install: Add missing rabbit-queues and
  nova-rpc-zmq-receiver.
* Remove nova-volume since it doesnt exist anymore, transition to cinder-*.
* debian/rules: install apport hook in the right place.
* debian/patches/ubuntu-show-tests.patch: Display test failures.
* debian/control: Add depends on genisoimage
* debian/control: Suggest guestmount.
* debian/control: Suggest websockify. (LP: #1076442)
* debian/nova.conf: Disable nova-volume service.
* debian/control: Depend on xen-system-* rather than the hypervisor.
* debian/control, debian/mans/nova-conductor.8, debian/nova-conductor.init,
  debian/nova-conductor.install, debian/nova-conductor.logrotate
  debian/nova-conductor.manpages, debian/nova-conductor.postrm
  debian/nova-conductor.upstart.in: Add nova-conductor service.
* debian/control: Add python-fixtures as a build deps.

Show diffs side-by-side

added added

removed removed

Lines of Context:
25
25
from nova.compute import api as compute_api
26
26
from nova import db
27
27
from nova import exception
28
 
from nova import flags
29
28
from nova.openstack.common import log as logging
30
29
 
31
 
 
32
30
LOG = logging.getLogger(__name__)
33
 
FLAGS = flags.FLAGS
34
31
authorize = extensions.extension_authorizer('compute', 'hosts')
35
32
 
36
33
 
37
34
class HostIndexTemplate(xmlutil.TemplateBuilder):
38
35
    def construct(self):
39
 
        def shimmer(obj, do_raise=False):
40
 
            # A bare list is passed in; we need to wrap it in a dict
41
 
            return dict(hosts=obj)
42
 
 
43
 
        root = xmlutil.TemplateElement('hosts', selector=shimmer)
 
36
        root = xmlutil.TemplateElement('hosts')
44
37
        elem = xmlutil.SubTemplateElement(root, 'host', selector='hosts')
45
38
        elem.set('host_name')
46
39
        elem.set('service')
98
91
    """
99
92
    context = req.environ['nova.context']
100
93
    services = db.service_get_all(context, False)
101
 
 
 
94
    zone = ''
 
95
    if 'zone' in req.GET:
 
96
        zone = req.GET['zone']
 
97
    if zone:
 
98
        services = [s for s in services if s['availability_zone'] == zone]
102
99
    hosts = []
103
100
    for host in services:
104
 
        hosts.append({"host_name": host['host'], 'service': host['topic']})
 
101
        hosts.append({"host_name": host['host'], 'service': host['topic'],
 
102
                      'zone': host['availability_zone']})
105
103
    if service:
106
104
        hosts = [host for host in hosts
107
 
                if host["service"] == service]
 
105
                 if host["service"] == service]
108
106
    return hosts
109
107
 
110
108