git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/branches/data-access/species-products-discovery/3.0@154674 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
56ab89ca45
commit
cd43b8f199
|
@ -0,0 +1,6 @@
|
|||
eclipse.preferences.version=1
|
||||
encoding//src/main/java=UTF-8
|
||||
encoding//src/main/resources=UTF-8
|
||||
encoding//src/test/java=UTF-8
|
||||
encoding//src/test/resources=UTF-8
|
||||
encoding/<project>=UTF-8
|
|
@ -27,4 +27,7 @@
|
|||
<Changeset component="org.gcube.data-access.species-products-discovery.3-0-0" date="2017-02-09">
|
||||
<Change>service moved to smartgears</Change>
|
||||
</Changeset>
|
||||
<Changeset component="org.gcube.data-access.species-products-discovery.3-0-1" date="2017-02-09">
|
||||
<Change>changed for the new JobUsageRecord</Change>
|
||||
</Changeset>
|
||||
</ReleaseNotes>
|
14
pom.xml
14
pom.xml
|
@ -3,10 +3,16 @@
|
|||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.gcube.data.spd</groupId>
|
||||
<artifactId>species-products-discovery</artifactId>
|
||||
<version>3.0.0-SNAPSHOT</version>
|
||||
<version>3.0.1-SNAPSHOT</version>
|
||||
<packaging>war</packaging>
|
||||
<name>species product discovery</name>
|
||||
|
||||
|
||||
<parent>
|
||||
<artifactId>maven-parent</artifactId>
|
||||
<groupId>org.gcube.tools</groupId>
|
||||
<version>1.0.0</version>
|
||||
</parent>
|
||||
|
||||
<dependencyManagement>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
|
@ -221,10 +227,6 @@
|
|||
<plugin>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>2.3.2</version>
|
||||
<configuration>
|
||||
<source>1.7</source>
|
||||
<target>1.7</target>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
|
|
|
@ -7,8 +7,11 @@ import org.gcube.accounting.datamodel.usagerecords.JobUsageRecord;
|
|||
import org.gcube.accounting.persistence.AccountingPersistence;
|
||||
import org.gcube.accounting.persistence.AccountingPersistenceFactory;
|
||||
import org.gcube.common.authorization.library.provider.AuthorizationProvider;
|
||||
import org.gcube.common.authorization.library.utils.Caller;
|
||||
import org.gcube.common.scope.api.ScopeProvider;
|
||||
import org.gcube.data.spd.model.service.types.JobStatus;
|
||||
import org.gcube.smartgears.ContextProvider;
|
||||
import org.gcube.smartgears.context.application.ApplicationContext;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
|
@ -34,34 +37,46 @@ public abstract class SpeciesJob implements Runnable {
|
|||
|
||||
public abstract boolean isResubmitPermitted();
|
||||
|
||||
private ApplicationContext ctx = ContextProvider.get();
|
||||
|
||||
public final void run(){
|
||||
if (getStatus()!=JobStatus.PENDING && !isResubmitPermitted()){
|
||||
log.warn("the job with id {} cannot be resubmitted",getId());
|
||||
throw new IllegalStateException("this job cannot be resubmitted");
|
||||
}
|
||||
try{
|
||||
log.debug("running job with id {}",this.getId());
|
||||
execute();
|
||||
log.debug("job with id {} executed",this.getId());
|
||||
}catch(Exception e){
|
||||
log.error("unexpected exception in job, setting status to FAILED",e);
|
||||
log.error("unexpected exception in job with id {}, setting status to FAILED",this.getId(),e);
|
||||
this.setStatus(JobStatus.FAILED);
|
||||
}
|
||||
generateAccounting();
|
||||
}
|
||||
|
||||
|
||||
|
||||
private final void generateAccounting(){
|
||||
AccountingPersistence persistence = AccountingPersistenceFactory.getPersistence();
|
||||
JobUsageRecord jobUsageRecord = new JobUsageRecord();
|
||||
try{
|
||||
|
||||
jobUsageRecord.setConsumerId(AuthorizationProvider.instance.get().getClient().getId());
|
||||
Caller caller = AuthorizationProvider.instance.get();
|
||||
String consumerId = caller!= null ?
|
||||
caller.getClient().getId() : "UNKNOWN";
|
||||
String qualifier = caller!= null ?
|
||||
caller.getTokenQualifier() : "UNKNOWN";
|
||||
|
||||
jobUsageRecord.setConsumerId(consumerId);
|
||||
jobUsageRecord.setScope(ScopeProvider.instance.get());
|
||||
jobUsageRecord.setJobName(this.getClass().getSimpleName());
|
||||
jobUsageRecord.setOperationResult(getStatus()==JobStatus.COMPLETED?OperationResult.SUCCESS:OperationResult.FAILED);
|
||||
jobUsageRecord.setJobId(this.getId());
|
||||
jobUsageRecord.setJobStartTime(this.getStartDate());
|
||||
jobUsageRecord.setJobEndTime(this.getEndDate());
|
||||
|
||||
jobUsageRecord.setDuration(this.getEndDate().getTime().getTime()-this.getStartDate().getTime().getTime());
|
||||
jobUsageRecord.setServiceName(ctx.configuration().name());
|
||||
jobUsageRecord.setServiceClass(ctx.configuration().serviceClass());
|
||||
jobUsageRecord.setHost(ctx.container().configuration().hostname());
|
||||
jobUsageRecord.setCallerQualifier(qualifier);
|
||||
|
||||
persistence.account(jobUsageRecord);
|
||||
log.info("Job {} accounted successfully",getId());
|
||||
}catch(Exception ex){
|
||||
|
|
|
@ -42,7 +42,7 @@ import org.slf4j.LoggerFactory;
|
|||
|
||||
public class PluginManager{
|
||||
|
||||
private static Logger log = LoggerFactory.getLogger(PluginManager.class);
|
||||
private static final Logger log = LoggerFactory.getLogger(PluginManager.class);
|
||||
|
||||
private static final int CACHE_ENTRIES_PER_PLUGIN =500;
|
||||
private static final String RESOURCE_CATEGORY ="BiodiversityRepository";
|
||||
|
@ -199,7 +199,7 @@ public class PluginManager{
|
|||
if (pluginDescriptions==null) continue;
|
||||
|
||||
|
||||
log.trace("plugins in Pluginmanager are "+plugins.keySet());
|
||||
log.trace("plugins in Pluginmanager are {} ",plugins.keySet().toString());
|
||||
|
||||
addRemotePlugins(pluginDescriptions, endpointId);
|
||||
}
|
||||
|
@ -292,7 +292,7 @@ public class PluginManager{
|
|||
}
|
||||
|
||||
retrievePlugins(runtimeResourcePerPlugin);
|
||||
retrieveRemotePlugins();
|
||||
//TODO : reintroduce it to discovery twin services // retrieveRemotePlugins();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -27,7 +27,9 @@ public abstract class RetryCall<T, E extends Throwable>{
|
|||
int retry = 0;
|
||||
do {
|
||||
try{
|
||||
return execute();
|
||||
T result = execute();
|
||||
if (result != null)
|
||||
return result;
|
||||
}catch (ExternalRepositoryException e) {
|
||||
logger.warn("error on external repository, "+(retry<retries?" ":"not ")+"retrying",e);
|
||||
retry++;
|
||||
|
|
Reference in New Issue