Skip to content

Commit 6a61fbd

Browse files
author
Marcelo RS Soares
committed
fixed the reports getting the wrong apps field and did a little bit of refactoring
1 parent c31e545 commit 6a61fbd

File tree

2 files changed

+70
-41
lines changed

2 files changed

+70
-41
lines changed

dbaas/dbaas_services/analyzing/views.py

Lines changed: 42 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@
1313
from dbaas.middleware import UserMiddleware
1414
from django.conf import settings
1515
from account.models import Team, Role
16+
from datetime import datetime
1617

1718
import models
1819
import csv
1920
import logging
20-
import datetime
2121

2222

2323
class SubUsedResourceReport(ListView):
@@ -55,34 +55,55 @@ def get(self, request, *args, **kwargs):
5555
def post(self, request, *args, **kwargs):
5656
self.has_perm(request)
5757

58-
header = ['Name', 'VM', 'Env', 'Team', 'Created At', 'In Quarantine', 'Apps Bind Name']
59-
databases = Database.objects.all()
6058
database_report = request.POST.get("database_report", "")
6159

60+
if database_report == 'database_report':
61+
return self.default_database_report()
62+
else:
63+
return self.vm_by_line_database_report()
64+
65+
66+
def vm_by_line_database_report(self):
67+
68+
header = ['Name', 'VM', 'Env', 'Team', 'Created At', 'In Quarantine', 'Apps Bind Name']
69+
databases = Database.objects.all()
6270
response = HttpResponse(content_type='text/csv')
63-
response['Content-Disposition'] = 'attachment; filename="report.csv"'
71+
72+
filename = 'dbaas_databases_vm_by_line-' + datetime.now().strftime("%Y-%m-%m") + ".csv"
73+
74+
response['Content-Disposition'] = 'attachment; filename="'+ filename + '"'
6475
writer = csv.writer(response, csv.excel)
6576
response.write(u'\ufeff'.encode('utf8'))
6677
writer.writerow(header)
6778

6879
for database in databases:
69-
database_history = DatabaseHistory.objects.filter(database_id=database.id).last()
70-
try:
71-
apps_bind_name = database_history.apps_bind_name
72-
except:
73-
apps_bind_name = ''
74-
if database_report == 'database_report':
75-
hostname = [instance.hostname.hostname.encode("utf-8") for instance in
76-
database.infra.instances.all()]
77-
data = [database.name, hostname, database.environment, database.team,
78-
database.created_at, database.is_in_quarantine, apps_bind_name]
80+
for instance in database.infra.instances.all():
81+
data = [database.name, instance.hostname.hostname.encode("utf-8"), database.environment,
82+
database.team,
83+
database.created_at, database.is_in_quarantine, database.apps_bind_name]
7984
writer.writerow(data)
80-
else:
81-
for instance in database.infra.instances.all():
82-
data = [database.name, instance.hostname.hostname.encode("utf-8"), database.environment,
83-
database.team,
84-
database.created_at, database.is_in_quarantine, apps_bind_name]
85-
writer.writerow(data)
86-
85+
86+
8787
return response
8888

89+
def default_database_report(self):
90+
91+
header = ['Name', 'VM', 'Env', 'Team', 'Created At', 'In Quarantine', 'Apps Bind Name']
92+
databases = Database.objects.all()
93+
response = HttpResponse(content_type='text/csv')
94+
95+
filename = 'dbaas_databases-' + datetime.now().strftime("%Y-%m-%m") + ".csv"
96+
response['Content-Disposition'] = 'attachment; filename="'+ filename + '"'
97+
98+
writer = csv.writer(response, csv.excel)
99+
response.write(u'\ufeff'.encode('utf8'))
100+
writer.writerow(header)
101+
102+
for database in databases:
103+
hostname = [instance.hostname.hostname.encode("utf-8") for instance in
104+
database.infra.instances.all()]
105+
data = [database.name, hostname, database.environment, database.team,
106+
database.created_at, database.is_in_quarantine, database.apps_bind_name]
107+
writer.writerow(data)
108+
109+
return response

dev/docker-compose.yml

Lines changed: 28 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ networks:
33
gntw:
44
driver: bridge
55
services:
6+
67
app:
78
image: dbaas_dev
89
volumes:
@@ -29,6 +30,7 @@ services:
2930
- SSL_CERT_FILE=/etc/ssl/certsg/AC_RAIZ.pem
3031
networks:
3132
- gntw
33+
3234
app_celery:
3335
image: dbaas_dev
3436
volumes:
@@ -54,26 +56,32 @@ services:
5456
- SSL_CERT_FILE=/etc/ssl/certsg/AC_RAIZ.pem
5557
networks:
5658
- gntw
59+
5760
dev_redisdb:
58-
image: redis:3.2
59-
container_name: dev_redis32
60-
networks:
61-
- gntw
61+
image: redis:3.2
62+
container_name: dev_redis32
63+
networks:
64+
- gntw
65+
6266
dev_mongodb:
63-
image: mongo:3.4
64-
container_name: dev_mongo34
65-
networks:
66-
- gntw
67+
image: mongo:3.4
68+
container_name: dev_mongo34
69+
networks:
70+
- gntw
71+
6772
dev_mysqldb57:
68-
platform: linux/x86_64
69-
image: mysql:5.7
70-
container_name: dev_mysql57
71-
volumes:
72-
- ./data/mysql:/var/lib/mysql
73-
environment:
74-
- MYSQL_ROOT_PASSWORD=123
75-
- MYSQL_USER=rute
76-
- MYSQL_PASSWORD=123
77-
- MYSQL_DATABASE=dbaas
78-
networks:
79-
- gntw
73+
platform: linux/x86_64
74+
image: mysql:5.7
75+
container_name: dev_mysql57
76+
volumes:
77+
- ./data/mysql:/var/lib/mysql
78+
environment:
79+
- MYSQL_ROOT_PASSWORD=123
80+
- MYSQL_USER=rute
81+
- MYSQL_PASSWORD=123
82+
- MYSQL_DATABASE=dbaas
83+
networks:
84+
- gntw
85+
ports:
86+
- "4406:3306"
87+

0 commit comments

Comments
 (0)