def _load_changes_by_site(self): self._changes_by_site = {} self._migrate_old_changes() for site_id in activation_sites(): self._changes_by_site[site_id] = SiteChanges(site_id).load()
def action(self): if not html.check_transaction(): return test_id = html.request.var("_test_id") site_id = html.request.var("_site_id") status_id = html.request.get_integer_input_mandatory("_status_id", 0) if not test_id: raise MKUserError("_ack_test_id", _("Needed variable missing")) if html.request.var("_do") in ["ack", "unack"]: if not site_id: raise MKUserError("_ack_site_id", _("Needed variable missing")) if site_id not in activation_sites(): raise MKUserError("_ack_site_id", _("Invalid site given")) if html.request.var("_do") == "ack": self._acknowledge_test(test_id, site_id, status_id) elif html.request.var("_do") == "unack": self._unacknowledge_test(test_id, site_id, status_id) elif html.request.var("_do") == "disable": self._disable_test(test_id) elif html.request.var("_do") == "enable": self._enable_test(test_id) else: raise NotImplementedError()
def _get_sites(self, sites): for site_id in sites: if site_id not in activation_sites(): raise MKUserError( "sites", _("The site \"%s\" does not exist.") % site_id) return sites
def _get_initial_message(self) -> str: changes = sum(len(self._changes_of_site(site_id)) for site_id in activation_sites()) if changes == 0: if html.request.has_var("_finished"): return _("Activation has finished.") return _("Currently there are no changes to activate.") if changes == 1: return _("Currently there is one change to activate.") return _("Currently there are %d changes to activate.") % changes
def dirty_and_active_activation_sites(self): dirty = [] for site_id, site in activation_sites(): status = self._get_site_status(site_id, site)[1] is_online = self._site_is_online(status) is_logged_in = self._site_is_logged_in(site_id, site) if is_online and is_logged_in and self._changes_of_site(site_id): dirty.append(site_id) return dirty
def get_changes_estimate(self): changes_counter = 0 for site_id in activation_sites(): changes_counter += len(SiteChanges(site_id).load()) if changes_counter > 10: return _("10+ changes") if changes_counter == 1: return _("1 change") elif changes_counter > 1: return _("%d changes") % changes_counter
def dirty_and_active_activation_sites(self): # type: () -> List[SiteId] """Returns the list of sites that should be used when activating all affected sites""" dirty = [] for site_id, site in activation_sites().items(): status = self._get_site_status(site_id, site)[1] is_online = self._site_is_online(status) is_logged_in = self._site_is_logged_in(site_id, site) if is_online and is_logged_in and self._changes_of_site(site_id): dirty.append(site_id) return dirty
def _analyze_sites(self): return activation_sites()
def _affects_all_sites(self, change): return not set(change["affected_sites"]).symmetric_difference(set(activation_sites()))