90 lines
2.9 KiB
Java
90 lines
2.9 KiB
Java
package org.gcube.resource.management.quota.manager.check;
|
|
|
|
import java.util.Timer;
|
|
|
|
import org.gcube.accounting.analytics.persistence.AccountingPersistenceQuery;
|
|
import org.gcube.accounting.analytics.persistence.AccountingPersistenceQueryFactory;
|
|
import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
|
|
import org.gcube.common.scope.api.ScopeProvider;
|
|
import org.gcube.resource.management.quota.manager.persistence.QuotaDBPersistence;
|
|
import org.gcube.resource.management.quota.manager.util.Constants;
|
|
import org.gcube.resource.management.quota.manager.util.DiscoveryConfiguration;
|
|
import org.gcube.smartgears.ApplicationManager;
|
|
import org.gcube.smartgears.ContextProvider;
|
|
import org.gcube.smartgears.context.application.ApplicationContext;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
/**
|
|
* MyApp Manager
|
|
*
|
|
* @author Alessandro Pieve (alessandro.pieve@isti.cnr.it)
|
|
*
|
|
*/
|
|
public class MyAppManager implements ApplicationManager {
|
|
|
|
private static Logger logger = LoggerFactory.getLogger(MyAppManager.class);
|
|
|
|
ApplicationContext ctx = ContextProvider.get();
|
|
|
|
Timer timer = null;
|
|
|
|
public String dbName;
|
|
|
|
private QuotaUsage quotaUsage;
|
|
private QuotaDBPersistence quotaDbPersistence;
|
|
|
|
@Override
|
|
public void onInit() {
|
|
//do something on init
|
|
logger.info("QuotaCheckTask on init");
|
|
String token = SecurityTokenProvider.instance.get();
|
|
String context = ScopeProvider.instance.get();
|
|
logger.info("QuotaCheckTask on discovery");
|
|
DiscoveryConfiguration discoveryCheck =new DiscoveryConfiguration(context);
|
|
logger.info("QuotaCheckTask DiscoveryConfiguration complete");
|
|
dbName=discoveryCheck.getDbname();
|
|
|
|
quotaDbPersistence= new QuotaDBPersistence(discoveryCheck.getDatabasePath(),discoveryCheck.getDbname(),
|
|
discoveryCheck.getUsernameDb(),discoveryCheck.getPwdnameDb());
|
|
quotaUsage =new QuotaUsage(discoveryCheck);
|
|
|
|
AccountingPersistenceQuery apq = AccountingPersistenceQueryFactory.getInstance();
|
|
|
|
QuotaCheckTask task = new QuotaCheckTask(context, token,quotaUsage,quotaDbPersistence,apq);
|
|
|
|
Integer refreshTimeQuotaConfiguration=discoveryCheck.getRefreshTimeQuota();
|
|
Long refreshTimeQuota;
|
|
if (refreshTimeQuotaConfiguration==0){
|
|
refreshTimeQuota=Constants.TIME_SCHEDULE_CHECK;
|
|
}
|
|
else{
|
|
refreshTimeQuota=(long) (refreshTimeQuotaConfiguration*60*1000);
|
|
}
|
|
timer = new Timer(true);
|
|
timer.scheduleAtFixedRate(task,Constants.DELAY_SCHEDULE_CHECK, refreshTimeQuota);
|
|
logger.info("QuotaCheckTask started in context {}", context);
|
|
logger.info("QuotaCheckTask schedule task on:{} milliseconds", refreshTimeQuota);
|
|
logger.info("QuotaCheckTask notifierUser :{} notifierAdmin:{}", discoveryCheck.getNotifierUser(),discoveryCheck.getNotifierAdmin());
|
|
}
|
|
|
|
@Override
|
|
public void onShutdown() {
|
|
timer.cancel();
|
|
}
|
|
|
|
public QuotaUsage getQuotaUsage() {
|
|
return quotaUsage;
|
|
}
|
|
|
|
public QuotaDBPersistence getQuotaDbPersistence() {
|
|
return quotaDbPersistence;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|