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")
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)
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
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
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)