import configparser
+from disk import disk
+
class log():
def __init__(self, log_level):
self.log_level = log_level
self.log.error("No such file: {}".format(self.image))
self.root_uid = root_uid
+ self.disk = disk(image)
self.username = username
self.password = password
def cmd(self, cmd):
return self.serial_con.command(cmd)
+ def copy_in(self, fr, to):
+ try:
+ self.disk.mount(self.root_uid, "/")
+ self.disk.copy_in(fr, to)
+ except BaseException as e:
+ self.log.error(e)
+ finally:
+ self.disk.umount("/")
+ self.disk.close()
class connection():
def __init__(self, device, username=None):
return False
- def readline2(self, pattern=None):
- string = ""
- string2 = b""
- if pattern:
- pattern = re.compile(pattern)
-
- while 1:
- char = self.con.read(1)
- string = string + char.decode("utf-8")
- string2 = string2 + char
- #print(char)
- print(char.decode("utf-8"), end="")
-
- #print(string2)
- if pattern and pattern.match(string):
- #print("get here1")
- #print(string2)
- return {"string" : string, "return-code" : 1}
-
- if char == b"\n":
- #print(char)
- #print(string2)
- #print("get here2")
- return {"return-code" : 0}
-
- def check_logged_in(self, username):
- pattern = "^\[" + username + "@.+\]#"
- data = self.readline(pattern=pattern)
- if data["return-code"] == 1:
- print("We are logged in")
- return True
- else:
- print("We are not logged in")
- return False
-
def print_lines_in_buffer(self):
while True:
self.log.debug("Fill buffer ...")
if machine == "include":
self._recipe.extend(recipe_to_include.recipe)
else:
- self._recipe.append((machine.strip(), extra.strip(), cmd.strip()))
+ # Support also something like 'alice,bob: echo'
+ machines = machine.split(",")
+ for machine in machines:
+ self._recipe.append((machine.strip(), extra.strip(), cmd.strip()))
i = i + 1
if not self.in_recursion:
self.config.read(self.settings_file)
self.name = self.config["DEFAULT"]["Name"]
self.description = self.config["DEFAULT"]["Description"]
+ self.copy_to = self.config["DEFAULT"]["Copy_to"]
+ self.copy_from = self.config["DEFAULT"]["Copy_from"]
+ self.copy_from = self.copy_from.split(",")
+
+ tmp = []
+ for file in self.copy_from:
+ file = file.strip()
+ file = os.path.normpath(self.path + "/" + file)
+ tmp.append(file)
+
+ self.copy_from = tmp
self.virtual_environ_name = self.config["VIRTUAL_ENVIRONMENT"]["Name"]
self.virtual_environ_path = self.config["VIRTUAL_ENVIRONMENT"]["Path"]
for name in self.virtual_environ.machine_names:
self.virtual_machines[name].define()
self.virtual_machines[name].create_snapshot()
+ self.virtual_machines[name].copy_in(self.copy_from, self.copy_to)
self.virtual_machines[name].start()
self.log.debug("Try to login on all machines")