Fix upgrade ceph luminous to nautilus

- Sync with documentation 2019.2.18

Change-Id: I16bc1b571c3558bc7ff8bfef2e2eabfa095d7a7f
diff --git a/tcp_tests/tests/system/test_ceph_luminous_upgrade.py b/tcp_tests/tests/system/test_ceph_luminous_upgrade.py
index 11b4da5..b5fda24 100644
--- a/tcp_tests/tests/system/test_ceph_luminous_upgrade.py
+++ b/tcp_tests/tests/system/test_ceph_luminous_upgrade.py
@@ -7,24 +7,30 @@
 LOG = logger.logger
 
 
-@pytest.fixture
-def wa_cve_2021_20288_global_id_reclaim(reclass_actions,
-                                        salt_actions):
-    tgt = "I@ceph:common"
-    context_file = "cluster/*/ceph/common.yml"
-    if not reclass_actions.check_existence(
+def wa_cve_2021_20288_global_id_reclaim(reclass_actions, salt_actions):
+    if reclass_actions.check_existence(
             'parameters.ceph.common.config.mon.'
             + 'auth_allow_insecure_global_id_reclaim'):
-        reclass_actions.add_bool_key(
-            'parameters.ceph.common.config.mon.'
-            + 'auth_allow_insecure_global_id_reclaim', "False", context_file)
-        salt_actions.run_state(tgt, "state.apply", "ceph.common")
-        salt_actions.cmd_run(tgt, "systemctl restart ceph-mon.target")
-    else:
         LOG.info("Skipping WA ceph set auth_allow_insecure_global_id_reclaim")
+        return
+
+    common_tgt = "I@ceph:common"
+    mon_tgt = "I@ceph:mon"
+
+    context_file = "cluster/*/ceph/common.yml"
+    reclass_actions.add_bool_key(
+        'parameters.ceph.common.config.mon.'
+        + 'auth_allow_insecure_global_id_reclaim', "False", context_file)
+    salt_actions.cmd_run("cfg01*",
+                         "cd /srv/salt/reclass; git add -u && "
+                         "git commit --allow-empty "
+                         "-m 'apply auth_allow_insecure_global_id_reclaim "
+                         "parameter'")
+    salt_actions.run_state("*", "saltutil.refresh_pillar")
+    salt_actions.run_state(common_tgt, "state.apply", "ceph.common")
+    salt_actions.cmd_run(mon_tgt, "systemctl restart ceph-mon.target")
 
 
-@pytest.mark.usefixtures("wa_cve_2021_20288_global_id_reclaim")
 class TestCephLuminousUpgrade(object):
 
     @pytest.mark.grab_versions
@@ -39,7 +45,6 @@
             2. Run Pipeline Ceph - upgrade
         https://docs.mirantis.com/mcp/master/mcp-operations-guide/ update-upgrade/major-upgrade/ceph-upgrade/upgrade-ceph.html
         """  # noqa: E501
-
         salt = salt_actions
         reclass = reclass_actions
         dt = drivetrain_actions
@@ -49,11 +54,29 @@
                         "nautilus",
                         "cluster/*/ceph/init.yml")
         reclass.add_key(
-            "parameters._param.linux_system_repo_update_mcp_ceph_url",
-            "${_param:linux_system_repo_update_url}/ceph-nautilus/",
-            "cluster/*/infra/init.yml")
-        reclass.add_class("system.ceph.mgr.cluster",
-                          "cluster/*/ceph/mon.yml")
+            "parameters._param.linux_system_repo_mcp_ceph_codename",
+            "nautilus",
+            "cluster/*/ceph/init.yml")
+        reclass.delete_class(
+            "system.linux.system.repo.mcp.apt_mirantis.ceph",
+            "cluster/*/ceph/common.yml"
+            )
+        reclass.delete_class(
+            "system.linux.system.repo.mcp.apt_mirantis.ceph",
+            "cluster/*/openstack/init.yml"
+            )
+        reclass.delete_class(
+            "system.linux.system.repo.mcp.apt_mirantis.ceph",
+            "cluster/*/infra/kvm.yml"
+        )
+        values = reclass.get_key("classes", "cluster/*/ceph/mon.yml")
+        try:
+            mon_cluster_index = values.index("system.ceph.mon.cluster")
+        except ValueError:
+            mon_cluster_index = 0
+        values.insert(mon_cluster_index+1, "system.ceph.mgr.cluster")
+        reclass.add_key("classes", values, "cluster/*/ceph/mon.yml")
+
         salt.cmd_run("cfg01*",
                      "cd /srv/salt/reclass; git add -u && \
                          git commit --allow-empty \
@@ -83,3 +106,4 @@
             job_parameters=job_parameters)
 
         assert job_result == 'SUCCESS', job_description
+        wa_cve_2021_20288_global_id_reclaim(reclass_actions, salt_actions)