def update_registry(registry, registrydata): """ PUT /registries/<id> :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.update_registry(user_auth, registry, 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)
def update_registry(registry, registrydata, validate=True): """ PUT /registries/<id> :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: if input_registry != registry: raise Exception( "registry name in path does not equal registry name in body" ) # 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.update_registry(user_auth, registry, 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)