def backup_and_cleanup(dockid): cont = SessContainer(dockid) cont.stop() cont.delete(backup=True) JBoxSessionProps.detach_instance(Compute.get_install_id(), cont.get_name(), Compute.get_instance_id()) JBoxd.publish_perf_counters() JBoxd.publish_anticipated_load()
def publish_sessions(): iid = Compute.get_instance_id() for c in SessContainer.session_containers(allcontainers=True): if ("Names" in c) and (c["Names"] is not None): sessname = SessContainer(c["Id"]).get_name() if sessname: JBoxSessionProps.attach_instance(Compute.get_install_id(), sessname, iid, c["Status"])
def publish_sessions(): iid = Compute.get_instance_id() for c in SessContainer.session_containers(allcontainers=True): if ('Names' in c) and (c['Names'] is not None): sessname = SessContainer(c['Id']).get_name() if sessname: JBoxSessionProps.attach_instance(Compute.get_install_id(), sessname, iid, c["Status"])
def publish_anticipated_load(session_name=None): iid = Compute.get_instance_id() if session_name is None: nactive = BaseContainer.num_active(BaseContainer.SFX_INT) else: JBoxSessionProps.attach_instance(Compute.get_install_id(), session_name, iid, "Preparing") nactive = BaseContainer.num_active(BaseContainer.SFX_INT) + 1 cont_load_pct = min(100, max(0, nactive * 100 / SessContainer.MAX_CONTAINERS)) self_load = max(Compute.get_instance_stats(iid, 'Load'), cont_load_pct) Compute.publish_stats("Load", "Percent", self_load) accept = Compute.should_accept_session(is_proposed_cluster_leader()) JBoxInstanceProps.set_props(Compute.get_install_id(), iid, load=self_load, accept=accept)
def get_api_status(): api_status = dict() for c in BaseContainer.api_containers(allcontainers=True): name = c["Names"][0] if (("Names" in c) and (c["Names"] is not None)) else c["Id"][0:12] api_name = APIContainer.get_api_name_from_container_name(name) if api_name is None: continue cnt = api_status.get(api_name, 0) api_status[api_name] = cnt + 1 self_load = Compute.get_instance_stats(Compute.get_instance_id(), 'Load') accept = Compute.should_accept_session(is_proposed_cluster_leader()) return {'load': self_load, 'accept': accept, 'api_status': api_status}
def publish_instance_state(): iid = Compute.get_instance_id() api_status = dict() for c in BaseContainer.api_containers(allcontainers=True): name = c["Names"][0] if (("Names" in c) and (c["Names"] is not None)) else c["Id"][0:12] api_name = APIContainer.get_api_name_from_container_name(name) if api_name is None: continue cnt = api_status.get(api_name, 0) api_status[api_name] = cnt + 1 self_load = Compute.get_instance_stats(iid, 'Load') accept = Compute.should_accept_session(is_proposed_cluster_leader()) JBoxInstanceProps.set_props(Compute.get_install_id(), iid, load=self_load, accept=accept, api_status=api_status)
def publish_sessions(): iid = Compute.get_instance_id() for c in SessContainer.session_containers(allcontainers=True): if ('Names' in c) and (c['Names'] is not None): JBoxSessionProps.attach_instance(Compute.get_install_id(), SessContainer(c['Id']).get_name(), iid, c["Status"])