vmware attributes -- fix for None value after upgrade

Change-Id: Iec17bf2e76674ae1a619b647382fcd72555a1bce
Closes-Bug: #1450049
This commit is contained in:
Przemyslaw Kaminski 2015-05-04 11:45:47 +02:00
parent 30f5385805
commit 03c8868270
2 changed files with 27 additions and 1 deletions

View File

@ -138,6 +138,9 @@ class InstallationInfo(object):
release = cluster.release
nodes_num = NodeCollection.filter_by(
None, cluster_id=cluster.id).count()
vmware_attributes_editable = None
if cluster.vmware_attributes:
vmware_attributes_editable = cluster.vmware_attributes.editable
cluster_info = {
'id': cluster.id,
'nodes_num': nodes_num,
@ -153,7 +156,7 @@ class InstallationInfo(object):
'attributes': self.get_attributes(cluster.attributes.editable,
self.attributes_white_list),
'vmware_attributes': self.get_attributes(
cluster.vmware_attributes.editable,
vmware_attributes_editable,
self.vmware_attributes_white_list
),
'net_provider': cluster.net_provider,

View File

@ -22,6 +22,7 @@ from nailgun.db.sqlalchemy.models import cluster as cluster_model
from nailgun.db.sqlalchemy.models import plugins
from nailgun.objects import Cluster
from nailgun.objects import ReleaseCollection
from nailgun.objects import VmwareAttributes
from nailgun.settings import settings
from nailgun.statistics.fuel_statistics.installation_info \
import InstallationInfo
@ -86,6 +87,28 @@ class TestInstallationInfo(BaseTestCase):
result = info.get_attributes(attrs, info.attributes_white_list)
self.assertDictEqual({}, result)
def test_clusters_info_no_vmware_attributes_exception(self):
self.env.upload_fixtures(['openstack'])
info = InstallationInfo()
release = ReleaseCollection.filter_by(None, operating_system='CentOS')
nodes_params = [
{'roles': ['compute']},
{'roles': ['compute']},
{'roles': ['controller']}
]
self.env.create(
cluster_kwargs={
'release_id': release[0].id,
'mode': consts.CLUSTER_MODES.ha_full,
'net_provider': consts.CLUSTER_NET_PROVIDERS.nova_network},
nodes_kwargs=nodes_params
)
self.env.create_node({'status': consts.NODE_STATUSES.discover})
cluster = self.env.clusters[0]
VmwareAttributes.delete(cluster.vmware_attributes)
self.env.db.flush()
self.assertNotRaises(AttributeError, info.get_clusters_info)
def test_clusters_info(self):
self.env.upload_fixtures(['openstack'])
info = InstallationInfo()