Commit 7b3c90e1 authored by Christos Tranoris's avatar Christos Tranoris
Browse files

remove unused imports

#2
parent f53674c2
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -23,7 +23,6 @@ package org.etsi.osl.cridge;
import org.apache.camel.component.activemq.ActiveMQComponent;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import jakarta.jms.ConnectionFactory;

/**
+16 −8
Original line number Diff line number Diff line
package org.etsi.osl.cridge;

import java.util.concurrent.ConcurrentHashMap;
import java.util.Date;
import java.util.concurrent.TimeUnit;
import org.apache.camel.LoggingLevel;
import org.apache.camel.builder.RouteBuilder;
import org.slf4j.Logger;
@@ -12,7 +13,6 @@ import io.fabric8.kubernetes.api.model.Namespace;
import io.fabric8.kubernetes.api.model.NamespaceBuilder;
import io.fabric8.kubernetes.client.KubernetesClient;
import io.fabric8.kubernetes.client.KubernetesClientBuilder;
import org.etsi.osl.tmf.rcm634.model.ResourceSpecification;
import lombok.Getter;

@Service
@@ -57,8 +57,8 @@ public class CRRouteBuilder extends RouteBuilder{
        .bean( kubernetesClientResource, "patchCR(${headers}, ${body})")
        .convertBodyTo( String.class );
        
        
      from( "timer://processUpdateResources?period=60000" )
        // every  3600000 ms (60 minutes)
        from( "timer://processUpdateResources?period=3600000" )
        .log(LoggingLevel.INFO, log, " process nameSpacesTobeDeleted!")
        .to("log:DEBUG?showBody=true&showHeaders=true")
        .bean( CRRouteBuilder.class , "processNameSpacesTobeDeleted()");
@@ -67,7 +67,15 @@ public class CRRouteBuilder extends RouteBuilder{
	
	 public void processNameSpacesTobeDeleted() {
	   
	   kubernetesClientResource.getNameSpacesTobeDeleted().forEach( (nameSpaceName, nameSpaceId) -> {
	   kubernetesClientResource.getNameSpacesTobeDeleted().forEach( (nameSpaceName, datetime) -> {
	     
	     Date currentTime = new Date(); //get current time
	     long diffInMillies = Math.abs(currentTime .getTime() - datetime.getTime());
	     
	     long diff = TimeUnit.HOURS.convert(diffInMillies, TimeUnit.MILLISECONDS);
	     if (diff<=2) { //after 2 hours this namespace will be deleted
	       return;
	     }
	     
	     try (final KubernetesClient k8s = new KubernetesClientBuilder().build()) {
	       logger.info("Trying to delete namespace {}", nameSpaceName);
+5 −11
Original line number Diff line number Diff line
@@ -3,21 +3,10 @@ package org.etsi.osl.cridge;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.ObjectMapper;

import org.apache.camel.LoggingLevel;
import org.apache.camel.ProducerTemplate;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.model.dataformat.JsonLibrary;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;

import org.etsi.osl.model.DeploymentDescriptor;
import org.etsi.osl.tmf.rcm634.model.LogicalResourceSpecification;
import org.etsi.osl.tmf.rcm634.model.ResourceSpecification;
import org.etsi.osl.tmf.rcm634.model.ResourceSpecificationCreate;
@@ -25,6 +14,11 @@ import org.etsi.osl.tmf.ri639.model.LogicalResource;
import org.etsi.osl.tmf.ri639.model.Resource;
import org.etsi.osl.tmf.ri639.model.ResourceCreate;
import org.etsi.osl.tmf.ri639.model.ResourceUpdate;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;

/**
 * @author ctranoris
+30 −50
Original line number Diff line number Diff line
@@ -19,42 +19,18 @@
 */
package org.etsi.osl.cridge;

import java.util.Map;
import java.util.Objects;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.ExitCodeGenerator;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.event.ApplicationReadyEvent;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationListener;
import org.springframework.context.annotation.Bean;
import org.springframework.context.event.ContextStoppedEvent;
import org.springframework.scheduling.annotation.EnableScheduling;

import io.fabric8.kubernetes.api.model.GenericKubernetesResource;
import io.fabric8.kubernetes.api.model.ListOptionsBuilder;
import io.fabric8.kubernetes.api.model.Node;
import io.fabric8.kubernetes.api.model.NodeList;
import io.fabric8.kubernetes.api.model.Pod;
import io.fabric8.kubernetes.api.model.PodList;
import io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinition;
import io.fabric8.kubernetes.client.DefaultKubernetesClient;
import io.fabric8.kubernetes.client.Config;
import io.fabric8.kubernetes.client.KubernetesClient;
import io.fabric8.kubernetes.client.KubernetesClientBuilder;
import io.fabric8.kubernetes.client.KubernetesClientException;
import io.fabric8.kubernetes.client.Watch;
import io.fabric8.kubernetes.client.Watcher;
import io.fabric8.kubernetes.client.WatcherException;
import io.fabric8.kubernetes.client.Watcher.Action;
import io.fabric8.kubernetes.client.dsl.base.ResourceDefinitionContext;
import io.fabric8.kubernetes.client.informers.ResourceEventHandler;
import io.fabric8.kubernetes.client.informers.SharedIndexInformer;
import io.fabric8.kubernetes.client.informers.SharedInformerFactory;

