def booth_cmd(lib, argv, modifiers): """ routes booth command """ if len(argv) < 1: usage.booth() sys.exit(1) sub_cmd, argv_next = argv[0], argv[1:] try: if sub_cmd == "help": usage.booth(argv) elif sub_cmd == "config": command.config_show(lib, argv_next, modifiers) elif sub_cmd == "setup": command.config_setup(lib, argv_next, modifiers) elif sub_cmd == "destroy": command.config_destroy(lib, argv_next, modifiers) elif sub_cmd == "ticket": if len(argv_next) < 1: raise CmdLineInputError() if argv_next[0] == "add": command.config_ticket_add(lib, argv_next[1:], modifiers) elif argv_next[0] == "remove": command.config_ticket_remove(lib, argv_next[1:], modifiers) elif argv_next[0] == "grant": command.ticket_grant(lib, argv_next[1:], modifiers) elif argv_next[0] == "revoke": command.ticket_revoke(lib, argv_next[1:], modifiers) else: raise CmdLineInputError() elif sub_cmd == "create": command.get_create_in_cluster(resource_create, resource_remove)(lib, argv_next, modifiers) elif sub_cmd == "remove": command.get_remove_from_cluster(resource_remove)(lib, argv_next, modifiers) elif sub_cmd == "restart": command.get_restart(resource_restart)(lib, argv_next, modifiers) elif sub_cmd == "sync": command.sync(lib, argv_next, modifiers) elif sub_cmd == "pull": command.pull(lib, argv_next, modifiers) elif sub_cmd == "enable": command.enable(lib, argv_next, modifiers) elif sub_cmd == "disable": command.disable(lib, argv_next, modifiers) elif sub_cmd == "start": command.start(lib, argv_next, modifiers) elif sub_cmd == "stop": command.stop(lib, argv_next, modifiers) elif sub_cmd == "status": command.status(lib, argv_next, modifiers) else: raise CmdLineInputError() except LibraryError as e: utils.process_library_reports(e.args) except CmdLineInputError as e: utils.exit_on_cmdline_input_errror(e, "booth", sub_cmd)
def test_call_lib_with_correct_args(self): lib = mock.MagicMock() lib.booth = mock.MagicMock() lib.booth.config_setup = mock.MagicMock() command.config_setup(lib, arg_list=[ "sites", "1.1.1.1", "2.2.2.2", "4.4.4.4", "arbitrators", "3.3.3.3" ], modifiers={ "force": False, }) lib.booth.config_setup.assert_called_once_with([ { "key": "site", "value": "1.1.1.1", "details": [] }, { "key": "site", "value": "2.2.2.2", "details": [] }, { "key": "site", "value": "4.4.4.4", "details": [] }, { "key": "arbitrator", "value": "3.3.3.3", "details": [] }, ], False)
def booth_cmd(lib, argv, modifiers): """ routes booth command """ if len(argv) < 1: usage.booth() sys.exit(1) sub_cmd, argv_next = argv[0], argv[1:] try: if sub_cmd == "help": usage.booth(argv) elif sub_cmd == "config": command.config_show(lib, argv_next, modifiers) elif sub_cmd == "setup": command.config_setup(lib, argv_next, modifiers) elif sub_cmd == "destroy": command.config_destroy(lib, argv_next, modifiers) elif sub_cmd == "ticket": if len(argv_next) < 1: raise CmdLineInputError() if argv_next[0] == "add": command.config_ticket_add(lib, argv_next[1:], modifiers) elif argv_next[0] == "remove": command.config_ticket_remove(lib, argv_next[1:], modifiers) elif argv_next[0] == "grant": command.ticket_grant(lib, argv_next[1:], modifiers) elif argv_next[0] == "revoke": command.ticket_revoke(lib, argv_next[1:], modifiers) else: raise CmdLineInputError() elif sub_cmd == "create": command.get_create_in_cluster(resource_create)( lib, argv_next, modifiers ) elif sub_cmd == "remove": command.get_remove_from_cluster(resource_remove)( lib, argv_next, modifiers ) elif sub_cmd == "sync": command.sync(lib, argv_next, modifiers) elif sub_cmd == "pull": command.pull(lib, argv_next, modifiers) elif sub_cmd == "enable": command.enable(lib, argv_next, modifiers) elif sub_cmd == "disable": command.disable(lib, argv_next, modifiers) elif sub_cmd == "start": command.start(lib, argv_next, modifiers) elif sub_cmd == "stop": command.stop(lib, argv_next, modifiers) elif sub_cmd == "status": command.status(lib, argv_next, modifiers) else: raise CmdLineInputError() except LibraryError as e: utils.process_library_reports(e.args) except CmdLineInputError as e: utils.exit_on_cmdline_input_errror(e, "booth", sub_cmd)
def test_lib_call_minimal(self): booth_cmd.config_setup(self.lib, ["sites", "1.1.1.1", "2.2.2.2", "3.3.3.3"], dict_to_modifiers(dict())) self.lib.booth.config_setup.assert_called_once_with( ["1.1.1.1", "2.2.2.2", "3.3.3.3"], [], instance_name=None, overwrite_existing=False, )
def test_lib_call_full(self): booth_cmd.config_setup( self.lib, ["sites", "1.1.1.1", "2.2.2.2", "arbitrators", "3.3.3.3"], dict_to_modifiers(dict(name="my_booth", force=True))) self.lib.booth.config_setup.assert_called_once_with( ["1.1.1.1", "2.2.2.2"], ["3.3.3.3"], instance_name="my_booth", overwrite_existing=True, )
def test_call_lib_with_correct_args(self): lib = mock.MagicMock() lib.booth = mock.MagicMock() lib.booth.config_setup = mock.MagicMock() command.config_setup( lib, arg_list=[ "sites", "1.1.1.1", "2.2.2.2", "4.4.4.4", "arbitrators", "3.3.3.3" ], modifiers={ "force": False, } ) lib.booth.config_setup.assert_called_once_with( { "sites": ["1.1.1.1", "2.2.2.2", "4.4.4.4"], "arbitrators": ["3.3.3.3"], }, False )
def test_call_lib_with_correct_args(self): lib = mock.MagicMock() lib.booth = mock.MagicMock() lib.booth.config_setup = mock.MagicMock() command.config_setup( lib, arg_list=[ "sites", "1.1.1.1", "2.2.2.2", "4.4.4.4", "arbitrators", "3.3.3.3" ], modifiers=InputModifiers({}), ) lib.booth.config_setup.assert_called_once_with( [ {"key": "site", "value": "1.1.1.1", "details": []}, {"key": "site", "value": "2.2.2.2", "details": []}, {"key": "site", "value": "4.4.4.4", "details": []}, {"key": "arbitrator", "value": "3.3.3.3", "details": []}, ], overwrite_existing=False )