summaryrefslogtreecommitdiffstats
path: root/Testcases/config_shell.py
diff options
context:
space:
mode:
Diffstat (limited to 'Testcases/config_shell.py')
-rw-r--r--Testcases/config_shell.py379
1 files changed, 0 insertions, 379 deletions
diff --git a/Testcases/config_shell.py b/Testcases/config_shell.py
deleted file mode 100644
index 2fe5ad1..0000000
--- a/Testcases/config_shell.py
+++ /dev/null
@@ -1,379 +0,0 @@
-
-from config_obj import *
-import argparse
-
-class ConfigShell():
-
- def __init__(self):
- self.parser_init()
-
- def env(self, *args, **kwargs):
- for arg in args:
- value = os.environ.get(arg, None)
- if value:
- return value
- return kwargs.get('default', '')
-
- def do_help(self, args):
- if args.obj_parser:
- args.obj_parser.print_help()
- else:
- self.parser.print_help()
-
- def parser_init(self):
- parser = argparse.ArgumentParser()
- parser.add_argument('--username', help = 'User name')
- parser.add_argument('--password', help = 'Password')
- parser.add_argument('--tenant', help = 'Tenant name')
- parser.add_argument('--region', help = 'Region name')
- parser.add_argument('--api-server', help = 'API server address')
-
- parser.add_argument('cmd', choices = ['add', 'show', 'delete', 'help'],
- metavar = '<command>', help = '[ add | show | delete | help ]')
-
- subparsers = parser.add_subparsers(metavar = '<object>')
- self.sub_cmd_dict = {}
-
- sub_parser = subparsers.add_parser('vdns', help = 'Virtual DNS')
- sub_parser.set_defaults(obj_class = ConfigVirtualDns,
- obj_parser = sub_parser)
- sub_parser.add_argument('name', nargs = '?', default = None,
- metavar = '<name>', help = 'The name of virtual DNS')
- sub_parser.add_argument('--domain-name', metavar = '<name>',
- help = 'The name of DNS domain')
- sub_parser.add_argument('--record-order',
- choices = ['fixed', 'random', 'round-robin'],
- default = 'random', metavar = '<order>',
- help = 'The order of DNS records ' \
- '[ random | fixed | round-robin ]')
- sub_parser.add_argument('--next-dns', metavar = '<name>',
- help = 'The name of next virtual DNS service or ' \
- 'the IP address of DNS server reachable by fabric.')
-
- sub_parser = subparsers.add_parser('ipam', help = 'Network IPAM')
- sub_parser.set_defaults(obj_class = ConfigIpam,
- obj_parser = sub_parser)
- sub_parser.add_argument('name', nargs = '?', default = None,
- metavar = '<name>', help = 'The name of IPAM')
- sub_parser.add_argument('--dns-type',
- choices = ['none', 'default', 'tenant', 'virtual'],
- metavar = '<type>',
- help = 'The type of DNS service ' \
- '[ none | default | virtual | tenant ]')
- sub_parser.add_argument('--virtual-dns', metavar = '<name>',
- help = 'The name of virtual DNS service')
- sub_parser.add_argument('--tenant-dns', metavar = '<address>',
- action = 'append',
- help = 'The address of tenant DNS')
- sub_parser.add_argument('--domain-name', metavar = '<name>',
- help = 'The name of DNS domain')
- sub_parser.add_argument('--ntp-server', metavar = '<address>',
- help = 'The address of NTP server')
-
- sub_parser = subparsers.add_parser('policy', help = 'Network Policy')
- sub_parser.set_defaults(obj_class = ConfigPolicy,
- obj_parser = sub_parser)
- sub_parser.add_argument('name', nargs = '?', default = None,
- metavar = '<name>', help = 'The name of policy')
- sub_parser.add_argument('--rule', action = 'append',
- metavar = '<arguments>',
- help = 'Policy rule ' \
- 'direction=[ "<>" | ">" ],' \
- 'protocol=[ any | tcp | udp | icmp ],' \
- 'src-net=[ <name> | any ],' \
- 'dst-net=[ <name> | any ],' \
- 'src-port=[ <start>:<end> | any ],' \
- 'dst-port=[ <start>:<end> | any ],' \
- 'action=[ pass | deny | drop | reject | alert | ' \
- 'log | service ],' \
- 'service=<name>,' \
- 'index=<index>')
-
- sub_parser = subparsers.add_parser('security-group',
- help = 'Security Group')
- sub_parser.set_defaults(obj_class = ConfigSecurityGroup,
- obj_parser = sub_parser)
- sub_parser.add_argument('name', nargs = '?', default = None,
- metavar = '<name>', help = 'The name of security group')
- sub_parser.add_argument('--rule', metavar = '<index>',
- help = 'Rule index')
- sub_parser.add_argument('--direction',
- choices = ['ingress', 'egress'],
- metavar = '<direction>',
- help = 'Direction [ ingress | egress ]')
- sub_parser.add_argument('--protocol',
- choices = ['any', 'tcp', 'udp', 'icmp'],
- metavar = '<protocol>',
- help = 'Protocol [ any | tcp | udp | icmp ]')
- sub_parser.add_argument('--address', action = 'append',
- metavar = '<prefix>/<length>', help = 'Remote IP address')
- sub_parser.add_argument('--port', action = 'append', type = str,
- metavar = '<start>:<end>', help = 'The range of remote port')
-
- sub_parser = subparsers.add_parser('network',
- help = 'Virtual Network')
- sub_parser.set_defaults(obj_class = ConfigNetwork,
- obj_parser = sub_parser)
- sub_parser.add_argument('name', nargs = '?', default = None,
- metavar = '<name>', help = 'The name of virtual network')
- sub_parser.add_argument('--ipam', metavar = '<name>',
- help = 'The name of IPAM')
- sub_parser.add_argument('--subnet', metavar = '<prefix>/<length>',
- help = 'Subnet prefix and length')
- sub_parser.add_argument('--gateway', metavar = '<address>',
- help = 'The gateway address of subnet')
- sub_parser.add_argument('--policy', metavar = '<name>',
- help = 'The name of network policy')
- sub_parser.add_argument('--route-target', metavar = '<AS>:<RT>',
- help = 'Route target')
- sub_parser.add_argument('--route-table', metavar = '<name>',
- help = 'The name of route table')
- sub_parser.add_argument('--l2', action = 'store_true',
- help = 'Layer 2 network, layer 2&3 by default')
- sub_parser.add_argument('--shared', action = 'store_true',
- help = 'Enable sharing with other tenants')
- sub_parser.add_argument('--external', action = 'store_true',
- help = 'Enable external access')
-
- sub_parser = subparsers.add_parser('floating-ip-pool',
- help = 'Floating IP Pool')
- sub_parser.set_defaults(obj_class = ConfigFloatingIpPool,
- obj_parser = sub_parser)
- sub_parser.add_argument('name', nargs = '?', default = None,
- metavar = '<name>', help = 'The name of floating IP pool')
- sub_parser.add_argument('--network', metavar = '<name>',
- help = 'The name of virtual network holding floating IP pool')
- #sub_parser.add_argument('--floating-ip', action = 'store_true',
- # help = 'Floating IP')
-
- sub_parser = subparsers.add_parser('vm',
- help = 'Virtual Machine')
- sub_parser.set_defaults(obj_class = ConfigVirtualMachine,
- obj_parser = sub_parser)
- sub_parser.add_argument('name', nargs = '?', default = None,
- metavar = '<name>', help = 'The name of virtual machine')
- sub_parser.add_argument('--image', metavar = '<name>',
- help = 'The name of image')
- sub_parser.add_argument('--flavor', metavar = '<name>',
- help = 'The name of flavor')
- sub_parser.add_argument('--network', action = 'append',
- metavar = '<name>',
- help = 'The name of network')
- sub_parser.add_argument('--user-data', metavar = '<name>',
- help = 'Full file name containing user data')
- sub_parser.add_argument('--node', metavar = '<name>',
- help = 'The name of compute node')
- sub_parser.add_argument('--wait', action = 'store_true',
- help = 'Wait till VM is active')
-
- sub_parser = subparsers.add_parser('interface-route-table',
- help = 'Interface Route Table')
- sub_parser.set_defaults(obj_class = ConfigInterfaceRouteTable,
- obj_parser = sub_parser)
- sub_parser.add_argument('name', nargs = '?', default = None,
- metavar = '<name>', help = 'The name of interface route table')
- sub_parser.add_argument('--route', action = 'append',
- metavar = '<prefix>/<length>', help = 'Route')
-
- sub_parser = subparsers.add_parser('route-table',
- help = 'Network Route Table')
- sub_parser.set_defaults(obj_class = ConfigRouteTable,
- obj_parser = sub_parser)
- sub_parser.add_argument('name', nargs = '?', default = None,
- metavar = '<name>', help = 'The name of route table')
- sub_parser.add_argument('--route', action = 'append',
- metavar = '<prefix>/<length>:<next-hop>',
- help = 'The route and next-hop')
-
- sub_parser = subparsers.add_parser('vm-interface',
- help = 'Virtual Machine Interface')
- sub_parser.set_defaults(obj_class = ConfigVmInterface,
- obj_parser = sub_parser)
- sub_parser.add_argument('name', nargs = '?', default = None,
- metavar = '<VM>:<network>',
- help = 'The name of virtual machine interface')
- sub_parser.add_argument('--interface-route-table', metavar = '<name>',
- help = 'The name of interface route table')
- sub_parser.add_argument('--security-group', metavar = '<name>',
- help = 'The name of security group')
- sub_parser.add_argument('--address',
- metavar = '<address>',
- help = 'IP address')
- sub_parser.add_argument('--floating-ip',
- metavar = '<address>',
- help = 'Floating IP address [ any | <address> ]')
- sub_parser.add_argument('--floating-ip-pool',
- metavar = '<pool>',
- help = 'The floating IP pool to allocate a floating IP from ' \
- '<tenant>:<network>:<floating IP pool>')
-
- sub_parser = subparsers.add_parser('image',
- help = 'Virtual Machine Image')
- self.sub_cmd_dict['image'] = sub_parser
- sub_parser.set_defaults(obj_class = ConfigImage)
- sub_parser.add_argument('name', nargs = '?', default = None)
-
- sub_parser = subparsers.add_parser('flavor',
- help = 'Virtual Machine Flavor')
- self.sub_cmd_dict['flavor'] = sub_parser
- sub_parser.set_defaults(obj_class = ConfigFlavor)
- sub_parser.add_argument('name', nargs = '?', default = None)
-
- sub_parser = subparsers.add_parser('service-template',
- help = 'Service Template')
- sub_parser.set_defaults(obj_class = ConfigServiceTemplate,
- obj_parser = sub_parser)
- sub_parser.add_argument('name', nargs = '?', default = None,
- metavar = '<name>', help = 'The name of service template')
- sub_parser.add_argument('--mode',
- choices = ['transparent', 'in-network', 'in-network-nat'],
- metavar = '<mode>',
- help = 'Service mode ' \
- '[ transparent | in-network | in-network-nat ]')
- sub_parser.add_argument('--type',
- choices = ['firewall', 'analyzer'],
- metavar = '<type>',
- help = 'Service type [ firewall | analyzer ]')
- sub_parser.add_argument('--image', metavar = '<name>',
- help = 'The name of image')
- sub_parser.add_argument('--flavor', metavar = '<name>',
- help = 'The name of flavor')
- sub_parser.add_argument('--scale', action = 'store_true',
- help = 'Enable service scaling')
- sub_parser.add_argument('--interface',
- choices = ['management', 'left', 'right', 'other'],
- metavar = '<type>',
- action = 'append',
- help = 'Service interface ' \
- '[ management | left | right | other ]')
-
- sub_parser = subparsers.add_parser('service-instance',
- help = 'Service Instance')
- sub_parser.set_defaults(obj_class = ConfigServiceInstance,
- obj_parser = sub_parser)
- sub_parser.add_argument('name', nargs = '?', default = None,
- metavar = '<name>', help = 'The name of service instance')
- sub_parser.add_argument('--template',
- metavar = '<template>',
- help = 'Service template')
- sub_parser.add_argument('--network', action = 'append',
- metavar = '<arguments>',
- help = 'network=[ <name> | auto ],tenant=<name>,' \
- 'route=<prefix>/<length> ' \
- 'The network order must be the same as interface ' \
- 'order defined in service template.')
- sub_parser.add_argument('--scale-max',
- metavar = '<number>',
- help = 'The maximum number of instances')
- sub_parser.add_argument('--auto-policy', action = 'store_true',
- help = 'Enable automatic policy')
-
- sub_parser = subparsers.add_parser('link-local',
- help = 'Link Local Service')
- sub_parser.set_defaults(obj_class = ConfigGlobalVrouter,
- obj_parser = sub_parser)
- sub_parser.add_argument('name', nargs = '?', default = None,
- metavar = '<name>', help = 'The name of link local service')
- sub_parser.add_argument('--link-local-address',
- metavar = '<address>',
- help = 'Link Local service address and port ' \
- '<link local address>:<link local port>')
- sub_parser.add_argument('--fabric-address',
- metavar = '<address>',
- help = 'Fabric address and port ' \
- '<fabric address>:<fabric port>')
- self.parser = parser
-
- def parse(self, argv = None):
- args = self.parser.parse_args(args = argv)
- return args
-
- def run(self, args, client):
- obj = args.obj_class(client = client)
- if args.cmd == 'help':
- self.do_help(args)
- elif args.cmd == 'show':
- obj.show(args.name)
- elif args.cmd == 'add':
- if (args.obj_class == ConfigVirtualDns):
- obj.add(args.name, args.record_order, args.next_dns)
- elif (args.obj_class == ConfigIpam):
- obj.add(args.name, args.dns_type, args.virtual_dns,
- args.tenant_dns, args.domain_name, args.ntp_server)
- elif (args.obj_class == ConfigPolicy):
- obj.add(args.name, args.rule)
- elif (args.obj_class == ConfigSecurityGroup):
- obj.add(args.name, args.protocol, args.address, args.port,
- args.direction)
- elif (args.obj_class == ConfigNetwork):
- obj.add(args.name, args.ipam, args.subnet, args.policy,
- args.route_target, args.route_table, args.shared,
- args.external, args.l2)
- elif (args.obj_class == ConfigFloatingIpPool):
- obj.add(args.name, args.network)
- elif (args.obj_class == ConfigServiceTemplate):
- obj.add(args.name, args.mode, args.type, args.image,
- args.flavor, args.interface)
- elif (args.obj_class == ConfigServiceInstance):
- obj.add(args.name, args.template, args.network,
- args.auto_policy, args.scale_max)
- elif (args.obj_class == ConfigVirtualMachine):
- obj.add(args.name, args.image, args.flavor, args.network,
- args.node, args.user_data, args.wait)
- elif (args.obj_class == ConfigRouteTable):
- obj.add(args.name, args.route)
- elif (args.obj_class == ConfigInterfaceRouteTable):
- obj.add(args.name, args.route)
- elif (args.obj_class == ConfigVmInterface):
- obj.add(args.name, args.security_group,
- args.interface_route_table, args.address,
- args.floating_ip_pool, args.floating_ip)
- elif (args.obj_class == ConfigGlobalVrouter):
- obj.add(args.name, args.link_local_address,
- args.fabric_address)
- elif args.cmd == 'delete':
- if (args.obj_class == ConfigVirtualDns):
- obj.delete(args.name)
- elif (args.obj_class == ConfigIpam):
- obj.delete(args.name, args.domain_name)
- elif (args.obj_class == ConfigPolicy):
- obj.delete(args.name, args.rule)
- elif (args.obj_class == ConfigSecurityGroup):
- obj.delete(args.name, args.rule)
- elif (args.obj_class == ConfigNetwork):
- obj.delete(args.name, args.ipam, args.policy,
- args.route_target)
- elif (args.obj_class == ConfigFloatingIpPool):
- obj.delete(args.name, args.network)
- elif (args.obj_class == ConfigServiceTemplate):
- obj.delete(args.name)
- elif (args.obj_class == ConfigServiceInstance):
- obj.delete(args.name)
- elif (args.obj_class == ConfigVirtualMachine):
- obj.delete(args.name)
- elif (args.obj_class == ConfigRouteTable):
- obj.delete(args.name, args.route)
- elif (args.obj_class == ConfigInterfaceRouteTable):
- obj.delete(args.name, args.route)
- elif (args.obj_class == ConfigVmInterface):
- obj.delete(args.name, args.security_group,
- args.interface_route_table, args.address,
- args.floating_ip)
- elif (args.obj_class == ConfigGlobalVrouter):
- obj.delete(args.name)
- else:
- print 'Unknown action %s' %(args.cmd)
- return
-
- def main(self):
- args = self.parse()
- #print args
- #return
- client = ConfigClient(args.username, args.password, args.tenant,
- args.region, args.api_server)
- self.run(args, client)
-
-
-if __name__ == '__main__':
- ConfigShell().main()
-