12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- #
- #
- # Python library with commonly used functions within the package management scope
- #
- # Author : Pavlos Emm. Katsoulakis <paul@netdata.cloud>
- 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))
|