From f9cae85f78456ae7bec6c18a88c6ace011ea5d32 Mon Sep 17 00:00:00 2001
From: Amey Bhide <abhide@vmware.com>
Date: Tue, 8 Dec 2015 13:32:20 -0800
Subject: [PATCH] Admin Utility: Minor fixes for output formatting

Change-Id: I77913904f2e937797e2d7f61123dd1c4a45144f9
---
 .../admin/plugins/nsxv/resources/dhcp_binding.py       | 10 ++++++++--
 .../admin/plugins/nsxv/resources/edges.py              |  6 +++++-
 2 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/tools/python_nsxadmin/admin/plugins/nsxv/resources/dhcp_binding.py b/tools/python_nsxadmin/admin/plugins/nsxv/resources/dhcp_binding.py
index 0b26f0e065..2bc542fc59 100644
--- a/tools/python_nsxadmin/admin/plugins/nsxv/resources/dhcp_binding.py
+++ b/tools/python_nsxadmin/admin/plugins/nsxv/resources/dhcp_binding.py
@@ -14,6 +14,7 @@
 
 
 import logging
+import pprint
 
 from tools.python_nsxadmin.admin.plugins.common import constants
 import tools.python_nsxadmin.admin.plugins.common.utils as admin_utils
@@ -81,8 +82,13 @@ def list_missing_dhcp_bindings(resource, event, trigger, **kwargs):
                  len(neutron_dhcp_static_bindings))
         LOG.info(_LI("# of DHCP bindings on NSXv backend: %s"),
                  len(nsx_dhcp_static_bindings))
-        LOG.info(_LI("Missing DHCP bindings:"))
-        LOG.info(neutron_dhcp_static_bindings - nsx_dhcp_static_bindings)
+        missing = neutron_dhcp_static_bindings - nsx_dhcp_static_bindings
+        if not missing:
+            LOG.info(_LI("No missing DHCP bindings found."))
+            LOG.info(_LI("Neutron DB and NSXv backend are in sync"))
+        else:
+            LOG.info(_LI("Missing DHCP bindings:"))
+            LOG.info(_LI("%s"), pprint.pformat(missing))
 
 
 @admin_utils.output_header
diff --git a/tools/python_nsxadmin/admin/plugins/nsxv/resources/edges.py b/tools/python_nsxadmin/admin/plugins/nsxv/resources/edges.py
index 0e0910bfbe..99a64ab4ca 100644
--- a/tools/python_nsxadmin/admin/plugins/nsxv/resources/edges.py
+++ b/tools/python_nsxadmin/admin/plugins/nsxv/resources/edges.py
@@ -23,6 +23,7 @@ import tools.python_nsxadmin.admin.plugins.nsxv.resources.utils as utils
 import tools.python_nsxadmin.admin.shell as shell
 
 from neutron.callbacks import registry
+from neutron.common import exceptions
 
 from vmware_nsx._i18n import _LE, _LI
 from vmware_nsx.db import nsxv_db
@@ -129,7 +130,10 @@ def nsx_update_edge(resource, event, trigger, **kwargs):
         ha_request = {
             'featureType': 'highavailability_4.0',
             'enabled': ha}
-    return nsxv.enable_ha(properties.get('edge-id'), ha_request, async=False)
+    try:
+        nsxv.enable_ha(properties.get('edge-id'), ha_request, async=False)
+    except exceptions.NeutronException as e:
+        LOG.error(_LE("%s"), str(e))
 
 
 registry.subscribe(nsx_list_edges,