Esempio n. 1
0
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')
Esempio n. 2
0
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))
Esempio n. 3
0
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')
Esempio n. 4
0
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))
Esempio n. 5
0
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))
Esempio n. 6
0
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")
Esempio n. 7
0
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")
Esempio n. 8
0
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))