Пример #1
0
 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()
Пример #2
0
 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()
Пример #3
0
 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"])
Пример #4
0
 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"])
Пример #5
0
 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)
Пример #6
0
 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)
Пример #7
0
    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}
Пример #8
0
    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)
Пример #9
0
    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)
Пример #10
0
 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"])