Added support for disabling controllers when they are down
diff --git a/xos/openstack_observer/steps/sync_controller_users.py b/xos/openstack_observer/steps/sync_controller_users.py
index acb3050..47d1096 100644
--- a/xos/openstack_observer/steps/sync_controller_users.py
+++ b/xos/openstack_observer/steps/sync_controller_users.py
@@ -9,6 +9,7 @@
from core.models.controlleruser import ControllerUser
from observer.ansible import *
from util.logger import observer_logger as logger
+import json
class SyncControllerUsers(OpenStackSyncStep):
provides=[User]
@@ -25,6 +26,10 @@
def sync_record(self, controller_user):
logger.info("sync'ing user %s at controller %s" % (controller_user.user, controller_user.controller))
+ controller_register = json.loads(controller_user.controller.backend_register)
+ if (controller_register.get('disabled',False)):
+ raise Exception('Controller %s is disabled'%controller_user.controller.name)
+
if not controller_user.controller.admin_user:
logger.info("controller %r has no admin_user, skipping" % controller_user.controller)
return
@@ -72,6 +77,10 @@
controller_user.save()
def delete_record(self, controller_user):
+ controller_register = json.loads(controller_user.controller.backend_register)
+ if (controller_register.get('disabled',False)):
+ raise Exception('Controller %s is disabled'%controller_user.controller.name)
+
if controller_user.kuser_id:
driver = self.driver.admin_driver(controller=controller_user.controller)
driver.delete_user(controller_user.kuser_id)