From 317c8482e66c05e134ab9a1ce8999eef30dabbf7 Mon Sep 17 00:00:00 2001 From: "roberto.cirillo" Date: Tue, 15 Apr 2014 15:57:57 +0000 Subject: [PATCH] update reportAccounting implementation. Now only one istance is used git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/content-management/storage-manager-trigger@94856 82a268e6-3cf1-43bd-a215-b396298e98cf --- pom.xml | 5 +++++ src/main/java/log4j.properties | 2 +- .../storageserver/accounting/Report.java | 4 +++- .../accounting/ReportAccountingImpl.java | 17 ++++++++++++++++- .../storageserver/parse/JsonParser.java | 4 +++- .../parse/utiils/ValidationUtils.java | 16 ++++++++++++++++ .../test/ValidationScopeTest.java | 18 ++++++++++++++++++ 7 files changed, 62 insertions(+), 4 deletions(-) create mode 100644 src/main/java/org/gcube/contentmanager/storageserver/parse/utiils/ValidationUtils.java create mode 100644 src/test/java/org/gcube/contentmanager/storageserver/test/ValidationScopeTest.java diff --git a/pom.xml b/pom.xml index 1df81c7..3a87cfd 100644 --- a/pom.xml +++ b/pom.xml @@ -39,6 +39,11 @@ common-accounting-lib [1.0.0-SNAPSHOT,2.0.0-SNAPSHOT) + + org.gcube.core + common-scope + 1.2.0-SNAPSHOT + diff --git a/src/main/java/log4j.properties b/src/main/java/log4j.properties index 043a187..a20b6dd 100644 --- a/src/main/java/log4j.properties +++ b/src/main/java/log4j.properties @@ -4,7 +4,7 @@ log4j.appender.A1.File=log.txt log4j.appender.A1.layout=org.apache.log4j.PatternLayout log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n # ***** Max file size is set to 100KB -log4j.appender.A1.MaxFileSize=100MB +log4j.appender.A1.MaxFileSize=10MB # ***** Keep one backup file log4j.appender.A1.MaxBackupIndex=1 diff --git a/src/main/java/org/gcube/contentmanager/storageserver/accounting/Report.java b/src/main/java/org/gcube/contentmanager/storageserver/accounting/Report.java index dbd759c..11e7b09 100644 --- a/src/main/java/org/gcube/contentmanager/storageserver/accounting/Report.java +++ b/src/main/java/org/gcube/contentmanager/storageserver/accounting/Report.java @@ -1,6 +1,8 @@ package org.gcube.contentmanager.storageserver.accounting; public interface Report { + + public void init(); /** * Set generic properties of report * @param resourceType @@ -9,7 +11,7 @@ public interface Report { * @param resourceScope * @return */ - public void init(String consumerId, String resourceScope, String creationTime); + public void start(String consumerId, String resourceScope, String creationTime); /** * set start time of the operation * @return diff --git a/src/main/java/org/gcube/contentmanager/storageserver/accounting/ReportAccountingImpl.java b/src/main/java/org/gcube/contentmanager/storageserver/accounting/ReportAccountingImpl.java index 0761e0b..8a3b706 100644 --- a/src/main/java/org/gcube/contentmanager/storageserver/accounting/ReportAccountingImpl.java +++ b/src/main/java/org/gcube/contentmanager/storageserver/accounting/ReportAccountingImpl.java @@ -21,9 +21,24 @@ import org.slf4j.LoggerFactory; final Logger logger = LoggerFactory.getLogger(ReportAccountingImpl.class); public RawUsageRecord ur; public ResourceAccounting raFactory; + @Override - public void init(String consumerId, String resourceScope, String creationTime) { + public void init(){ + raFactory = null; + try { + raFactory = ResourceAccountingFactory.getResourceAccountingInstance(); + } + catch (IOException e) { + e.printStackTrace(); + } + catch (Exception e) { + e.printStackTrace(); + } + } + + @Override + public void start(String consumerId, String resourceScope, String creationTime) { logger.info("set accounting properties: consumerId "+consumerId+" scope: "+resourceScope+ " creationTime "+creationTime); raFactory = null; try { diff --git a/src/main/java/org/gcube/contentmanager/storageserver/parse/JsonParser.java b/src/main/java/org/gcube/contentmanager/storageserver/parse/JsonParser.java index 4139044..7dd558f 100644 --- a/src/main/java/org/gcube/contentmanager/storageserver/parse/JsonParser.java +++ b/src/main/java/org/gcube/contentmanager/storageserver/parse/JsonParser.java @@ -52,6 +52,7 @@ public class JsonParser extends Thread{ private void init() throws ReportException{ report=new ReportFactory().getReport(ReportConfig.ACCOUNTING_TYPE); + report.init(); } public void run() { @@ -75,6 +76,7 @@ public class JsonParser extends Thread{ String pathString=(String)obj.get("onScope"); scope=retrieveScopeFromRemoteFilePath(pathString); } + if(delete!=null){ lastOperation="DELETE"; }else if ((lastOperation != null) && (op != null) && (lastOperation.equalsIgnoreCase("LINK")) && (op.equalsIgnoreCase("u"))){ @@ -118,7 +120,7 @@ public class JsonParser extends Thread{ private void report(String filename, String owner, String creationTime, String id, long length, String scope, String operation, String callerIP, String lastAccess, String lastUser) { - report.init(lastUser, scope, creationTime); + report.start(lastUser, scope, creationTime); // report.timeUpdate(); report.ultimate(owner, operation, length+"", filename, id, callerIP, lastAccess); report.send(); diff --git a/src/main/java/org/gcube/contentmanager/storageserver/parse/utiils/ValidationUtils.java b/src/main/java/org/gcube/contentmanager/storageserver/parse/utiils/ValidationUtils.java new file mode 100644 index 0000000..9d395b2 --- /dev/null +++ b/src/main/java/org/gcube/contentmanager/storageserver/parse/utiils/ValidationUtils.java @@ -0,0 +1,16 @@ +package org.gcube.contentmanager.storageserver.parse.utiils; + +import org.gcube.common.scope.impl.ScopeBean; +import org.gcube.common.scope.impl.ScopeBean.Type; + +public class ValidationUtils { + + public static boolean validationScope(String scope){ + ScopeBean scopeBean=new ScopeBean(scope); + System.out.println("scope type "+scopeBean.type()); + if((scopeBean.is(Type.INFRASTRUCTURE)) || (scopeBean.is(Type.VO)) || (scopeBean.is(Type.VRE))) + return true; + return false; + } + +} diff --git a/src/test/java/org/gcube/contentmanager/storageserver/test/ValidationScopeTest.java b/src/test/java/org/gcube/contentmanager/storageserver/test/ValidationScopeTest.java new file mode 100644 index 0000000..ba6a808 --- /dev/null +++ b/src/test/java/org/gcube/contentmanager/storageserver/test/ValidationScopeTest.java @@ -0,0 +1,18 @@ +package org.gcube.contentmanager.storageserver.test; + +import static org.junit.Assert.*; + +import org.gcube.common.scope.api.ScopeProvider; +import org.gcube.contentmanager.storageserver.parse.utiils.ValidationUtils; +import org.junit.Test; + +public class ValidationScopeTest { + + private String scope="/pinco/pallino"; + + @Test + public void test() { + assertTrue(ValidationUtils.validationScope(scope)); + } + +}