From 34ae1e264246bfadfbff5a46e3448e8a99c5cd59 Mon Sep 17 00:00:00 2001
From: Adam Gandelman <adamg@canonical.com>
Date: Fri, 1 Nov 2013 14:52:58 -0700
Subject: [PATCH] Send restart trigger to compute side after db migration.

---
 hooks/nova_cc_hooks.py | 11 ++++++++++-
 revision               |  2 +-
 2 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/hooks/nova_cc_hooks.py b/hooks/nova_cc_hooks.py
index 6fe25e6f..61063838 100755
--- a/hooks/nova_cc_hooks.py
+++ b/hooks/nova_cc_hooks.py
@@ -3,6 +3,7 @@
 import os
 import shutil
 import sys
+import uuid
 
 from subprocess import check_call
 from urlparse import urlparse
@@ -147,6 +148,8 @@ def db_changed():
 
     if eligible_leader(CLUSTER_RES):
         migrate_database()
+        [compute_joined(rid=rid, remote_restart=True)
+         for rid in relation_ids('cloud-compute')]
 
 
 @hooks.hook('image-service-relation-changed')
@@ -255,7 +258,7 @@ def keystone_compute_settings():
 
 
 @hooks.hook('cloud-compute-relation-joined')
-def compute_joined(rid=None):
+def compute_joined(rid=None, remote_restart=False):
     if not eligible_leader(CLUSTER_RES):
         return
     rel_settings = {
@@ -265,6 +268,12 @@ def compute_joined(rid=None):
         # this may not even be needed.
         'ec2_host': unit_get('private-address'),
     }
+
+    # update relation setting if we're attempting to restart remote
+    # services
+    if remote_restart:
+        rel_settings['restart_trigger'] = str(uuid.uuid4())
+
     rel_settings.update(keystone_compute_settings())
     relation_set(relation_id=rid, **rel_settings)
 
diff --git a/revision b/revision
index 54ea97e9..b661fff6 100644
--- a/revision
+++ b/revision
@@ -1 +1 @@
-310
+311