34 lines
1.1 KiB
Python
34 lines
1.1 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(item)
|
|
return items
|