12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- # Copyright (C) 2012 Internet Systems Consortium.
- #
- # Permission to use, copy, modify, and distribute this software for any
- # purpose with or without fee is hereby granted, provided that the above
- # copyright notice and this permission notice appear in all copies.
- #
- # THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SYSTEMS CONSORTIUM
- # DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
- # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
- # INTERNET SYSTEMS CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
- # INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
- # FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
- # NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
- # WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- # This file provides a built-in set of 'execute' commands, for common
- # functions, such as adding an initial auth server.
- # By calling the function prepare_execute_commands, the
- # commands in the command_sets map are added to the virtual
- # component called 'execute'. This is done in bindctl_main.
- from bindctl.moduleinfo import *
- # The name of the 'virtual' command set execution module in bindctl
- EXECUTE_MODULE_NAME = 'execute'
- # This is a map of command names to lists
- # Each element in the set should itself be a dict containing:
- # 'description': A string with a description of the command set
- # 'commands': A list of bindctl commands
- command_sets = {
- 'init_authoritative_server': {
- 'description':
- 'Configure and run a basic Authoritative server, with default '+
- 'SQLite3 backend, and xfrin and xfrout functionality',
- 'commands':
- [
- '!echo adding Authoritative server component',
- 'config add /Boss/components b10-auth',
- 'config set /Boss/components/b10-auth/kind needed',
- 'config set /Boss/components/b10-auth/special auth',
- '!echo adding Xfrin component',
- 'config add /Boss/components b10-xfrin',
- 'config set /Boss/components/b10-xfrin/address Xfrin',
- 'config set /Boss/components/b10-xfrin/kind dispensable',
- '!echo adding Xfrout component',
- 'config add /Boss/components b10-xfrout',
- 'config set /Boss/components/b10-xfrout/address Xfrout',
- 'config set /Boss/components/b10-xfrout/kind dispensable',
- '!echo adding Zone Manager component',
- 'config add /Boss/components b10-zonemgr',
- 'config set /Boss/components/b10-zonemgr/address Zonemgr',
- 'config set /Boss/components/b10-zonemgr/kind dispensable',
- '!echo Components added. Please enter "config commit" to',
- '!echo finalize initial setup and run the components.'
- ]
- }
- }
- def has_command_set(name):
- return name in command_sets
- def get_commands(name):
- return command_sets[name]['commands']
- def get_description(name):
- return command_sets[name]['description']
- # For each
- def prepare_execute_commands(tool):
- """This function is called by bindctl_main, and sets up the commands
- defined here for use in bindctl."""
- # common parameter
- param_show = ParamInfo(name="show", type="string", optional=True,
- desc="Show the list of commands without executing them")
- # The command module
- module = ModuleInfo(name=EXECUTE_MODULE_NAME,
- desc="Execute a given set of commands")
- # Command to execute a file
- cmd = CommandInfo(name="file", desc="Read commands from file")
- param = ParamInfo(name="filename", type="string", optional=False,
- desc="File to read the set of commands from.")
- cmd.add_param(param)
- cmd.add_param(param_show)
- module.add_command(cmd)
- # and loop through all command sets defined above
- for name in command_sets:
- cmd = CommandInfo(name=name, desc=get_description(name))
- cmd.add_param(param_show)
- module.add_command(cmd)
- tool.add_module_info(module)
|