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")
示例#2
0
    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
示例#3
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 waitForNetwork():
    subutai.AddStatus("Waiting for network")

    attempts = 0
    while True:
        out = subutai.SSHRunOut('if [ $(timeout 3 ping 8.8.8.8 -c1 2>/dev/null | grep -c "1 received") -ne 1 ]; then echo 1; else echo 0; fi')
        if out == '0':
            break
        if attempts >= 60:
            subutai.RaiseError("Failed to establish Internet connection on peer")
            return 82
        attempts = attempts + 1
        sleep(1)

    return 0
示例#6
0
    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
示例#7
0
    def WaitSSH(self):
        subutai.SetAction("WAITSSH")
        attempts = 0
        while subutai.TestSSH() != 0:
            sleep(5)
            attempts = attempts + 1
            if attempts == 30:
                subutai.RaiseError("SSH connection failed after 30 attempts")
                return 34

        attempts = 0
        out = ''
        while out == '':
            out = subutai.SSHRunOut("uptime")
            attempts = attempts + 1
            if attempts >= 30:
                subutai.RaiseError("SSH connection failed after 30 attempts")
                return 35

        return 0
def waitSSH():
    subutai.log("info", "Waiting for machine to bring SSH")
    attempts = 0
    while subutai.TestSSH() != 0:
        sleep(1)
        attempts = attempts + 1
        if attempts == 30:
            subutai.log("error", "SSH timeout for 30 second")
            return 34

    attempts = 0
    out = ''
    while out == '':
        out = subutai.SSHRunOut("uptime")
        attempts = attempts + 1
        if attempts >= 30:
            subutai.RaiseError("SSH connection failed after 30 attempts")
            subutai.log("error", "SSH timeout for 30 second")
            return 35

    subutai.log("info", "SSH Connected")
    return 0