def _get_activation_manager(monkeypatch): # TODO: Make this better testable: Extract site snapshot setting calculation monkeypatch.setattr( config, "sites", { "unit": { 'alias': u'Der Master', 'disable_wato': True, 'disabled': False, 'insecure': False, 'multisiteurl': '', 'persist': False, 'replicate_ec': False, 'replication': '', 'timeout': 10, 'user_login': True, 'proxy': None, }, "unit_remote_1": { 'customer': 'provider', 'url_prefix': '/unit_remote_1/', 'status_host': None, 'user_sync': None, 'socket': ('tcp', { 'tls': ('encrypted', { 'verify': True }), 'address': ('127.0.0.1', 6790) }), 'replication': 'slave', 'user_login': True, 'insecure': False, 'disable_wato': True, 'disabled': False, 'alias': u'unit_remote_1', 'secret': 'watosecret', 'replicate_mkps': False, 'proxy': { 'params': None }, 'timeout': 2, 'persist': False, 'replicate_ec': True, 'multisiteurl': 'http://localhost/unit_remote_1/check_mk/', }, }) activation_manager = activate_changes.ActivateChangesManager() activation_manager._sites = ["unit_remote_1"] activation_manager._changes_by_site = {"unit_remote_1": []} activation_manager._activation_id = "123" return activation_manager
def page(self): check_csrf_token() user.need_permission("wato.activate") api_request = self.webapi_request() # ? type of activate_until is unclear activate_until = api_request.get("activate_until") if not activate_until: raise MKUserError("activate_until", _('Missing parameter "%s".') % "activate_until") manager = activate_changes.ActivateChangesManager() manager.load() # ? type of api_request is unclear affected_sites_request = ensure_str( # pylint: disable= six-ensure-str-bin-call api_request.get("sites", "").strip()) if not affected_sites_request: affected_sites = manager.dirty_and_active_activation_sites() else: affected_sites = [ SiteId(s) for s in affected_sites_request.split(",") ] comment: Optional[str] = api_request.get("comment", "").strip() activate_foreign = api_request.get("activate_foreign", "0") == "1" valuespec = _vs_activation("", manager.has_foreign_changes()) if valuespec: valuespec.validate_value( { "comment": comment, "foreign": activate_foreign, }, "activate", ) if comment == "": comment = None activation_id = manager.start( sites=affected_sites, activate_until=ensure_str(activate_until), # pylint: disable= six-ensure-str-bin-call comment=comment, activate_foreign=activate_foreign, ) return { "activation_id": activation_id, }
def page(self): user.need_permission("wato.activate") api_request = self.webapi_request() activation_id = api_request.get("activation_id") if not activation_id: raise MKUserError("activation_id", _('Missing parameter "%s".') % "activation_id") manager = activate_changes.ActivateChangesManager() manager.load() manager.load_activation(activation_id) return manager.get_state()
def _get_activation_manager(monkeypatch, remote_site="unit_remote_1"): # TODO: Make this better testable: Extract site snapshot setting calculation remote_sites = { "unit_remote_1": { "customer": "provider", "url_prefix": "/unit_remote_1/", "status_host": None, "user_sync": None, "socket": ( "tcp", { "tls": ("encrypted", { "verify": True }), "address": ("127.0.0.1", 6790) }, ), "replication": "slave", "user_login": True, "insecure": False, "disable_wato": True, "disabled": False, "alias": "unit_remote_1", "secret": "watosecret", "replicate_mkps": False, "proxy": { "params": None }, "timeout": 2, "persist": False, "replicate_ec": True, "multisiteurl": "http://localhost/unit_remote_1/check_mk/", }, "unit_remote_2": { "customer": "provider", "url_prefix": "/unit_remote_1/", "status_host": None, "user_sync": None, "socket": ( "tcp", { "tls": ("encrypted", { "verify": True }), "address": ("127.0.0.1", 6790) }, ), "replication": "slave", "user_login": True, "insecure": False, "disable_wato": True, "disabled": False, "alias": "unit_remote_1", "secret": "watosecret", "replicate_mkps": True, "proxy": { "params": None }, "timeout": 2, "persist": False, "replicate_ec": True, "multisiteurl": "http://localhost/unit_remote_1/check_mk/", }, } monkeypatch.setattr( config, "sites", { "unit": { "alias": "Der Master", "disable_wato": True, "disabled": False, "insecure": False, "multisiteurl": "", "persist": False, "replicate_ec": False, "replication": "", "timeout": 10, "user_login": True, "proxy": None, }, remote_site: remote_sites[remote_site], }, ) activation_manager = activate_changes.ActivateChangesManager() activation_manager._sites = [remote_site] activation_manager._changes_by_site = {remote_site: []} activation_manager._activation_id = "123" return activation_manager
def _create_sync_snapshot(snapshot_manager_class, monkeypatch, tmp_path): # TODO: Make this better testable: Extract site snapshot setting calculation activation_manager = activate_changes.ActivateChangesManager() activation_manager._sites = ["unit", "unit_remote_1"] activation_manager._changes_by_site = {"unit": [], "unit_remote_1": []} activation_manager._activation_id = "123" monkeypatch.setattr( config, "sites", { "unit": { 'alias': u'Der Master', 'disable_wato': True, 'disabled': False, 'insecure': False, 'multisiteurl': '', 'persist': False, 'replicate_ec': False, 'replication': '', 'timeout': 10, 'user_login': True, 'proxy': None, }, "unit_remote_1": { 'customer': 'provider', 'url_prefix': '/unit_remote_1/', 'status_host': None, 'user_sync': None, 'socket': ('tcp', { 'tls': ('encrypted', { 'verify': True }), 'address': ('127.0.0.1', 6790) }), 'replication': 'slave', 'user_login': True, 'insecure': False, 'disable_wato': True, 'disabled': False, 'alias': u'unit_remote_1', 'secret': 'watosecret', 'replicate_mkps': False, 'proxy': { 'params': None }, 'timeout': 2, 'persist': False, 'replicate_ec': True, 'multisiteurl': 'http://localhost/unit_remote_1/check_mk/', }, }) site_snapshot_settings = activation_manager._site_snapshot_settings() # Now create the snapshot work_dir = tmp_path / "activation" snapshot_manager = activate_changes.SnapshotManagerFactory.factory( str(work_dir), site_snapshot_settings) assert snapshot_manager.__class__.__name__ == snapshot_manager_class snapshot_settings = site_snapshot_settings["unit_remote_1"] snapshot_manager.generate_snapshots() assert Path(snapshot_settings.snapshot_path).exists() assert not Path(snapshot_settings.work_dir).exists() return snapshot_settings