console/app/cloud/controllers/datacenters/__init__.py
2015-12-24 02:36:32 +03:00

39 lines
1.2 KiB
Python

from app import models
class ControllerDataCenters:
def get(self):
"""
Get active data centers list
select * from datacenters where status=1 AND id in (
select datacenter_id from servers where id in (
select server_id from ips where status=0 group by server_id
)
);
:return:
"""
# server id's with ip with status = 0
dclist = models.DataCenters.select().where(
models.DataCenters.status == 1 and
models.DataCenters.id << models.Servers.select(models.Servers.datacenter).where(
models.Servers.status == 1 and
models.Servers.id << models.Ips.select(models.Ips.server).where(
models.Ips.status == 0
).group_by(models.Ips.server)
).group_by(models.Servers.datacenter)
)
items = dict()
items['total'] = dclist.count()
items['items'] = []
for item in dclist.execute():
items['items'].append({
'id': item.id,
'name': item.name,
'country': item.country,
'city': item.city,
})
return items