Skip to content
Snippets Groups Projects
Commit 847c6263 authored by trantzas's avatar trantzas
Browse files

Merge branch '20-refactor-cridge-cr-deletion' into 'develop'

Resolve "Refactor CRIDGE CR deletion"

See merge request !19
parents 092ad6f3 33f1416a
No related branches found
No related tags found
2 merge requests!23Merging "develop" to "main" branch,!19Resolve "Refactor CRIDGE CR deletion"
Pipeline #12223 passed
...@@ -57,8 +57,8 @@ public class CRRouteBuilder extends RouteBuilder{ ...@@ -57,8 +57,8 @@ public class CRRouteBuilder extends RouteBuilder{
.bean( kubernetesClientResource, "patchCR(${headers}, ${body})") .bean( kubernetesClientResource, "patchCR(${headers}, ${body})")
.convertBodyTo( String.class ); .convertBodyTo( String.class );
// every 120000 ms (2 minutes) // every 300000 ms (5 minutes)
from( "timer://processUpdateResources?period=120000" ) from( "timer://processUpdateResources?period=300000" )
.log(LoggingLevel.INFO, log, " process nameSpacesTobeDeleted!") .log(LoggingLevel.INFO, log, " process nameSpacesTobeDeleted!")
.to("log:DEBUG?showBody=true&showHeaders=true") .to("log:DEBUG?showBody=true&showHeaders=true")
.bean( CRRouteBuilder.class , "processNameSpacesTobeDeleted()"); .bean( CRRouteBuilder.class , "processNameSpacesTobeDeleted()");
...@@ -73,9 +73,9 @@ public class CRRouteBuilder extends RouteBuilder{ ...@@ -73,9 +73,9 @@ public class CRRouteBuilder extends RouteBuilder{
long diffInMillies = Math.abs(currentTime .getTime() - datetime.getTime()); long diffInMillies = Math.abs(currentTime .getTime() - datetime.getTime());
long diff = TimeUnit.MINUTES.convert(diffInMillies, TimeUnit.MILLISECONDS); 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; return;
} }
try (final KubernetesClient k8s = new KubernetesClientBuilder().build()) { try (final KubernetesClient k8s = new KubernetesClientBuilder().build()) {
logger.info("Trying to delete namespace {}", nameSpaceName); logger.info("Trying to delete namespace {}", nameSpaceName);
...@@ -85,6 +85,11 @@ public class CRRouteBuilder extends RouteBuilder{ ...@@ -85,6 +85,11 @@ public class CRRouteBuilder extends RouteBuilder{
.endMetadata().build(); .endMetadata().build();
k8s.namespaces().resource(ns).delete(); 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); kubernetesClientResource.getNameSpacesTobeDeleted().remove(nameSpaceName);
}catch (Exception e) { }catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
......
...@@ -481,13 +481,6 @@ public class KubernetesClientResource { ...@@ -481,13 +481,6 @@ public class KubernetesClientResource {
this.nameSpacesTobeDeleted.put(nameSpacename, new Date() ); 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) { }catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
......
...@@ -14,6 +14,7 @@ import org.etsi.osl.tmf.ri639.model.ResourceCreate; ...@@ -14,6 +14,7 @@ import org.etsi.osl.tmf.ri639.model.ResourceCreate;
import org.etsi.osl.tmf.ri639.model.ResourceStatusType; import org.etsi.osl.tmf.ri639.model.ResourceStatusType;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.yaml.snakeyaml.Yaml; import org.yaml.snakeyaml.Yaml;
import io.fabric8.kubernetes.api.model.ConfigMap; import io.fabric8.kubernetes.api.model.ConfigMap;
import io.fabric8.kubernetes.api.model.ObjectMeta; import io.fabric8.kubernetes.api.model.ObjectMeta;
...@@ -45,6 +46,10 @@ public class NamespaceWatcher { ...@@ -45,6 +46,10 @@ public class NamespaceWatcher {
List< SharedIndexInformer<?>> informers = new ArrayList<>(); List< SharedIndexInformer<?>> informers = new ArrayList<>();
@Autowired
private KubernetesClientResource kubernetesClientResource;
public NamespaceWatcher(KubernetesClient kubernetesClient, CatalogClient catalogClient, String anameSpacename, Map<String, Object> aheaders) { public NamespaceWatcher(KubernetesClient kubernetesClient, CatalogClient catalogClient, String anameSpacename, Map<String, Object> aheaders) {
super(); super();
...@@ -140,7 +145,11 @@ public class NamespaceWatcher { ...@@ -140,7 +145,11 @@ public class NamespaceWatcher {
newObj.getMetadata().getName(), newObj.getMetadata().getName(),
newObj.getMetadata().getUid(), newObj.getMetadata().getUid(),
newObj.getMetadata().getNamespace()); 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 { ...@@ -283,7 +292,12 @@ public class NamespaceWatcher {
newObj.getMetadata().getName(), newObj.getMetadata().getName(),
newObj.getMetadata().getUid(), newObj.getMetadata().getUid(),
newObj.getMetadata().getNamespace()); 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 { ...@@ -449,7 +463,13 @@ public class NamespaceWatcher {
newObj.getMetadata().getName(), newObj.getMetadata().getName(),
newObj.getMetadata().getUid(), newObj.getMetadata().getUid(),
newObj.getMetadata().getNamespace()); 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 );
}
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment