001/* 002 * (C) Copyright 2017 Nuxeo (http://nuxeo.com/) and others. 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 * 016 * Contributors: 017 * Funsho David 018 * 019 */ 020 021package org.nuxeo.ecm.automation.core.operations.services; 022 023import org.nuxeo.ecm.automation.core.Constants; 024import org.nuxeo.ecm.automation.core.annotations.Context; 025import org.nuxeo.ecm.automation.core.annotations.Operation; 026import org.nuxeo.ecm.automation.core.annotations.OperationMethod; 027import org.nuxeo.ecm.automation.core.annotations.Param; 028import org.nuxeo.ecm.platform.audit.service.AuditBackend; 029import org.nuxeo.ecm.platform.audit.service.NXAuditEventsService; 030import org.nuxeo.runtime.api.Framework; 031 032/** 033 * @since 9.3 034 */ 035@Operation(id = AuditRestore.ID, category = Constants.CAT_SERVICES, label = "Restore log entries", description = "Restore log entries from an audit storage implementation to the audit backend.") 036public class AuditRestore { 037 038 @Context 039 protected AuditBackend auditBackend; 040 041 public static final String ID = "Audit.Restore"; 042 043 public static final int DEFAULT_BATCH_SIZE = 100; 044 045 public static final int DEFAULT_KEEP_ALIVE = 10; 046 047 @Param(name = "auditStorage") 048 protected String auditStorageId; 049 050 @Param(name = "batchSize", required = false) 051 protected int batchSize = DEFAULT_BATCH_SIZE; 052 053 @Param(name = "keepAlive", required = false) 054 protected int keepAlive = DEFAULT_KEEP_ALIVE; 055 056 @OperationMethod 057 public void run() { 058 NXAuditEventsService audit = (NXAuditEventsService) Framework.getRuntime() 059 .getComponent(NXAuditEventsService.NAME); 060 auditBackend.restore(audit.getAuditStorage(auditStorageId), batchSize, keepAlive); 061 } 062 063}