2022-02-16 22:34:30 +01:00
|
|
|
package org.gcube.gcat.configuration;
|
2022-02-15 09:59:02 +01:00
|
|
|
|
|
|
|
import java.util.HashMap;
|
|
|
|
import java.util.Map;
|
|
|
|
|
2022-02-28 15:43:40 +01:00
|
|
|
import org.gcube.common.authorization.utils.manager.SecretManagerProvider;
|
2022-02-15 09:59:02 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @author Luca Frosini (ISTI - CNR)
|
|
|
|
*/
|
|
|
|
public class CatalogueConfigurationFactory {
|
|
|
|
|
2022-02-17 16:32:54 +01:00
|
|
|
private static final Map<String, ServiceCatalogueConfiguration> catalogueConfigurations;
|
2022-02-15 09:59:02 +01:00
|
|
|
|
|
|
|
static {
|
|
|
|
catalogueConfigurations = new HashMap<>();
|
|
|
|
}
|
|
|
|
|
2022-02-17 16:32:54 +01:00
|
|
|
protected static ServiceCatalogueConfiguration load(String context) {
|
2022-02-15 09:59:02 +01:00
|
|
|
GCoreISConfigurationProxy gCoreISConfigurationProxy = new GCoreISConfigurationProxy(context);
|
|
|
|
return gCoreISConfigurationProxy.getCatalogueConfiguration();
|
|
|
|
}
|
|
|
|
|
2022-02-17 16:32:54 +01:00
|
|
|
public synchronized static ServiceCatalogueConfiguration getInstance() {
|
2022-02-28 15:43:40 +01:00
|
|
|
String context = SecretManagerProvider.instance.get().getContext();
|
2022-02-17 16:32:54 +01:00
|
|
|
ServiceCatalogueConfiguration catalogueConfiguration = catalogueConfigurations.get(context);
|
2022-02-15 09:59:02 +01:00
|
|
|
if(catalogueConfiguration == null) {
|
|
|
|
catalogueConfiguration = load(context);
|
|
|
|
catalogueConfigurations.put(context, catalogueConfiguration);
|
|
|
|
}
|
|
|
|
return catalogueConfiguration;
|
|
|
|
}
|
|
|
|
|
|
|
|
public synchronized static void renew() {
|
2022-02-28 15:43:40 +01:00
|
|
|
String context = SecretManagerProvider.instance.get().getContext();
|
2022-02-15 09:59:02 +01:00
|
|
|
catalogueConfigurations.remove(context);
|
2022-02-17 16:32:54 +01:00
|
|
|
ServiceCatalogueConfiguration catalogueConfiguration = load(context);
|
2022-02-15 09:59:02 +01:00
|
|
|
catalogueConfigurations.put(context, catalogueConfiguration);
|
|
|
|
}
|
|
|
|
|
|
|
|
public synchronized static void purge() {
|
|
|
|
// Remove the resource from IS
|
2022-02-28 15:43:40 +01:00
|
|
|
String context = SecretManagerProvider.instance.get().getContext();
|
2022-02-15 09:59:02 +01:00
|
|
|
catalogueConfigurations.remove(context);
|
|
|
|
GCoreISConfigurationProxy gCoreISConfigurationProxy = new GCoreISConfigurationProxy(context);
|
|
|
|
gCoreISConfigurationProxy.delete();
|
|
|
|
}
|
|
|
|
|
2022-02-17 16:32:54 +01:00
|
|
|
public synchronized static ServiceCatalogueConfiguration createOrUpdate(ServiceCatalogueConfiguration catalogueConfiguration) throws Exception {
|
2022-02-28 15:43:40 +01:00
|
|
|
String context = SecretManagerProvider.instance.get().getContext();
|
2022-02-15 09:59:02 +01:00
|
|
|
catalogueConfigurations.remove(context);
|
|
|
|
GCoreISConfigurationProxy gCoreISConfigurationProxy = new GCoreISConfigurationProxy(context, catalogueConfiguration);
|
2022-02-15 16:22:53 +01:00
|
|
|
catalogueConfiguration = gCoreISConfigurationProxy.createOrUpdateOnIS();
|
2022-02-15 09:59:02 +01:00
|
|
|
catalogueConfigurations.put(context, catalogueConfiguration);
|
|
|
|
return catalogueConfiguration;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|