Loading cloudcontrol/node/config.py +4 −0 Original line number Diff line number Diff line Loading @@ -104,6 +104,10 @@ class NodeConfigParser(object): self.plugins_store_path = config.get('node', 'plugins_store_path', '/var/lib/cc-node/plugins') # Path to define script default_define_script = 'hkvm-define' self.define_script = config.get('node', 'define_script', default_define_script) # RPC handler ACLs acl_section_name = 'node_handler' if config.has_section(acl_section_name): Loading cloudcontrol/node/hypervisor/__init__.py +21 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ import logging import socket import json from StringIO import StringIO from xml.etree import cElementTree as et Loading @@ -37,6 +38,7 @@ from cloudcontrol.node.exc import ( from cloudcontrol.node.hypervisor.jobs import ( ImportVolume, ExportVolume, TCPTunnel, DRBD, ) from cloudcontrol.node.utils import execute logger = logging.getLogger(__name__) Loading Loading @@ -202,6 +204,25 @@ class Handler(HostHandler): if format == 'xml': return self.hypervisor.vm_define(data) elif format == 'vmspec': # Encode tags as description: if 'tags' in data: if 'description' not in data: data['description'] = '' for tag, value in data['tags'].iteritems(): data['description'] += '\n@%s=%s' % (tag, value) # Delete the tags key which is not recognized by hkvm-define try: del data['tags'] except KeyError: pass rcode, output = execute(self.main, [self.main.config.define_script], stdin=json.dumps(data)) if rcode == 0: return output.strip() else: raise RuntimeError(output.strip().split('\n')[-1].strip()) else: raise NotImplementedError('Format not supported') Loading Loading
cloudcontrol/node/config.py +4 −0 Original line number Diff line number Diff line Loading @@ -104,6 +104,10 @@ class NodeConfigParser(object): self.plugins_store_path = config.get('node', 'plugins_store_path', '/var/lib/cc-node/plugins') # Path to define script default_define_script = 'hkvm-define' self.define_script = config.get('node', 'define_script', default_define_script) # RPC handler ACLs acl_section_name = 'node_handler' if config.has_section(acl_section_name): Loading
cloudcontrol/node/hypervisor/__init__.py +21 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ import logging import socket import json from StringIO import StringIO from xml.etree import cElementTree as et Loading @@ -37,6 +38,7 @@ from cloudcontrol.node.exc import ( from cloudcontrol.node.hypervisor.jobs import ( ImportVolume, ExportVolume, TCPTunnel, DRBD, ) from cloudcontrol.node.utils import execute logger = logging.getLogger(__name__) Loading Loading @@ -202,6 +204,25 @@ class Handler(HostHandler): if format == 'xml': return self.hypervisor.vm_define(data) elif format == 'vmspec': # Encode tags as description: if 'tags' in data: if 'description' not in data: data['description'] = '' for tag, value in data['tags'].iteritems(): data['description'] += '\n@%s=%s' % (tag, value) # Delete the tags key which is not recognized by hkvm-define try: del data['tags'] except KeyError: pass rcode, output = execute(self.main, [self.main.config.define_script], stdin=json.dumps(data)) if rcode == 0: return output.strip() else: raise RuntimeError(output.strip().split('\n')[-1].strip()) else: raise NotImplementedError('Format not supported') Loading