~ubuntu-branches/ubuntu/trusty/horizon/trusty-updates

« back to all changes in this revision

Viewing changes to openstack_dashboard/dashboards/admin/info/tables.py

  • Committer: Package Import Robot
  • Author(s): James Page
  • Date: 2014-03-06 16:53:28 UTC
  • mfrom: (1.1.37)
  • Revision ID: package-import@ubuntu.com-20140306165328-w2vgmtfriqlhp27m
Tags: 1:2014.1~b3-0ubuntu1
* New upstream milestone release.
* d/static/*: Refreshed assets for new upstream release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
66
66
    return zone.zoneState['available']
67
67
 
68
68
 
69
 
def get_zone_hosts(zone):
70
 
    hosts = zone.hosts
71
 
    host_details = []
72
 
    for name, services in hosts.items():
73
 
        up = all([s['active'] and s['available'] for k, s in services.items()])
74
 
        up = _("Services Up") if up else _("Services Down")
75
 
        host_details.append("%(host)s (%(up)s)" % {'host': name, 'up': up})
76
 
    return host_details
77
 
 
78
 
 
79
 
class ZonesTable(tables.DataTable):
80
 
    name = tables.Column('zoneName', verbose_name=_('Name'))
81
 
    hosts = tables.Column(get_zone_hosts,
82
 
                          verbose_name=_('Hosts'),
83
 
                          wrap_list=True,
84
 
                          filters=(filters.unordered_list,))
85
 
    available = tables.Column(get_available,
86
 
                              verbose_name=_('Available'),
87
 
                              status=True,
88
 
                              filters=(filters.yesno, filters.capfirst))
89
 
 
90
 
    def get_object_id(self, zone):
91
 
        return zone.zoneName
92
 
 
93
 
    class Meta:
94
 
        name = "zones"
95
 
        verbose_name = _("Availability Zones")
96
 
        multi_select = False
97
 
        status_columns = ["available"]
98
 
 
99
 
 
100
69
class NovaServiceFilterAction(tables.FilterAction):
101
70
    def filter(self, table, services, filter_string):
102
71
        q = filter_string.lower()
130
99
        multi_select = False
131
100
 
132
101
 
133
 
def get_aggregate_hosts(aggregate):
134
 
    return [host for host in aggregate.hosts]
135
 
 
136
 
 
137
 
def get_metadata(aggregate):
138
 
    return [' = '.join([key, val]) for key, val
139
 
            in aggregate.metadata.iteritems()]
140
 
 
141
 
 
142
 
class AggregatesTable(tables.DataTable):
143
 
    name = tables.Column("name",
144
 
                         verbose_name=_("Name"))
145
 
    availability_zone = tables.Column("availability_zone",
146
 
                                      verbose_name=_("Availability Zone"))
147
 
    hosts = tables.Column(get_aggregate_hosts,
148
 
                          verbose_name=_("Hosts"),
149
 
                          wrap_list=True,
150
 
                          filters=(filters.unordered_list,))
151
 
    metadata = tables.Column(get_metadata,
152
 
                             verbose_name=_("Metadata"),
153
 
                             wrap_list=True,
154
 
                             filters=(filters.unordered_list,))
155
 
 
156
 
    class Meta:
157
 
        name = "aggregates"
158
 
        verbose_name = _("Host Aggregates")
159
 
 
160
 
 
161
102
class NetworkAgentsFilterAction(tables.FilterAction):
162
103
    def filter(self, table, agents, filter_string):
163
104
        q = filter_string.lower()