# # # Python library with commonly used functions within the package management scope # # Author : Pavlos Emm. Katsoulakis import lxc import subprocess def replace_tag(tag_name, spec, new_tag_content): print("Fixing tag %s in %s" % (tag_name, spec)) ifp = open(spec, "r") config = ifp.readlines() ifp.close() source_line = -1 for line in config: if str(line).count(tag_name + ":") > 0: source_line = config.index(line) print("Found line: %s in item %d" % (line, source_line)) break if source_line >= 0: print("Replacing line %s with %s in spec file" %(config[source_line], new_tag_content)) config[source_line] = "%s: %s\n" % (tag_name, new_tag_content) config_str = ''.join(config) ofp = open(spec, 'w') ofp.write(config_str) ofp.close() def run_command(container, command): print("Running command: %s" % command) command_result = container.attach_wait(lxc.attach_run_command, command) if command_result != 0: raise Exception("Command failed with exit code %d" % command_result) def run_command_in_host(cmd): print("Issue command in host: %s" % str(cmd)) proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) o, e = proc.communicate() print('Output: ' + o.decode('ascii')) print('Error: ' + e.decode('ascii')) print('code: ' + str(proc.returncode))