mongo/tools/flag_sync/util.py

32 lines
880 B
Python

import json
import os
import subprocess
import tempfile
import requests
S3_BUCKET = "mdb-build-public"
def get_flags(namespace: str):
S3_URL = f"https://mdb-build-public.s3.us-east-1.amazonaws.com/flag_sync/{namespace}.json"
r = requests.get(S3_URL)
if r.status_code != 200:
raise Exception("Namespace doesn't exist.")
try:
return json.loads(r.text)
except:
raise Exception("Couldn't parse flag json.")
def validate_bazel_flag(line: str):
workspace_root = os.environ.get("BUILD_WORKSPACE_DIRECTORY")
with tempfile.NamedTemporaryFile(mode="w+") as tf:
tf.write(line)
tf.flush()
cmd = ["bazel", f"--bazelrc={tf.name}", "build", "//tools/flag_sync:client"]
p = subprocess.run(cmd, capture_output=True, cwd=workspace_root)
if p.returncode != 0:
return False
return True