def setUp(self): self.superuser = User.objects.create(username='******', is_superuser=True) self.user = User.objects.create(username='******') # 使用 travis.ci 时实例和测试service保持一致 self.master = Instance( instance_name='test_instance', type='master', db_type='mysql', host=settings.DATABASES['default']['HOST'], port=settings.DATABASES['default']['PORT'], user=settings.DATABASES['default']['USER'], password=settings.DATABASES['default']['PASSWORD']) self.master.save() self.sys_config = SysConfig() self.client = Client() self.group = ResourceGroup.objects.create(group_id=1, group_name='group_name') self.wf1 = SqlWorkflow.objects.create( workflow_name='workflow_name', group_id=self.group.group_id, group_name=self.group.group_name, engineer=self.superuser.username, engineer_display=self.superuser.display, audit_auth_groups='audit_auth_groups', create_time=datetime.datetime.now(), status='workflow_review_pass', is_backup=True, instance=self.master, db_name='db_name', syntax_type=1, ) self.wfc1 = SqlWorkflowContent.objects.create(workflow=self.wf1, sql_content='some_sql', execute_result='')
def setUpClass(cls): cls.u1 = User(username='******', display='用户1') cls.u1.save() cls.ins1 = Instance(instance_name='some_ins', type='master', db_type='mssql', host='some_host', port=1366, user='******', password='******') cls.ins1.save() cls.wf1 = SqlWorkflow.objects.create( workflow_name='some_name', group_id=1, group_name='g1', engineer=cls.u1.username, engineer_display=cls.u1.display, audit_auth_groups='some_group', create_time=datetime.now() - timedelta(days=1), status='workflow_finish', is_backup='是', instance=cls.ins1, db_name='some_db', syntax_type=1 ) cls.wfc1 = SqlWorkflowContent.objects.create( workflow=cls.wf1, sql_content='some_sql', execute_result=json.dumps([{ 'id': 1, 'sql': 'some_content' }])) cls.wf1.save()
def setUp(self): self.superuser1 = User(username='******', display='中文显示', is_active=True, is_superuser=True, email='*****@*****.**') self.superuser1.save() self.slave1 = Instance(instance_name='some_name', host='some_host', type='slave', db_type='mysql', user='******', port=1234, password='******') self.slave1.save()
def setUpClass(cls): cls.ins = Instance(instance_name='some_ins', type='slave', db_type='pgsql', host='some_host', port=1366, user='******', password='******') cls.ins.save()
def setUpClass(cls): cls.ins1 = Instance(instance_name='some_ins', type='slave', db_type='mssql', host='some_host', port=1366, user='******', password='******') cls.ins1.save() cls.engine = MssqlEngine(instance=cls.ins1)
def setUp(self): self.slave1 = Instance(instance_name='test_slave_instance', type='slave', db_type='mysql', host='testhost', port=3306, user='******', password='******') self.slave1.save() User = get_user_model() self.u1 = User(username='******', display='中文显示', is_active=True) self.u1.save() self.u2 = User(username='******', display='中文显示', is_active=True) self.u2.save() sql_query_perm = Permission.objects.get(codename='query_submit') self.u2.user_permissions.add(sql_query_perm)
def setUpClass(cls): cls.u1 = User(username='******', display='用户1') cls.u1.save() cls.u2 = User(username='******', display='用户2') cls.u2.save() cls.superuser1 = User(username='******', is_superuser=True) cls.superuser1.save() cls.now = datetime.datetime.now() cls.slave1 = Instance(instance_name='test_slave_instance', type='slave', db_type='mysql', host='testhost', port=3306, user='******', password='******') cls.slave1.save() # 批量创建数据 ddl ,u1 ,g1, yesterday 组, 2 个数据 ddl_workflow = [SqlWorkflow( workflow_name='ddl %s' % i, group_id=1, group_name='g1', engineer=cls.u1.username, engineer_display=cls.u1.display, audit_auth_groups='some_group', create_time=cls.now - datetime.timedelta(days=1), status='workflow_finish', is_backup=True, instance=cls.slave1, db_name='some_db', syntax_type=1 ) for i in range(2)] # 批量创建数据 dml ,u1 ,g2, the day before yesterday 组, 3 个数据 dml_workflow = [SqlWorkflow( workflow_name='Test %s' % i, group_id=2, group_name='g2', engineer=cls.u2.username, engineer_display=cls.u2.display, audit_auth_groups='some_group', create_time=cls.now - datetime.timedelta(days=2), status='workflow_finish', is_backup=True, instance=cls.slave1, db_name='some_db', syntax_type=2 ) for i in range(3)] SqlWorkflow.objects.bulk_create(ddl_workflow + dml_workflow) # 保存内容数据 ddl_workflow_content = [SqlWorkflowContent( workflow=SqlWorkflow.objects.get(workflow_name='ddl %s' % i), sql_content='some_sql', ) for i in range(2)] dml_workflow_content = [SqlWorkflowContent( workflow=SqlWorkflow.objects.get(workflow_name='Test %s' % i), sql_content='some_sql', ) for i in range(3)] SqlWorkflowContent.objects.bulk_create(ddl_workflow_content + dml_workflow_content)
def setUp(self): self.superuser = User(username='******', is_superuser=True) self.superuser.save() # 使用 travis.ci 时实例和测试service保持一致 self.master = Instance(instance_name='test_instance', type='master', db_type='mysql', host=settings.DATABASES['default']['HOST'], port=settings.DATABASES['default']['PORT'], user=settings.DATABASES['default']['USER'], password=settings.DATABASES['default']['PASSWORD']) self.master.save() self.sys_config = SysConfig() self.client = Client() self.client.force_login(self.superuser)
def setUpClass(cls): """ 初始化补全引擎 :return: """ # 使用 travis.ci 时实例和测试service保持一致 cls.master = Instance(instance_name='test_instance', type='master', db_type='mysql', host=settings.DATABASES['default']['HOST'], port=settings.DATABASES['default']['PORT'], user=settings.DATABASES['default']['USER'], password=settings.DATABASES['default']['PASSWORD']) cls.master.save() cls.comp_engine = get_comp_engine(instance=cls.master, db_name=settings.DATABASES['default']['TEST']['NAME']) # 等待completion_refresher刷新完成 while cls.comp_engine.completion_refresher.is_refreshing(): import time time.sleep(1)
def setUp(self): self.slave1 = Instance(instance_name='test_slave_instance', type='slave', db_type='mysql', host='testhost', port=3306, user='******', password='******') self.slave1.save() User = get_user_model() self.u1 = User(username='******', display='中文显示', is_active=True) self.u1.save() self.u2 = User(username='******', display='中文显示', is_active=True) self.u2.save() sql_query_perm = Permission.objects.get(codename='query_submit') self.u2.user_permissions.add(sql_query_perm) tomorrow = datetime.now() + timedelta(days=1) self.query_apply_1 = QueryPrivilegesApply( group_id=1, group_name='some_group', title='some_title', user_name='some_user', instance_name='some_ins', db_list='some_db,some_db2', limit_num=100, valid_date=tomorrow, priv_type=1, status=0, audit_auth_groups='some_audit_group') self.query_apply_1.save() self.query_apply_2 = QueryPrivilegesApply( group_id=1, group_name='some_group', title='some_title', user_name='some_user', instance_name='some_ins', db_list='some_db', table_list='some_table,some_tb2', limit_num=100, valid_date=tomorrow, priv_type=2, status=0, audit_auth_groups='some_audit_group') self.query_apply_2.save()
def mirage(request): """迁移加密的Instance数据,保留一定版本后删除""" try: pc = Prpcrypt() mg_user = Migrator(app="sql", model="Instance", field="user") mg_password = Migrator(app="sql", model="Instance", field="password") # 还原密码 for ins in Instance.objects.all(): # 忽略解密错误的数据(本身为异常数据) try: Instance(pk=ins.pk, password=pc.decrypt(ins.password)).save(update_fields=['password']) except: pass # 使用django-mirage-field重新加密 mg_user.encrypt() mg_password.encrypt() return JsonResponse({"msg": "ok"}) except Exception as msg: return JsonResponse({"msg": f"{msg}"})
def setUp(self): self.ins1 = Instance(instance_name='some_ins', type='slave', db_type='mysql', host='some_host', port=1366, user='******', password='******') self.ins1.save() self.sys_config = SysConfig() self.wf = SqlWorkflow.objects.create( workflow_name='some_name', group_id=1, group_name='g1', engineer_display='', audit_auth_groups='some_group', create_time=datetime.now() - timedelta(days=1), status='workflow_finish', is_backup=True, instance=self.ins1, db_name='some_db', syntax_type=1 ) SqlWorkflowContent.objects.create(workflow=self.wf)
def setUp(self): self.now = datetime.now() self.u1 = User(username='******', display='用户1') self.u1.save() self.master1 = Instance(instance_name='test_master_instance', type='master', db_type='mysql', host='testhost', port=3306, user='******', password='******') self.master1.save() self.wf1 = SqlWorkflow.objects.create( workflow_name='some_name2', group_id=1, group_name='g1', engineer=self.u1.username, engineer_display=self.u1.display, audit_auth_groups='some_group', create_time=self.now - timedelta(days=1), status='workflow_executing', is_backup='是', instance=self.master1, db_name='some_db', syntax_type=1, ) self.wfc1 = SqlWorkflowContent.objects.create(workflow=self.wf1, sql_content='some_sql', execute_result='') # 初始化工单执行返回对象 self.task_result = MagicMock() self.task_result.args = [self.wf1.id] self.task_result.success = True self.task_result.stopped = self.now self.task_result.result.json.return_value = json.dumps([{ 'id': 1, 'sql': 'some_content' }]) self.task_result.result.warning = '' self.task_result.result.error = ''
def setUp(self): self.slave1 = Instance(instance_name='test_slave_instance', type='slave', db_type='mysql', host='testhost', port=3306, user='******', password='******') self.slave2 = Instance(instance_name='test_instance_non_mysql', type='slave', db_type='mssql', host='some_host2', port=3306, user='******', password='******') self.slave1.save() self.slave2.save() archer_user = get_user_model() self.superuser1 = archer_user(username='******', is_superuser=True) self.superuser1.save() self.u1 = archer_user(username='******', display='中文显示', is_active=True) self.u1.save() self.u2 = archer_user(username='******', display='中文显示', is_active=True) self.u2.save() self.u3 = archer_user(username='******', display='中文显示', is_active=True) self.u3.save() sql_query_perm = Permission.objects.get(codename='query_submit') self.u2.user_permissions.add(sql_query_perm) self.u3.user_permissions.add(sql_query_perm) tomorrow = datetime.now() + timedelta(days=1) self.query_apply_1 = QueryPrivilegesApply( group_id=1, group_name='some_group', title='some_title', user_name='some_user', instance_name='some_ins', db_list='some_db,some_db2', limit_num=100, valid_date=tomorrow, priv_type=1, status=0, audit_auth_groups='some_audit_group' ) self.query_apply_1.save() self.query_apply_2 = QueryPrivilegesApply( group_id=1, group_name='some_group', title='some_title', user_name='some_user', instance_name='some_ins', db_list='some_db', table_list='some_table,some_tb2', limit_num=100, valid_date=tomorrow, priv_type=2, status=0, audit_auth_groups='some_audit_group' ) self.query_apply_2.save() self.db_priv_for_user3 = QueryPrivileges( user_name=self.u3.username, user_display=self.u3.display, instance_name=self.slave1.instance_name, db_name='some_db', table_name='', valid_date=tomorrow, limit_num=70, priv_type=1) self.db_priv_for_user3.save() self.table_priv_for_user3 = QueryPrivileges( user_name=self.u3.username, user_display=self.u3.display, instance_name=self.slave1.instance_name, db_name='another_db', table_name='some_table', valid_date=tomorrow, limit_num=60, priv_type=2) self.table_priv_for_user3.save() self.db_priv_for_user3_another_instance = QueryPrivileges( user_name=self.u3.username, user_display=self.u3.display, instance_name=self.slave2.instance_name, db_name='some_db_another_instance', table_name='', valid_date=tomorrow, limit_num=50, priv_type=1) self.db_priv_for_user3_another_instance.save()
def setUp(self): self.now = datetime.now() can_view_permission = Permission.objects.get( codename='menu_sqlworkflow') self.u1 = User(username='******', display='用户1') self.u1.save() self.u1.user_permissions.add(can_view_permission) self.u2 = User(username='******', display='用户2') self.u2.save() self.u2.user_permissions.add(can_view_permission) self.u3 = User(username='******', display='用户3') self.u3.save() self.u3.user_permissions.add(can_view_permission) self.superuser1 = User(username='******', is_superuser=True) self.superuser1.save() self.master1 = Instance(instance_name='test_master_instance', type='master', db_type='mysql', host='testhost', port=3306, user='******', password='******') self.master1.save() self.wf1 = SqlWorkflow.objects.create( workflow_name='some_name', group_id=1, group_name='g1', engineer=self.u1.username, engineer_display=self.u1.display, audit_auth_groups='some_group', create_time=self.now - timedelta(days=1), status='workflow_finish', is_backup='是', instance=self.master1, db_name='some_db', syntax_type=1, ) self.wfc1 = SqlWorkflowContent.objects.create( workflow=self.wf1, sql_content='some_sql', execute_result=json.dumps([{ 'id': 1, 'sql': 'some_content' }])) self.wf2 = SqlWorkflow.objects.create(workflow_name='some_name2', group_id=1, group_name='g1', engineer=self.u2.username, engineer_display=self.u2.display, audit_auth_groups='some_group', create_time=self.now - timedelta(days=1), status='workflow_manreviewing', is_backup='是', instance=self.master1, db_name='some_db', syntax_type=1) self.wfc2 = SqlWorkflowContent.objects.create( workflow=self.wf2, sql_content='some_sql', execute_result=json.dumps([{ 'id': 1, 'sql': 'some_content' }])) self.resource_group1 = ResourceGroup(group_name='some_group') self.resource_group1.save()