Merge "[Admin-util]: Add support to update resource pool ID for NSXv edges"

This commit is contained in:
Jenkins 2016-10-09 05:52:56 +00:00 committed by Gerrit Code Review
commit 990cf7475a
3 changed files with 63 additions and 26 deletions

View File

@ -20,17 +20,21 @@ Edges
nsxadmin -r edges -o neutron-list nsxadmin -r edges -o neutron-list
- Update Resource pool / Datastore on all edges in the backend. This utility can update resource pool and datastore ID of all edges to the nsx.ini configuration::
nsxadmin -r edges -o nsx-update-all --property appliances=True
- Update Resource pool / Datastore / edge HA of an edge: This utility can be used on upgrade after the customer added ha_datastore_id to the nsx.ini configuration or after changing the resource pool / data store globally or per availability zone. This Utility can update the deployment of existing edges:: - Update Resource pool / Datastore / edge HA of an edge: This utility can be used on upgrade after the customer added ha_datastore_id to the nsx.ini configuration or after changing the resource pool / data store globally or per availability zone. This Utility can update the deployment of existing edges::
nsxadmin -r edges -o nsx-update --property edge-id=<edge-id> --property appliances=True nsxadmin -r edges -o nsx-update --property edge-id=<edge-id> --property appliances=True
- Update the size of an edge:: - Update the size of an edge::
nsxadmin -r edges -o nsx-update --property edge-id=edge-55 --property size=compact nsxadmin -r edges -o nsx-update --property edge-id=edge-55 --property size=compact
- Update the high availability of an edge: enable/disable high availability of an edge:: - Update the high availability of an edge: enable/disable high availability of an edge::
nsxadmin -r edges -o nsx-update --property edge-id=edge-55 --property highavailability=<True/False> nsxadmin -r edges -o nsx-update --property edge-id=edge-55 --property highavailability=<True/False>
Orphaned Edges Orphaned Edges
~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~
@ -55,98 +59,98 @@ Backup Edges
- List backend backup edges with their id, name and some more information:: - List backend backup edges with their id, name and some more information::
nsxadmin -r backup-edges -o list nsxadmin -r backup-edges -o list
- Delete backup edge:: - Delete backup edge::
nsxadmin -r backup-edges -o clean --property edge-id=edge-9 nsxadmin -r backup-edges -o clean --property edge-id=edge-9
- List Edge name mismatches between DB and backend, and backup edges that are missing from the backend:: - List Edge name mismatches between DB and backend, and backup edges that are missing from the backend::
nsxadmin -r backup-edges -o list-mismatches nsxadmin -r backup-edges -o list-mismatches
- Fix Edge name mismatch between DB and backend by updating the name on the backend:: - Fix Edge name mismatch between DB and backend by updating the name on the backend::
nsxadmin -r backup-edges -o fix-mismatch --property edge-id=edge-9 nsxadmin -r backup-edges -o fix-mismatch --property edge-id=edge-9
DHCP Bindings DHCP Bindings
~~~~~~~~~~~~~ ~~~~~~~~~~~~~
- List missing DHCP bindings: list dhcp edges that are missing from the NSXv backend:: - List missing DHCP bindings: list dhcp edges that are missing from the NSXv backend::
nsxadmin -r dhcp-binding -o list nsxadmin -r dhcp-binding -o list
- Update DHCP bindings on an edge:: - Update DHCP bindings on an edge::
nsxadmin -r dhcp-binding -o nsx-update --property edge-id=edge-15 nsxadmin -r dhcp-binding -o nsx-update --property edge-id=edge-15
- Recreate DHCP edge by moving all the networks to other edges:: - Recreate DHCP edge by moving all the networks to other edges::
nsxadmin -r dhcp-binding -o nsx-recreate --property edge-id=edge-222 nsxadmin -r dhcp-binding -o nsx-recreate --property edge-id=edge-222
Routers Routers
~~~~~~~ ~~~~~~~
- Recreate a router edge by moving the router/s to other edge/s:: - Recreate a router edge by moving the router/s to other edge/s::
nsxadmin -r routers -o nsx-recreate --property edge-id=edge-308 nsxadmin -r routers -o nsx-recreate --property edge-id=edge-308
Networks Networks
~~~~~~~~ ~~~~~~~~
- Ability to update or get the teaming policy for a DVS:: - Ability to update or get the teaming policy for a DVS::
nsxadmin -r networks -o nsx-update --property dvs-id=<id> --property teamingpolicy=<policy> nsxadmin -r networks -o nsx-update --property dvs-id=<id> --property teamingpolicy=<policy>
- List backend networks and their network morefs:: - List backend networks and their network morefs::
nsxadmin -r networks -o list nsxadmin -r networks -o list
Missing Networks Missing Networks
~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~
- List networks which are missing from the backend:: - List networks which are missing from the backend::
nsxadmin -r missing-networks -o list nsxadmin -r missing-networks -o list
Orphaned Networks Orphaned Networks
~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~
- List networks which are missing from the neutron DB:: - List networks which are missing from the neutron DB::
nsxadmin -r orphaned-networks -o list nsxadmin -r orphaned-networks -o list
- Delete a backend network by it's moref:: - Delete a backend network by it's moref::
nsxadmin -r orphaned-networks -o nsx-clean --property moref=<moref> nsxadmin -r orphaned-networks -o nsx-clean --property moref=<moref>
Security Groups, Firewall and Spoofguard Security Groups, Firewall and Spoofguard
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Security groups. This adds support to list security-groups mappings and miss-matches between the mappings and backend resources as: firewall-sections and nsx-security-groups:: - Security groups. This adds support to list security-groups mappings and miss-matches between the mappings and backend resources as: firewall-sections and nsx-security-groups::
nsxadmin --resource security-groups --operation list nsxadmin --resource security-groups --operation list
nsxadmin -r nsx-security-groups -o {list, list-missmatches} nsxadmin -r nsx-security-groups -o {list, list-missmatches}
nsxadmin -r firewall-sections -o {list, list-missmatches} nsxadmin -r firewall-sections -o {list, list-missmatches}
- Spoofguard support:: - Spoofguard support::
nsxadmin -r spoofguard-policy -o list-mismatches nsxadmin -r spoofguard-policy -o list-mismatches
nsxadmin -r spoofguard-policy -o clean --property policy-id=spoofguardpolicy-10 nsxadmin -r spoofguard-policy -o clean --property policy-id=spoofguardpolicy-10
nsxadmin -r spoofguard-policy -o list --property reverse (entries defined on NSXv and not in Neutron) nsxadmin -r spoofguard-policy -o list --property reverse (entries defined on NSXv and not in Neutron)
Metadata Metadata
~~~~~~~~ ~~~~~~~~
- Update loadbalancer members on router and DHCP edges:: - Update loadbalancer members on router and DHCP edges::
nsxadmin -r metadata -o nsx-update nsxadmin -r metadata -o nsx-update
- Update shared secret on router and DHCP edges:: - Update shared secret on router and DHCP edges::
nsxadmin -r metadata -o nsx-update-secret nsxadmin -r metadata -o nsx-update-secret
- Retrieve metadata connectivity - optionally for a specific network:: - Retrieve metadata connectivity - optionally for a specific network::
nsxadmin -r metadata -o status [--property network_id=<net_id>] nsxadmin -r metadata -o status [--property network_id=<net_id>]
NSXv3 NSXv3
----- -----
@ -174,7 +178,7 @@ Ports
nsxadmin -r ports -o list-mismatches nsxadmin -r ports -o list-mismatches
- Update the VMs ports on the backend after migrating nsx-v -> nsx-v3 - Update the VMs ports on the backend after migrating nsx-v -> nsx-v3::
nsxadmin -r ports -o nsx-migrate-v-v3 nsxadmin -r ports -o nsx-migrate-v-v3

