def add_cluster(): data = json.loads(request.data) errors = {} if 'nodes' in data and (isinstance(data['nodes'], str) or isinstance(data['nodes'], unicode)): data['nodes'] = data['nodes'].split() if not 'name' in data or data['name'] == '': errors['name'] = ['Cluster name is required'] if not 'nodes' in data or data['nodes'] == []: errors['nodes'] = ['At least one cluster node is required'] if 'private_key' not in data: errors['private_key'] = ['Private key for accessing nodes is required'] elif not is_key_valid(data['private_key']): errors['private_key'] = ['Private key format is unknown'] if len(errors) > 0: return json.dumps(dict(errors=errors)), 422 cluster = Cluster(**data) cluster_id = get_db()['clusters'].save(cluster.as_doc()) ostack_discover_task.delay(str(cluster_id)) return json.dumps(dict(id=str(cluster_id))), 201
def discover_cluster(cluster_id): cluster_doc = get_db()['clusters'].find_one({'_id': ObjectId(cluster_id)}) if not cluster_doc: return json.dumps({'errors': {'cluster_id': 'Cluster not found'}}), 404 ostack_discover_task.delay(cluster_id) return '', 200