Exemple #1
0
def _build_member_links(rs_id, member_doc):
    server_id = member_doc['server_id']
    member_id = member_doc['_id']
    member_links = [
        replica_set_link('get-replica-set-member-info', rs_id, member_id),
        replica_set_link('delete-replica-set-member', rs_id, member_id),
        replica_set_link('update-replica-set-member-config', rs_id, member_id),
        server_link('get-server-info', server_id=server_id)
    ]
    return member_links
def _build_member_links(rs_id, member_doc):
    server_id = member_doc['server_id']
    member_id = member_doc['_id']
    member_links = [
        replica_set_link('get-replica-set-member-info', rs_id, member_id),
        replica_set_link('delete-replica-set-member', rs_id, member_id),
        replica_set_link('update-replica-set-member-config',
                         rs_id, member_id),
        server_link('get-server-info', server_id=server_id)
    ]
    return member_links
def rs_create():
    logger.debug("rs_create()")
    data = get_json(request.body)
    data = preset_merge(data, 'replica_sets')
    result = _rs_create(data)
    result['links'].extend([
        base_link('service'),
        base_link('get-releases'),
        sharded_cluster_link('get-sharded-clusters'),
        replica_set_link('get-replica-sets'),
        replica_set_link('add-replica-set', self_rel=True),
        server_link('get-servers')
    ])
    return send_result(200, result)
Exemple #4
0
def rs_create():
    logger.debug("rs_create()")
    data = get_json(request.body)
    data = preset_merge(data, 'replica_sets')
    result = _rs_create(data)
    result['links'].extend([
        base_link('service'),
        base_link('get-releases'),
        sharded_cluster_link('get-sharded-clusters'),
        replica_set_link('get-replica-sets'),
        replica_set_link('add-replica-set', self_rel=True),
        server_link('get-servers')
    ])
    return send_result(200, result)
def rs_list():
    logger.debug("rs_list()")
    replica_sets = []
    for rs_id in ReplicaSets():
        repl_info = {'id': rs_id}
        repl_info['links'] = all_replica_set_links(rs_id, 'get-replica-sets')
        replica_sets.append(repl_info)
    response = {'links': [
        base_link('service'),
        base_link('get-releases'),
        sharded_cluster_link('get-sharded-clusters'),
        replica_set_link('get-replica-sets', self_rel=True),
        replica_set_link('add-replica-set'),
        server_link('get-servers')
    ]}
    response['replica_sets'] = replica_sets
    return send_result(200, response)
def rs_list():
    logger.debug("rs_list()")
    replica_sets = []
    for rs_id in ReplicaSets():
        repl_info = {'id': rs_id}
        repl_info['links'] = all_replica_set_links(rs_id, 'get-replica-sets')
        replica_sets.append(repl_info)
    response = {'links': [
        base_link('service'),
        base_link('get-releases'),
        sharded_cluster_link('get-sharded-clusters'),
        replica_set_link('get-replica-sets', self_rel=True),
        replica_set_link('add-replica-set'),
        server_link('get-servers')
    ]}
    response['replica_sets'] = replica_sets
    return send_result(200, response)
def _build_member_parent_links(rs_id, rel_self=None):
    return [
        replica_set_link(rel, rs_id, self_rel=(rel == rel_self))
        for rel in (
            'get-replica-set-primary', 'get-replica-set-info',
            'get-replica-set-members', 'get-replica-set-secondaries',
            'get-replica-set-arbiters', 'get-replica-set-hidden-members',
            'get-replica-set-passive-members', 'get-replica-set-servers'
        )
    ]
Exemple #8
0
def _build_member_parent_links(rs_id, rel_self=None):
    return [
        replica_set_link(rel, rs_id, self_rel=(rel == rel_self))
        for rel in ('get-replica-set-primary', 'get-replica-set-info',
                    'get-replica-set-members', 'get-replica-set-secondaries',
                    'get-replica-set-arbiters',
                    'get-replica-set-hidden-members',
                    'get-replica-set-passive-members',
                    'get-replica-set-servers')
    ]
