def create_restore_config()

in 5-app-infra/3-artifact-publish/docker/cdmc/tag_engine_api/main.py [0:0]


def create_restore_config():
    
    json_request = request.get_json(force=True) 
    print('json request: ', json_request)
    
    status, response, tag_creator_sa = do_authentication(request.headers, json_request, ENABLE_AUTH)
    
    if status == False:
        return jsonify(response), 400
    
    if 'source_template_id' in json_request:
        source_template_id = json_request['source_template_id']
    else:
        print("The restore_tags request requires a source_template_id parameter.")
        resp = jsonify(success=False)
        return resp

    if 'source_template_project' in json_request:
        source_template_project = json_request['source_template_project']
    else:
        print("The restore_tags request requires a source_template_project parameter.")
        resp = jsonify(success=False)
        return resp
    
    if 'source_template_region' in json_request:
        source_template_region = json_request['source_template_region']
    else:
        print("The restore_tags request requires a source_template_region parameter.")
        resp = jsonify(success=False)
        return resp
       
    if 'target_template_id' in json_request:
        target_template_id = json_request['target_template_id']
    else:
        print("The restore_tags request requires a target_template_id parameter.")
        resp = jsonify(success=False)
        return resp

    if 'target_template_project' in json_request:
        target_template_project = json_request['target_template_project']
    else:
        print("The restore_tags request requires a target_template_project parameter.")
        resp = jsonify(success=False)
        return resp
    
    if 'target_template_region' in json_request:
        target_template_region = json_request['target_template_region']
    else:
        print("The restore_tags request requires a target_template_region parameter.")
        resp = jsonify(success=False)
        return resp

    if 'metadata_export_location' in json_request:
        metadata_export_location = json_request['metadata_export_location']
    else:
        print("The restore_tags request requires the metadata_export_location parameter.")
        resp = jsonify(success=False)
        return resp

    source_template_uuid = store.write_tag_template(source_template_id, source_template_project, source_template_region)
    target_template_uuid = store.write_tag_template(target_template_id, target_template_project, target_template_region)
    
    tag_history_option, _ = store.read_tag_history_settings()

    if 'overwrite' in json_request:  
        overwrite = json_request['overwrite']
    else:
        overwrite = True
        
    config_uuid = store.write_tag_restore_config(tag_creator_sa, source_template_uuid, source_template_id, \
                                                source_template_project, source_template_region, \
                                                target_template_uuid, target_template_id, \
                                                target_template_project, target_template_region, \
                                                metadata_export_location, tag_history_option, overwrite)                                                      
    
    return jsonify(config_uuid=config_uuid, config_type='TAG_RESTORE')