blob: 6cf59293d93b72f63f2a84bc4f4dad242d9581de (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
#
#
# 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))
|