def _rs_create(params):
    rs_id = ReplicaSets().create(params)
    result = ReplicaSets().info(rs_id)
    result['links'] = all_replica_set_links(rs_id)
    # Add GET link to corresponding Server resource.
    for member in result['members']:
        member['links'] = [
            server_link('get-server-info', server_id=member['server_id']),
            replica_set_link(
                'get-replica-set-member-info', rs_id, member['_id'])
        ]
    return result
Exemple #10
0
def _rs_create(params):
    rs_id = ReplicaSets().create(params)
    result = ReplicaSets().info(rs_id)
    result['links'] = all_replica_set_links(rs_id)
    # Add GET link to corresponding Server resource.
    for member in result['members']:
        member['links'] = [
            server_link('get-server-info', server_id=member['server_id']),
            replica_set_link('get-replica-set-member-info', rs_id,
                             member['_id'])
        ]
    return result
def member_update(rs_id, member_id):
    logger.debug("member_update({rs_id}, {member_id})".format(**locals()))
    member_id = int(member_id)
    if rs_id not in ReplicaSets():
        return send_result(404)
    data = get_json(request.body)
    ReplicaSets().member_update(rs_id, member_id, data)
    result = ReplicaSets().member_info(rs_id, member_id)
    result['links'] = _build_member_links(rs_id, result)
    result['links'].extend(_build_member_parent_links(rs_id))
    result['links'].append(replica_set_link(
        'update-replica-set-member-config', rs_id, member_id, self_rel=True))
    return send_result(200, result)
def member_add(rs_id):
    logger.debug("member_add({rs_id})".format(**locals()))
    if rs_id not in ReplicaSets():
        return send_result(404)
    data = get_json(request.body)
    member_id = ReplicaSets().member_add(rs_id, data)
    result = ReplicaSets().member_info(rs_id, member_id)
    result['links'] = _build_member_links(rs_id, result)
    result['links'].extend(
        _build_member_parent_links(rs_id, 'add-replica-set-member'))
    result['links'].append(
        replica_set_link('add-replica-set-member', self_rel=True))
    return send_result(200, result)
def rs_info(rs_id):
    logger.debug("rs_info({rs_id})".format(**locals()))
    if rs_id not in ReplicaSets():
        return send_result(404)
    result = ReplicaSets().info(rs_id)
    result['links'] = all_replica_set_links(rs_id, 'get-replica-set-info')
    for member in result['members']:
        member['links'] = [
            server_link('get-server-info', server_id=member['server_id']),
            replica_set_link(
                'get-replica-set-member-info', rs_id, member['_id'])
        ]
    return send_result(200, result)
def member_update(rs_id, member_id):
    logger.debug("member_update({rs_id}, {member_id})".format(**locals()))
    member_id = int(member_id)
    if rs_id not in ReplicaSets():
        return send_result(404)
    data = get_json(request.body)
    ReplicaSets().member_update(rs_id, member_id, data)
    result = ReplicaSets().member_info(rs_id, member_id)
    result['links'] = _build_member_links(rs_id, result)
    result['links'].extend(_build_member_parent_links(rs_id))
    result['links'].append(replica_set_link(
        'update-replica-set-member-config', rs_id, member_id, self_rel=True))
    return send_result(200, result)
Exemple #15
0
def member_add(rs_id):
    logger.debug("member_add({rs_id})".format(**locals()))
    if rs_id not in ReplicaSets():
        return send_result(404)
    data = get_json(request.body)
    member_id = ReplicaSets().member_add(rs_id, data)
    result = ReplicaSets().member_info(rs_id, member_id)
    result['links'] = _build_member_links(rs_id, result)
    result['links'].extend(
        _build_member_parent_links(rs_id, 'add-replica-set-member'))
    result['links'].append(
        replica_set_link('add-replica-set-member', self_rel=True))
    return send_result(200, result)
Exemple #16
0
def rs_info(rs_id):
    logger.debug("rs_info({rs_id})".format(**locals()))
    if rs_id not in ReplicaSets():
        return send_result(404)
    result = ReplicaSets().info(rs_id)
    result['links'] = all_replica_set_links(rs_id, 'get-replica-set-info')
    for member in result['members']:
        member['links'] = [
            server_link('get-server-info', server_id=member['server_id']),
            replica_set_link('get-replica-set-member-info', rs_id,
                             member['_id'])
        ]
    return send_result(200, result)
