diff --git a/docker/services/glance-api.yaml b/docker/services/glance-api.yaml
index 7c42cc2896..3eec205390 100644
--- a/docker/services/glance-api.yaml
+++ b/docker/services/glance-api.yaml
@@ -292,37 +292,27 @@ outputs:
         - name: Check if glance_api is deployed
           command: systemctl is-enabled --quiet openstack-glance-api
           ignore_errors: True
-          register: glance_api_enabled
-        - name: Check if glance_registry is deployed
-          command: systemctl is-enabled --quiet openstack-glance-registry
-          ignore_errors: True
-          register: glance_registry_enabled
+          register: glance_api_enabled_result
+          when:
+            - step|int == 0
+            - release == 'ocata'
+        - name: Set fact glance_api_enabled
+          set_fact:
+            glance_api_enabled: "{{ glance_api_enabled_result.rc == 0 }}"
+          when:
+            - step|int == 0
+            - release == 'ocata'
         - name: Stop openstack-glance-api
           service: name=openstack-glance-api state=stopped enabled=no
           when:
-            - step|int == 2
+            - step|int == 1
             - release == 'ocata'
-            - glance_api_enabled.rc == 0
-        - name: Stop openstack-glance-registry
-          service: name=openstack-glance-registry state=stopped enabled=no
-          when:
-            - step|int == 2
-            - release == 'ocata'
-            - glance_registry_enabled.rc == 0
+            - glance_api_enabled|bool
         - name: glance package update
-          yum:
-            name: '{{ package }}'
-            state: latest
+          yum: name=openstack-glance state=latest
           when:
             - step|int == 6
             - is_bootstrap_node|bool
-          loop_control:
-            loop_var: package
-          with_items:
-            - python-glance-store
-            - python-glanceclient
-            - openstack-glance
-            - python-glance
         - name: glance db sync
           command: glance-manage db_sync
           when:
diff --git a/puppet/services/disabled/glance-registry-disabled.yaml b/puppet/services/disabled/glance-registry-disabled.yaml
index af462490a7..237e2c0b8e 100644
--- a/puppet/services/disabled/glance-registry-disabled.yaml
+++ b/puppet/services/disabled/glance-registry-disabled.yaml
@@ -40,3 +40,23 @@ outputs:
         - name: Stop and disable glance_registry service on upgrade
           when: step|int == 1
           service: name=openstack-glance-registry state=stopped enabled=no
+      fast_forward_upgrade_tasks:
+        - name: Check if glance_registry is deployed
+          command: systemctl is-enabled --quiet openstack-glance-registry
+          ignore_errors: True
+          register: glance_registry_enabled_result
+          when:
+            - step|int == 0
+            - release == 'ocata'
+        - name: Set fact glance_registry_enabled
+          set_fact:
+            glance_registry_enabled: "{{ glance_registry_enabled_result.rc == 0 }}"
+          when:
+            - step|int == 0
+            - release == 'ocata'
+        - name: Stop openstack-glance-registry
+          service: name=openstack-glance-registry state=stopped enabled=no
+          when:
+            - step|int == 1
+            - release == 'ocata'
+            - glance_registry_enabled|bool
diff --git a/roles/Controller.yaml b/roles/Controller.yaml
index 8f2185aa61..bd0f89489a 100644
--- a/roles/Controller.yaml
+++ b/roles/Controller.yaml
@@ -73,6 +73,7 @@
     - OS::TripleO::Services::ExternalSwiftProxy
     - OS::TripleO::Services::Fluentd
     - OS::TripleO::Services::GlanceApi
+    - OS::TripleO::Services::GlanceRegistry
     - OS::TripleO::Services::GnocchiApi
     - OS::TripleO::Services::GnocchiMetricd
     - OS::TripleO::Services::GnocchiStatsd
