当前位置: 首页>>代码示例>>Python>>正文


Python AppScaleTools.gather_logs方法代码示例

本文整理汇总了Python中appscale.tools.appscale_tools.AppScaleTools.gather_logs方法的典型用法代码示例。如果您正苦于以下问题:Python AppScaleTools.gather_logs方法的具体用法?Python AppScaleTools.gather_logs怎么用?Python AppScaleTools.gather_logs使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在appscale.tools.appscale_tools.AppScaleTools的用法示例。


在下文中一共展示了AppScaleTools.gather_logs方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: logs

# 需要导入模块: from appscale.tools.appscale_tools import AppScaleTools [as 别名]
# 或者: from appscale.tools.appscale_tools.AppScaleTools import gather_logs [as 别名]
  def logs(self, location, other_args=None):
    """ 'logs' provides a cleaner experience for users than the
    appscale-gather-logs command, by using the configuration options present in
    the AppScalefile found in the current working directory.

    Args:
      location: The path on the local filesystem where logs should be copied to.
      other_args: A list of other args from sys.argv.
    Raises:
      AppScalefileException: If there is no AppScalefile in the current working
      directory.
    """
    contents = self.read_appscalefile()
    contents_as_yaml = yaml.safe_load(contents)

    # construct the appscale-gather-logs command
    command = []
    if 'keyname' in contents_as_yaml:
      command.append("--keyname")
      command.append(contents_as_yaml["keyname"])

    command.append("--location")
    command.append(location)
    if other_args:
      command += other_args

    # and exec it
    options = ParseArgs(command, "appscale-gather-logs").args
    AppScaleTools.gather_logs(options)
开发者ID:tmarballi,项目名称:appscale-tools,代码行数:31,代码来源:appscale.py

示例2: test_appscale_in_two_node_virt_deployment

# 需要导入模块: from appscale.tools.appscale_tools import AppScaleTools [as 别名]
# 或者: from appscale.tools.appscale_tools.AppScaleTools import gather_logs [as 别名]
    def test_appscale_in_two_node_virt_deployment(self):
        # pretend that the place we're going to put logs into doesn't exist
        flexmock(os.path)
        os.path.should_call("exists")  # set the fall-through
        os.path.should_receive("exists").with_args("/tmp/foobaz").and_return(False)

        # and mock out the mkdir operation
        flexmock(os)
        os.should_receive("mkdir").with_args("/tmp/foobaz").and_return()

        # next, mock out finding the login ip address
        os.path.should_receive("exists").with_args(LocalState.get_locations_json_location(self.keyname)).and_return(
            True
        )

        fake_nodes_json = flexmock(name="fake_nodes_json")
        fake_nodes_json.should_receive("read").and_return(
            json.dumps({"node_info": [{"public_ip": "public1", "private_ip": "private1", "jobs": ["shadow", "login"]}]})
        )
        builtins = flexmock(sys.modules["__builtin__"])
        builtins.should_call("open")
        builtins.should_receive("open").with_args(LocalState.get_locations_json_location(self.keyname), "r").and_return(
            fake_nodes_json
        )

        # mock out writing the secret key to ~/.appscale, as well as reading it
        # later
        secret_key_location = LocalState.get_secret_key_location(self.keyname)
        fake_secret = flexmock(name="fake_secret")
        fake_secret.should_receive("read").and_return("the secret")
        builtins.should_receive("open").with_args(secret_key_location, "r").and_return(fake_secret)

        # and slip in a fake appcontroller to report on the two IP addrs
        fake_appcontroller = flexmock(name="fake_appcontroller")
        fake_appcontroller.should_receive("get_all_public_ips").with_args("the secret").and_return(
            json.dumps(["public1", "public2"])
        )
        flexmock(SOAPpy)
        SOAPpy.should_receive("SOAPProxy").with_args("https://public1:17443").and_return(fake_appcontroller)

        # fake the creation of the log directories locally
        os.should_receive("mkdir").with_args("/tmp/foobaz/public1").and_return()
        os.should_receive("mkdir").with_args("/tmp/foobaz/public1/cassandra")
        os.should_receive("mkdir").with_args("/tmp/foobaz/public2").and_return()
        os.should_receive("mkdir").with_args("/tmp/foobaz/public2/cassandra")

        # finally, fake the copying of the log files
        flexmock(subprocess)
        subprocess.should_receive("Popen").with_args(
            re.compile("/var/log/appscale"), shell=True, stdout=self.fake_temp_file, stderr=subprocess.STDOUT
        ).and_return(self.success)
        subprocess.should_receive("Popen").with_args(
            re.compile("/var/log/kern.log*"), shell=True, stdout=self.fake_temp_file, stderr=subprocess.STDOUT
        ).and_return(self.success)
        subprocess.should_receive("Popen").with_args(
            re.compile("/var/log/monit*"), shell=True, stdout=self.fake_temp_file, stderr=subprocess.STDOUT
        ).and_return(self.success)
        subprocess.should_receive("Popen").with_args(
            re.compile("/var/log/nginx"), shell=True, stdout=self.fake_temp_file, stderr=subprocess.STDOUT
        ).and_return(self.success)
        subprocess.should_receive("Popen").with_args(
            re.compile("/var/log/syslog*"), shell=True, stdout=self.fake_temp_file, stderr=subprocess.STDOUT
        ).and_return(self.success)
        subprocess.should_receive("Popen").with_args(
            re.compile("/var/log/zookeeper"), shell=True, stdout=self.fake_temp_file, stderr=subprocess.STDOUT
        ).and_return(self.success)
        subprocess.should_receive("Popen").with_args(
            re.compile("/opt/cassandra/cassandra/logs"),
            shell=True,
            stdout=self.fake_temp_file,
            stderr=subprocess.STDOUT,
        ).and_return(self.success)

        argv = ["--keyname", self.keyname, "--location", "/tmp/foobaz"]
        options = ParseArgs(argv, self.function).args
        AppScaleTools.gather_logs(options)
开发者ID:AppScale,项目名称:appscale-tools,代码行数:78,代码来源:test_appscale_gather_logs.py


注:本文中的appscale.tools.appscale_tools.AppScaleTools.gather_logs方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。