/**
 * @author ctranoris
@@ -66,12 +42,16 @@ public class CridgeSpingBoot implements CommandLineRunner {

  private static ApplicationContext applicationContext;

	private static final Logger logger = LoggerFactory.getLogger(CridgeSpingBoot.class.getSimpleName());
  private static final Logger logger =
      LoggerFactory.getLogger(CridgeSpingBoot.class.getSimpleName());


  @Bean
  KubernetesClient kubernetesClient() {
		return new KubernetesClientBuilder().build();
    System.setProperty(Config.KUBERNETES_KUBECONFIG_FILE , "C:\\Users\\ctranoris\\.kube\\10.10.10.144.config");
    Config config = Config.autoConfigure(null);
    return new KubernetesClientBuilder().withConfig(config).build();
    // return new KubernetesClientBuilder().build();
  }

  @Override
+24 −26
Original line number Diff line number Diff line
package org.etsi.osl.cridge;

import java.sql.Date;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import org.etsi.osl.domain.model.kubernetes.KubernetesCRDProperty;
import org.etsi.osl.domain.model.kubernetes.KubernetesCRDV1;
import org.etsi.osl.domain.model.kubernetes.KubernetesCRV1;
import org.etsi.osl.domain.model.kubernetes.KubernetesContextDefinition;
import org.etsi.osl.domain.model.kubernetes.KubernetesSecret;
import org.etsi.osl.tmf.common.model.EValueType;
import org.etsi.osl.tmf.rcm634.model.ResourceSpecification;
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.springframework.stereotype.Component;

import io.fabric8.kubernetes.api.model.GenericKubernetesResource;
import io.fabric8.kubernetes.api.model.Namespace;
import io.fabric8.kubernetes.api.model.NamespaceBuilder;
@@ -24,25 +29,10 @@ import io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinition
import io.fabric8.kubernetes.api.model.apiextensions.v1.JSONSchemaProps;
import io.fabric8.kubernetes.client.KubernetesClient;
import io.fabric8.kubernetes.client.KubernetesClientBuilder;
import io.fabric8.kubernetes.client.Watch;
import io.fabric8.kubernetes.client.Watcher;
import io.fabric8.kubernetes.client.WatcherException;
import io.fabric8.kubernetes.client.dsl.Resource;
import io.fabric8.kubernetes.client.informers.ResourceEventHandler;
import io.fabric8.kubernetes.client.informers.SharedIndexInformer;
import io.fabric8.kubernetes.client.informers.SharedInformerFactory;
import io.fabric8.kubernetes.client.utils.Serialization;
import org.etsi.osl.domain.model.DomainModelDefinition;
import org.etsi.osl.domain.model.kubernetes.KubernetesCRDProperty;
import org.etsi.osl.domain.model.kubernetes.KubernetesCRDV1;
import org.etsi.osl.domain.model.kubernetes.KubernetesCRV1;
import org.etsi.osl.domain.model.kubernetes.KubernetesContextDefinition;
import org.etsi.osl.domain.model.kubernetes.KubernetesSecret;
import org.etsi.osl.tmf.common.model.EValueType;
import org.etsi.osl.tmf.rcm634.model.ResourceSpecification;
import org.etsi.osl.tmf.ri639.model.ResourceCreate;
import org.etsi.osl.tmf.ri639.model.ResourceStatusType;
import org.etsi.osl.tmf.ri639.model.ResourceUpdate;
import lombok.Getter;

/**
@@ -71,8 +61,9 @@ public class KubernetesClientResource {

  /**
   * Garbage collect namespaces to be deleted
   * Key is the name of the namespace and value the datetime requested. We need this to properly expire this
   */
  private ConcurrentHashMap<String, String> nameSpacesTobeDeleted = new ConcurrentHashMap<>();
  private ConcurrentHashMap<String, Date> nameSpacesTobeDeleted = new ConcurrentHashMap<>();

  private Map<String, Object> watchersForNamespaces = new HashMap<>();

@@ -295,7 +286,7 @@ public class KubernetesClientResource {

    kcrv.setYaml( Serialization.asYaml( gkr ) );
    kcrv.setJson( Serialization.asJson( gkr ) );
    kcrv.setCr_spec( Serialization.asJson( gkr )  );
    kcrv.setCr_spec_applied( Serialization.asJson( gkr )  );

    return kcrv;

@@ -427,11 +418,15 @@ public class KubernetesClientResource {
      
    }
    

    
    logger.debug("Deploy the following CR:" );
    logger.debug("{}", crspec );
    
//    crspec = """
//             %s
//            """.formatted( crspec );
//
//    logger.debug("Deploy the following CR NORMALIZED:" );
//    logger.debug("{}", crspec );

    try (final KubernetesClient k8s = new KubernetesClientBuilder().build()) {

@@ -487,6 +482,8 @@ public class KubernetesClientResource {
      }
      

      logger.debug("{}", gkr.toString() );
      
      Resource<GenericKubernetesResource> dummyObject = k8s.resource( gkr );
      dummyObject.create();      
    }catch (Exception e) {
@@ -610,7 +607,8 @@ public class KubernetesClientResource {
      logger.debug("============ DELETE crspec: result {} =============", result.toString() );
      
      String nameSpacename = (String) headers.get("org.etsi.osl.namespace");
      this.nameSpacesTobeDeleted.put(nameSpacename, nameSpacename);
      
      this.nameSpacesTobeDeleted.put(nameSpacename, new Date() );
      this.watchersForNamespaces.remove(nameSpacename);
      
    }catch (Exception e) {
Loading