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,
|
OSWS.resource_type, OSWS.resource_data,
|
||||||
IS.creation_date.label('installation_created_date'),
|
IS.creation_date.label('installation_created_date'),
|
||||||
IS.modification_date.label('installation_updated_date'),
|
IS.modification_date.label('installation_updated_date'),
|
||||||
|
IS.structure['fuel_release'].label('fuel_release'),
|
||||||
IS.is_filtered).\
|
IS.is_filtered).\
|
||||||
join(IS, IS.master_node_uid == OSWS.master_node_uid).\
|
join(IS, IS.master_node_uid == OSWS.master_node_uid).\
|
||||||
filter(OSWS.resource_type == resource_type).\
|
filter(OSWS.resource_type == resource_type).\
|
||||||
|
|
|
@ -107,6 +107,8 @@ class OswlStatsToCsv(object):
|
||||||
app.logger.debug("Getting OSWL flatten %s info started", resource_type)
|
app.logger.debug("Getting OSWL flatten %s info started", resource_type)
|
||||||
for oswl in oswls:
|
for oswl in oswls:
|
||||||
try:
|
try:
|
||||||
|
fuel_release = oswl.fuel_release or {}
|
||||||
|
setattr(oswl, 'release', fuel_release.get('release'))
|
||||||
flatten_oswl = export_utils.get_flatten_data(oswl_keys_paths,
|
flatten_oswl = export_utils.get_flatten_data(oswl_keys_paths,
|
||||||
oswl)
|
oswl)
|
||||||
resource_data = oswl.resource_data
|
resource_data = oswl.resource_data
|
||||||
|
|
|
@ -152,6 +152,7 @@ OSWL_SKELETONS = {
|
||||||
'cluster_id': None,
|
'cluster_id': None,
|
||||||
'stats_on_date': None,
|
'stats_on_date': None,
|
||||||
'resource_type': None,
|
'resource_type': None,
|
||||||
|
'release': None,
|
||||||
},
|
},
|
||||||
consts.OSWL_RESOURCE_TYPES.vm: {
|
consts.OSWL_RESOURCE_TYPES.vm: {
|
||||||
'id': None,
|
'id': None,
|
||||||
|
|
|
@ -316,7 +316,8 @@ class OswlTest(BaseTest):
|
||||||
creation_date_range=(2, 10),
|
creation_date_range=(2, 10),
|
||||||
modification_date_range=(2, 5),
|
modification_date_range=(2, 5),
|
||||||
is_modified_date_nullable=True,
|
is_modified_date_nullable=True,
|
||||||
is_filtered_values=(False, None)):
|
is_filtered_values=(False, None),
|
||||||
|
releases=('6.0', '6.1')):
|
||||||
|
|
||||||
mn_uids = set()
|
mn_uids = set()
|
||||||
for oswl in oswls:
|
for oswl in oswls:
|
||||||
|
@ -330,12 +331,17 @@ class OswlTest(BaseTest):
|
||||||
modification_date = (datetime.utcnow() - timedelta(
|
modification_date = (datetime.utcnow() - timedelta(
|
||||||
days=random.randint(*modification_date_range))).\
|
days=random.randint(*modification_date_range))).\
|
||||||
date().isoformat()
|
date().isoformat()
|
||||||
|
structure = {
|
||||||
|
'fuel_release': {
|
||||||
|
'release': random.choice(releases)
|
||||||
|
}
|
||||||
|
}
|
||||||
obj = InstallationStructure(
|
obj = InstallationStructure(
|
||||||
master_node_uid=oswl.master_node_uid,
|
master_node_uid=oswl.master_node_uid,
|
||||||
creation_date=creation_date,
|
creation_date=creation_date,
|
||||||
modification_date=modification_date,
|
modification_date=modification_date,
|
||||||
is_filtered=random.choice(is_filtered_values),
|
is_filtered=random.choice(is_filtered_values),
|
||||||
structure={},
|
structure=structure,
|
||||||
)
|
)
|
||||||
mn_uids.add(oswl.master_node_uid)
|
mn_uids.add(oswl.master_node_uid)
|
||||||
yield obj
|
yield obj
|
||||||
|
|
|
@ -44,12 +44,13 @@ class OswlStatsToCsvTest(OswlTest, DbTest):
|
||||||
exporter = OswlStatsToCsv()
|
exporter = OswlStatsToCsv()
|
||||||
oswl_keys_paths, resource_keys_paths, csv_keys_paths = \
|
oswl_keys_paths, resource_keys_paths, csv_keys_paths = \
|
||||||
exporter.get_resource_keys_paths(resource_type)
|
exporter.get_resource_keys_paths(resource_type)
|
||||||
self.assertFalse(['external_id'] in oswl_keys_paths)
|
self.assertNotIn(['external_id'], oswl_keys_paths)
|
||||||
self.assertFalse(['updated_time'] in oswl_keys_paths)
|
self.assertNotIn(['updated_time'], oswl_keys_paths)
|
||||||
self.assertTrue([resource_type, 'id'] in resource_keys_paths)
|
self.assertIn(['release'], oswl_keys_paths)
|
||||||
self.assertTrue([resource_type, 'is_added'] in csv_keys_paths)
|
self.assertIn([resource_type, 'id'], resource_keys_paths)
|
||||||
self.assertTrue([resource_type, 'is_modified'] in csv_keys_paths)
|
self.assertIn([resource_type, 'is_added'], csv_keys_paths)
|
||||||
self.assertTrue([resource_type, 'is_removed'] in 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):
|
def test_get_flatten_resources(self):
|
||||||
for resource_type in self.RESOURCE_TYPES:
|
for resource_type in self.RESOURCE_TYPES:
|
||||||
|
@ -563,3 +564,26 @@ class OswlStatsToCsvTest(OswlTest, DbTest):
|
||||||
self.assertEqual(not_filtered_num, len(oswls))
|
self.assertEqual(not_filtered_num, len(oswls))
|
||||||
for oswl in oswls:
|
for oswl in oswls:
|
||||||
self.assertIn(oswl.is_filtered, (False, None))
|
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