From f75c50298775cd24ace535a6f1a3facac3d2a52b Mon Sep 17 00:00:00 2001 From: vanzhiganov Date: Wed, 12 Oct 2016 03:18:49 +0300 Subject: [PATCH 1/2] fix --- SWSCloudNode/compute/lxc/lxc.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/SWSCloudNode/compute/lxc/lxc.py b/SWSCloudNode/compute/lxc/lxc.py index e23be83..25339d5 100644 --- a/SWSCloudNode/compute/lxc/lxc.py +++ b/SWSCloudNode/compute/lxc/lxc.py @@ -71,7 +71,7 @@ class LXC(object): def __init__(self): logging.debug("") - def list(self, status=None): + def list_containers(self, status=None): """ :return: ['container_first', 'container_second'] """ @@ -89,7 +89,7 @@ class LXC(object): """ checks if a given container is defined or not """ - if name in self.list(): + if name in self.list_containers(): return True return False @@ -100,7 +100,7 @@ class LXC(object): if not self.exists(name): raise ContainerNotExists("The container (%s) does not exist!" % name) - if name in self.list("running"): + if name in self.list_containers("running"): raise ContainerAlreadyRunning('The container %s is already started!' % name) cmd = ['lxc-start', '-n', name, '-d'] From 08fedc74d7c0d128dfced3f513e16dfb1d5b160e Mon Sep 17 00:00:00 2001 From: vanzhiganov Date: Wed, 12 Oct 2016 03:19:11 +0300 Subject: [PATCH 2/2] fix --- cloud_node_agent.py | 76 ++++++++++++++++++++-------------------- cloud_node_statistics.py | 2 +- setup.py | 1 + 3 files changed, 40 insertions(+), 39 deletions(-) diff --git a/cloud_node_agent.py b/cloud_node_agent.py index 6ccae92..2342c4e 100644 --- a/cloud_node_agent.py +++ b/cloud_node_agent.py @@ -7,7 +7,7 @@ from SWSCloudNode.logger import logging from SWSCloudNode.network import Detect from SWSCloudNode import Node from SWSCloudNode import Tasks -from SWSCloudNode import lxc, qemu +from SWSCloudNode.compute import lxc, qemu allowed_actions = [ 'container_delete', @@ -28,7 +28,7 @@ logging.debug("Application started") while True: time.sleep(settings.getfloat('node', 'sleep')) - nodeclient = Node() + node_client = Node() task_data = Tasks().get_item() if task_data is not None and 'task' in task_data: @@ -44,7 +44,7 @@ while True: template = 'ubuntu' # TODO: update task status to 1 - nodeclient.task_status_update(task['id'], 1) + node_client.task_status_update(task['id'], 1) container_id = task['plain']['container_id'] ipv4 = dict() @@ -59,14 +59,14 @@ while True: # автоматически определяем подходящий сетевой интерфейс исходя из имеющегося ipv4 interface = Detect().get_suitable_interface(ipv4) # interface = settings.get('node', 'interface') - nodeclient.container_config_create(container_id, interface, ipv4, ipv6) + node_client.container_config_create(container_id, interface, ipv4, ipv6) container_config_file = '/var/lib/gocloud/node/configs/%s.config' % container_id # create ssh_key.pub param_auth_key = '' if 'ssh_key' in task['plain'] and task['plain']['ssh_key']: - nodeclient.container_authkey_create(container_id, task['plain']['ssh_key']) + node_client.container_authkey_create(container_id, task['plain']['ssh_key']) param_auth_key = '--auth-key /var/lib/gocloud/node/auth-keys/%s.pub' % container_id param_packages = '' @@ -74,7 +74,7 @@ while True: param_packages = '--packages %s' % ','.join(settings.get('node', 'packages')) # create container - lxc.lxc().create( + lxc.LXC().create( name=container_id, config_file=container_config_file, template='ubuntu', @@ -94,49 +94,49 @@ while True: # param_packages # ) ) - lxc.lxc().start(container_id) + lxc.LXC().start(container_id) # TODO: update task status to 2 - nodeclient.task_status_update(task['id'], 2) + node_client.task_status_update(task['id'], 2) # container_start if task['task'] == 'container_start': - nodeclient.task_status_update(task['id'], 1) + node_client.task_status_update(task['id'], 1) container_id = task['plain']['container_id'] - lxc.lxc().start(container_id) - nodeclient.task_status_update(task['id'], 2) + lxc.LXC().start(container_id) + node_client.task_status_update(task['id'], 2) # container_restart if task['task'] == 'container_restart': - nodeclient.task_status_update(task['id'], 1) + node_client.task_status_update(task['id'], 1) container_id = task['plain']['container_id'] - lxc.lxc().stop(container_id) - lxc.lxc().start(container_id) - nodeclient.task_status_update(task['task']['id'], 2) + lxc.LXC().stop(container_id) + lxc.LXC().start(container_id) + node_client.task_status_update(task['task']['id'], 2) # container_stop if task['task'] == 'container_stop': - nodeclient.task_status_update(task['id'], 1) + node_client.task_status_update(task['id'], 1) container_id = task['plain']['container_id'] - lxc.lxc().stop(container_id) - nodeclient.task_status_update(task['id'], 2) + lxc.LXC().stop(container_id) + node_client.task_status_update(task['id'], 2) # container_delete if task['task'] == 'container_delete': - nodeclient.task_status_update(task['id'], 1) + node_client.task_status_update(task['id'], 1) container_id = task['plain']['container_id'] # TODO: if container doesn't exists then complete task and report about this fact try: - lxc.lxc().destroy(container_id) + lxc.LXC().destroy(container_id) except Exception as e: logging.warning(e) pass - nodeclient.task_status_update(task['id'], 2) + node_client.task_status_update(task['id'], 2) # Virtual machines operations # Create new virtual machine if task.get('task') == 'vm_create': - nodeclient.task_status_update(task['id'], 1) + node_client.task_status_update(task['id'], 1) vm_id = task['plain']['vm_id'] @@ -150,7 +150,7 @@ while True: interface = settings.get('node', 'interface') try: - qemu.QEMU().create( + qemu.Qemu().create( p['cores'], p['memory'], p['storage'], p['swap'], p['hostname'], p['ipv4'], p['ipv4_gateway'], p['dns1'], p['dns2'], p['password'], p['os_name'], p['os_suite'], interface, @@ -158,34 +158,34 @@ while True: p['ssh_key'], ) # Start virtual server after creation - qemu.QEMU().start(task['plain']['vm_id']) + qemu.Qemu().start(task['plain']['vm_id']) except Exception as e: # back to origin task status - nodeclient.task_status_update(task['id'], 0) + node_client.task_status_update(task['id'], 0) logging.warning(e) else: - nodeclient.task_status_update(task['id'], 2) + node_client.task_status_update(task['id'], 2) # Start virtual machine if task.get('task') == 'vm_start': - nodeclient.task_status_update(task['id'], 1) - qemu.QEMU().start(task['plain']['vm_id']) - nodeclient.task_status_update(task['id'], 2) + node_client.task_status_update(task['id'], 1) + qemu.Qemu().start(task['plain']['vm_id']) + node_client.task_status_update(task['id'], 2) pass # Restart virtual machine if task.get('task') == 'vm_restart': - nodeclient.task_status_update(task['id'], 1) - qemu.QEMU().restart(task['plain']['vm_id']) - nodeclient.task_status_update(task['id'], 2) + node_client.task_status_update(task['id'], 1) + qemu.Qemu().restart(task['plain']['vm_id']) + node_client.task_status_update(task['id'], 2) pass if task.get('task') == 'vm_stop': - nodeclient.task_status_update(task['id'], 1) - qemu.QEMU().stop(task['plain']['vm_id']) - nodeclient.task_status_update(task['id'], 2) + node_client.task_status_update(task['id'], 1) + qemu.Qemu().stop(task['plain']['vm_id']) + node_client.task_status_update(task['id'], 2) pass if task.get('task') == 'vm_delete': - nodeclient.task_status_update(task['id'], 1) - qemu.QEMU().delete(task['plain']['vm_id']) - nodeclient.task_status_update(task['id'], 2) + node_client.task_status_update(task['id'], 1) + qemu.Qemu().delete(task['plain']['vm_id']) + node_client.task_status_update(task['id'], 2) pass logging.debug("Application ended") diff --git a/cloud_node_statistics.py b/cloud_node_statistics.py index 363a0fb..d3d4212 100644 --- a/cloud_node_statistics.py +++ b/cloud_node_statistics.py @@ -11,7 +11,7 @@ cls_lxc = LXC() cls_qemu = Qemu() cls_node = Node() -for container in cls_lxc.list(): +for container in cls_lxc.list_containers(): # print container info = cls_lxc.info(container) info['container_id'] = info['name'] diff --git a/setup.py b/setup.py index c564f53..9db3de1 100644 --- a/setup.py +++ b/setup.py @@ -9,6 +9,7 @@ setup( author_email='vanzhiganov@ya.ru', packages=[ 'SWSCloudNode', + 'SWSCloudNode.compute', 'SWSCloudNode.compute.lxc', 'SWSCloudNode.compute.qemu', ],