def blueprint(): bp = Blueprint('identities', __name__, url_prefix='/identities') userpass_view = UserPass.as_view('userpass') bp.add_url_rule('/<account>/userpass', view_func=userpass_view, methods=[ 'put', ]) x509_view = X509.as_view('x509') bp.add_url_rule('/<account>/x509', view_func=x509_view, methods=[ 'put', ]) gss_view = GSS.as_view('gss') bp.add_url_rule('/<account>/gss', view_func=gss_view, methods=[ 'put', ]) accounts_view = Accounts.as_view('accounts') bp.add_url_rule('/<identity_key>/<type>/accounts', view_func=accounts_view, methods=[ 'get', ]) bp.before_request(request_auth_env) bp.after_request(response_headers) return bp
def _factory( partial_module_string: str, url_prefix: str, auth_function: Callable | None = None, new_endpoint: str | None = None, ) -> Blueprint: """Generate a blueprint registration.""" # Build out the module import path endpoint_folder = "public" if auth_function is None else "protected" import_name = [ "src", "blueprints", "v1", endpoint_folder, partial_module_string, ] import_path: str = ".".join(import_name) # Actually create the blueprint blueprint = Blueprint(partial_module_string, import_path, url_prefix=f"/v1/{url_prefix}") # Protect the endpoint with an authorization routine # if one was given if auth_function is not None: blueprint.before_request(auth_function) # This endpoint has been deprecated, attach a HTTP header # stating this and transition info if new_endpoint is not None: x = partial(send_deprecation_warning, new_endpoint) blueprint.after_request(x) # type: ignore return blueprint
def blueprint(): bp = Blueprint('requests', __name__, url_prefix='/requests') request_get_view = RequestGet.as_view('request_get') bp.add_url_rule('/<path:scope_name>/<rse>', view_func=request_get_view, methods=[ 'get', ]) request_history_get_view = RequestHistoryGet.as_view('request_history_get') bp.add_url_rule('/history/<path:scope_name>/<rse>', view_func=request_history_get_view, methods=[ 'get', ]) request_list_view = RequestList.as_view('request_list') bp.add_url_rule('/list', view_func=request_list_view, methods=[ 'get', ]) request_history_list_view = RequestHistoryList.as_view( 'request_history_list') bp.add_url_rule('/history/list', view_func=request_history_list_view, methods=[ 'get', ]) bp.before_request(request_auth_env) bp.after_request(response_headers) return bp
def blueprint(): bp = Blueprint('locks', __name__, url_prefix='/locks') lock_by_rse_view = LockByRSE.as_view('lock_by_rse') bp.add_url_rule('/<rse>', view_func=lock_by_rse_view, methods=[ 'get', ]) lock_by_scope_name_view = LocksByScopeName.as_view('locks_by_scope_name') bp.add_url_rule('/<path:scope_name>', view_func=lock_by_scope_name_view, methods=[ 'get', ]) locks_for_dids_view = DatasetLocksForDids.as_view('locks_for_dids') bp.add_url_rule('/bulk_locks_for_dids', view_func=locks_for_dids_view, methods=[ 'post', ]) bp.before_request(request_auth_env) bp.after_request(response_headers) return bp
def blueprint(): bp = Blueprint('rses', __name__, url_prefix='/rses') attributes_view = Attributes.as_view('attributes') bp.add_url_rule('/<rse>/attr/<key>', view_func=attributes_view, methods=['post', 'delete']) bp.add_url_rule('/<rse>/attr/', view_func=attributes_view, methods=['get', ]) distance_view = Distance.as_view('distance') bp.add_url_rule('/<source>/distances/<destination>', view_func=distance_view, methods=['get', 'post', 'put']) protocol_view = Protocol.as_view('protocol') bp.add_url_rule('/<rse>/protocols/<scheme>/<hostname>/<port>', view_func=protocol_view, methods=['delete', 'put']) bp.add_url_rule('/<rse>/protocols/<scheme>/<hostname>', view_func=protocol_view, methods=['delete', 'put']) bp.add_url_rule('/<rse>/protocols/<scheme>', view_func=protocol_view, methods=['get', 'post', 'delete', 'put']) protocol_list_view = ProtocolList.as_view('protocol_list') bp.add_url_rule('/<rse>/protocols', view_func=protocol_list_view, methods=['get', ]) lfns2pfns_view = LFNS2PFNS.as_view('lfns2pfns') bp.add_url_rule('/<rse>/lfns2pfns', view_func=lfns2pfns_view, methods=['get', ]) rse_account_usage_limit_view = RSEAccountUsageLimit.as_view('rse_account_usage_limit') bp.add_url_rule('/<rse>/accounts/usage', view_func=rse_account_usage_limit_view, methods=['get', ]) usage_view = Usage.as_view('usage') bp.add_url_rule('/<rse>/usage', view_func=usage_view, methods=['get', 'put']) usage_history_view = UsageHistory.as_view('usage_history') bp.add_url_rule('/<rse>/usage/history', view_func=usage_history_view, methods=['get', ]) limits_view = Limits.as_view('limits') bp.add_url_rule('/<rse>/limits', view_func=limits_view, methods=['get', 'put']) qos_policy_view = QoSPolicy.as_view('qos_policy') bp.add_url_rule('/<rse>/qos_policy', view_func=qos_policy_view, methods=['get', ]) bp.add_url_rule('/<rse>/qos_policy/<policy>', view_func=qos_policy_view, methods=['post', 'delete']) rse_view = RSE.as_view('rse') bp.add_url_rule('/<rse>', view_func=rse_view, methods=['get', 'delete', 'put', 'post']) rses_view = RSEs.as_view('rses') bp.add_url_rule('/', view_func=rses_view, methods=['get', ]) bp.before_request(request_auth_env) bp.after_request(response_headers) return bp
def blueprint(): bp = Blueprint('traces', __name__, url_prefix='/traces') trace_view = Trace.as_view('trace') bp.add_url_rule('/', view_func=trace_view, methods=['post', ]) bp.after_request(response_headers) return bp
def blueprint(): bp = Blueprint('archives', __name__, url_prefix='/archives') archive_view = Archive.as_view('archive') bp.add_url_rule('/<path:scope_name>/files', view_func=archive_view, methods=['get', ]) bp.before_request(request_auth_env) bp.after_request(response_headers) return bp
def blueprint(): bp = Blueprint('heartbeats', __name__, url_prefix='/heartbeats') heartbeat_view = Heartbeat.as_view('heartbeat') bp.add_url_rule('', view_func=heartbeat_view, methods=['get', 'post']) bp.before_request(request_auth_env) bp.after_request(response_headers) return bp
def blueprint(no_doc=True): bp = Blueprint('dirac', __name__, url_prefix='/dirac') add_file_view = AddFiles.as_view('addfiles') bp.add_url_rule('/addfiles', view_func=add_file_view, methods=['post', ]) bp.add_url_rule('/addfiles/', view_func=add_file_view, methods=['post', ]) bp.before_request(request_auth_env) bp.after_request(response_headers) return bp
def blueprint(): bp = Blueprint('nongrid_trace', __name__, url_prefix='/nongrid_traces') xaod_trace_view = XAODTrace.as_view('xaod_trace') bp.add_url_rule('/', view_func=xaod_trace_view, methods=[ 'post', ]) bp.after_request(response_headers) return bp
def blueprint(): bp = Blueprint('tmp_dids', __name__, url_prefix='/tmp_dids') bulk_dids_view = BulkDIDS.as_view('bulk_dids') bp.add_url_rule('', view_func=bulk_dids_view, methods=[ 'post', ]) bp.before_request(request_auth_env) bp.after_request(response_headers) return bp
def blueprint(): bp = Blueprint('lifetime_exceptions', __name__, url_prefix='/lifetime_exceptions') lifetime_exception_view = LifetimeException.as_view('lifetime_exception') bp.add_url_rule('/', view_func=lifetime_exception_view, methods=['get', 'post']) lifetime_exception_id_view = LifetimeExceptionId.as_view('lifetime_exception_id') bp.add_url_rule('/<exception_id>', view_func=lifetime_exception_id_view, methods=['get', 'put']) bp.before_request(request_auth_env) bp.after_request(response_headers) return bp
def blueprint(no_doc=True): bp = Blueprint('ping', __name__, url_prefix='/ping') ping_view = Ping.as_view('ping') if no_doc: # rule without trailing slash needs to be added before rule with trailing slash bp.add_url_rule('', view_func=ping_view, methods=['get', ]) bp.add_url_rule('/', view_func=ping_view, methods=['get', ]) bp.after_request(response_headers) return bp
def blueprint(no_doc=True): bp = Blueprint('replicas', __name__, url_prefix='/replicas') list_replicas_view = ListReplicas.as_view('list_replicas') bp.add_url_rule('/list', view_func=list_replicas_view, methods=['post', ]) replicas_view = Replicas.as_view('replicas') if no_doc: # rule without trailing slash needs to be added before rule with trailing slash bp.add_url_rule('', view_func=replicas_view, methods=['post', 'put', 'delete']) bp.add_url_rule('/', view_func=replicas_view, methods=['post', 'put', 'delete']) suspicious_replicas_view = SuspiciousReplicas.as_view('suspicious_replicas') bp.add_url_rule('/suspicious', view_func=suspicious_replicas_view, methods=['get', 'post']) bad_replicas_states_view = BadReplicasStates.as_view('bad_replicas_states') bp.add_url_rule('/bad/states', view_func=bad_replicas_states_view, methods=['get', ]) bad_replicas_summary_view = BadReplicasSummary.as_view('bad_replicas_summary') bp.add_url_rule('/bad/summary', view_func=bad_replicas_summary_view, methods=['get', ]) bad_replicas_pfn_view = BadPFNs.as_view('add_bad_pfns') bp.add_url_rule('/bad/pfns', view_func=bad_replicas_pfn_view, methods=['post', ]) bad_replicas_dids_view = BadDIDs.as_view('add_bad_dids') bp.add_url_rule('/bad/dids', view_func=bad_replicas_dids_view, methods=['post', ]) replicas_rse_view = ReplicasRSE.as_view('replicas_rse') bp.add_url_rule('/rse/<rse>', view_func=replicas_rse_view, methods=['get', ]) bad_replicas_view = BadReplicas.as_view('bad_replicas') bp.add_url_rule('/bad', view_func=bad_replicas_view, methods=['post', ]) replicas_dids_view = ReplicasDIDs.as_view('replicas_dids') bp.add_url_rule('/dids', view_func=replicas_dids_view, methods=['post', ]) dataset_replicas_view = DatasetReplicas.as_view('dataset_replicas') bp.add_url_rule('/<path:scope_name>/datasets', view_func=dataset_replicas_view, methods=['get', ]) dataset_replicas_bulk_view = DatasetReplicasBulk.as_view('dataset_replicas_bulk') bp.add_url_rule('/datasets_bulk', view_func=dataset_replicas_bulk_view, methods=['post', ]) dataset_replicas_vp_view = DatasetReplicasVP.as_view('dataset_replicas_vp') bp.add_url_rule('/<path:scope_name>', view_func=replicas_view, methods=['get', ]) set_tombstone_view = Tombstone.as_view('set_tombstone') bp.add_url_rule('/tombstone', view_func=set_tombstone_view, methods=['post', ]) if no_doc: bp.add_url_rule('/list/', view_func=list_replicas_view, methods=['post', ]) bp.add_url_rule('/suspicious/', view_func=suspicious_replicas_view, methods=['get', 'post']) bp.add_url_rule('/bad/states/', view_func=bad_replicas_states_view, methods=['get', ]) bp.add_url_rule('/bad/summary/', view_func=bad_replicas_summary_view, methods=['get', ]) bp.add_url_rule('/bad/pfns/', view_func=bad_replicas_pfn_view, methods=['post', ]) bp.add_url_rule('/bad/dids/', view_func=bad_replicas_dids_view, methods=['post', ]) bp.add_url_rule('/rse/<rse>/', view_func=replicas_rse_view, methods=['get', ]) bp.add_url_rule('/bad/', view_func=bad_replicas_view, methods=['post', ]) bp.add_url_rule('/dids/', view_func=replicas_dids_view, methods=['post', ]) bp.add_url_rule('/datasets_bulk/', view_func=dataset_replicas_bulk_view, methods=['post', ]) bp.add_url_rule('/<path:scope_name>/datasets_vp', view_func=dataset_replicas_vp_view, methods=['get', ]) bp.add_url_rule('/<path:scope_name>/', view_func=replicas_view, methods=['get', ]) bp.add_url_rule('/tombstone/', view_func=set_tombstone_view, methods=['post', ]) bp.before_request(request_auth_env) bp.after_request(response_headers) return bp
def blueprint(no_doc=True): bp = Blueprint('import', __name__, url_prefix='/import') import_view = Import.as_view('scope') if no_doc: # rule without trailing slash needs to be added before rule with trailing slash bp.add_url_rule('', view_func=import_view, methods=['post', ]) bp.add_url_rule('/', view_func=import_view, methods=['post', ]) bp.before_request(request_auth_env) bp.after_request(response_headers) return bp
def blueprint(): bp = Blueprint('scope', __name__, url_prefix='/scopes') scope_view = Scope.as_view('scope') bp.add_url_rule('/', view_func=scope_view, methods=['get', ]) bp.add_url_rule('/<account>/<scope>', view_func=scope_view, methods=['post', ]) account_scope_list_view = AccountScopeList.as_view('account_scope_list') bp.add_url_rule('/<account>/scopes', view_func=account_scope_list_view, methods=['get', ]) bp.before_request(request_auth_env) bp.after_request(response_headers) return bp
def blueprint(): bp = Blueprint('vos', __name__, url_prefix='/vos') recover_view = RecoverVO.as_view('recover') bp.add_url_rule('/<vo>/recover', view_func=recover_view, methods=['post', ]) vo_view = VO.as_view('vo') bp.add_url_rule('/<vo>', view_func=vo_view, methods=['put', 'post']) vos_view = VOs.as_view('vos') bp.add_url_rule('/', view_func=vos_view, methods=['get', ]) bp.before_request(request_auth_env) bp.after_request(response_headers) return bp
def blueprint(no_doc=True): bp = Blueprint('accountlimits', __name__, url_prefix='/accountlimits') local_account_limit_view = LocalAccountLimit.as_view('local_account_limit') bp.add_url_rule('/local/<account>/<rse>', view_func=local_account_limit_view, methods=['post', 'delete']) if no_doc: bp.add_url_rule('/<account>/<rse>', view_func=local_account_limit_view, methods=['post', 'delete']) global_account_limit_view = GlobalAccountLimit.as_view('global_account_limit') bp.add_url_rule('/global/<account>/<rse_expression>', view_func=global_account_limit_view, methods=['post', 'delete']) bp.before_request(request_auth_env) bp.after_request(response_headers) return bp
def blueprint(): bp = Blueprint('rules', __name__, url_prefix='/rules') rule_view = Rule.as_view('rule') bp.add_url_rule('/<rule_id>', view_func=rule_view, methods=['get', 'put', 'delete']) all_rule_view = AllRule.as_view('all_rule') bp.add_url_rule('/', view_func=all_rule_view, methods=['get', 'post']) replica_locks_view = ReplicaLocks.as_view('replica_locks') bp.add_url_rule('/<rule_id>/locks', view_func=replica_locks_view, methods=[ 'get', ]) reduce_rule_view = ReduceRule.as_view('reduce_rule') bp.add_url_rule('/<rule_id>/reduce', view_func=reduce_rule_view, methods=[ 'post', ]) move_rule_view = MoveRule.as_view('move_rule') bp.add_url_rule('/<rule_id>/move', view_func=move_rule_view, methods=[ 'post', ]) rule_history_view = RuleHistory.as_view('rule_history') bp.add_url_rule('/<rule_id>/history', view_func=rule_history_view, methods=[ 'get', ]) rule_history_full_view = RuleHistoryFull.as_view('rule_history_full') bp.add_url_rule('/<path:scope_name>/history', view_func=rule_history_full_view, methods=[ 'get', ]) rule_analysis_view = RuleAnalysis.as_view('rule_analysis') bp.add_url_rule('/<rule_id>/analysis', view_func=rule_analysis_view, methods=[ 'get', ]) bp.before_request(request_auth_env) bp.after_request(response_headers) return bp
def blueprint(): bp = Blueprint('config', __name__, url_prefix='/config') option_set_view = OptionSet.as_view('option_set') bp.add_url_rule('/<section>/<option>/<value>', view_func=option_set_view, methods=['put', ]) option_get_del_view = OptionGetDel.as_view('option_get_del') bp.add_url_rule('/<section>/<option>', view_func=option_get_del_view, methods=['get', 'delete']) section_view = Section.as_view('section') bp.add_url_rule('/<section>', view_func=section_view, methods=['get', ]) config_view = Config.as_view('config') bp.add_url_rule('', view_func=config_view, methods=['get', 'post']) bp.before_request(request_auth_env) bp.after_request(response_headers) return bp
def blueprint(): bp = Blueprint('dids', __name__, url_prefix='/dids') scope_view = Scope.as_view('scope') bp.add_url_rule('/<scope>/', view_func=scope_view, methods=['get', ]) guid_lookup_view = GUIDLookup.as_view('guid_lookup') bp.add_url_rule('/<guid>/guid', view_func=guid_lookup_view, methods=['get', ]) search_view = Search.as_view('search') bp.add_url_rule('/<scope>/dids/search', view_func=search_view, methods=['get', ]) search_extended_view = SearchExtended.as_view('search_extended') bp.add_url_rule('/<scope>/dids/search_extended', view_func=search_extended_view, methods=['get', ]) dids_view = DIDs.as_view('dids') bp.add_url_rule('/<path:scope_name>/status', view_func=dids_view, methods=['put', ]) files_view = Files.as_view('files') bp.add_url_rule('/<path:scope_name>/files', view_func=files_view, methods=['get', ]) attachment_history_view = AttachmentHistory.as_view('attachment_history') bp.add_url_rule('/<path:scope_name>/dids/history', view_func=attachment_history_view, methods=['get', ]) attachment_view = Attachment.as_view('attachment') bp.add_url_rule('/<path:scope_name>/dids', view_func=attachment_view, methods=['get', 'post', 'delete']) meta_view = Meta.as_view('meta') bp.add_url_rule('/<path:scope_name>/meta', view_func=meta_view, methods=['get', 'post', 'delete']) singlemeta_view = SingleMeta.as_view('singlemeta') bp.add_url_rule('/<path:scope_name>/meta/<key>', view_func=singlemeta_view, methods=['post', ]) rules_view = Rules.as_view('rules') bp.add_url_rule('/<path:scope_name>/rules', view_func=rules_view, methods=['get', ]) parents_view = Parents.as_view('parents') bp.add_url_rule('/<path:scope_name>/parents', view_func=parents_view, methods=['get', ]) associated_rules_view = AssociatedRules.as_view('associated_rules') bp.add_url_rule('/<path:scope_name>/associated_rules', view_func=associated_rules_view, methods=['get', ]) follow_view = Follow.as_view('follow') bp.add_url_rule('/<path:scope_name>/follow', view_func=follow_view, methods=['get', 'post', 'delete']) bp.add_url_rule('/<path:scope_name>', view_func=dids_view, methods=['get', 'post']) bulkdids_view = BulkDIDS.as_view('bulkdids') bp.add_url_rule('', view_func=bulkdids_view, methods=['post', ]) sample_view = Sample.as_view('sample') bp.add_url_rule('/<input_scope>/<input_name>/<output_scope>/<output_name>/<nbfiles>/sample', view_func=sample_view, methods=['post', ]) attachements_view = Attachments.as_view('attachments') bp.add_url_rule('/attachments', view_func=attachements_view, methods=['post', ]) new_dids_view = NewDIDs.as_view('new_dids') bp.add_url_rule('/new', view_func=new_dids_view, methods=['get', ]) resurrect_view = Resurrect.as_view('resurrect') bp.add_url_rule('/resurrect', view_func=resurrect_view, methods=['post', ]) bulkmeta_view = BulkMeta.as_view('bulkmeta') bp.add_url_rule('/bulkmeta', view_func=bulkmeta_view, methods=['post', ]) bp.before_request(request_auth_env) bp.after_request(response_headers) return bp
def blueprint(): bp = Blueprint('subscriptions', __name__, url_prefix='/subscriptions') subscription_id_view = SubscriptionId.as_view('subscription_id') bp.add_url_rule('/Id/<subscription_id>', view_func=subscription_id_view, methods=[ 'get', ]) states_view = States.as_view('states') bp.add_url_rule('/<account>/<name>/Rules/States', view_func=states_view, methods=[ 'get', ]) bp.add_url_rule('/<account>/Rules/States', view_func=states_view, methods=[ 'get', ]) rules_view = Rules.as_view('rules') bp.add_url_rule('/<account>/<name>/Rules', view_func=rules_view, methods=[ 'get', ]) subscription_view = Subscription.as_view('subscription') bp.add_url_rule('/<account>/<name>', view_func=subscription_view, methods=['get', 'post', 'put']) bp.add_url_rule('/<account>', view_func=subscription_view, methods=[ 'get', ]) bp.add_url_rule('/', view_func=subscription_view, methods=[ 'get', ]) subscription_name_view = SubscriptionName.as_view('subscription_name') bp.add_url_rule('/Name/<name>', view_func=subscription_name_view, methods=[ 'get', ]) bp.before_request(request_auth_env) bp.after_request(response_headers) return bp
def blueprint(): bp = Blueprint('meta', __name__, url_prefix='/meta') meta_view = Meta.as_view('meta') bp.add_url_rule('/', view_func=meta_view, methods=[ 'get', ]) bp.add_url_rule('/<key>', view_func=meta_view, methods=[ 'post', ]) values_view = Values.as_view('values') bp.add_url_rule('/<key>/', view_func=values_view, methods=['get', 'post']) bp.before_request(request_auth_env) bp.after_request(response_headers) return bp
def blueprint(no_doc=True): bp = Blueprint('accounts', __name__, url_prefix='/accounts') attributes_view = Attributes.as_view('attributes') bp.add_url_rule('/<account>/attr/', view_func=attributes_view, methods=['get', ]) bp.add_url_rule('/<account>/attr/<key>', view_func=attributes_view, methods=['post', 'delete']) scopes_view = Scopes.as_view('scopes') bp.add_url_rule('/<account>/scopes/', view_func=scopes_view, methods=['get', ]) bp.add_url_rule('/<account>/scopes/<scope>', view_func=scopes_view, methods=['post', ]) local_account_limits_view = LocalAccountLimits.as_view('local_account_limit') bp.add_url_rule('/<account>/limits/local', view_func=local_account_limits_view, methods=['get', ]) bp.add_url_rule('/<account>/limits', view_func=local_account_limits_view, methods=['get', ]) bp.add_url_rule('/<account>/limits/local/<rse>', view_func=local_account_limits_view, methods=['get', ]) bp.add_url_rule('/<account>/limits/<rse>', view_func=local_account_limits_view, methods=['get', ]) global_account_limits_view = GlobalAccountLimits.as_view('global_account_limit') bp.add_url_rule('/<account>/limits/global', view_func=global_account_limits_view, methods=['get', ]) bp.add_url_rule('/<account>/limits/global/<rse_expression>', view_func=global_account_limits_view, methods=['get', ]) identities_view = Identities.as_view('identities') bp.add_url_rule('/<account>/identities', view_func=identities_view, methods=['get', 'post', 'delete']) rules_view = Rules.as_view('rules') bp.add_url_rule('/<account>/rules', view_func=rules_view, methods=['get', ]) usagehistory_view = UsageHistory.as_view('usagehistory') bp.add_url_rule('/<account>/usage/history/<rse>', view_func=usagehistory_view, methods=['get', ]) usage_view = LocalUsage.as_view('usage') bp.add_url_rule('/<account>/usage/local', view_func=usage_view, methods=['get', ]) bp.add_url_rule('/<account>/usage', view_func=usage_view, methods=['get', ]) if no_doc: # for backwards-compatibility # rule without trailing slash needs to be added before rule with trailing slash bp.add_url_rule('/<account>/usage/', view_func=usage_view, methods=['get', ]) bp.add_url_rule('/<account>/usage/local/<rse>', view_func=usage_view, methods=['get', ]) bp.add_url_rule('/<account>/usage/<rse>', view_func=usage_view, methods=['get', ]) global_usage_view = GlobalUsage.as_view('global_usage') bp.add_url_rule('/<account>/usage/global', view_func=global_usage_view, methods=['get', ]) bp.add_url_rule('/<account>/usage/global/<rse_expression>', view_func=global_usage_view, methods=['get', ]) account_parameter_view = AccountParameter.as_view('account_parameter') bp.add_url_rule('/<account>', view_func=account_parameter_view, methods=['get', 'put', 'post', 'delete']) account_view = Account.as_view('account') if no_doc: # rule without trailing slash needs to be added before rule with trailing slash bp.add_url_rule('', view_func=account_view, methods=['get', ]) bp.add_url_rule('/', view_func=account_view, methods=['get', ]) bp.before_request(request_auth_env) bp.after_request(response_headers) return bp
__author__ = "Gina Häußge <*****@*****.**>" __license__ = 'GNU Affero General Public License http://www.gnu.org/licenses/agpl.html' __copyright__ = "Copyright (C) 2014 The OctoPrint Project - Released under terms of the AGPLv3 License" import rsa from flask import Blueprint, request, make_response, jsonify import octoprint.server import octoprint.plugin from octoprint.server.util import noCachingResponseHandler, corsResponseHandler from octoprint.settings import settings as s apps = Blueprint("apps", __name__) apps.after_request(noCachingResponseHandler) apps.after_request(corsResponseHandler) @apps.route("/auth", methods=["GET"]) def getSessionKey(): unverified_key, valid_until = octoprint.server.appSessionManager.create() return jsonify(unverifiedKey=unverified_key, validUntil=valid_until) @apps.route("/auth", methods=["POST"]) def verifySessionKey(): if not "application/json" in request.headers["Content-Type"]: return None, None, make_response("Expected content-type JSON", 400) data = request.json
from . import job as api_job from . import connection as api_connection from . import files as api_files from . import settings as api_settings from . import timelapse as api_timelapse from . import users as api_users from . import log as api_logs from . import slicing as api_slicing from . import printer_profiles as api_printer_profiles from . import languages as api_languages from . import system as api_system VERSION = "0.1" api.after_request(noCachingExceptGetResponseHandler) api.before_request(corsRequestHandler) api.before_request(enforceApiKeyRequestHandler) api.before_request(loginFromApiKeyRequestHandler) api.after_request(corsResponseHandler) #~~ data from plugins @api.route("/plugin/<string:name>", methods=["GET"]) def pluginData(name): api_plugins = octoprint.plugin.plugin_manager().get_filtered_implementations(lambda p: p._identifier == name, octoprint.plugin.SimpleApiPlugin) if not api_plugins: return make_response("Not found", 404) if len(api_plugins) > 1:
from flask import Blueprint from api import add_cors_headers auth = Blueprint('auth', __name__) auth.after_request(add_cors_headers) # Import last to prevent Import Error from . import views
__author__ = "Gina Häußge <*****@*****.**>" __license__ = 'GNU Affero General Public License http://www.gnu.org/licenses/agpl.html' __copyright__ = "Copyright (C) 2014 The OctoPrint Project - Released under terms of the AGPLv3 License" import rsa from flask import Blueprint, request, make_response, jsonify import octoprint.server import octoprint.plugin from octoprint.server.util import noCachingResponseHandler, corsResponseHandler from octoprint.settings import settings as s apps = Blueprint("apps", __name__) apps.after_request(noCachingResponseHandler) apps.after_request(corsResponseHandler) @apps.route("/auth", methods=["GET"]) def getSessionKey(): unverified_key, valid_until = octoprint.server.appSessionManager.create() return jsonify(unverifiedKey=unverified_key, validUntil=valid_until) @apps.route("/auth", methods=["POST"]) def verifySessionKey(): if not "application/json" in request.headers["Content-Type"]: return None, None, make_response("Expected content-type JSON", 400) data = request.json for key in ("appid", "key", "_sig"): if not key in data:
vote_blueprint.add_url_rule('/stats/json', view_func=VoteStatisticsJSON.as_view('stats.vote_json')) ### ajax vote_blueprint.add_url_rule('/ajax/bands', view_func=JsonBandList.as_view('ajax.bands')) vote_blueprint.add_url_rule('/ajax/bands/<int:band_id>', view_func=JsonBandDetails.as_view('ajax.bands.details'), methods=['GET']) vote_blueprint.add_url_rule('/ajax/bands/<int:band_id>', view_func=JsonBandVote.as_view('ajax.bands.vote'), methods=['PUT']) vote_blueprint.add_url_rule('/ajax/comments', view_func=JsonCommentAdd.as_view('ajax.comment.add')) vote_blueprint.add_url_rule('/ajax/distance/<int:band_id>', view_func=JsonDistance.as_view('ajax.distance')) vote_blueprint.add_url_rule('/api/v2/bands', view_func=BandListJsonV2.as_view('api.v2.bands')) vote_blueprint.add_url_rule('/api/v2/bands/<int:band_id>', view_func=BandJsonV2.as_view('api.v2.band')) vote_blueprint.add_url_rule('/api/v2/bands/<int:band_id>/vote', view_func=BandVoteV2.as_view('api.v2.vote'),methods=['PUT']) vote_blueprint.add_url_rule('/api/v2/bands/<int:band_id>/comment', view_func=BandCommentV2.as_view('api.v2.comment')) vote_blueprint.add_url_rule('/api/v3/bands', view_func=BandListJsonV3.as_view('api.v3.bands')) vote_blueprint.add_url_rule('/api/v3/bands/<int:band_id>', view_func=BandJsonV3.as_view('api.v3.band')) vote_blueprint.add_url_rule('/api/v3/bands/<int:band_id>/vote', view_func=BandVoteV3.as_view('api.v3.vote'),methods=['PUT']) vote_blueprint.add_url_rule('/api/v3/bands/<int:band_id>/comment', view_func=BandCommentV3.as_view('api.v3.comment')) # own blueprint, because of the after request track_blueprint = Blueprint('track', __name__, template_folder='../../client/views/vote') track_blueprint.add_url_rule('/ajax/track/<int:track_id>.mp3', view_func=TrackStreaming.as_view('ajax.track')) track_blueprint.add_url_rule('/api/v2/track/<int:track_id>.mp3', view_func=TrackV2.as_view('api.v2.track')) track_blueprint.add_url_rule('/api/v3/track/<int:track_id>.mp3', view_func=TrackV3.as_view('api.v3.track')) track_blueprint.after_request(after_request)
""" Add `Deprecation HTTP Header Field <https://tools.ietf.org/id/draft-dalal-deprecation-header-03.html>`__. """ response.headers['Deprecation'] = 'true' doc_url = get_docs_url("stable-rest-api/migration.html") deprecation_link = f'<{doc_url}>; rel="deprecation"; type="text/html"' if 'link' in response.headers: response.headers['Link'] += f', {deprecation_link}' else: response.headers['Link'] = f'{deprecation_link}' return response api_experimental.after_request(add_deprecation_headers) @api_experimental.route('/dags/<string:dag_id>/dag_runs', methods=['POST']) @requires_authentication def trigger_dag(dag_id): """ Trigger a new dag run for a Dag with an execution date of now unless specified in the data. """ data = request.get_json(force=True) run_id = None if 'run_id' in data: run_id = data['run_id']
from . import printer as api_printer from . import job as api_job from . import connection as api_connection from . import files as api_files from . import settings as api_settings from . import timelapse as api_timelapse from . import users as api_users from . import slicing as api_slicing from . import printer_profiles as api_printer_profiles from . import languages as api_languages from . import system as api_system VERSION = "0.1" api.after_request(noCachingExceptGetResponseHandler) api.before_request(corsRequestHandler) api.before_request(enforceApiKeyRequestHandler) api.before_request(loginFromAuthorizationHeaderRequestHandler) api.before_request(loginFromApiKeyRequestHandler) api.after_request(corsResponseHandler) #~~ data from plugins @api.route("/plugin/<string:name>", methods=["GET"]) def pluginData(name): api_plugins = octoprint.plugin.plugin_manager().get_filtered_implementations(lambda p: p._identifier == name, octoprint.plugin.SimpleApiPlugin) if not api_plugins: return make_response("Not found", 404)
from . import job as api_job from . import connection as api_connection from . import files as api_files from . import settings as api_settings from . import timelapse as api_timelapse from . import users as api_users from . import log as api_logs from . import slicing as api_slicing from . import printer_profiles as api_printer_profiles from . import languages as api_languages VERSION = "0.1" api.before_request(apiKeyRequestHandler) api.after_request(corsResponseHandler) #~~ data from plugins @api.route("/plugin/<string:name>", methods=["GET"]) def pluginData(name): api_plugins = octoprint.plugin.plugin_manager().get_filtered_implementations(lambda p: p._identifier == name, octoprint.plugin.SimpleApiPlugin) if not api_plugins: return make_response("Not found", 404) if len(api_plugins) > 1: return make_response("More than one api provider registered for {name}, can't proceed".format(name=name), 500) api_plugin = api_plugins[0] if api_plugin.is_api_adminonly() and not current_user.is_admin(): return make_response("Forbidden", 403)
def as_blueprint(cls): bp = Blueprint(cls.resource_name, __name__) bp.add_url_rule('/' + cls.resource_name, view_func=Foods.as_view('foods')) bp.after_request(after_request_func) return bp
def get_single_user_and_update(id): if request.method == 'POST': return update_user_details(id) else: return get_single_user(id) @usersapi.route('users/details/<id>', methods=['GET']) @token_required def update_detail(id): return get_user_details(id) def sql_debug(response): queries = list(get_debug_queries()) query_str = '' total_duration = 0.0 for q in queries: total_duration += q.duration stmt = str(q.statement % q.parameters).replace('\n', '\n ') query_str += 'Query: {0}\nDuration: {1}ms\n\n'.format(stmt, round(q.duration * 1000, 2)) print('=' * 80) print(' SQL Queries - {0} Queries Executed in {1}ms'.format(len(queries), round(total_duration * 1000, 2))) print('=' * 80) print(query_str.rstrip('\n')) print('=' * 80 + '\n') return response usersapi.after_request(sql_debug)