def rs_command(rs_id):
    logger.debug("rs_command({rs_id})".format(**locals()))
    if rs_id not in ReplicaSets():
        return send_result(404)
    command = get_json(request.body).get('action')
    if command is None:
        raise RequestError('Expected body with an {"action": ...}.')
    result = {
        'command_result': ReplicaSets().command(rs_id, command),
        'links': all_replica_set_links(rs_id, 'replica-set-command')
    }
    result['links'].append(
        replica_set_link('replica-set-command', self_rel=True))
    return send_result(200, result)
Exemple #18
0
def rs_command(rs_id):
    logger.debug("rs_command({rs_id})".format(**locals()))
    if rs_id not in ReplicaSets():
        return send_result(404)
    command = get_json(request.body).get('action')
    if command is None:
        raise RequestError('Expected body with an {"action": ...}.')
    result = {
        'command_result': ReplicaSets().command(rs_id, command),
        'links': all_replica_set_links(rs_id, 'replica-set-command')
    }
    result['links'].append(
        replica_set_link('replica-set-command', self_rel=True))
    return send_result(200, result)
Exemple #19
0
def host_create_by_id(host_id):
    data = get_json(request.body)
    data = preset_merge(data, 'servers')
    data['id'] = host_id
    result = _host_create(data)
    result['links'].extend([
        base_link('service'),
        base_link('get-releases'),
        server_link('get-servers'),
        server_link('add-server'),
        server_link('add-server-by-id', host_id, self_rel=True),
        replica_set_link('get-replica-sets'),
        sharded_cluster_link('get-sharded-clusters')
    ])
    return send_result(200, result)
def sh_create_by_id(cluster_id):
    logger.debug("sh_create()")
    data = get_json(request.body)
    data = preset_merge(data, 'sharded_clusters')
    data['id'] = cluster_id
    result = _sh_create(data)
    result['links'].extend([
        sharded_cluster_link('add-sharded-cluster-by-id',
                             cluster_id, self_rel=True),
        base_link('service'),
        base_link('get-releases'),
        sharded_cluster_link('get-sharded-clusters'),
        sharded_cluster_link('add-sharded-cluster'),
        replica_set_link('get-replica-sets'),
        server_link('get-servers')
    ])
    return send_result(200, result)
Exemple #21
0
def sh_create_by_id(cluster_id):
    logger.debug("sh_create()")
    data = get_json(request.body)
    data = preset_merge(data, 'sharded_clusters')
    data['id'] = cluster_id
    result = _sh_create(data)
    result['links'].extend([
        sharded_cluster_link('add-sharded-cluster-by-id',
                             cluster_id,
                             self_rel=True),
        base_link('service'),
        base_link('get-releases'),
        sharded_cluster_link('get-sharded-clusters'),
        sharded_cluster_link('add-sharded-cluster'),
        replica_set_link('get-replica-sets'),
        server_link('get-servers')
    ])
    return send_result(200, result)
Exemple #22
0
def host_list():
    logger.debug("host_list()")
    servers = []
    for server_id in Servers():
        server_info = {'id': server_id}
        server_info['links'] = all_server_links(
            server_id, rel_to='get-servers')
        servers.append(server_info)
    response = {'links': [
        base_link('service'),
        base_link('get-releases'),
        server_link('get-servers', self_rel=True),
        server_link('add-server'),
        replica_set_link('get-replica-sets'),
        sharded_cluster_link('get-sharded-clusters')
    ]}
    response['servers'] = servers
    return send_result(200, response)
Exemple #23
0
def _server_or_rs_link(shard_doc):
    resource_id = shard_doc['_id']
    if shard_doc.get('isReplicaSet'):
        return replica_set_link('get-replica-set-info', resource_id)
    return server_link('get-server-info', resource_id)
def _server_or_rs_link(shard_doc):
    resource_id = shard_doc['_id']
    if shard_doc.get('isReplicaSet'):
        return replica_set_link('get-replica-set-info', resource_id)
    return server_link('get-server-info', resource_id)