From 87e6e5ae787732556c4737016b4f13fc93e777b5 Mon Sep 17 00:00:00 2001
From: Mathieu Bultel <mbultel@redhat.com>
Date: Thu, 08 Dec 2016 16:10:32 +0100
Subject: [PATCH] Create nova_api db during the controller upgrade

For liberty to mitaka upgrade, we need to create the
nova api database during the controller upgrade to avoid
interruption of the compute services before the converge.
Once the compute nodes are updated, any action on the nova
instance is impossible because the api_db isn't create it
(created during the converge step)

Change-Id: I7ef4d16173d34f00c8d10d0e414da960094cb4ae
Closes-Bug: #1648504
---

diff --git a/extraconfig/tasks/liberty_to_mitaka_nova_api_upgrade.pp b/extraconfig/tasks/liberty_to_mitaka_nova_api_upgrade.pp
new file mode 100644
index 0000000..fd090b8
--- /dev/null
+++ b/extraconfig/tasks/liberty_to_mitaka_nova_api_upgrade.pp
@@ -0,0 +1,37 @@
+# Copyright 2015 Red Hat, Inc.
+# All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+# This puppet manifest is to be used only during a Liberty->Mitaka upgrade
+# It creates the nova api database during the controller upgrade instead of
+# during the converge step.
+
+class { '::mysql::server':
+  service_manage => false,
+}
+
+include ::tripleo::packages
+$pacemaker_master   = hiera('bootstrap_nodeid')
+
+if downcase($pacemaker_master) == $::hostname {
+    class {'::nova::db::mysql_api':
+        user          => hiera('nova::db::mysql_api::dbname'),
+        password      => hiera('nova::db::mysql_api::password'),
+        dbname        => hiera('nova::db::mysql_api::dbname'),
+        host          => hiera('nova_api_vip'),
+        charset       => 'utf8',
+        collate       => 'utf8_general_ci',
+        allowed_hosts => undef,
+      }
+}
diff --git a/extraconfig/tasks/major_upgrade_pacemaker.yaml b/extraconfig/tasks/major_upgrade_pacemaker.yaml
index c70a954..cdf9473 100644
--- a/extraconfig/tasks/major_upgrade_pacemaker.yaml
+++ b/extraconfig/tasks/major_upgrade_pacemaker.yaml
@@ -91,7 +91,45 @@
     type: OS::Heat::SoftwareDeploymentGroup
     depends_on: BlockStorageUpgradeDeployment
     properties:
-      servers:  {get_param: controller_servers}
+      servers: {get_param: controller_servers}
       config: {get_resource: ControllerPacemakerUpgradeConfig_Step2}
       input_values: {get_param: input_values}
 
+  NovaApiDatabaseUpgradeConfig:
+    type: OS::Heat::SoftwareConfig
+    properties:
+      group: puppet
+      config:
+        get_file: liberty_to_mitaka_nova_api_upgrade.pp
+
+  NovaApiDatabaseUpgradeDeployment:
+    type: OS::Heat::SoftwareDeploymentGroup
+    depends_on: ControllerPacemakerUpgradeDeployment_Step2
+    properties:
+      name: NovaApiDatabaseUpgradeDeployment
+      servers: {get_param: controller_servers}
+      config: {get_resource: NovaApiDatabaseUpgradeConfig}
+
+  NovaApiDatabasePostConfig:
+    type: OS::Heat::SoftwareConfig
+    properties:
+      group: script
+      config: |
+        #!/bin/bash
+        set -eux
+        crudini --set /etc/nova/nova.conf api_database connection "$(hiera nova::api_database_connection)"
+        crudini --set /etc/nova/nova.conf neutron auth_plugin v3password
+        crudini --set /etc/nova/nova.conf neutron auth_url "$(hiera nova::api::identity_uri)"
+        if [ "$(hiera -c /etc/puppet/hiera.yaml bootstrap_nodeid)" = "$(facter hostname)" ]; then
+            nova-manage api_db sync
+            nova-manage db online_data_migrations
+        fi
+        systemctl restart openstack-nova-api
+
+  NovaApiDatabasePostUpgradeDeployment:
+    type: OS::Heat::SoftwareDeploymentGroup
+    depends_on: NovaApiDatabaseUpgradeDeployment
+    properties:
+      name: NovaApiDatabasePostUpgradeDeployment
+      servers: {get_param: controller_servers}
+      config: {get_resource: NovaApiDatabasePostConfig}
