Skip to content

Commit 137ff54

Browse files
authored
Dev > Master
Dev > Master
2 parents 1e492f5 + 913bbde commit 137ff54

File tree

13 files changed

+841
-96
lines changed

13 files changed

+841
-96
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ migrate:
124124
@cd dbaas && python manage.py migrate $(filter-out $@,$(MAKECMDGOALS))
125125

126126
dev_docker_build:
127-
@cp requirements* dev/. && cd dev && docker build -t dbaas_dev .
127+
@cp requirements.txt dev/. && cd dev && docker build -t dbaas_dev .
128128

129129
dev_docker_setup:
130130
@cd dev && ./setup_db.sh $(filter-out $@,$(MAKECMDGOALS))

dbaas/api/task.py

Lines changed: 56 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,41 @@ class TaskAPI(viewsets.ReadOnlyModelViewSet):
102102
"""
103103
Task API
104104
"""
105+
all_chg_tasks_names = [
106+
'maintenance.tasks.create_database_rollback',
107+
'maintenance.tasks.database_environment_migrate_rollback',
108+
'maintenance.tasks.node_zone_migrate_rollback',
109+
'maintenance.tasks.region_migrate',
110+
'maintenance.tasks.region_migrate_rollback',
111+
'maintenance.tasks.restore_database',
112+
'maintenance.tasks.rollback_create_database',
113+
'maintenance.tasks.start_database_vm',
114+
'maintenance.tasks.stop_database_vm',
115+
'host_migrate',
116+
'maintenance.tasks.update_ssl',
117+
'maintenance.tasks.update_ssl_rollback',
118+
'maintenance.tasks.upgrade_disk_type_database',
119+
'make_database_backup',
120+
'migrating_filer',
121+
'migrating_zone',
122+
'notification.tasks.add_instances_to_database_rollback',
123+
'notification.tasks.change_mongodb_log_rotate',
124+
'notification.tasks.change_parameters_database',
125+
'notification.tasks.clone_database_rollback',
126+
'notification.tasks.configure_ssl_database',
127+
'notification.tasks.database_set_ssl_not_required',
128+
'notification.tasks.database_set_ssl_required',
129+
'notification.tasks.destroy_database_retry',
130+
'notification.tasks.resize_database_rollback',
131+
'notification.tasks.resize_database_retry',
132+
'notification.tasks.switch_write_database',
133+
'region_migration.tasks.execute_database_region_migration',
134+
'region_migration.tasks.execute_database_region_migration_undo',
135+
'resize_disk_from_zabbix_alert',
136+
'switch_masters_in_zone',
137+
'update_config_files',
138+
'database_quarantine',
139+
]
105140

