Commit 847c6263 authored by Kostis Trantzas's avatar Kostis Trantzas
Browse files

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

Resolve "Refactor CRIDGE CR deletion"

See merge request !19
parents 092ad6f3 33f1416a
Loading
Loading
Loading
Loading
Loading
+9 −4
Original line number Diff line number Diff line
@@ -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,7 +73,7 @@ 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;
	     }	     
	     
@@ -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();
+0 −7
Original line number Diff line number Diff line
@@ -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();
+23 −3
Original line number Diff line number Diff line
@@ -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;
@@ -46,6 +47,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();
    this.kubernetesClient = kubernetesClient;
@@ -140,7 +145,11 @@ public class NamespaceWatcher {
                  newObj.getMetadata().getName(),
                  newObj.getMetadata().getUid(),
                  newObj.getMetadata().getNamespace());
              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());
            //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());
              //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 );
              }
                  
              
            }