diff --git a/src/main/java/org/etsi/osl/cridge/CRRouteBuilder.java b/src/main/java/org/etsi/osl/cridge/CRRouteBuilder.java index 83237090c17a55f30ffd5864ea6db9c126dbabbd..b6a920b651f70da476f130aac4c2b15f7ceaa3e3 100644 --- a/src/main/java/org/etsi/osl/cridge/CRRouteBuilder.java +++ b/src/main/java/org/etsi/osl/cridge/CRRouteBuilder.java @@ -57,8 +57,8 @@ public class CRRouteBuilder extends RouteBuilder{ .bean( kubernetesClientResource, "patchCR(${headers}, ${body})") .convertBodyTo( String.class ); - // every 120000 ms (2 minutes) - from( "timer://processUpdateResources?period=120000" ) + // every 300000 ms (5 minutes) + from( "timer://processUpdateResources?period=300000" ) .log(LoggingLevel.INFO, log, " process nameSpacesTobeDeleted!") .to("log:DEBUG?showBody=true&showHeaders=true") .bean( CRRouteBuilder.class , "processNameSpacesTobeDeleted()"); @@ -73,9 +73,9 @@ public class CRRouteBuilder extends RouteBuilder{ long diffInMillies = Math.abs(currentTime .getTime() - datetime.getTime()); long diff = TimeUnit.MINUTES.convert(diffInMillies, TimeUnit.MILLISECONDS); - if (diff<=2) { //after 2 minutes this namespace will be deleted + if (diff<=10) { //after 10 minutes this namespace will be deleted return; - } + } try (final KubernetesClient k8s = new KubernetesClientBuilder().build()) { logger.info("Trying to delete namespace {}", nameSpaceName); @@ -85,6 +85,11 @@ public class CRRouteBuilder extends RouteBuilder{ .endMetadata().build(); k8s.namespaces().resource(ns).delete(); + NamespaceWatcher watchersForNamespace = kubernetesClientResource.getWatchersForNamespaces().get( nameSpaceName ); + if ( watchersForNamespace!= null) { + watchersForNamespace.disableNamespace( nameSpaceName ); + } + kubernetesClientResource.getWatchersForNamespaces().remove(nameSpaceName); kubernetesClientResource.getNameSpacesTobeDeleted().remove(nameSpaceName); }catch (Exception e) { e.printStackTrace(); diff --git a/src/main/java/org/etsi/osl/cridge/KubernetesClientResource.java b/src/main/java/org/etsi/osl/cridge/KubernetesClientResource.java index 4546d74a4d2dff2708f3f5c3c8c9d193bb9e4631..1d35d36b4aeba20cb036948988d041e52ce4f9f9 100644 --- a/src/main/java/org/etsi/osl/cridge/KubernetesClientResource.java +++ b/src/main/java/org/etsi/osl/cridge/KubernetesClientResource.java @@ -481,13 +481,6 @@ public class KubernetesClientResource { this.nameSpacesTobeDeleted.put(nameSpacename, new Date() ); - NamespaceWatcher watchersForNamespace = this.watchersForNamespaces.get(nameSpacename); - if ( watchersForNamespace!= null) { - watchersForNamespace.disableNamespace( nameSpacename ); - } - - this.watchersForNamespaces.remove(nameSpacename); - }catch (Exception e) { e.printStackTrace(); diff --git a/src/main/java/org/etsi/osl/cridge/NamespaceWatcher.java b/src/main/java/org/etsi/osl/cridge/NamespaceWatcher.java index 1e1ea08a88eb30f3d6704479fb774adfaa44cc4b..268957abb44048ccd80819fd4f59975a1ba351a7 100644 --- a/src/main/java/org/etsi/osl/cridge/NamespaceWatcher.java +++ b/src/main/java/org/etsi/osl/cridge/NamespaceWatcher.java @@ -14,6 +14,7 @@ import org.etsi.osl.tmf.ri639.model.ResourceCreate; import org.etsi.osl.tmf.ri639.model.ResourceStatusType; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.yaml.snakeyaml.Yaml; import io.fabric8.kubernetes.api.model.ConfigMap; import io.fabric8.kubernetes.api.model.ObjectMeta; @@ -45,6 +46,10 @@ public class NamespaceWatcher { List< SharedIndexInformer<?>> informers = new ArrayList<>(); + + @Autowired + private KubernetesClientResource kubernetesClientResource; + public NamespaceWatcher(KubernetesClient kubernetesClient, CatalogClient catalogClient, String anameSpacename, Map<String, Object> aheaders) { super(); @@ -140,7 +145,11 @@ public class NamespaceWatcher { newObj.getMetadata().getName(), newObj.getMetadata().getUid(), newObj.getMetadata().getNamespace()); - updateKubernetesSecretResourceInOSLCatalog( newObj, false ); + if ( kubernetesClientResource.getNameSpacesTobeDeleted().get( newObj.getMetadata().getNamespace())==null ) { + updateKubernetesSecretResourceInOSLCatalog( newObj, false ); + } else { + updateKubernetesSecretResourceInOSLCatalog( newObj, true ); + } } @@ -283,7 +292,12 @@ public class NamespaceWatcher { newObj.getMetadata().getName(), newObj.getMetadata().getUid(), newObj.getMetadata().getNamespace()); - updateKubernetesServiceResourceInOSLCatalog( newObj, false ); + //check if namespace is under deletion so to ignore any changes + if ( kubernetesClientResource.getNameSpacesTobeDeleted().get( newObj.getMetadata().getNamespace()) == null ) { + updateKubernetesServiceResourceInOSLCatalog( newObj, false ); + } else { + updateKubernetesServiceResourceInOSLCatalog( newObj, true ); + } } @@ -449,7 +463,13 @@ public class NamespaceWatcher { newObj.getMetadata().getName(), newObj.getMetadata().getUid(), newObj.getMetadata().getNamespace()); - updateKubernetesConfigMapResourceInOSLCatalog( newObj, false ); + //check if namespace is under deletion so to ignore any changes + if ( kubernetesClientResource.getNameSpacesTobeDeleted().get( newObj.getMetadata().getNamespace()) == null ) { + updateKubernetesConfigMapResourceInOSLCatalog( newObj, false ); + } else { + updateKubernetesConfigMapResourceInOSLCatalog( newObj, true ); + } + }