

def create_cluster(self, api=True, exclude=None, **kwargs):
    cluster_data = {
        'name': ('cluster-api-' + str(randint(0, 1000000))),
    }
    editable_attributes = kwargs.pop('editable_attributes', None)
    vmware_attributes = kwargs.pop('vmware_attributes', None)
    if kwargs:
        cluster_data.update(kwargs)
    if ('release_id' not in cluster_data):
        cluster_data['release_id'] = self.create_release(api=False).id
    if (cluster_data and isinstance(exclude, list)):
        for ex in exclude:
            try:
                del cluster_data[ex]
            except KeyError as err:
                logger.warning(err)
    if api:
        resp = self.app.post(reverse('ClusterCollectionHandler'), jsonutils.dumps(cluster_data), headers=self.default_headers, expect_errors=True)
        self.tester.assertEqual(resp.status_code, 201, resp.body)
        cluster = resp.json_body
        cluster_db = Cluster.get_by_uid(cluster['id'])
    else:
        cluster = Cluster.create(cluster_data)
        cluster_db = cluster
        db().commit()
    self.clusters.append(cluster_db)
    if editable_attributes:
        Cluster.patch_attributes(cluster_db, {
            'editable': editable_attributes,
        })
    if vmware_attributes:
        Cluster.update_vmware_attributes(cluster_db, vmware_attributes)
    return cluster_db

dataset/ETHPy150Open openstack/fuel-web/nailgun/nailgun/test/base.py EnvironmentManager.create_cluster/VarMisuse@108/149 `exclude`->`cluster_data`