Verify if VM name exists before starting

This commit is contained in:
Joshua Boniface 2019-12-09 10:33:44 -05:00
parent d4dc3ac649
commit 19a75ea92e
2 changed files with 10 additions and 1 deletions

View File

@ -660,6 +660,11 @@ def run_os_command(command_string, background=False, environment=None, timeout=N
stderr = ''
return retcode, stdout, stderr
#
# Cloned VM provisioning function - executed by the Celery worker
#
def clone_vm(self, vm_name, vm_profile):
pass
#
# Main VM provisioning function - executed by the Celery worker
@ -753,6 +758,10 @@ def create_vm(self, vm_name, vm_profile):
self.update_state(state='RUNNING', meta={'current': 2, 'total': 10, 'status': 'Verifying configuration against cluster'})
time.sleep(1)
# Verify that a VM with this name does not already exist
if pvc_vm.searchClusterByName(zk_conn, vm_name):
raise ClusterError("A VM with the name '{}' already exists in the cluster".format(vm_name))
# Verify that at least one host has enough free RAM to run the VM
_discard, nodes = pvc_node.get_list(zk_conn, None)
target_node = None

View File

@ -1073,6 +1073,7 @@ def api_status_root(task_id):
# Entrypoint
#
if __name__ == '__main__':
# Start main API
if config['debug']:
# Run in Flask standard mode
api.run(config['listen_address'], config['listen_port'])
@ -1095,4 +1096,3 @@ if __name__ == '__main__':
print('Starting PyWSGI server at {}:{} with SSL={}, Authentication={}'.format(config['listen_address'], config['listen_port'], config['ssl_enabled'], config['auth_enabled']))
http_server.serve_forever()