def post(self): name = str(self.get_argument("name")) enable = int(self.get_argument("enable")) zk_benchmode_path = zk_prefix + "/" + name + "/" + "benchmode" zk = ZKData() zk.set(zk_benchmode_path, enable) zk.close()
def _set_states(self, minfo, zk_path, stream_base, user): zk = ZKData() if minfo["streams"]: for stream1 in minfo["streams"]: zk.set(zk_path + "/" + stream1, minfo["streams"][stream1]) if minfo["segs"]: for seg in minfo["segs"]: zk.set(zk_path + "/" + user + "/" + seg, minfo["segs"][seg]) zk.close()
def _get_manifest(self, stream, user): # Retrive the manifest from upstream. try: r = requests.get(content_provider_url + "/" + stream) r.raise_for_status() manifest = r.text except Exception as e: print("Exception: " + str(e), flush=True) return str(e) # launch zk stream_base = "/".join(stream.split("/")[:-1]) zk_path = zk_manifest_prefix + "/" + stream_base # Parse manifest minfo = {"segs": {}, "streams": {}, "manifest": ""} ad_spec = { "prefix": "adstream/" + user, "path": ad_storage_root + "/" + stream_base, "interval": ad_interval, # ad interval (#segments) "duration": ad_duration, # ad duration "analytic_ahead": ad_analytic_ahead, "transcode_ahead": ad_transcode_ahead, } zk = ZKData() if stream.endswith(".m3u8"): minfo = parse_hls( stream_cp_url=content_provider_url + "/" + stream, m3u8=manifest, stream_info=zk.get(zk_path + "/" + stream.split("/")[-1]), ad_spec=ad_spec, ad_segment=ad_segment) if stream.endswith(".mpd"): minfo = parse_dash(stream_cp_url=content_provider_url + "/" + stream, mpd=manifest, ad_spec=ad_spec, ad_segment=ad_segment) # set zk states if minfo["streams"]: for stream1 in minfo["streams"]: zk.set(zk_path + "/" + stream1, minfo["streams"][stream1]) if minfo["segs"]: for seg in minfo["segs"]: zk.set(zk_path + "/" + user + "/" + seg, minfo["segs"][seg]) zk.close() return minfo
def set_ad_path(path, value): zkd = ZKData() zkd.set(path, value) print("set " + path + " to " + value, flush=True) zkd.close()
def _set_usecase_status(self, name, usecase, value): zk_usecase_path = zk_prefix + "/" + name + "/" + usecase zk = ZKData() zk.set(zk_usecase_path, value) zk.close()