console/SWSCloudCore/controllers/datacenters/__init__.py
2016-06-09 03:09:58 +03:00

50 lines
1.5 KiB
Python

# coding: utf-8
from SWSCloudCore 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
@staticmethod
def exists(datacenter_id, status=1):
if models.DataCenters.select().where(
models.DataCenters.id == datacenter_id,
models.DataCenters.status == status
).count() == 0:
return False
return True