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.")
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"] )
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()
def site_exists(site_name: SiteId) -> None: if site_name not in sites.sitenames(): raise ValidationError(f"Site {site_name!r} does not exist.")
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
def is_relevant(self) -> bool: # This check is only executed on the central instance of multisite setups return len(sitenames()) > 1
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