View File

@ -258,6 +258,34 @@ def nsx_update_edge(resource, event, trigger, **kwargs):
LOG.error(usage_msg) LOG.error(usage_msg)
@admin_utils.output_header
def nsx_update_edges(resource, event, trigger, **kwargs):
"""Update all edges with the given property"""
if not kwargs.get('property'):
usage_msg = _LE("Need to specify a property to update all edges. "
"Add --property appliances=<True/False>")
LOG.error(usage_msg)
return
edges = utils.get_nsxv_backend_edges()
properties = admin_utils.parse_multi_keyval_opt(kwargs['property'])
result = 0
for edge in edges:
if properties.get('appliances', 'false').lower() == "true":
try:
change_edge_appliance(edge.get('edge-id'))
except Exception as e:
result += 1
LOG.error(_LE("Failed to update edge %(edge)s. Exception: "
"%(e)s"), {'edge': edge.get('edge-id'),
'e': str(e)})
if result > 0:
total = len(edges)
msg = (_LE("%(result)s of %(total)s edges failed "
"to update.") % {'result': result, 'total': total})
LOG.error(msg)
registry.subscribe(nsx_list_edges, registry.subscribe(nsx_list_edges,
constants.EDGES, constants.EDGES,
shell.Operations.NSX_LIST.value) shell.Operations.NSX_LIST.value)
@ -276,3 +304,6 @@ registry.subscribe(nsx_list_missing_edges,
registry.subscribe(nsx_update_edge, registry.subscribe(nsx_update_edge,
constants.EDGES, constants.EDGES,
shell.Operations.NSX_UPDATE.value) shell.Operations.NSX_UPDATE.value)
registry.subscribe(nsx_update_edges,
constants.EDGES,
shell.Operations.NSX_UPDATE_ALL.value)

View File

@ -43,6 +43,7 @@ class Operations(enum.Enum):
NSX_LIST = 'nsx-list' NSX_LIST = 'nsx-list'
NSX_CLEAN = 'nsx-clean' NSX_CLEAN = 'nsx-clean'
NSX_UPDATE = 'nsx-update' NSX_UPDATE = 'nsx-update'
NSX_UPDATE_ALL = 'nsx-update-all'
NSX_UPDATE_SECRET = 'nsx-update-secret' NSX_UPDATE_SECRET = 'nsx-update-secret'
NSX_RECREATE = 'nsx-recreate' NSX_RECREATE = 'nsx-recreate'
MIGRATE_TO_DYNAMIC_CRITERIA = 'migrate-to-dynamic-criteria' MIGRATE_TO_DYNAMIC_CRITERIA = 'migrate-to-dynamic-criteria'
@ -91,7 +92,8 @@ nsxv_resources = {
constants.EDGES: Resource(constants.EDGES, constants.EDGES: Resource(constants.EDGES,
[Operations.NSX_LIST.value, [Operations.NSX_LIST.value,
Operations.NEUTRON_LIST.value, Operations.NEUTRON_LIST.value,
Operations.NSX_UPDATE.value]), Operations.NSX_UPDATE.value,
Operations.NSX_UPDATE_ALL.value]),
constants.BACKUP_EDGES: Resource(constants.BACKUP_EDGES, constants.BACKUP_EDGES: Resource(constants.BACKUP_EDGES,
[Operations.LIST.value, [Operations.LIST.value,
Operations.CLEAN.value, Operations.CLEAN.value,