def test_start_stop_specified_ipmi_console(self): self.node_name = "test" self.node_workspace = os.path.join(config.infrasim_home, self.node_name) node_config_path = "test.yml" node_info = FakeConfig().get_node_info() with open(node_config_path, "w") as fp: yaml.dump(node_info, fp, default_flow_style=False) os.system("infrasim config add {} {}".format( self.node_name, node_config_path)) os.system("infrasim node start {}".format(self.node_name)) os.system("ipmi-console start {}".format(self.node_name)) time.sleep(20) ipmi_start_cmd = 'ps ax | grep ipmi-console' returncode, output = run_command( ipmi_start_cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) os.system("ipmi-console stop {}".format(self.node_name)) time.sleep(1) ipmi_stop_cmd = 'ps ax | grep ipmi-console' returncode1, output1 = run_command( ipmi_stop_cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) self.assertEqual(returncode, 0) self.assertEqual(returncode, 0) assert 'ipmi-console start {}'.format(self.node_name) in output self.assertEqual(returncode1, 0) assert 'ipmi-console start {}'.format(self.node_name) not in output1 node_map = NodeMap() node_map.delete(self.node_name)
def test_start_stop_specified_ipmi_console(self): self.node_name = "test" self.node_workspace = os.path.join(config.infrasim_home, self.node_name) node_config_path = "test.yml" node_info = FakeConfig().get_node_info() with open(node_config_path, "w") as fp: yaml.dump(node_info, fp, default_flow_style=False) os.system("infrasim config add {} {}".format(self.node_name, node_config_path)) os.system("infrasim node start {}".format(self.node_name)) os.system("ipmi-console start {}".format(self.node_name)) time.sleep(20) ipmi_start_cmd = 'ps ax | grep ipmi-console' returncode, output = run_command(ipmi_start_cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) os.system("ipmi-console stop {}".format(self.node_name)) ipmi_stop_cmd = 'ps ax | grep ipmi-console' returncode1, output1 = run_command(ipmi_stop_cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) self.assertEqual(returncode, 0) self.assertEqual(returncode, 0) assert 'ipmi-console start {}'.format(self.node_name) in output self.assertEqual(returncode1, 0) assert 'ipmi-console start {}'.format(self.node_name) not in output1 node_map = NodeMap() node_map.delete(self.node_name)
class test_node_config_manager(unittest.TestCase): test_name = "test" test_config = os.path.join(config.infrasim_node_config_map, "test.yml") fake_name = "fake" fake_config = "fake.yml" tmp_config = "/tmp/abc.yml" init_config = config.infrasim_default_config nm = NodeMap() @classmethod def setUpClass(cls): try: os.remove(cls.test_config) os.remove(cls.fake_config) except Exception: pass def tearDown(self): try: os.remove(self.test_config) os.remove(self.fake_config) except Exception: pass def test_add_config(self): self.nm.add(self.test_name, self.init_config) with open(self.test_config, 'r') as fp: node_info = YAMLLoader(fp).get_data() assert node_info["name"] == "test" def test_add_duplicated_name(self): self.nm.add(self.test_name, self.init_config) try: self.nm.add(self.test_name, self.init_config) except InfraSimError, e: assert "configuration already in InfraSIM mapping" in e.value else:
import argparse import os from functools import wraps import inspect import infrasim.model as model from infrasim.init import infrasim_init from infrasim.version import version import infrasim.helper as helper from infrasim.config_manager import NodeMap from infrasim.workspace import Workspace from texttable import Texttable from global_status import InfrasimMonitor from infrasim import WorkspaceExisting, CommandRunFailed, CommandNotFound, InfraSimError from .log import LoggerType, infrasim_log nm = NodeMap() logger_cmd = infrasim_log.get_logger(LoggerType.cmd.value) def args(*args, **kwargs): def _decorator(func): func.__dict__.setdefault('args', []).insert(0, (args, kwargs)) return func return _decorator def node_workspace_exists(func): @wraps(func) def wrapper(*args, **kwargs): frame = inspect.currentframe()