Release info added into OSWLs CSV reports
Release info used for filtering OSWLs reports data by release. Change-Id: I00b3f657c26bc1ce429f701f3fdf0a4d4e95edde Closes-Bug: #1470807
This commit is contained in:
parent
c3d01fd10a
commit
8968a916e2
|
@ -179,6 +179,7 @@ def get_oswls_query(resource_type, from_date=None, to_date=None):
|
|||
OSWS.resource_type, OSWS.resource_data,
|
||||
IS.creation_date.label('installation_created_date'),
|
||||
IS.modification_date.label('installation_updated_date'),
|
||||
IS.structure['fuel_release'].label('fuel_release'),
|
||||
IS.is_filtered).\
|
||||
join(IS, IS.master_node_uid == OSWS.master_node_uid).\
|
||||
filter(OSWS.resource_type == resource_type).\
|
||||
|
|
|
@ -107,6 +107,8 @@ class OswlStatsToCsv(object):
|
|||
app.logger.debug("Getting OSWL flatten %s info started", resource_type)
|
||||
for oswl in oswls:
|
||||
try:
|
||||
fuel_release = oswl.fuel_release or {}
|
||||
setattr(oswl, 'release', fuel_release.get('release'))
|
||||
flatten_oswl = export_utils.get_flatten_data(oswl_keys_paths,
|
||||
oswl)
|
||||
resource_data = oswl.resource_data
|
||||
|
|
|
@ -152,6 +152,7 @@ OSWL_SKELETONS = {
|
|||
'cluster_id': None,
|
||||
'stats_on_date': None,
|
||||
'resource_type': None,
|
||||
'release': None,
|
||||
},
|
||||
consts.OSWL_RESOURCE_TYPES.vm: {
|
||||
'id': None,
|
||||
|
|
|
@ -316,7 +316,8 @@ class OswlTest(BaseTest):
|
|||
creation_date_range=(2, 10),
|
||||
modification_date_range=(2, 5),
|
||||
is_modified_date_nullable=True,
|
||||
is_filtered_values=(False, None)):
|
||||
is_filtered_values=(False, None),
|
||||
releases=('6.0', '6.1')):
|
||||
|
||||
mn_uids = set()
|
||||
for oswl in oswls:
|
||||
|
@ -330,12 +331,17 @@ class OswlTest(BaseTest):
|
|||
modification_date = (datetime.utcnow() - timedelta(
|
||||
days=random.randint(*modification_date_range))).\
|
||||
date().isoformat()
|
||||
structure = {
|
||||
'fuel_release': {
|
||||
'release': random.choice(releases)
|
||||
}
|
||||
}
|
||||
obj = InstallationStructure(
|
||||
master_node_uid=oswl.master_node_uid,
|
||||
creation_date=creation_date,
|
||||
modification_date=modification_date,
|
||||
is_filtered=random.choice(is_filtered_values),
|
||||
structure={},
|
||||
structure=structure,
|
||||
)
|
||||
mn_uids.add(oswl.master_node_uid)
|
||||
yield obj
|
||||
|
|
|
@ -44,12 +44,13 @@ class OswlStatsToCsvTest(OswlTest, DbTest):
|
|||
exporter = OswlStatsToCsv()
|
||||
oswl_keys_paths, resource_keys_paths, csv_keys_paths = \
|
||||
exporter.get_resource_keys_paths(resource_type)
|
||||
self.assertFalse(['external_id'] in oswl_keys_paths)
|
||||
self.assertFalse(['updated_time'] in oswl_keys_paths)
|
||||
self.assertTrue([resource_type, 'id'] in resource_keys_paths)
|
||||
self.assertTrue([resource_type, 'is_added'] in csv_keys_paths)
|
||||
self.assertTrue([resource_type, 'is_modified'] in csv_keys_paths)
|
||||
self.assertTrue([resource_type, 'is_removed'] in csv_keys_paths)
|
||||
self.assertNotIn(['external_id'], oswl_keys_paths)
|
||||
self.assertNotIn(['updated_time'], oswl_keys_paths)
|
||||
self.assertIn(['release'], oswl_keys_paths)
|
||||
self.assertIn([resource_type, 'id'], resource_keys_paths)
|
||||
self.assertIn([resource_type, 'is_added'], csv_keys_paths)
|
||||
self.assertIn([resource_type, 'is_modified'], csv_keys_paths)
|
||||
self.assertIn([resource_type, 'is_removed'], csv_keys_paths)
|
||||
|
||||
def test_get_flatten_resources(self):
|
||||
for resource_type in self.RESOURCE_TYPES:
|
||||
|
@ -563,3 +564,26 @@ class OswlStatsToCsvTest(OswlTest, DbTest):
|
|||
self.assertEqual(not_filtered_num, len(oswls))
|
||||
for oswl in oswls:
|
||||
self.assertIn(oswl.is_filtered, (False, None))
|
||||
|
||||
def test_release_info_in_oswl(self):
|
||||
exporter = OswlStatsToCsv()
|
||||
releases = ('6.0', '6.1', None)
|
||||
num = 30
|
||||
|
||||
for resource_type in self.RESOURCE_TYPES:
|
||||
# Creating OSWLs
|
||||
oswls = self.get_saved_oswls(num, resource_type)
|
||||
self.get_saved_inst_structs(oswls, releases=releases)
|
||||
|
||||
with app.test_request_context():
|
||||
oswls = get_oswls_query(resource_type).all()
|
||||
oswl_keys_paths, resource_keys_paths, csv_keys_paths = \
|
||||
exporter.get_resource_keys_paths(resource_type)
|
||||
|
||||
# Checking release value in flatten resources
|
||||
release_pos = csv_keys_paths.index(['release'])
|
||||
flatten_resources = exporter.get_flatten_resources(
|
||||
resource_type, oswl_keys_paths, resource_keys_paths, oswls)
|
||||
for flatten_resource in flatten_resources:
|
||||
release = flatten_resource[release_pos]
|
||||
self.assertIn(release, releases)
|
||||
|
|
Loading…
Reference in New Issue