def _dlr_main(args): if args.debug: debug = True else: debug = False config = ConfigParser.ConfigParser() assert config.read(args.ini), 'could not read config file {}'.format(args.ini) try: nsxramlfile = config.get('nsxraml', 'nsxraml_file') except (ConfigParser.NoSectionError): nsxramlfile_dir = resource_filename(__name__, 'api_spec') nsxramlfile = '{}/nsxvapi.raml'.format(nsxramlfile_dir) client_session = NsxClient(nsxramlfile, config.get('nsxv', 'nsx_manager'), config.get('nsxv', 'nsx_username'), config.get('nsxv', 'nsx_password'), debug=debug) vccontent = connect_to_vc(config.get('vcenter', 'vcenter'), config.get('vcenter', 'vcenter_user'), config.get('vcenter', 'vcenter_passwd')) datacenter_name = config.get('defaults', 'datacenter_name') edge_datastore = config.get('defaults', 'edge_datastore') edge_cluster = config.get('defaults', 'edge_cluster') try: command_selector = { 'list': _dlr_list_print, 'create': _dlr_create, 'delete': _dlr_delete, 'read': _dlr_read, 'set_dgw': _dlr_set_dgw, 'delete_dgw': _dlr_del_dgw, 'add_interface': _dlr_add_interface, 'delete_interface': _dlr_del_interface, 'list_interfaces': _dlr_list_interfaces, } command_selector[args.command](client_session, vccontent=vccontent, dlr_name=args.name, dlr_pwd=args.dlrpassword, dlr_size=args.dlrsize, datacenter_name=datacenter_name, edge_datastore=edge_datastore, edge_cluster=edge_cluster, ha_ls_name=args.ha_ls, uplink_ls_name=args.uplink_ls, uplink_ip=args.uplink_ip, uplink_subnet=args.uplink_subnet, uplink_dgw=args.uplink_dgw, interface_ls_name=args.interface_ls, interface_ip=args.interface_ip, interface_subnet=args.interface_subnet, verbose=args.verbose) except KeyError: print('Unknown command')
def _dhcp_main(args): if args.debug: debug = True else: debug = False config = ConfigParser.ConfigParser() assert config.read(args.ini), 'could not read config file {}'.format(args.ini) try: nsxramlfile = config.get('nsxraml', 'nsxraml_file') except ConfigParser.NoSectionError: nsxramlfile_dir = resource_filename(__name__, 'api_spec') nsxramlfile = '{}/nsxvapi.raml'.format(nsxramlfile_dir) client_session = NsxClient(nsxramlfile, config.get('nsxv', 'nsx_manager'), config.get('nsxv', 'nsx_username'), config.get('nsxv', 'nsx_password'), debug=debug) vccontent = connect_to_vc(config.get('vcenter', 'vcenter'), config.get('vcenter', 'vcenter_user'), config.get('vcenter', 'vcenter_passwd')) try: command_selector = { 'enable_server': _enable_server, 'disable_server': _disable_server, 'read': _read, 'add_pool': _add_dhcp_pool, 'list_pools': _list_dhcp_pools, 'delete_pool': _delete_dhcp_pool, 'add_mac_binding': _add_mac_binding, 'add_vm_binding': _add_vm_binding, 'list_bindings': _list_dhcp_bindings, 'delete_binding': _delete_dhcp_binding, } command_selector[args.command](client_session, vccontent=vccontent, esg_name=args.esg_name, logging=args.logging, log_level=args.log_level, ip_range=args.ip_range, default_gateway=args.default_gateway, subnet_mask=args.subnet_mask, domain_name=args.domain_name, dns_server_1=args.dns_server_1, dns_server_2=args.dns_server_2, lease_time=args.lease_time, auto_dns=args.auto_dns, pool_id=args.pool_id, ip=args.ip, mac=args.mac, hostname=args.hostname, vm_name=args.vm_name, vnic_id=args.vnic_id, binding_id=args.binding_id, verbose=args.verbose) except KeyError as e: print('Unknown command: {}'.format(e))
def _dlr_main(args): if args.debug: debug = True else: debug = False config = ConfigParser.ConfigParser() assert config.read(args.ini), 'could not read config file {}'.format(args.ini) client_session = NsxClient(config.get('nsxraml', 'nsxraml_file'), config.get('nsxv', 'nsx_manager'), config.get('nsxv', 'nsx_username'), config.get('nsxv', 'nsx_password'), debug=debug) vccontent = connect_to_vc(config.get('vcenter', 'vcenter'), config.get('vcenter', 'vcenter_user'), config.get('vcenter', 'vcenter_passwd')) datacenter_name = config.get('defaults', 'datacenter_name') edge_datastore = config.get('defaults', 'edge_datastore') edge_cluster = config.get('defaults', 'edge_cluster') try: command_selector = { 'list': _dlr_list_print, 'create': _dlr_create, 'delete': _dlr_delete, 'read': _dlr_read, 'dgw_set': _dlr_set_dgw, 'dgw_del': _dlr_del_dgw, 'add_interface': _dlr_add_interface, 'del_interface': _dlr_del_interface, 'list_interfaces': _dlr_list_interfaces, } command_selector[args.command](client_session, vccontent=vccontent, dlr_name=args.name, dlr_pwd=args.dlrpassword, dlr_size=args.dlrsize, datacenter_name=datacenter_name, edge_datastore=edge_datastore, edge_cluster=edge_cluster, ha_ls_name=args.ha_ls, uplink_ls_name=args.uplink_ls, uplink_ip=args.uplink_ip, uplink_subnet=args.uplink_subnet, uplink_dgw=args.uplink_dgw, interface_ls_name=args.interface_ls, interface_ip=args.interface_ip, interface_subnet=args.interface_subnet, verbose=args.verbose) except KeyError: print('Unknown command')
def _esg_main(args): if args.debug: debug = True else: debug = False config = ConfigParser.ConfigParser() assert config.read(args.ini), 'could not read config file {}'.format(args.ini) try: nsxramlfile = config.get('nsxraml', 'nsxraml_file') except (ConfigParser.NoSectionError): nsxramlfile_dir = resource_filename(__name__, 'api_spec') nsxramlfile = '{}/nsxvapi.raml'.format(nsxramlfile_dir) client_session = NsxClient(nsxramlfile, config.get('nsxv', 'nsx_manager'), config.get('nsxv', 'nsx_username'), config.get('nsxv', 'nsx_password'), debug=debug) vccontent = connect_to_vc(config.get('vcenter', 'vcenter'), config.get('vcenter', 'vcenter_user'), config.get('vcenter', 'vcenter_passwd')) if args.datacenter_name: datacenter_name = args.datacenter_name else: datacenter_name = config.get('defaults', 'datacenter_name') if args.edge_datastore: edge_datastore = args.edge_datastore else: edge_datastore = config.get('defaults', 'edge_datastore') if args.edge_cluster: edge_cluster = args.edge_cluster else: edge_cluster = config.get('defaults', 'edge_cluster') try: command_selector = { 'list': _esg_list_print, 'create': _esg_create, 'delete': _esg_delete, 'read': _esg_read, 'set_dgw': _esg_dgw_set, 'clear_dgw': _esg_dgw_clear, 'read_dgw': _esg_dgw_read, 'cfg_interface': _esg_cfg_interface, 'clear_interface': _esg_clear_interface, 'list_interfaces': _esg_list_interfaces, 'set_fw_status': _esg_fw_default_set, 'add_route': _esg_route_add, 'delete_route': _esg_route_del, 'list_routes': _esg_route_list, 'routing_ospf': _routing_ospf, 'create_ipset': _create_ipset, 'create_fw_rule': _create_fw_rule } command_selector[args.command](client_session, vccontent=vccontent, esg_name=args.esg_name, esg_pwd=args.esg_password, esg_size=args.esg_size, datacenter_name=datacenter_name, edge_datastore=edge_datastore, edge_cluster=edge_cluster, next_hop=args.next_hop, portgroup=args.portgroup, logical_switch=args.logical_switch, vnic_index=args.vnic_index, vnic_type=args.vnic_type, vnic_name=args.vnic_name, vnic_state=args.vnic_state, vnic_ip=args.vnic_ip, vnic_mask=args.vnic_mask, route_net=args.route_net, fw_default=args.fw_default, esg_remote_access=args.esg_remote_access, vnic_secondary_ips=args.vnic_secondary_ips, verbose=args.verbose, area_id=args.area_id, auth_type=args.auth_type, auth_value=args.auth_value, ipset_name=args.ipset_name, ipset_value=args.ipset_value, rule_src=args.rule_src, rule_dst=args.rule_dst, rule_app=args.rule_app, rule_action=args.rule_action, rule_description=args.rule_description ) except KeyError as e: print('Unknown command: {}'.format(e))
def _esg_main(args): if args.debug: debug = True else: debug = False config = ConfigParser.ConfigParser() assert config.read(args.ini), 'could not read config file {}'.format(args.ini) try: nsxramlfile = config.get('nsxraml', 'nsxraml_file') except (ConfigParser.NoSectionError): nsxramlfile_dir = resource_filename(__name__, 'api_spec') nsxramlfile = '{}/nsxvapi.raml'.format(nsxramlfile_dir) client_session = NsxClient(nsxramlfile, config.get('nsxv', 'nsx_manager'), config.get('nsxv', 'nsx_username'), config.get('nsxv', 'nsx_password'), debug=debug) vccontent = connect_to_vc(config.get('vcenter', 'vcenter'), config.get('vcenter', 'vcenter_user'), config.get('vcenter', 'vcenter_passwd')) if args.datacenter_name: datacenter_name = args.datacenter_name else: datacenter_name = config.get('defaults', 'datacenter_name') if args.edge_datastore: edge_datastore = args.edge_datastore else: edge_datastore = config.get('defaults', 'edge_datastore') if args.edge_cluster: edge_cluster = args.edge_cluster else: edge_cluster = config.get('defaults', 'edge_cluster') try: command_selector = { 'list': _esg_list_print, 'create': _esg_create, 'delete': _esg_delete, 'read': _esg_read, 'set_dgw': _esg_dgw_set, 'clear_dgw': _esg_dgw_clear, 'read_dgw': _esg_dgw_read, 'cfg_interface': _esg_cfg_interface, 'clear_interface': _esg_clear_interface, 'list_interfaces': _esg_list_interfaces, 'set_fw_status': _esg_fw_default_set, 'add_route': _esg_route_add, 'delete_route': _esg_route_del, 'list_routes': _esg_route_list } command_selector[args.command](client_session, vccontent=vccontent, esg_name=args.esg_name, esg_pwd=args.esg_password, esg_size=args.esg_size, datacenter_name=datacenter_name, edge_datastore=edge_datastore, edge_cluster=edge_cluster, next_hop=args.next_hop, portgroup=args.portgroup, logical_switch=args.logical_switch, vnic_index=args.vnic_index, vnic_type=args.vnic_type, vnic_name=args.vnic_name, vnic_state=args.vnic_state, vnic_ip=args.vnic_ip, vnic_mask=args.vnic_mask, route_net=args.route_net, fw_default=args.fw_default, esg_remote_access=args.esg_remote_access, vnic_secondary_ips=args.vnic_secondary_ips, verbose=args.verbose) except KeyError as e: print('Unknown command: {}'.format(e))
def _usage_main(args): if args.debug: debug = True else: debug = False config = ConfigParser.ConfigParser() assert config.read(args.ini), 'could not read config file {}'.format( args.ini) try: nsxramlfile = config.get('nsxraml', 'nsxraml_file') except (ConfigParser.NoSectionError): nsxramlfile_dir = resource_filename(__name__, 'api_spec') nsxramlfile = '{}/nsxvapi.raml'.format(nsxramlfile_dir) client_session = NsxClient(nsxramlfile, config.get('nsxv', 'nsx_manager'), config.get('nsxv', 'nsx_username'), config.get('nsxv', 'nsx_password'), debug=debug) vccontent = connect_to_vc(config.get('vcenter', 'vcenter'), config.get('vcenter', 'vcenter_user'), config.get('vcenter', 'vcenter_passwd')) print 'retrieving the hosts prepared for NSX ....', host_count, dfw_enabled_hosts, host_list = host_prep_state(client_session) print 'Done' if args.verbose: print tabulate(host_list, headers=[ "Host name", "Cluster name", "Host moid", "Cluster moid", "DFW enabled" ], tablefmt="psql"), "\n" print 'retrieving the hosts detailed information ....' host_info = get_host_info(vccontent, host_list) if args.verbose: print tabulate(host_info, headers=["Host name", "CPU Socket count", "VM count"], tablefmt="psql"), "\n" print 'retrieving the number of NSX logical switches ....', ls_count, ls_list, uls_count, uls_list, hwgwls_count, hwgwls_list = ls_state( client_session) print 'Done' if args.verbose: print tabulate(ls_list, headers=["Logical switch name", "Logical switch Id"], tablefmt="psql"), "\n" print tabulate( uls_list, headers=["Universal Logical switch name", "Logical switch Id"], tablefmt="psql"), "\n" print tabulate(hwgwls_list, headers=[ "Logical switches using Hardware Gateway bindings", "Logical switch Id" ], tablefmt="psql"), "\n" print 'retrieving the number of NSX gateways (ESGs and DLRs) ....', esg_count, esg_list, dlr_count, dlr_list = edge_state(client_session) print 'Done' if args.verbose: print tabulate(esg_list, headers=["Edge service gw name", "Edge service gw Id"], tablefmt="psql"), "\n" print tabulate(dlr_list, headers=["Logical router name", "Logical router Id"], tablefmt="psql"), "\n" edge_feature_list = esg_features_collect(client_session, esg_list) if args.verbose: print tabulate(edge_feature_list, headers=[ "Edge service gw name", "Edge service gw Id", "Loadbalancer", "Firewall", "Routing", "IPSec", "L2VPN", "SSL-VPN" ], tablefmt="psql"), "\n" lb_esg = len([edge for edge in edge_feature_list if edge[2] == 'true']) fw_esg = len([edge for edge in edge_feature_list if edge[3] == 'true']) rt_esg = len([edge for edge in edge_feature_list if edge[4] == 'true']) ipsec_esg = len([edge for edge in edge_feature_list if edge[5] == 'true']) l2vpn_esg = len([edge for edge in edge_feature_list if edge[6] == 'true']) sslvpn_esg = len([edge for edge in edge_feature_list if edge[7] == 'true']) nsx_sockets, dfw_sockets = calculate_socket_usage(host_list, host_info) output_table = [ ('Number of hosts prepared for NSX', str(host_count)), ('Number of hosts enabled to use DFW', str(dfw_enabled_hosts)), ('Number of CPU Sockets enabled for NSX', str(nsx_sockets)), ('Number of CPU Sockets enabled for DFW', str(dfw_sockets)), ('Number of local logical switches', str(ls_count)), ('Number of universal logical switches', str(uls_count)), ('Number of logical switches with Hardware Gateway bindings', str(hwgwls_count)), ('Number of Edge services Gateways', str(esg_count)), ('Number of Distributed Routers', str(dlr_count)), ('Number of Service Gateways with Loadbalancing Enabled', str(lb_esg)), ('Number of Service Gateways with Firewall Enabled', str(fw_esg)), ('Number of Service Gateways with Routing Enabled', str(rt_esg)), ('Number of Service Gateways with IPSec Enabled', str(ipsec_esg)), ('Number of Service Gateways with L2VPN Enabled', str(l2vpn_esg)), ('Number of Service Gateways with SSL-VPN Enabled', str(sslvpn_esg)) ] print '\n\nNSX usage summary:' print tabulate(output_table, headers=["Feature / Property / Type", "Count"], tablefmt="psql")
def _usage_main(args): if args.debug: debug = True else: debug = False config = ConfigParser.ConfigParser() assert config.read(args.ini), 'could not read config file {}'.format(args.ini) try: nsxramlfile = config.get('nsxraml', 'nsxraml_file') except (ConfigParser.NoSectionError): nsxramlfile_dir = resource_filename(__name__, 'api_spec') nsxramlfile = '{}/nsxvapi.raml'.format(nsxramlfile_dir) client_session = NsxClient(nsxramlfile, config.get('nsxv', 'nsx_manager'), config.get('nsxv', 'nsx_username'), config.get('nsxv', 'nsx_password'), debug=debug) vccontent = connect_to_vc(config.get('vcenter', 'vcenter'), config.get('vcenter', 'vcenter_user'), config.get('vcenter', 'vcenter_passwd')) print 'retrieving the hosts prepared for NSX ....', host_count, dfw_enabled_hosts, host_list = host_prep_state(client_session) print 'Done' if args.verbose: print tabulate(host_list, headers=["Host name", "Cluster name", "Host moid", "Cluster moid", "DFW enabled"], tablefmt="psql"), "\n" print 'retrieving the hosts detailed information ....' host_info = get_host_info(vccontent, host_list) if args.verbose: print tabulate(host_info, headers=["Host name", "CPU Socket count", "VM count"], tablefmt="psql"), "\n" print 'retrieving the number of NSX logical switches ....', ls_count, ls_list, uls_count, uls_list, hwgwls_count, hwgwls_list = ls_state(client_session) print 'Done' if args.verbose: print tabulate(ls_list, headers=["Logical switch name", "Logical switch Id"], tablefmt="psql"), "\n" print tabulate(uls_list, headers=["Universal Logical switch name", "Logical switch Id"], tablefmt="psql"), "\n" print tabulate(hwgwls_list, headers=["Logical switches using Hardware Gateway bindings", "Logical switch Id"], tablefmt="psql"), "\n" print 'retrieving the number of NSX gateways (ESGs and DLRs) ....', esg_count, esg_list, dlr_count, dlr_list = edge_state(client_session) print 'Done' if args.verbose: print tabulate(esg_list, headers=["Edge service gw name", "Edge service gw Id"], tablefmt="psql"), "\n" print tabulate(dlr_list, headers=["Logical router name", "Logical router Id"], tablefmt="psql"), "\n" edge_feature_list = esg_features_collect(client_session, esg_list) if args.verbose: print tabulate(edge_feature_list, headers=["Edge service gw name", "Edge service gw Id", "Loadbalancer", "Firewall", "Routing", "IPSec", "L2VPN", "SSL-VPN"], tablefmt="psql"), "\n" lb_esg = len([edge for edge in edge_feature_list if edge[2] == 'true']) fw_esg = len([edge for edge in edge_feature_list if edge[3] == 'true']) rt_esg = len([edge for edge in edge_feature_list if edge[4] == 'true']) ipsec_esg = len([edge for edge in edge_feature_list if edge[5] == 'true']) l2vpn_esg = len([edge for edge in edge_feature_list if edge[6] == 'true']) sslvpn_esg = len([edge for edge in edge_feature_list if edge[7] == 'true']) nsx_sockets, dfw_sockets = calculate_socket_usage(host_list, host_info) output_table = [('Number of hosts prepared for NSX', str(host_count)), ('Number of hosts enabled to use DFW', str(dfw_enabled_hosts)), ('Number of CPU Sockets enabled for NSX', str(nsx_sockets)), ('Number of CPU Sockets enabled for DFW', str(dfw_sockets)), ('Number of local logical switches', str(ls_count)), ('Number of universal logical switches', str(uls_count)), ('Number of logical switches with Hardware Gateway bindings', str(hwgwls_count)), ('Number of Edge services Gateways', str(esg_count)), ('Number of Distributed Routers', str(dlr_count)), ('Number of Service Gateways with Loadbalancing Enabled', str(lb_esg)), ('Number of Service Gateways with Firewall Enabled', str(fw_esg)), ('Number of Service Gateways with Routing Enabled', str(rt_esg)), ('Number of Service Gateways with IPSec Enabled', str(ipsec_esg)), ('Number of Service Gateways with L2VPN Enabled', str(l2vpn_esg)), ('Number of Service Gateways with SSL-VPN Enabled', str(sslvpn_esg))] print '\n\nNSX usage summary:' print tabulate(output_table, headers=["Feature / Property / Type", "Count"], tablefmt="psql")
def _dhcp_main(args): if args.debug: debug = True else: debug = False config = ConfigParser.ConfigParser() assert config.read(args.ini), 'could not read config file {}'.format( args.ini) try: nsxramlfile = config.get('nsxraml', 'nsxraml_file') except ConfigParser.NoSectionError: nsxramlfile_dir = resource_filename(__name__, 'api_spec') nsxramlfile = '{}/nsxvapi.raml'.format(nsxramlfile_dir) client_session = NsxClient(nsxramlfile, config.get('nsxv', 'nsx_manager'), config.get('nsxv', 'nsx_username'), config.get('nsxv', 'nsx_password'), debug=debug) vccontent = connect_to_vc(config.get('vcenter', 'vcenter'), config.get('vcenter', 'vcenter_user'), config.get('vcenter', 'vcenter_passwd')) try: command_selector = { 'enable_server': _enable_server, 'disable_server': _disable_server, 'read': _read, 'add_pool': _add_dhcp_pool, 'list_pools': _list_dhcp_pools, 'delete_pool': _delete_dhcp_pool, 'add_mac_binding': _add_mac_binding, 'add_vm_binding': _add_vm_binding, 'list_bindings': _list_dhcp_bindings, 'delete_binding': _delete_dhcp_binding, } command_selector[args.command](client_session, vccontent=vccontent, esg_name=args.esg_name, logging=args.logging, log_level=args.log_level, ip_range=args.ip_range, default_gateway=args.default_gateway, subnet_mask=args.subnet_mask, domain_name=args.domain_name, dns_server_1=args.dns_server_1, dns_server_2=args.dns_server_2, lease_time=args.lease_time, auto_dns=args.auto_dns, pool_id=args.pool_id, ip=args.ip, mac=args.mac, hostname=args.hostname, vm_name=args.vm_name, vnic_id=args.vnic_id, binding_id=args.binding_id, verbose=args.verbose) except KeyError as e: print('Unknown command: {}'.format(e))