Esempio n. 1
0
def create_registry(registrydata):
    """
    POST /registries

    :param registry:
    :return:
    """
    request_inputs = anchore_engine.services.common.do_request_prep(
        request, default_params={})
    user_auth = request_inputs['auth']
    method = request_inputs['method']
    bodycontent = request_inputs['bodycontent']
    params = request_inputs['params']

    return_object = []
    httpcode = 500

    try:
        registrydata = json.loads(bodycontent)
        registry_records = catalog.add_registry(user_auth, registrydata)
        for registry_record in registry_records:
            return_object.append(
                make_response_registry(user_auth, registry_record, params))
        httpcode = 200
    except Exception as err:
        return_object = anchore_engine.services.common.make_response_error(
            err, in_httpcode=httpcode)
        httpcode = return_object['httpcode']

    return (return_object, httpcode)
Esempio n. 2
0
def create_registry(registrydata, validate=True):
    """
    POST /registries

    :param registry:
    :return:
    """
    request_inputs = anchore_engine.services.common.do_request_prep(
        request, default_params={'validate': validate})
    user_auth = request_inputs['auth']
    method = request_inputs['method']
    bodycontent = request_inputs['bodycontent']
    params = request_inputs['params']

    return_object = []
    httpcode = 500

    try:
        registrydata = json.loads(bodycontent)

        try:
            input_registry = registrydata.get('registry', None)

            if input_registry:
                # do some input string checking
                if re.match(".*\/.*", input_registry):
                    raise Exception(
                        "input registry name cannot contain '/' characters - valid registry names are of the form <host>:<port> where :<port> is optional"
                    )

        except Exception as err:
            httpcode = 409
            raise err

        registry_records = catalog.add_registry(user_auth,
                                                registrydata,
                                                validate=validate)
        for registry_record in registry_records:
            return_object.append(
                make_response_registry(user_auth, registry_record, params))
        httpcode = 200
    except Exception as err:
        return_object = anchore_engine.services.common.make_response_error(
            err, in_httpcode=httpcode)
        httpcode = return_object['httpcode']

    return (return_object, httpcode)