def setUpClass(cls): node_info = {} fake_config = fixtures.FakeConfig() node_info = fake_config.get_node_info() with open(cls.TMP_CONF_FILE, "w") as f: yaml.dump(node_info, f, default_flow_style=False) node = CNode(node_info) node.init() node.precheck() node.start() # Wait ipmi_sim sever coming up. # FIXME: good way??? print "Wait ipmi-console start in about 15s..." time.sleep(15) ipmi_console_thread = threading.Thread(target=ipmiconsole.start, args=(node_info["name"],)) ipmi_console_thread.setDaemon(True) ipmi_console_thread.start() # Wait SSH server coming up # FIXME: Need a good way to check if SSH server is listening # on port 9300 cls.ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # Retry SSH to make sure ipmi console started for i in range(6): try: time.sleep(10) cls.ssh.connect('127.0.0.1', username='', password='', port=9300) except paramiko.ssh_exception.NoValidConnectionsError, e: if i == 5: raise e continue
def setUpClass(cls): node_info = {} fake_config = fixtures.FakeConfig() node_info = fake_config.get_node_info() node_info["ipmi_console_port"] = 9100 node_info["ipmi_console_ssh"] = 9400 cls.bmc_conf = os.path.join(os.environ["HOME"], ".infrasim", node_info["name"], "etc", "vbmc.conf") with open(cls.TMP_CONF_FILE, "w") as f: yaml.dump(node_info, f, default_flow_style=False) node = CNode(node_info) node.init() node.precheck() node.start() # Wait ipmi_sim sever coming up. # FIXME: good way??? print "Wait ipmi-console start in about 30s..." time.sleep(15) ipmi_console_thread = threading.Thread(target=console.start, args=(node_info["name"],)) ipmi_console_thread.setDaemon(True) ipmi_console_thread.start() # console.start(node_info["name"]) # Wait SSH server coming up # FIXME: Need a good way to check if SSH server is listening # on port 9300 time.sleep(20)
def setUpClass(cls): node_info = {} fake_config = fixtures.FakeConfig() node_info = fake_config.get_node_info() with open(cls.TMP_CONF_FILE, "w") as f: yaml.dump(node_info, f, default_flow_style=False) node = CNode(node_info) node.init() node.precheck() node.start() # Wait ipmi_sim sever coming up. # FIXME: good way??? print "Wait ipmi-console start in about 30s..." time.sleep(15) ipmi_console_thread = threading.Thread(target=console.start, args=(node_info["name"],)) ipmi_console_thread.setDaemon(True) ipmi_console_thread.start() # Wait SSH server coming up # FIXME: Need a good way to check if SSH server is listening # on port 9300 time.sleep(20) cls.ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) cls.ssh.connect('127.0.0.1', username='', password='', port=9300) cls.channel = cls.ssh.invoke_shell()
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 setUpClass(cls): node_info = {} fake_config = fixtures.FakeConfig() node_info = fake_config.get_node_info() node_info["ipmi_console_port"] = 9100 node_info["ipmi_console_ssh"] = 9400 cls.bmc_conf = os.path.join(os.environ["HOME"], ".infrasim", node_info["name"], "etc", "vbmc.conf") with open(cls.TMP_CONF_FILE, "w") as f: yaml.dump(node_info, f, default_flow_style=False) node = CNode(node_info) node.init() node.precheck() node.start() # Wait ipmi_sim sever coming up. # FIXME: good way??? print "Wait ipmi-console start in about 15s..." time.sleep(15) ipmi_console_thread = threading.Thread(target=ipmiconsole.start, args=(node_info["name"], )) ipmi_console_thread.setDaemon(True) ipmi_console_thread.start() # ipmiconsole.start(node_info["name"]) # Wait SSH server coming up # FIXME: Need a good way to check if SSH server is listening # on port 9300 time.sleep(20)
def _start_node(self, node_info): fake_node_obj = CNode(node_info) fake_node_obj.init() try: fake_node_obj.precheck() fake_node_obj.start() except Exception as e: raise e return fake_node_obj
def setUpClass(cls): node_info = {} fake_config = fixtures.FakeConfig() node_info = fake_config.get_node_info() cls.bmc_conf = os.path.join(config.infrasim_home, node_info["name"], "data", "vbmc.conf") with open(cls.TMP_CONF_FILE, "w") as f: yaml.dump(node_info, f, default_flow_style=False) node = CNode(node_info) node.init() node.precheck() node.start()
def setUpClass(cls): node_info = {} fake_config = fixtures.FakeConfig() node_info = fake_config.get_node_info() cls.bmc_conf = os.path.join(config.infrasim_home, node_info["name"], "data", "vbmc.conf") with open(cls.TMP_CONF_FILE, "w") as f: yaml.dump(node_info, f, default_flow_style=False) node = CNode(node_info) node.init() node.precheck()
def _start_node(node_info, node_name, node_type): fake_node_obj = CNode(node_info) fake_node_obj.init() fake_node_obj.precheck() node_dir = os.path.join(config.infrasim_home, node_name) emu_dir = os.path.join(node_dir, "data") emu_file = os.path.join(emu_dir, node_type + ".emu") if node_name == "test0": f = open(emu_file, "ab") f.write("\n" + add_content0[0] + "\n" + add_content0[1]) f.close() if node_name == "test1": f = open(emu_file, "ab") f.write("\n" + add_content1[0] + "\n" + add_content1[1]) f.close() fake_node_obj.start() return fake_node_obj
def setUpClass(cls): node_info = {} fake_config = fixtures.FakeConfig() node_info = fake_config.get_node_info() cls.bmc_conf = os.path.join(os.environ["HOME"], ".infrasim", node_info["name"], "data", "vbmc.conf") with open(cls.TMP_CONF_FILE, "w") as f: yaml.dump(node_info, f, default_flow_style=False) node = CNode(node_info) node.init() node.precheck() node.start() # Wait ipmi_sim start. time.sleep(2)
def setUpClass(cls): node_info = {} fake_config = fixtures.FakeConfig() node_info = fake_config.get_node_info() node_info["bmc"] = {} node_info["bmc"]["interface"] = "lo" node_info["bmc"]["ipmi_over_lan_port"] = 625 node_info["ipmi_console_ssh"] = 9401 node_info["ipmi_console_port"] = 9101 cls.bmc_conf = os.path.join(config.infrasim_home, node_info["name"], "data", "vbmc.conf") with open(cls.TMP_CONF_FILE, "w") as f: yaml.dump(node_info, f, default_flow_style=False) node = CNode(node_info) node.init() node.precheck()
def setUpClass(cls): node_info = {} fake_config = fixtures.FakeConfig() node_info = fake_config.get_node_info() node_info["bmc"] = {} node_info["bmc"]["interface"] = "lo" node_info["bmc"]["ipmi_over_lan_port"] = 625 node_info["ipmi_console_ssh"] = 9401 node_info["ipmi_console_port"] = 9101 cls.bmc_conf = os.path.join(config.infrasim_home, node_info["name"], "data", "vbmc.conf") with open(cls.TMP_CONF_FILE, "w") as f: yaml.dump(node_info, f, default_flow_style=False) node = CNode(node_info) node.init() node.precheck() node.start()
def test_one_node_running_in_two_different_net_namespace(self): self._setup_netns("test1") self._setup_netns("test2") fake_node = FakeConfig().get_node_info() fake_node["name"] = "test" fake_node["namespace"] = "test1" fake_node_obj_1 = self._start_node(fake_node) time.sleep(1) fake_node["namespace"] = "test2" fake_node_obj_2 = CNode(fake_node) fake_node_obj_2.precheck() for task in fake_node_obj_2.get_task_list(): assert task.get_task_pid() > 0 self._stop_node(fake_node_obj_1) self._teardown_netns("test1") self._teardown_netns("test2")
def setUpClass(cls): node_info = {} fake_config = fixtures.FakeConfig() node_info = fake_config.get_node_info() with open(cls.TMP_CONF_FILE, "w") as f: yaml.dump(node_info, f, default_flow_style=False) node = CNode(node_info) node.init() node.precheck() node.start() # Wait ipmi_sim sever coming up. # FIXME: good way??? print "Wait ipmi-console start in about 15s..." time.sleep(15) ipmi_console_thread = threading.Thread(target=ipmiconsole.start, args=(node_info["name"], )) ipmi_console_thread.setDaemon(True) ipmi_console_thread.start() # Wait SSH server coming up # FIXME: Need a good way to check if SSH server is listening # on port 9300 cls.ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # Retry SSH to make sure ipmi console started for i in range(6): try: time.sleep(10) cls.ssh.connect('127.0.0.1', username='', password='', port=9300) except paramiko.ssh_exception.NoValidConnectionsError, e: if i == 5: raise e continue
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
def _start_node(self, node_info): fake_node_obj = CNode(node_info) fake_node_obj.init() fake_node_obj.precheck() fake_node_obj.start() return fake_node_obj