Code cleanup: remove updating ssh keys on live VMs
This commit is contained in:
		
					parent
					
						
							
								39549d5e36
							
						
					
				
			
			
				commit
				
					
						08608c726f
					
				
			
		
					 5 changed files with 4 additions and 229 deletions
				
			
		|  | @ -1,5 +1,4 @@ | |||
| from datetime import datetime | ||||
| from time import sleep | ||||
| 
 | ||||
| from celery import current_task | ||||
| from celery.exceptions import MaxRetriesExceededError | ||||
|  | @ -178,7 +177,7 @@ def create_vm_task(self, vm_template_id, user, specs, template, order_id): | |||
|                                      kwargs={'pk': order_id}), | ||||
|                 'page_header': _( | ||||
|                     'Your New VM %(vm_name)s at Data Center Light') % { | ||||
|                                    'vm_name': vm.get('name')}, | ||||
|                     'vm_name': vm.get('name')}, | ||||
|                 'vm_name': vm.get('name') | ||||
|             } | ||||
|             email_data = { | ||||
|  | @ -193,7 +192,8 @@ def create_vm_task(self, vm_template_id, user, specs, template, order_id): | |||
|             email.send() | ||||
| 
 | ||||
|             logger.debug("New VM ID is {vm_id}".format(vm_id=vm_id)) | ||||
|             get_or_create_vm_detail(custom_user, manager, vm_id) | ||||
|             if vm_id > 0: | ||||
|                 get_or_create_vm_detail(custom_user, manager, vm_id) | ||||
|     except Exception as e: | ||||
|         logger.error(str(e)) | ||||
|         try: | ||||
|  | @ -215,84 +215,3 @@ def create_vm_task(self, vm_template_id, user, specs, template, order_id): | |||
|             return | ||||
| 
 | ||||
|     return vm_id | ||||
| 
 | ||||
| 
 | ||||
| @app.task(bind=True, max_retries=settings.CELERY_MAX_RETRIES) | ||||
| def save_ssh_key_in_vm_template_task(self, user, vm_id, ssh_key_str): | ||||
|     logger.debug("Inside save_ssh_key_in_vm_template_task %s" % vm_id) | ||||
| 
 | ||||
|     on_user = user.get('email') | ||||
|     on_pass = user.get('pass') | ||||
| 
 | ||||
|     if on_user is None or on_pass is None: | ||||
|         logger.error( | ||||
|             "Either email or password not supplied. Can't save ssh key" | ||||
|         ) | ||||
|         return | ||||
| 
 | ||||
|     manager = OpenNebulaManager(email=on_user, password=on_pass) | ||||
| 
 | ||||
|     # poweroff the vm | ||||
|     vm = manager.power_off_vm(vm_id) | ||||
| 
 | ||||
|     powered_off = False | ||||
|     for t in range(15): | ||||
|         vm = manager.get_vm(vm_id) | ||||
|         if vm.str_state == 'POWEROFF': | ||||
|             logger.debug( | ||||
|                 "VM %s has been powered off. Now adding ssh keys" % vm.id | ||||
|             ) | ||||
|             powered_off = True | ||||
|             break | ||||
|         else: | ||||
|             logger.debug( | ||||
|                 "VM {} has state {}. Waiting 2 more seconds to see if it "  | ||||
|                 "powers off".format(vm.id, vm.str_state) | ||||
|             ) | ||||
|             sleep(2) | ||||
| 
 | ||||
|     if powered_off: | ||||
|         logger.debug( | ||||
|             "VM %s was powered off by api call" % vm.id | ||||
|         ) | ||||
|         if manager.save_key_in_vm_template(vm_id=vm_id, ssh_key=ssh_key_str) > 0: | ||||
|             logger.debug( | ||||
|                 "Added ssh_keys of user %s to VM %s successfully" % | ||||
|                 (on_user, vm_id) | ||||
|             ) | ||||
|             manager.resume(vm_id) | ||||
|             lang = 'en-us' | ||||
|             if user.get('language') is not None: | ||||
|                 logger.debug( | ||||
|                     "Language is set to {}".format(user.get('language'))) | ||||
|                 lang = user.get('language') | ||||
|             translation.activate(lang) | ||||
|             # Send notification to the user as soon as VM has been booked | ||||
|             context = { | ||||
|                 'page_header': str(_("Adding of SSH key completed")), | ||||
|                 'base_url': "{0}://{1}".format(user.get('request_scheme'), | ||||
|                                                user.get('request_host')), | ||||
|                 'vm_detail_url': reverse('hosting:virtual_machines', | ||||
|                                      kwargs={'pk': vm_id}), | ||||
|                 'vm_name': vm.name | ||||
|             } | ||||
|             email_data = { | ||||
|                 'subject': context.get('page_header'), | ||||
|                 'to': user.get('email'), | ||||
|                 'context': context, | ||||
|                 'template_name': 'ssh_key_added_to_vm', | ||||
|                 'template_path': 'hosting/emails/', | ||||
|                 'from_address': settings.DCL_SUPPORT_FROM_ADDRESS, | ||||
|             } | ||||
|             email = BaseEmail(**email_data) | ||||
|             email.send() | ||||
|         else: | ||||
|             logger.error( | ||||
|                 "There was an error updating ssh keys of the VM %s" % vm_id | ||||
|             ) | ||||
|     else: | ||||
|         logger.error( | ||||
|             "VM {} did not poweroff within 30 seconds after the poweroff api " | ||||
|             "call. Please, ask the admin to poweroff and add the key " | ||||
|             "manually.".format(vm_id) | ||||
|         ) | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue