コード例 #1
0
ファイル: network.py プロジェクト: NvanAdrichem/core
    def detectoldbridge(self):
        """
        Occasionally, control net bridges from previously closed sessions are not cleaned up.
        Check if there are old control net bridges and delete them

        :return: True if an old bridge was detected, False otherwise
        :rtype: bool
        """
        status, output = utils.cmd_output([constants.BRCTL_BIN, "show"])
        if status != 0:
            logging.error("Unable to retrieve list of installed bridges")
        else:
            lines = output.split("\n")
            for line in lines[1:]:
                cols = line.split("\t")
                oldbr = cols[0]
                flds = cols[0].split(".")
                if len(flds) == 3:
                    if flds[0] == "b" and flds[1] == self.id:
                        logging.error(
                            "error: An active control net bridge (%s) found. "
                            "An older session might still be running. "
                            "Stop all sessions and, if needed, delete %s to continue.",
                            oldbr, oldbr)
                        return True
        return False
コード例 #2
0
ファイル: docker.py プロジェクト: rudyeila/core
 def ns_cmd(self, cmd):
     if isinstance(cmd, list):
         cmd = " ".join(cmd)
     args = "nsenter -t {pid} -u -i -p -n {cmd}".format(pid=self.pid,
                                                        cmd=cmd)
     logging.info("ns cmd: %s", args)
     return utils.cmd_output(args)
コード例 #3
0
ファイル: lxd.py プロジェクト: rudyeila/core
    def copy_file(self, source, destination):
        if destination[0] != "/":
            destination = os.path.join("/root/", destination)

        args = "lxc file push {source} {name}/{destination}".format(
            source=source, name=self.name, destination=destination)
        status, output = utils.cmd_output(args)
        if status:
            raise CoreCommandError(status, args, output)
コード例 #4
0
ファイル: docker.py プロジェクト: rudyeila/core
 def get_pid(self):
     args = "docker inspect -f '{{{{.State.Pid}}}}' {name}".format(
         name=self.name)
     status, output = utils.cmd_output(args)
     if status:
         raise CoreCommandError(status, args, output)
     self.pid = output
     logging.debug("node(%s) pid: %s", self.name, self.pid)
     return output
コード例 #5
0
ファイル: lxd.py プロジェクト: rudyeila/core
 def get_info(self):
     args = "lxc list {name} --format json".format(name=self.name)
     status, output = utils.cmd_output(args)
     if status:
         raise CoreCommandError(status, args, output)
     data = json.loads(output)
     if not data:
         raise CoreCommandError(
             status, args, "LXC({name}) not present".format(name=self.name))
     return data[0]
コード例 #6
0
ファイル: docker.py プロジェクト: rudyeila/core
 def get_info(self):
     args = "docker inspect {name}".format(name=self.name)
     status, output = utils.cmd_output(args)
     if status:
         raise CoreCommandError(status, args, output)
     data = json.loads(output)
     if not data:
         raise CoreCommandError(
             status, args,
             "docker({name}) not present".format(name=self.name))
     return data[0]
コード例 #7
0
ファイル: utility.py プロジェクト: sorianoas/core
    def detectversionfromcmd(cls):
        """
        Detect the apache2 version using the 'a2query' command.
        """
        try:
            status, result = utils.cmd_output(["a2query", "-v"])
        except CoreCommandError:
            status = -1

        if status == 0 and result[:3] == "2.4":
            return cls.APACHEVER24

        return cls.APACHEVER22
コード例 #8
0
ファイル: lxd.py プロジェクト: rudyeila/core
 def ns_cmd_output(self, cmd):
     if isinstance(cmd, list):
         cmd = " ".join(cmd)
     args = self._ns_args(cmd)
     logging.info("ns cmd: %s", args)
     return utils.cmd_output(args)
コード例 #9
0
ファイル: lxd.py プロジェクト: rudyeila/core
 def cmd_output(self, cmd):
     if isinstance(cmd, list):
         cmd = " ".join(cmd)
     args = self._cmd_args(cmd)
     logging.info("lxc cmd output: %s", args)
     return utils.cmd_output(args)
コード例 #10
0
ファイル: docker.py プロジェクト: rudyeila/core
 def copy_file(self, source, destination):
     args = "docker cp {source} {name}:{destination}".format(
         source=source, name=self.name, destination=destination)
     status, output = utils.cmd_output(args)
     if status:
         raise CoreCommandError(status, args, output)
コード例 #11
0
ファイル: docker.py プロジェクト: rudyeila/core
 def cmd_output(self, cmd):
     if isinstance(cmd, list):
         cmd = " ".join(cmd)
     logging.info("docker cmd output: %s", cmd)
     return utils.cmd_output("docker exec {name} {cmd}".format(
         name=self.name, cmd=cmd))