diff --git a/roles/ControllerAllNovaStandalone.yaml b/roles/ControllerAllNovaStandalone.yaml
index 8da711fee7..6f42d1a7f2 100644
--- a/roles/ControllerAllNovaStandalone.yaml
+++ b/roles/ControllerAllNovaStandalone.yaml
@@ -50,6 +50,7 @@
     - OS::TripleO::Services::Fluentd
     - OS::TripleO::Services::Ipsec
     - OS::TripleO::Services::GlanceApi
+    - OS::TripleO::Services::GlanceRegistry
     - OS::TripleO::Services::GnocchiApi
     - OS::TripleO::Services::GnocchiMetricd
     - OS::TripleO::Services::GnocchiStatsd
diff --git a/roles/ControllerNoCeph.yaml b/roles/ControllerNoCeph.yaml
index adf19eaf58..fbba2112df 100644
--- a/roles/ControllerNoCeph.yaml
+++ b/roles/ControllerNoCeph.yaml
@@ -66,6 +66,7 @@
     - OS::TripleO::Services::ExternalSwiftProxy
     - OS::TripleO::Services::Fluentd
     - OS::TripleO::Services::GlanceApi
+    - OS::TripleO::Services::GlanceRegistry
     - OS::TripleO::Services::GnocchiApi
     - OS::TripleO::Services::GnocchiMetricd
     - OS::TripleO::Services::GnocchiStatsd
diff --git a/roles/ControllerNovaStandalone.yaml b/roles/ControllerNovaStandalone.yaml
index 7d1a97bece..b512ad23d8 100644
--- a/roles/ControllerNovaStandalone.yaml
+++ b/roles/ControllerNovaStandalone.yaml
@@ -58,6 +58,7 @@
     - OS::TripleO::Services::ExternalSwiftProxy
     - OS::TripleO::Services::Fluentd
     - OS::TripleO::Services::GlanceApi
+    - OS::TripleO::Services::GlanceRegistry
     - OS::TripleO::Services::GnocchiApi
     - OS::TripleO::Services::GnocchiMetricd
     - OS::TripleO::Services::GnocchiStatsd
diff --git a/roles/ControllerOpenstack.yaml b/roles/ControllerOpenstack.yaml
index bbf21e87ae..155cc363e0 100644
--- a/roles/ControllerOpenstack.yaml
+++ b/roles/ControllerOpenstack.yaml
@@ -55,6 +55,7 @@
     - OS::TripleO::Services::Fluentd
     - OS::TripleO::Services::Ipsec
     - OS::TripleO::Services::GlanceApi
+    - OS::TripleO::Services::GlanceRegistry
     - OS::TripleO::Services::GnocchiApi
     - OS::TripleO::Services::GnocchiMetricd
     - OS::TripleO::Services::GnocchiStatsd
diff --git a/roles/ControllerStorageNfs.yaml b/roles/ControllerStorageNfs.yaml
index d398c0382e..a317192d26 100644
--- a/roles/ControllerStorageNfs.yaml
+++ b/roles/ControllerStorageNfs.yaml
@@ -67,6 +67,7 @@
     - OS::TripleO::Services::ExternalSwiftProxy
     - OS::TripleO::Services::Fluentd
     - OS::TripleO::Services::GlanceApi
+    - OS::TripleO::Services::GlanceRegistry
     - OS::TripleO::Services::GnocchiApi
     - OS::TripleO::Services::GnocchiMetricd
     - OS::TripleO::Services::GnocchiStatsd
diff --git a/roles_data.yaml b/roles_data.yaml
index 307c24a0b8..212f27bb52 100644
--- a/roles_data.yaml
+++ b/roles_data.yaml
@@ -76,6 +76,7 @@
     - OS::TripleO::Services::ExternalSwiftProxy
     - OS::TripleO::Services::Fluentd
     - OS::TripleO::Services::GlanceApi
+    - OS::TripleO::Services::GlanceRegistry
     - OS::TripleO::Services::GnocchiApi
     - OS::TripleO::Services::GnocchiMetricd
     - OS::TripleO::Services::GnocchiStatsd