106141
chg_tasks_names = [
107142
'notification.tasks.destroy_database',
@@ -150,10 +185,30 @@ class TaskAPI(viewsets.ReadOnlyModelViewSet):
150185

151186
def get_queryset(self):
152187
params = self.request.GET.dict()
188+
database = Database.objects.all()
189+
153190
filter_params = {}
154191
for k, v in params.iteritems():
155192
if k == 'exclude_system_tasks':
156193
filter_params['task_name__in'] = self.chg_tasks_names
157194
elif k.split('__')[0] in self.filter_fields:
158195
filter_params[k] = v
159-
return self.model.objects.filter(**filter_params)
196+
result = self.model.objects.filter(**filter_params)
197+
198+
database_name_list = [
199+
db.name
200+
for db in database
201+
if db.send_all_chg
202+
]
203+
204+
if database_name_list:
205+
filter_param_chg = {
206+
'task_name__in': self.chg_tasks_names + self.all_chg_tasks_names,
207+
'database_name__in': database_name_list
208+
}
209+
for key, value in params.iteritems():
210+
if key not in ['exclude_system_tasks', 'database_name'] and key.split('__')[0] in self.filter_fields:
211+
filter_param_chg[key] = value
212+
result_chg = self.model.objects.filter(**filter_param_chg)
213+
return (result_chg | result).order_by('updated_at')
214+
return result

dbaas/dbaas_services/analyzing/views.py

Lines changed: 51 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,11 @@ def post(self, request, *args, **kwargs):
6464

6565
def vm_by_line_database_report(self):
6666

67-
header = ['Name', 'VM', 'Env', 'Team', 'Team Name', 'Team Area', 'Email', 'Emergency Contacts',
68-
'Team Organization', 'Created At', 'In Quarantine', 'Apps Bind Name']
67+
header = [
68+
'Name', 'Observacao', 'VM', 'Env', 'Team', 'Team Name', 'Team Area', 'Email', 'Emergency Contacts',
69+
'Team Organization', 'Created At', 'In Quarantine', 'Apps Bind Name', 'CPU', 'Memory in MB', 'Disk in Gb',
70+
'Engine type'
71+
]
6972

7073
databases = Database.objects.all()
7174
response = HttpResponse(content_type='text/csv')
@@ -79,26 +82,36 @@ def vm_by_line_database_report(self):
7982

8083
for database in databases:
8184
for instance in database.infra.instances.all():
82-
data = [database.name,
83-
instance.hostname.hostname.encode("utf-8"),
84-
database.environment,
85-
database.team,
86-
database.team.name,
87-
database.team.team_area,
88-
database.team.email,
89-
database.team.contacts,
90-
database.team.organization.name,
91-
database.created_at,
92-
database.is_in_quarantine,
93-
database.apps_bind_name]
85+
data = [
86+
database.name,
87+
database.attention_description,
88+
instance.hostname.hostname.encode("utf-8"),
89+
database.environment,
90+
database.team,
91+
database.team.name,
92+
database.team.team_area,
93+
database.team.email,
94+
database.team.contacts,
95+
database.team.organization.name,
96+
database.created_at,
97+
database.is_in_quarantine,
98+
database.apps_bind_name,
99+
database.infra.offering.cpus,
100+
database.infra.offering.memory_size_mb,
101+
database.infra.disk_offering.size_gb(),
102+
database.engine_type
103+
]
94104
writer.writerow(data)
95105

96106
return response
97107

98108
def default_database_report(self):
99109

100-
header = ['Name', 'VM', 'Env', 'Team', 'Team Name', 'Team Area', 'Email', 'Emergency Contacts',
101-
'Team Organization', 'Created At', 'In Quarantine', 'Apps Bind Name']
110+
header = [
111+
'Name', 'Observacao', 'VM', 'Env', 'Team', 'Team Name', 'Team Area', 'Email', 'Emergency Contacts',
112+
'Team Organization', 'Created At', 'In Quarantine', 'Apps Bind Name', 'CPU', 'Memory in MB', 'Disk in Gb',
113+
'Engine type'
114+
]
102115
databases = Database.objects.all()
103116
response = HttpResponse(content_type='text/csv')
104117

@@ -110,20 +123,28 @@ def default_database_report(self):
110123
writer.writerow(header)
111124

112125
for database in databases:
113-
hostname = [instance.hostname.hostname.encode("utf-8") for instance in
114-
database.infra.instances.all()]
115-
data = [database.name,
116-
hostname,
117-
database.environment,
118-
database.team,
119-
database.team.name,
120-
database.team.team_area,
121-
database.team.email,
122-
database.team.contacts,
123-
database.team.organization.name,
124-
database.created_at,
125-
database.is_in_quarantine,
126-
database.apps_bind_name]
126+
hostname = [
127+
instance.hostname.hostname.encode("utf-8") for instance in database.infra.instances.all()
128+
]
129+
data = [
130+
database.name,
131+
database.attention_description,
132+
hostname,
133+
database.environment,
134+
database.team,
135+
database.team.name,
136+
database.team.team_area,
137+
database.team.email,
138+
database.team.contacts,
139+
database.team.organization.name,
140+
database.created_at,
141+
database.is_in_quarantine,
142+
database.apps_bind_name,
143+
database.infra.offering.cpus,
144+
database.infra.offering.memory_size_mb,
145+
database.infra.disk_offering.size_gb(),
146+
database.engine_type
147+
]
127148
writer.writerow(data)
128149

129150
return response

dbaas/drivers/replication_topologies/mongodb.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1396,6 +1396,14 @@ def get_upgrade_steps_extra(self):
13961396
)
13971397

13981398

1399+
class MongoDBReplicaset44(MongoDBReplicaset42):
1400+
def get_upgrade_steps_final(self):
1401+
return super().get_upgrade_steps_final()
1402+
1403+
def get_upgrade_steps_extra(self):
1404+
return super().get_upgrade_steps_extra()
1405+
1406+
13991407
class MongoDBSingle42(MongoDBSingle):
14001408

14011409
def get_upgrade_steps_final(self):
@@ -1424,6 +1432,14 @@ def get_upgrade_steps_extra(self):
14241432
)
14251433

14261434

1435+
class MongoDBSingle44(MongoDBSingle42):
1436+
def get_upgrade_steps_final(self):
1437+
return super().get_upgrade_steps_final()
1438+
1439+
def get_upgrade_steps_extra(self):
1440+
return super().get_upgrade_steps_extra()
1441+
1442+
14271443
class MongoDBSingleK8s(MongoDBSingle):
14281444

14291445
@property
@@ -1678,6 +1694,11 @@ def get_change_binaries_upgrade_patch_steps_rollback(self):
16781694
)
16791695

16801696

1697+
class MongoDBSingle44GCE(MongoGenericGCE, MongoDBSingle44):
1698+
def get_host_migrate_steps(self):
1699+
return self.get_single_migration_steps()
1700+
1701+
16811702
class MongoDBSingle42GCE(MongoGenericGCE, MongoDBSingle42):
16821703
def get_host_migrate_steps(self):
16831704
return self.get_single_migration_steps()
@@ -1688,6 +1709,11 @@ def get_host_migrate_steps(self):
16881709
return self.get_single_migration_steps()
16891710

16901711

1712+
class MongoDBReplicaset44GCE(MongoGenericGCE, MongoDBReplicaset44):
1713+
def get_host_migrate_steps(self):
1714+
return self.get_replica_migration_steps()
1715+
1716+
16911717
class MongoDBReplicaset42GCE(MongoGenericGCE, MongoDBReplicaset42):
16921718
def get_host_migrate_steps(self):
16931719
return self.get_replica_migration_steps()

0 commit comments

Comments
 (0)