Ejemplo n.º 1
0
def cluster_create():
    """Create a cluster on a host

    POST /cluster
    {
    name: xxx,
    host_id: xxx,
    network_type=fabric-0.6,
    consensus_plugin: pbft,
    consensus_mode: batch,
    size: 4,
    }

    :return: response object
    """
    logger.info("/cluster action=" + r.method)
    request_debug(r, logger)
    if r.content_type.startswith("application/json"):
        body = dict(r.get_json(force=True, silent=True))
    else:
        body = r.form
    if not body["name"] or not body["host_id"] or \
            not body["network_type"]:
        error_msg = "cluster post without enough data"
        logger.warning(error_msg)
        return make_fail_resp(error=error_msg, data=body)

    name, host_id, network_type, size = \
        body['name'], body['host_id'],\
        body['network_type'], int(body['size'])

    if network_type == NETWORK_TYPE_FABRIC_PRE_V1:  # TODO: deprecated soon
        config = FabricPreNetworkConfig(
            consensus_plugin=body['consensus_plugin'],
            consensus_mode=body['consensus_mode'],
            size=size)
    elif network_type == NETWORK_TYPE_FABRIC_V1:
        config = FabricV1NetworkConfig(
            consensus_plugin=body['consensus_plugin'], size=size)
    elif network_type == NETWORK_TYPE_FABRIC_V1_1:
        config = FabricV1NetworkConfig(
            consensus_plugin=body['consensus_plugin'], size=size)
        config.network_type = NETWORK_TYPE_FABRIC_V1_1
    else:
        error_msg = "Unknown network_type={}".format(network_type)
        logger.warning(error_msg)
        return make_fail_resp()

    if not config.validate():
        return make_fail_resp(error="config not validated",
                              data=config.get_data())

    if cluster_handler.create(name=name, host_id=host_id, config=config):
        logger.debug("cluster POST successfully")
        return make_ok_resp(code=CODE_CREATED)
    else:
        logger.debug("cluster creation failed using handlder")
        return make_fail_resp(error="Failed to create cluster {}".format(name))
Ejemplo n.º 2
0
def cluster_create():
    """Create a cluster on a host

    POST /cluster
    {
    name: xxx,
    host_id: xxx,
    network_type=fabric-0.6,
    consensus_plugin: pbft,
    consensus_mode: batch,
    size: 4,
    }

    :return: response object
    """
    logger.info("/cluster action=" + r.method)
    request_debug(r, logger)
    if not r.form["name"] or not r.form["host_id"] or \
            not r.form["network_type"]:
        error_msg = "cluster post without enough data"
        logger.warning(error_msg)
        return make_fail_resp(error=error_msg, data=r.form)

    name, host_id, network_type = \
        r.form['name'], r.form['host_id'], r.form['network_type']

    if network_type == NETWORK_TYPE_FABRIC_PRE_V1:
        config = FabricPreNetworkConfig(
            consensus_plugin=r.form['consensus_plugin'],
            consensus_mode=r.form['consensus_mode'],
            size=r.form['size'])
    elif network_type == NETWORK_TYPE_FABRIC_V1:
        config = FabricV1NetworkConfig(
            size=r.form['size'])  # TODO: add more variables
    else:
        error_msg = "Unknown network_type={}".format(network_type)
        logger.warning(error_msg)
        return make_fail_resp()

    if not config.validate():
        return make_fail_resp(error="config not validated",
                              data=config.get_data())

    if cluster_handler.create(name=name,
                              host_id=host_id,
                              network_type=network_type,
                              config=config):
        logger.debug("cluster POST successfully")
        return make_ok_resp(code=CODE_CREATED)
    else:
        logger.debug("cluster creation failed using handlder")
        return make_fail_resp(error="Failed to create cluster {}".format(name))
Ejemplo n.º 3
0
def cluster_create():
    """Create a cluster on a host

    POST /cluster
    {
    name: xxx,
    host_id: xxx,
    network_type=fabric-0.6,
    consensus_plugin: pbft,
    consensus_mode: batch,
    size: 4,
    }

    :return: response object
    """
    logger.info("/cluster action=" + r.method)
    request_debug(r, logger)
    if not r.form["name"] or not r.form["host_id"] or \
            not r.form["network_type"]:
        error_msg = "cluster post without enough data"
        logger.warning(error_msg)
        return make_fail_resp(error=error_msg, data=r.form)

    name, host_id, network_type, size = \
        r.form['name'], r.form['host_id'],\
        r.form['network_type'], int(r.form['size'])

    if network_type == NETWORK_TYPE_FABRIC_PRE_V1:  # TODO: deprecated soon
        config = FabricPreNetworkConfig(
            consensus_plugin=r.form['consensus_plugin'],
            consensus_mode=r.form['consensus_mode'],
            size=size)
    elif network_type == NETWORK_TYPE_FABRIC_V1:
        config = FabricV1NetworkConfig(
            consensus_plugin=r.form['consensus_plugin'],
            size=size)
    else:
        error_msg = "Unknown network_type={}".format(network_type)
        logger.warning(error_msg)
        return make_fail_resp()

    if not config.validate():
        return make_fail_resp(error="config not validated",
                              data=config.get_data())

    if cluster_handler.create(name=name, host_id=host_id, config=config):
        logger.debug("cluster POST successfully")
        return make_ok_resp(code=CODE_CREATED)
    else:
        logger.debug("cluster creation failed using handlder")
        return make_fail_resp(error="Failed to create cluster {}".
                              format(name))