From ed84524e3b6ef042dc27fb59c6b1fb792d6aded8 Mon Sep 17 00:00:00 2001
From: Andrew McLeod <andrew.mcleod@canonical.com>
Date: Tue, 21 Nov 2017 12:26:09 +1300
Subject: [PATCH] Enable xenial-pike amulet test

Make default func27-smoke xenial-pike
Charm-helpers sync

Review and merge https://github.com/juju/charm-helpers/pull/69 first.

Change-Id: I32a04dfc995929840f8c544e1d5ed58066515210
---
 tests/basic_deployment.py                            | 9 ++++++---
 tests/charmhelpers/contrib/openstack/amulet/utils.py | 9 ++++++---
 tests/gate-basic-xenial-pike                         | 0
 tox.ini                                              | 2 +-
 4 files changed, 13 insertions(+), 7 deletions(-)
 mode change 100644 => 100755 tests/gate-basic-xenial-pike

diff --git a/tests/basic_deployment.py b/tests/basic_deployment.py
index bb23dc6..8850da5 100644
--- a/tests/basic_deployment.py
+++ b/tests/basic_deployment.py
@@ -508,9 +508,12 @@ class CephOsdBasicDeployment(OpenStackAmuletDeployment):
         if ret:
             amulet.raise_status(amulet.FAIL, msg=ret)
 
-        # Validate ceph cinder pool disk space usage samples over time
-        ret = u.validate_ceph_pool_samples(pool_size_samples,
-                                           "cinder pool disk usage")
+        # Luminous (pike) ceph seems more efficient at disk usage so we cannot
+        # grantee the ordering of kb_used
+        if self._get_openstack_release() < self.xenial_mitaka:
+            # Validate ceph cinder pool disk space usage samples over time
+            ret = u.validate_ceph_pool_samples(pool_size_samples,
+                                               "cinder pool disk usage")
         if ret:
             amulet.raise_status(amulet.FAIL, msg=ret)
 
diff --git a/tests/charmhelpers/contrib/openstack/amulet/utils.py b/tests/charmhelpers/contrib/openstack/amulet/utils.py
index b71b2b1..87f364d 100644
--- a/tests/charmhelpers/contrib/openstack/amulet/utils.py
+++ b/tests/charmhelpers/contrib/openstack/amulet/utils.py
@@ -858,9 +858,12 @@ class OpenStackAmuletUtils(AmuletUtils):
         :returns: List of pool name, object count, kb disk space used
         """
         df = self.get_ceph_df(sentry_unit)
-        pool_name = df['pools'][pool_id]['name']
-        obj_count = df['pools'][pool_id]['stats']['objects']
-        kb_used = df['pools'][pool_id]['stats']['kb_used']
+        for pool in df['pools']:
+            if pool['id'] == pool_id:
+                pool_name = pool['name']
+                obj_count = pool['stats']['objects']
+                kb_used = pool['stats']['kb_used']
+
         self.log.debug('Ceph {} pool (ID {}): {} objects, '
                        '{} kb used'.format(pool_name, pool_id,
                                            obj_count, kb_used))
diff --git a/tests/gate-basic-xenial-pike b/tests/gate-basic-xenial-pike
old mode 100644
new mode 100755
diff --git a/tox.ini b/tox.ini
index a818814..b8559a9 100644
--- a/tox.ini
+++ b/tox.ini
@@ -68,7 +68,7 @@ basepython = python2.7
 deps = -r{toxinidir}/requirements.txt
        -r{toxinidir}/test-requirements.txt
 commands =
-    bundletester -vl DEBUG -r json -o func-results.json gate-basic-xenial-mitaka --no-destroy
+    bundletester -vl DEBUG -r json -o func-results.json gate-basic-xenial-pike --no-destroy
 
 [testenv:func27-dfs]
 # Charm Functional Test
-- 
GitLab