def test_boot(self): path = os.path.abspath(__file__) dir_path = os.path.dirname(path) lm = LogManager('./test-logs') ptm = PhysicalTopologyManager(root_dir=dir_path + '/../..', log_manager=lm) ptm.configure(dir_path + '/test-config.json') for h in ptm.host_by_start_order: h.create() for h in ptm.host_by_start_order: h.boot() for h in ptm.host_by_start_order: h.net_up() for h in ptm.host_by_start_order: h.net_finalize() self.assertTrue(LinuxCLI().grep_cmd('ip netns', 'zoo1')) self.assertTrue(LinuxCLI().grep_cmd('ip netns', 'test-host1')) root_host = ptm.hosts_by_name['root'] test_host1 = ptm.hosts_by_name['test-host1'] self.assertTrue(root_host.cli.grep_cmd('ip l', 'th1eth1')) self.assertTrue(test_host1.cli.grep_cmd('ip l', 'eth1')) for h in reversed(ptm.host_by_start_order): h.net_down() for h in reversed(ptm.host_by_start_order): h.shutdown() for h in reversed(ptm.host_by_start_order): h.remove() self.assertFalse(LinuxCLI().grep_cmd('ip netns', 'zoo1')) self.assertFalse(LinuxCLI().grep_cmd('ip netns', 'test-host1'))
def test_configure(self): path = os.path.abspath(__file__) dir_path = os.path.dirname(path) lm = LogManager('./test-logs') ptm = PhysicalTopologyManager(root_dir=dir_path + '/../..', log_manager=lm) ptm.configure(dir_path + '/test-config.json') self.assertTrue('zoo1' in ptm.hosts_by_name) #self.assertTrue('cass1' in ptm.hosts_by_name) self.assertTrue('edge1' in ptm.hosts_by_name) self.assertEqual(ptm.host_by_start_order[0].name, 'root') self.assertEqual(ptm.host_by_start_order[1].name, 'external1') self.assertEqual(ptm.host_by_start_order[2].name, 'test-host1') self.assertEqual(ptm.host_by_start_order[3].name, 'test-host2') self.assertEqual(ptm.host_by_start_order[4].name, 'edge1') self.assertEqual(ptm.host_by_start_order[5].name, 'zoo1') #self.assertEqual(ptm.host_by_start_order[6].name, 'cass1') #self.assertEqual(ptm.host_by_start_order[7].name, 'cmp1') self.assertEqual(ptm.host_by_start_order[6].name, 'cmp1') zk_host = ptm.hosts_by_name['zoo1'] self.assertTrue('eth0' in zk_host.interfaces) root_host = ptm.hosts_by_name['root'] self.assertTrue('zoo1eth0' in root_host.interfaces)
def test_print_config(self): path = os.path.abspath(__file__) dir_path = os.path.dirname(path) lm = LogManager('./test-logs') ptm = PhysicalTopologyManager(root_dir=dir_path + '/../..', log_manager=lm) ptm.configure(dir_path + '/test-config.json') ptm.print_config()
def test_startup(self): path = os.path.abspath(__file__) dir_path = os.path.dirname(path) lm = LogManager('./test-logs') ptm = PhysicalTopologyManager(root_dir=dir_path + '/../..', log_manager=lm) ptm.configure(dir_path + '/test-config.json') ptm.startup() self.assertTrue(LinuxCLI().grep_cmd('ip netns', 'zoo1')) self.assertTrue(LinuxCLI().grep_cmd('ip netns', 'test-host1')) root_host = ptm.hosts_by_name['root'] test_host1 = ptm.hosts_by_name['test-host1'] self.assertTrue(root_host.cli.grep_cmd('ip l', 'th1eth1')) self.assertTrue(test_host1.cli.grep_cmd('ip l', 'eth1')) ptm.shutdown() self.assertFalse(LinuxCLI().grep_cmd('ip netns', 'zoo1')) self.assertFalse(LinuxCLI().grep_cmd('ip netns', 'test-host1'))
command = 'print' else: usage(ArgMismatchException('Invalid argument' + arg)) if command == '': usage(ArgMismatchException('Must specify at least one command option')) root_dir = LinuxCLI().cmd('pwd').strip() log_manager = LogManager(root_dir=log_dir) if command == 'startup': log_manager.rollover_logs_fresh(file_filter='ptm*.log') ptm = PhysicalTopologyManager(root_dir=root_dir, log_manager=log_manager) ptm.configure_logging(debug=debug) ptm.configure(ptm_config_file) if command == 'startup': ptm.startup() elif command == 'shutdown': ptm.shutdown() elif command == 'print': ptm.print_config() else: usage(ArgMismatchException('Command option not recognized: ' + command)) except ExitCleanException: exit(1) except ArgMismatchException as a: print 'Argument mismatch: ' + str(a) traceback.print_tb(sys.exc_traceback)