mirror of https://github.com/jumpserver/jumpserver
				
				
				
			fix: 修正 key 为 0 的节点
							parent
							
								
									0ab88ce754
								
							
						
					
					
						commit
						48d1eecc08
					
				|  | @ -0,0 +1,59 @@ | |||
| from django.db import migrations | ||||
| from django.db.transaction import atomic | ||||
| 
 | ||||
| default_id = '00000000-0000-0000-0000-000000000002' | ||||
| 
 | ||||
| 
 | ||||
| def change_key0_to_key1(apps, schema_editor): | ||||
|     from orgs.utils import set_current_org | ||||
| 
 | ||||
|     # https://stackoverflow.com/questions/28777338/django-migrations-runpython-not-able-to-call-model-methods | ||||
|     Organization = apps.get_model('orgs', 'Organization') | ||||
|     Node = apps.get_model('assets', 'Node') | ||||
| 
 | ||||
|     print() | ||||
|     org = Organization.objects.get(id=default_id) | ||||
|     set_current_org(org) | ||||
| 
 | ||||
|     exists_0 = Node.objects.filter(key__startswith='0').exists() | ||||
|     if not exists_0: | ||||
|         print(f'--> Not exist key=0 nodes, do nothing.') | ||||
|         return | ||||
| 
 | ||||
|     key_1_count = Node.objects.filter(key__startswith='1').count() | ||||
|     if key_1_count > 1: | ||||
|         print(f'--> Node key=1 have children, can`t just delete it. Please contact JumpServer team') | ||||
|         return | ||||
| 
 | ||||
|     root_node = Node.objects.filter(key='1').first() | ||||
|     if root_node and root_node.assets.exists(): | ||||
|         print(f'--> Node key=1 has assets, do nothing.') | ||||
|         return | ||||
| 
 | ||||
|     with atomic(): | ||||
|         if root_node: | ||||
|             print(f'--> Delete node key=1') | ||||
|             root_node.delete() | ||||
| 
 | ||||
|         nodes_0 = Node.objects.filter(key__startswith='0') | ||||
| 
 | ||||
|         for n in nodes_0: | ||||
|             old_key = n.key | ||||
|             key_list = n.key.split(':') | ||||
|             key_list[0] = '1' | ||||
|             new_key = ':'.join(key_list) | ||||
|             n.key = new_key | ||||
|             n.save() | ||||
|             print('--> Modify key ( {} > {} )'.format(old_key, new_key)) | ||||
| 
 | ||||
| 
 | ||||
| class Migration(migrations.Migration): | ||||
| 
 | ||||
|     dependencies = [ | ||||
|         ('orgs', '0010_auto_20210219_1241'), | ||||
|         ('assets', '0068_auto_20210312_1455'), | ||||
|     ] | ||||
| 
 | ||||
|     operations = [ | ||||
|         migrations.RunPython(change_key0_to_key1) | ||||
|     ] | ||||
|  | @ -1,4 +1,4 @@ | |||
| # Generated by Django 3.1 on 2021-03-29 09:11 | ||||
| # Generated by Django 3.1 on 2021-04-06 06:34 | ||||
| 
 | ||||
| from django.db import migrations, models | ||||
| 
 | ||||
|  | @ -6,16 +6,15 @@ from django.db import migrations, models | |||
| class Migration(migrations.Migration): | ||||
| 
 | ||||
|     dependencies = [ | ||||
|         ('terminal', '0032_auto_20210302_1853'), | ||||
|         ('terminal', '0033_auto_20210324_1008'), | ||||
|     ] | ||||
| 
 | ||||
|     operations = [ | ||||
|         migrations.RenameField( | ||||
|         migrations.RemoveField( | ||||
|             model_name='status', | ||||
|             old_name='cpu_used', | ||||
|             new_name='cpu_load', | ||||
|             name='cpu_used', | ||||
|         ), | ||||
|         migrations.AlterField( | ||||
|         migrations.AddField( | ||||
|             model_name='status', | ||||
|             name='cpu_load', | ||||
|             field=models.FloatField(default=0, verbose_name='CPU Load'), | ||||
		Loading…
	
		Reference in New Issue
	
	 xinwen
						xinwen