Пример #1
0
    def page(self):
        ajax_request = self.webapi_request()

        site_id_val = ajax_request.get("site")
        if not site_id_val:
            raise MKUserError(None, "The site_id is missing")
        site_id = site_id_val
        if site_id not in sitenames():
            raise MKUserError(None, _("The requested site does not exist"))

        status = (cmk.gui.sites.states().get(site_id,
                                             cmk.gui.sites.SiteStatus({})).get(
                                                 "state", "unknown"))
        if status == "dead":
            raise MKGeneralException(
                _("The site is marked as dead. Not trying to replicate."))

        site = get_site_config(site_id)
        assert user.id is not None
        result = self._synchronize_profile(site_id, site, user.id)

        if result is not True:
            assert result is not False
            _add_profile_replication_change(site_id, result)
            raise MKGeneralException(result)

        return _("Replication completed successfully.")
Пример #2
0
    def _execute_remote_automation(self, request):
        if request["site_id"] not in sitenames():
            raise MKUserError("site_id", _("This site does not exist."))

        if request["site_id"] not in wato_slave_sites():
            raise MKUserError("site_id", _("This site is not a distributed WATO site."))

        return cmk.gui.watolib.automations.do_remote_automation(
            get_site_config(request["site_id"]), request["command"], request["command_args"]
        )
Пример #3
0
    def _ajax_switch_site(self):
        response.set_content_type("application/json")
        # _site_switch=sitename1:on,sitename2:off,...
        if not user.may("sidesnap.sitestatus"):
            return

        if not transactions.check_transaction():
            return

        switch_var = request.var("_site_switch")
        if switch_var:
            for info in switch_var.split(","):
                sitename, onoff = info.split(":")
                if sitename not in sites.sitenames():
                    continue

                if onoff == "on":
                    user.enable_site(sitename)
                else:
                    user.disable_site(sitename)

            user.save_site_config()
Пример #4
0
 def site_exists(site_name: SiteId) -> None:
     if site_name not in sites.sitenames():
         raise ValidationError(f"Site {site_name!r} does not exist.")
Пример #5
0
 def execute(self) -> Iterator[ACResult]:
     for site_id in sitenames():
         site_config = get_site_config(site_id)
         for result in self._check_site(site_id, site_config):
             result.site_id = site_id
             yield result
Пример #6
0
 def is_relevant(self) -> bool:
     # This check is only executed on the central instance of multisite setups
     return len(sitenames()) > 1
Пример #7
0
 def execute(self) -> Iterator[ACResult]:
     for site_id in sitenames():
         for result in self._check_site(site_id):
             result.site_id = site_id
             yield result