@classmethod
    def _check_vmware_consistency(cls, task):
        attributes = objects.Cluster.get_editable_attributes(task.cluster)
        vmware_attributes = task.cluster.vmware_attributes
        # Old(< 6.1) clusters haven't vmware support
        if vmware_attributes:
            cinder_nodes = [node for node in task.cluster.nodes if
                            'cinder' in node.all_roles]

            if not cinder_nodes:
                logger.info('There is no any node with "cinder" role provided')

            compute_vmware_nodes = [node for node in task.cluster.nodes if
                                    'compute-vmware' in node.all_roles]
            if compute_vmware_nodes:
                cls._check_vmware_nova_computes(compute_vmware_nodes,
                                                vmware_attributes)

            models = {
                'settings': attributes,
                'default': vmware_attributes.editable,
                'cluster': task.cluster,
                'version': settings.VERSION,
                'networking_parameters': task.cluster.network_config
            }

            errors_msg = VmwareAttributesRestriction.check_data(
                models=models,
                metadata=vmware_attributes.editable['metadata'],
                data=vmware_attributes.editable['value'])

            if errors_msg:
                raise errors.CheckBeforeDeploymentError('\n'.join(errors_msg))
Checks vmware attributes consistency and proper values.
dataset/ETHPy150Open openstack/fuel-web/nailgun/nailgun/task/task.py/CheckBeforeDeploymentTask._check_vmware_consistency