Keystone_user resource type added to OSWL reports

Keystone users report available by url: /api/v1/csv/keystone_user.
Test for resource types structure added.

Implements: blueprint openstack-workload-statistics
Change-Id: I1d62d0e905c49af7dbd703fe6f0f514cb4280dbf
This commit is contained in:
Alexander Kislitsky 2015-03-13 12:49:43 +03:00
parent 3e9f5e238f
commit 3aa70b4228
3 changed files with 43 additions and 1 deletions

View File

@ -172,5 +172,10 @@ OSWL_SKELETONS = {
consts.OSWL_RESOURCE_TYPES.tenant: {
'id': None,
'enabled_flag': None,
},
consts.OSWL_RESOURCE_TYPES.keystone_user: {
'id': None,
'enabled_flag': None,
'tenant_id': None
}
}

View File

@ -36,7 +36,8 @@ class OswlTest(BaseTest):
consts.OSWL_RESOURCE_TYPES.flavor,
consts.OSWL_RESOURCE_TYPES.volume,
consts.OSWL_RESOURCE_TYPES.image,
consts.OSWL_RESOURCE_TYPES.tenant
consts.OSWL_RESOURCE_TYPES.tenant,
consts.OSWL_RESOURCE_TYPES.keystone_user
)
RESOURCE_GENERATORS = {
@ -50,6 +51,8 @@ class OswlTest(BaseTest):
'generate_modified_images'),
consts.OSWL_RESOURCE_TYPES.tenant: ('generate_tenants',
'generate_modified_tenants'),
consts.OSWL_RESOURCE_TYPES.keystone_user: (
'generate_keystone_users', 'generate_modified_keystone_users')
}
def generate_removed_resources(self, num, gen_func):
@ -219,6 +222,28 @@ class OswlTest(BaseTest):
})
return result
def generate_keystone_users(self, num, enabled_flag_values=(True, False)):
result = []
for i in range(num):
result.append({
'id': i,
'enabled_flag': random.choice(enabled_flag_values),
'tenant_id': six.text_type(uuid.uuid4())
})
return result
def generate_modified_keystone_users(self, num, modifs_num_range=(1, 3),
enabled_flag_values=(True, False)):
result = []
for i in range(num):
for _ in range(random.randint(*modifs_num_range)):
result.append({
'id': i,
'time': datetime.utcnow().time().isoformat(),
'enabled_flag': random.choice(enabled_flag_values)
})
return result
def generate_oswls(self, oswl_num, resource_type,
current_num_range=(0, 7),
created_date_range=(1, 10),

View File

@ -34,6 +34,7 @@ from fuel_analytics.api.resources.csv_exporter import get_oswls
from fuel_analytics.api.resources.csv_exporter import get_oswls_query
from fuel_analytics.api.resources.utils import export_utils
from fuel_analytics.api.resources.utils.oswl_stats_to_csv import OswlStatsToCsv
from fuel_analytics.api.resources.utils.skeleton import OSWL_SKELETONS
class OswlStatsToCsvTest(OswlTest, DbTest):
@ -440,3 +441,14 @@ class OswlStatsToCsvTest(OswlTest, DbTest):
datetime(2015, 2, 24).date())
# Not only column names in result
self.assertEqual(1 + 2, len(list(result)))
def test_resource_data_structure(self):
num = 20
for resource_type in self.RESOURCE_TYPES:
oswls = self.get_saved_oswls(num, resource_type)
for oswl in oswls:
for res_data in oswl.resource_data['current']:
self.assertItemsEqual(
six.iterkeys(OSWL_SKELETONS[resource_type]),
six.iterkeys(res_data)
)