示例#1
0
def get_update(transaction, **parameters):
    force = parameters.get("force")
    parameters["force"] = {
        FORCE_MAIN_MAPPING.query_value: FORCE_MAIN_MAPPING,
        FORCE_FALLBACK_MAPPING.query_value: FORCE_FALLBACK_MAPPING
    }.get(force)
    release = AUS.evaluateRules(parameters, transaction=transaction)[0]
    if not release:
        return Response(status=404)

    headers = {}
    response = json.dumps(
        release.getResponse(parameters, app.config["WHITELISTED_DOMAINS"]))

    if app.config.get("AUTOGRAPH_URL"):
        hash_ = make_hash(response)

        def sign():
            return sign_hash(app.config["AUTOGRAPH_URL"],
                             app.config["AUTOGRAPH_KEYID"],
                             app.config["AUTOGRAPH_USERNAME"],
                             app.config["AUTOGRAPH_PASSWORD"], hash_)

        signature, x5u = cache.get("content_signatures", hash_, sign)
        headers["Content-Signature"] = f"x5u={x5u}; p384ecdsa={signature}"

    return Response(response=response,
                    status=200,
                    headers=headers,
                    mimetype="application/json")
示例#2
0
文件: base.py 项目: tpingili/balrog
    def getSchema(self):
        def loadSchema():
            return yaml.load(
                open(
                    path.join(path.dirname(path.abspath(__file__)), "schemas",
                              self.jsonschema)))

        return cache.get("blob_schema", self.jsonschema, loadSchema)
示例#3
0
文件: AUS.py 项目: mozbhearsum/balrog
    def updates_are_disabled(self, product, channel, transaction=None):
        cache_key = (product, channel)
        v = cache.get("updates_disabled", cache_key)
        if v is not None:
            return v

        where = dict(product=product, channel=channel)
        emergency_shutoffs = dbo.emergencyShutoffs.select(where=where, transaction=transaction)
        v = bool(emergency_shutoffs)
        cache.put("updates_disabled", cache_key, v)
        return v
示例#4
0
    def updates_are_disabled(self, product, channel, transaction=None):
        cache_key = (product, channel)
        v = cache.get("updates_disabled", cache_key)
        if v is not None:
            return v

        where = dict(product=product, channel=channel)
        emergency_shutoffs = dbo.emergencyShutoffs.select(
            where=where, transaction=transaction)
        v = bool(emergency_shutoffs)
        cache.put("updates_disabled", cache_key, v)
        return v
示例#5
0
文件: base.py 项目: catlee/balrog
    def getSchema(self):
        def loadSchema():
            return yaml.safe_load(open(path.join(path.dirname(path.abspath(__file__)), "schemas", self.jsonschema)))

        return cache.get("blob_schema", self.jsonschema, loadSchema)