Esempio n. 1
0
    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()
Esempio n. 3
0
    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
Esempio n. 4
0
 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
Esempio n. 5
0
    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
Esempio n. 6
0
 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
Esempio n. 7
0
    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()
Esempio n. 9
0
 def _affects_all_sites(self, change):
     return not set(change["affected_sites"]).symmetric_difference(set(activation_sites()))