added validation scope
git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/content-management/storage-manager-trigger@94868 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
317c8482e6
commit
4e6de3a90d
|
@ -1,6 +1,6 @@
|
|||
log4j.rootLogger=INFO, A1, stdout
|
||||
log4j.appender.A1=org.apache.log4j.RollingFileAppender
|
||||
log4j.appender.A1.File=log.txt
|
||||
log4j.appender.A1.File=mongoTrigger.log
|
||||
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
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
package org.gcube.common.scope.impl;
|
||||
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
public class ServiceMapScannerMediator {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(ServiceMapScannerMediator.class);
|
||||
|
||||
|
||||
public static Set<String> getScopeKeySet(){
|
||||
return new ServiceMapScanner().maps().keySet();
|
||||
}
|
||||
|
||||
}
|
|
@ -1,17 +1,12 @@
|
|||
package org.gcube.contentmanager.storageserver.parse;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.GregorianCalendar;
|
||||
|
||||
import org.bson.types.ObjectId;
|
||||
import org.gcube.contentmanager.storageserver.accounting.Report;
|
||||
import org.gcube.contentmanager.storageserver.accounting.ReportConfig;
|
||||
import org.gcube.contentmanager.storageserver.accounting.ReportException;
|
||||
import org.gcube.contentmanager.storageserver.accounting.ReportFactory;
|
||||
import org.gcube.contentmanager.storageserver.data.CubbyHole;
|
||||
import org.gcube.contentmanager.storageserver.parse.utils.ValidationUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
|
@ -76,19 +71,23 @@ 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"))){
|
||||
// it is an update on a link object this operation doesn't be accounted
|
||||
logger.info("update on link object is not accounted. Skip next ");
|
||||
continue;
|
||||
boolean validScope=ValidationUtils.validationScope(scope);
|
||||
if(validScope){
|
||||
if(delete!=null){
|
||||
lastOperation="DELETE";
|
||||
}else if ((lastOperation != null) && (op != null) && (lastOperation.equalsIgnoreCase("LINK")) && (op.equalsIgnoreCase("u"))){
|
||||
// it is an update on a link object this operation doesn't be accounted
|
||||
logger.info("update on link object is not accounted. Skip next ");
|
||||
continue;
|
||||
}
|
||||
// operation=mappingOperationField(op, id, delete, lastAccess);
|
||||
//call to the accounting library
|
||||
report( filename, owner, creationTime, id, length, scope, lastOperation, callerIp, lastAccess, lastUser);
|
||||
logger.info(" operation accounted "+lastOperation);
|
||||
logger.info("\n[accountingCall] operation: "+lastOperation+"\n\t name: "+name+"\n\t type: "+type+"\n\t path: "+filename+"\n\t length: "+length+"\n\t owner: "+owner+"\n\t cretionTime: "+creationTime+"\n\t id: "+id+"\n\t scope: "+scope+"\n\t lastOperation "+lastOperation+"\n\t lastUser: "+lastUser+"\n\t lastAccess: "+lastAccess+"\n\t callerIp: "+callerIp);
|
||||
}else{
|
||||
logger.info("operation is not accounted: invalid scope: "+scope);
|
||||
}
|
||||
// operation=mappingOperationField(op, id, delete, lastAccess);
|
||||
//call to the accounting library
|
||||
report( filename, owner, creationTime, id, length, scope, lastOperation, callerIp, lastAccess, lastUser);
|
||||
logger.info(" operation accounted "+lastOperation);
|
||||
logger.info("\n[accountingCall] operation: "+lastOperation+"\n\t name: "+name+"\n\t type: "+type+"\n\t path: "+filename+"\n\t length: "+length+"\n\t owner: "+owner+"\n\t cretionTime: "+creationTime+"\n\t id: "+id+"\n\t scope: "+scope+"\n\t lastOperation "+lastOperation+"\n\t lastUser: "+lastUser+"\n\t lastAccess: "+lastAccess+"\n\t callerIp: "+callerIp);
|
||||
}else{
|
||||
logger.info("operation is not accounted");
|
||||
}
|
||||
|
|
|
@ -1,16 +0,0 @@
|
|||
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;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
package org.gcube.contentmanager.storageserver.parse.utils;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
import org.gcube.common.scope.impl.ScopeBean;
|
||||
import org.gcube.common.scope.impl.ScopeBean.Type;
|
||||
import org.gcube.common.scope.impl.ServiceMapScannerMediator;
|
||||
|
||||
public class ValidationUtils {
|
||||
|
||||
public static boolean validationScope(String scope){
|
||||
Set<String> scopeSet=new ServiceMapScannerMediator().getScopeKeySet();
|
||||
for(String scopeItem : scopeSet){
|
||||
if(scope.equalsIgnoreCase(scopeItem))
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
// 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;
|
||||
}
|
||||
|
||||
}
|
|
@ -3,12 +3,12 @@ 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.gcube.contentmanager.storageserver.parse.utils.ValidationUtils;
|
||||
import org.junit.Test;
|
||||
|
||||
public class ValidationScopeTest {
|
||||
|
||||
private String scope="/pinco/pallino";
|
||||
private String scope="/gcube/devsec";
|
||||
|
||||
@Test
|
||||
public void test() {
|
||||
|
|
Loading…
Reference in New Issue