 2478a719df
			
		
	
	2478a719df
	
	
	
		
			
			in InstanceUsage, InstanceExists and InstanceReconcile using instance_type_id-to-instance_flavor_id csv mapping
		
			
				
	
	
		
			57 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/python
 | |
| import os
 | |
| import sys
 | |
| 
 | |
| sys.path.append(os.environ.get('STACKTACH_INSTALL_DIR', '/stacktach'))
 | |
| 
 | |
| import csv
 | |
| from stacktach import models
 | |
| 
 | |
| 
 | |
| def migrate_forwards(csv_file_path):
 | |
|     with open(csv_file_path, "r") as f:
 | |
|         for old_flavor, new_flavor in csv.reader(f):
 | |
|             models.InstanceUsage.objects.filter(
 | |
|                 instance_type_id=old_flavor, instance_flavor_id=None)\
 | |
|                 .update(instance_flavor_id=new_flavor)
 | |
|             models.InstanceExists.objects.filter(
 | |
|                 instance_type_id=old_flavor, instance_flavor_id=None)\
 | |
|                 .update(instance_flavor_id=new_flavor)
 | |
|             models.InstanceReconcile.objects.filter(
 | |
|                 instance_type_id=old_flavor, instance_flavor_id=None)\
 | |
|                 .update(instance_flavor_id=new_flavor)
 | |
| 
 | |
| 
 | |
| def migrate_backwards(csv_file_path):
 | |
|     with open(csv_file_path, "r") as f:
 | |
|         for old_flavor, new_flavor in csv.reader(f):
 | |
|             models.InstanceUsage.objects.filter(instance_flavor_id=new_flavor)\
 | |
|                 .update(instance_flavor_id=None)
 | |
|             models.InstanceExists.objects.filter(instance_flavor_id=new_flavor)\
 | |
|                 .update(instance_flavor_id=None)
 | |
|             models.InstanceReconcile.objects.filter(
 | |
|                 instance_flavor_id=new_flavor)\
 | |
|                 .update(instance_flavor_id=None)
 | |
| 
 | |
| if __name__ == '__main__':
 | |
|     try:
 | |
|         csv_file_path = sys.argv[1]
 | |
|         action = sys.argv[2]
 | |
|     except Exception:
 | |
|         print ("""usage: migrate_flavor_id.py <csv_file_absolute_path>"""
 | |
|                 """ <forwards | backwards>"""
 | |
|                 """\n\nThe input file for this script can be generated"""
 | |
|                 """ using the following SQL query:"""
 | |
|                 """\nSELECT id, flavorid"""
 | |
|                 """\nINTO OUTFILE '/tmp/flavors.csv'"""
 | |
|                 """\nFIELDS TERMINATED BY ','"""
 | |
|                 """\nENCLOSED BY '"'"""
 | |
|                 """\nLINES TERMINATED BY '\\n'"""
 | |
|                 """\nFROM instance_types;""")
 | |
|         sys.exit(2)
 | |
| 
 | |
|     if action == "forwards":
 | |
|         migrate_forwards(csv_file_path)
 | |
|     elif action == "backwards":
 | |
|         migrate_backwards(csv_file_path)
 |