def installOpenjre(openjreFile, progress): td = "/var/snap/subutai-dev/common/lxc/tmpdir/" awk = " | awk '{print $5}'" rc = subutai.SSHStartSession("mng-setup2") if rc != 0: subutai.AddStatus("Downloading JVM") subutai.SSHRun("sudo subutai -d import openjre16 1>/tmp/openjre16-1.log 2>/tmp/openjre16-2.log") return 0 subutai.AddStatus("Downloading JVM") rc = subutai.SSHExecute("mng-setup2", "sudo subutai import openjre16 &") if rc[0] != 0: subutai.RaiseError("Failed to install OpenJRE in background. Switching to static install") subutai.SSHRun("sudo subutai import openjre16 >/tmp/openjre16.log 2>&1") else: checks = 0 while True: out = subutai.SSHRunOut("ps -ef | grep \"subutai import\" | grep -v grep | awk '{print $2}'") if out == '': break sleep(1) checks = checks + 1 if checks >= 60: subutai.SSHExecute("mng-setup2", "ls / &") checks = 0 out = subutai.SSHRunOut("ls -l "+td+openjreFile+awk) try: val = int(out) progress.setOpenjreProgress(val) progress.updateProgress() except: pass subutai.SSHStopSession("mng-setup2")
def stopVm(machineName): subutai.SSHRun("sync") subutai.log("info", "Stopping Virtual machine") if subutai.CheckVMRunning(machineName) == 0: subutai.VBox("controlvm " + machineName + " poweroff soft") return
def InstallUbuntu(self): subutai.SetAction("INSTUB") td = "/var/snap/subutai/common/lxc/tmpdir/" awk = " | awk '{print $5}'" subutai.AddStatus("Downloading Ubuntu Linux") rc = subutai.SSHStartSession("mng-setup") if rc != 0: subutai.RaiseError( "Failed to install Ubuntu interactively. Switching to static install" ) subutai.SSHRun( "sudo subutai -d import ubuntu16 >/tmp/ubuntu16.log 2>&1") return 0 rc = subutai.SSHExecute("mng-setup", "sudo subutai import ubuntu16 &") if rc[0] != 0: subutai.RaiseError( "Failed to install Ubuntu in background. Switching to static install" ) subutai.SSHRun( "sudo subutai -d import ubuntu16 >/tmp/ubuntu16.log 2>&1") else: checks = 0 while True: out = subutai.SSHRunOut( "ps -ef | grep \"subutai import\" | grep -v grep | awk '{print $2}'" ) if out == '': subutai.AddStatus("Download completed") break sleep(1) checks = checks + 1 if checks >= 60: subutai.SSHExecute("mng-setup", "ls / &") checks = 0 out = subutai.SSHRunOut("ls -l " + td + self.UbuntuFile + awk) try: val = int(out) self.progress.setUbuntuProgress(val) self.progress.updateProgress() except: pass subutai.SSHStopSession("mng-setup") return 0
def InstallManagement(self): subutai.SetAction("INSTMNG") td = "/var/snap/subutai/common/lxc/tmpdir/" awk = " | awk '{print $5}'" rc = subutai.SSHStartSession("mng-setup3") if rc != 0: subutai.AddStatus("Installing Management Container") subutai.SSHRun( "sudo subutai -d import management 1>/tmp/management-1.log 2>/tmp/management-2.log" ) return 0 subutai.AddStatus("Installing Management Container") rc = subutai.SSHExecute("mng-setup3", "sudo subutai import management &") if rc[0] != 0: subutai.RaiseError( "Failed to install Management in background. Switching to static install" ) subutai.SSHRun( "sudo subutai import management >/tmp/management.log 2>&1") else: checks = 0 while True: out = subutai.SSHRunOut( "ps -ef | grep \"subutai import\" | grep -v grep | awk '{print $2}'" ) if out == '': break sleep(1) checks = checks + 1 if checks >= 60: subutai.SSHExecute("mng-setup3", "ls / &") checks = 0 out = subutai.SSHRunOut("ls -l " + td + "*" + self.ManagementFile + "*" + awk) try: val = int(out) self.progress.setManagementProgress(val) self.progress.updateProgress() except: pass subutai.SSHStopSession("mng-setup3") return 0
def installSnapFromStore(): subutai.AddStatus("Installing Subutai") subutai.log("info", "Installing subutai snap") subutai.SSHRun("sudo snap install --beta --devmode subutai-dev > /tmp/subutai-snap.log 2>&1") sleep(5) out = subutai.SSHRunOut("which subutai-dev >/dev/null; echo $?") if out != '0': return 55 return 0
def installSubutai(snapFile, user, host, port): subutai.download("launcher-prepare-server") while subutai.isDownloadComplete() != 1: sleep(0.05) call([ '/usr/bin/scp', '-P4567', '-o', 'StrictHostKeyChecking=no', '/tmp/subutai/launcher-prepare-server', '[email protected]:~/prepare-server' ]) call([ '/usr/bin/scp', '-P4567', '-o', 'StrictHostKeyChecking=no', '/tmp/subutai/subutai_4.0.15_amd64-dev.snap', '[email protected]:~/subutai_latest.snap' ]) subutai.SSHRun("sudo chmod +x /home/ubuntu/prepare-server") subutai.SSHRun("sudo /home/ubuntu/prepare-server") return
def StopVirtualMachine(self): subutai.SetAction("STOPVM") subutai.SSHRun("sync && poweroff") subutai.log("info", "Stopping Virtual machine") sleep(15) rc = 0 if subutai.CheckVMRunning(self.name) == 0: sleep(15) if subutai.CheckVMRunning(self.name) == 0: rc = subutai.VBoxS("controlvm " + self.name + " poweroff soft") return rc
def installManagement(): print("Waiting for machine to bring up SSH") attempts = 0 while subutai.TestSSH() != 0: sleep(1) attempts = attempts + 1 if attempts == 30: print("SSH timeout for 30 seconds") return print("Importing management") subutai.SSHRun("sudo subutai -d import management") return
def setupSSH(): print("Waiting for machine to bring up SSH") attempts = 0 while subutai.TestSSH() != 0: sleep(1) attempts = attempts + 1 if attempts == 30: print("SSH timeout for 30 seconds") return print("SSH Session is running") subutai.SSHRun("mkdir -p /home/subutai/.ssh") subutai.InstallSSHKey() return
def InstallSnap(self): subutai.SetAction("INSTSNAP") subutai.AddStatus("Installing Subutai. This may take a few minutes") command = 'sudo snap install --beta --devmode subutai > /tmp/subutai-snap.log 2>&1' attempts = 0 while attempts < 10: subutai.SSHRun( "sudo snap install --beta --devmode subutai > /tmp/subutai-snap.log 2>&1" ) out = subutai.SSHRunOut("which subutai >/dev/null; echo $?") if out == '0': return 0 sleep(30) attempts = attempts + 1 return 55
def installSnapFromStore(): print("Installing snap from store") subutai.SSHRun("sudo snap install --beta --devmode subutai-dev") return
def initBtrfs(): subutai.log("info", "Initializing BTRFS") subutai.AddStatus("Initializing BTRFS") subutai.SSHRun("sudo subutai-dev.btrfsinit /dev/sdb") return
def InitBTRFS(self): subutai.SetAction("INITBTRFS") subutai.AddStatus("Initializing BTRFS") subutai.SSHRun("sudo subutai.btrfsinit /dev/sdb") return 0
def SetupAlias(self): subutai.SetAction("SETALIAS") subutai.log("info", "Setting Alias") subutai.SSHRun("sudo bash -c 'snap alias subutai-dev subutai'") return 0
def setAlias(): print("Setting alias") subutai.SSHRun("sudo bash -c 'snap alias subutai-dev subutai'") return
def setAlias(): subutai.log("info", "Setting Alias") subutai.SSHRun("sudo bash -c 'snap alias subutai-dev subutai'") return
def setupSSH(): subutai.log("info", "Setting up SSH") subutai.SSHRun("mkdir -p /home/subutai/.ssh") subutai.InstallSSHKey() return
def SetupSSH(self): subutai.SetAction("SETUPSSH") subutai.log("info", "Setting up SSH") subutai.SSHRun("mkdir -p /home/subutai/.ssh") subutai.InstallSSHKey() return 0
def initBtrfs(): print("Initializing btrfs") subutai.SSHRun("sudo subutai-dev.btrfsinit /dev/sdb") return