Ejemplo n.º 1
0
    def test_ipmi_console_stops_followed_by_vbmc_stop(self):
        node_info = FakeConfig().get_node_info()
        self.node_name = node_info.get("name", "test")
        self.node_workspace = os.path.join(config.infrasim_home,
                                           self.node_name)
        node = CNode(node_info)
        node.init()
        node.precheck()
        node.start()
        time.sleep(3)

        ps_ipmi_console_cmd = "ps ax | grep ipmi-console"
        start_ipmi_console_cmd = "ipmi-console start {}".format(self.node_name)

        returncode = run_command(start_ipmi_console_cmd,
                                 stdout=subprocess.PIPE,
                                 stderr=subprocess.PIPE)[0]
        self.assertEqual(returncode, 0)
        output = run_command(ps_ipmi_console_cmd,
                             stdout=subprocess.PIPE,
                             stderr=subprocess.PIPE)[1]
        assert start_ipmi_console_cmd in output

        node.stop()
        # ipmi-console polls every 3s to see vbmc status, so wait 10s for it
        time.sleep(10)
        output = run_command(ps_ipmi_console_cmd,
                             stdout=subprocess.PIPE,
                             stderr=subprocess.PIPE)[1]
        assert start_ipmi_console_cmd not in output
    def test_ipmi_console_stops_followed_by_node_destroy(self):
        node_info = FakeConfig().get_node_info()
        self.node_name = node_info.get("name", "test")
        self.node_workspace = os.path.join(
            config.infrasim_home, self.node_name)
        node = CNode(node_info)
        node.init()
        node.precheck()
        node.start()
        time.sleep(3)

        ps_ipmi_console_cmd = "ps ax | grep ipmi-console"
        start_ipmi_console_cmd = "ipmi-console start {}".format(
            self.node_name)

        returncode = run_command(
            start_ipmi_console_cmd, stdout=subprocess.PIPE,
            stderr=subprocess.PIPE)[0]
        self.assertEqual(returncode, 0)
        output = run_command(
            ps_ipmi_console_cmd, stdout=subprocess.PIPE,
            stderr=subprocess.PIPE)[1]
        assert start_ipmi_console_cmd in output
        time.sleep(20)

        node.stop()
        node.terminate_workspace()

        # ipmi-console polls every 3s to see vbmc status, wait a while for
        # possible resource collection
        for _ in range(10):
            time.sleep(3)
            output = run_command(
                ps_ipmi_console_cmd, stdout=subprocess.PIPE,
                stderr=subprocess.PIPE)[1]
            if start_ipmi_console_cmd not in output:
                break
            else:
                assert False
    def test_ipmi_console_stops_followed_by_node_destroy(self):
        node_info = FakeConfig().get_node_info()
        self.node_name = node_info.get("name", "test")
        self.node_workspace = os.path.join(config.infrasim_home,
                                           self.node_name)
        node = CNode(node_info)
        node.init()
        node.precheck()
        node.start()
        time.sleep(3)

        ps_ipmi_console_cmd = "ps ax | grep ipmi-console"
        start_ipmi_console_cmd = "ipmi-console start {}".format(self.node_name)

        returncode = run_command(start_ipmi_console_cmd,
                                 stdout=subprocess.PIPE,
                                 stderr=subprocess.PIPE)[0]
        self.assertEqual(returncode, 0)
        output = run_command(ps_ipmi_console_cmd,
                             stdout=subprocess.PIPE,
                             stderr=subprocess.PIPE)[1]
        assert start_ipmi_console_cmd in output
        time.sleep(20)

        node.stop()
        node.terminate_workspace()

        # ipmi-console polls every 3s to see vbmc status, wait a while for
        # possible resource collection
        for _ in range(10):
            time.sleep(3)
            output = run_command(ps_ipmi_console_cmd,
                                 stdout=subprocess.PIPE,
                                 stderr=subprocess.PIPE)[1]
            if start_ipmi_console_cmd not in output:
                break
            else:
                assert False