Loading src/main/java/org/etsi/osl/cridge/CRRouteBuilder.java +4 −4 Original line number Diff line number Diff line Loading @@ -57,8 +57,8 @@ public class CRRouteBuilder extends RouteBuilder{ .bean( kubernetesClientResource, "patchCR(${headers}, ${body})") .convertBodyTo( String.class ); // every 3600000 ms (60 minutes) from( "timer://processUpdateResources?period=3600000" ) // every 120000 ms (2 minutes) from( "timer://processUpdateResources?period=120000" ) .log(LoggingLevel.INFO, log, " process nameSpacesTobeDeleted!") .to("log:DEBUG?showBody=true&showHeaders=true") .bean( CRRouteBuilder.class , "processNameSpacesTobeDeleted()"); Loading @@ -72,8 +72,8 @@ public class CRRouteBuilder extends RouteBuilder{ 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 long diff = TimeUnit.MINUTES.convert(diffInMillies, TimeUnit.MILLISECONDS); if (diff<=2) { //after 2 minutes this namespace will be deleted return; } Loading src/main/java/org/etsi/osl/cridge/KubernetesClientResource.java +20 −3 Original line number Diff line number Diff line Loading @@ -66,7 +66,7 @@ public class KubernetesClientResource { */ private ConcurrentHashMap<String, Date> nameSpacesTobeDeleted = new ConcurrentHashMap<>(); private Map<String, Object> watchersForNamespaces = new HashMap<>(); private Map<String, NamespaceWatcher> watchersForNamespaces = new HashMap<>(); Loading Loading @@ -481,8 +481,14 @@ 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(); return "ERROR " + e.getMessage(); Loading Loading @@ -519,8 +525,19 @@ public class KubernetesClientResource { } } })); gkr.getMetadata().setNamespace( (String) headers.get("org.etsi.osl.namespace") ); //set default namespace the service Order ID if a namespace is not there //we must change and assign a name to the resource if ( headers.get("org.etsi.osl.prefixId") !=null ) { gkr.getMetadata().setName( (String) headers.get("org.etsi.osl.prefixName") ) ; }else { //it must start with an alpha character gkr.getMetadata().setName( "cr" + ((String) headers.get("org.etsi.osl.resourceId")).substring(0, 8) ) ; } if ( gkr.getMetadata().getNamespace() == null || gkr.getMetadata().getNamespace().equals("") ) { gkr.getMetadata().setNamespace( (String) headers.get("org.etsi.osl.serviceOrderId") ); //set default namespace the service Order ID if a namespace is not there } logger.debug("{}", gkr.toString() ); Loading src/main/java/org/etsi/osl/cridge/NamespaceWatcher.java +49 −12 Original line number Diff line number Diff line Loading @@ -11,6 +11,7 @@ import org.etsi.osl.domain.model.kubernetes.KubernetesSecret; import org.etsi.osl.domain.model.kubernetes.KubernetesService; 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.yaml.snakeyaml.Yaml; Loading Loading @@ -127,7 +128,7 @@ public class NamespaceWatcher { } })); updateKubernetesSecretResourceInOSLCatalog( obj ); updateKubernetesSecretResourceInOSLCatalog( obj, false ); } Loading @@ -139,7 +140,7 @@ public class NamespaceWatcher { newObj.getMetadata().getName(), newObj.getMetadata().getUid(), newObj.getMetadata().getNamespace()); updateKubernetesSecretResourceInOSLCatalog( newObj ); updateKubernetesSecretResourceInOSLCatalog( newObj, false ); } Loading @@ -150,7 +151,7 @@ public class NamespaceWatcher { obj.getMetadata().getName(), obj.getMetadata().getUid(), obj.getMetadata().getNamespace()); updateKubernetesSecretResourceInOSLCatalog( obj ); updateKubernetesSecretResourceInOSLCatalog( obj, true ); } Loading @@ -166,8 +167,15 @@ public class NamespaceWatcher { private void updateKubernetesSecretResourceInOSLCatalog(Secret resource) { private void updateKubernetesSecretResourceInOSLCatalog(Secret resource, boolean toDelete) { // if (this.informers.size() == 0) { // logger.debug("Informers are 0. Will exit updateKubernetesSecretResourceInOSLCatalog"); // return; // } ResourceCreate rs = this.KubernetesSecret2OpensliceResource( resource ).toResourceCreate(); if (toDelete) { rs.setResourceStatus(ResourceStatusType.SUSPENDED); } catalogClient.createOrUpdateResourceByNameCategoryVersion( rs ); } Loading Loading @@ -263,7 +271,7 @@ public class NamespaceWatcher { } })); updateKubernetesServiceResourceInOSLCatalog( obj ); updateKubernetesServiceResourceInOSLCatalog( obj, false ); } Loading @@ -275,7 +283,7 @@ public class NamespaceWatcher { newObj.getMetadata().getName(), newObj.getMetadata().getUid(), newObj.getMetadata().getNamespace()); updateKubernetesServiceResourceInOSLCatalog( newObj ); updateKubernetesServiceResourceInOSLCatalog( newObj, false ); } Loading @@ -286,7 +294,7 @@ public class NamespaceWatcher { obj.getMetadata().getName(), obj.getMetadata().getUid(), obj.getMetadata().getNamespace()); updateKubernetesServiceResourceInOSLCatalog( obj ); updateKubernetesServiceResourceInOSLCatalog( obj, true ); } Loading @@ -301,8 +309,15 @@ public class NamespaceWatcher { private void updateKubernetesServiceResourceInOSLCatalog(Service resource) { private void updateKubernetesServiceResourceInOSLCatalog(Service resource, boolean toDelete) { // if (this.informers.size() == 0) { // logger.debug("Informers are 0. Will exit updateKubernetesServiceResourceInOSLCatalog"); // return; // } ResourceCreate rs = this.KubernetesService2OpensliceResource( resource ).toResourceCreate(); if (toDelete) { rs.setResourceStatus(ResourceStatusType.SUSPENDED); } catalogClient.createOrUpdateResourceByNameCategoryVersion( rs ); } Loading Loading @@ -422,7 +437,7 @@ public class NamespaceWatcher { } })); updateKubernetesConfigMapResourceInOSLCatalog( obj ); updateKubernetesConfigMapResourceInOSLCatalog( obj, false ); } Loading @@ -434,7 +449,7 @@ public class NamespaceWatcher { newObj.getMetadata().getName(), newObj.getMetadata().getUid(), newObj.getMetadata().getNamespace()); updateKubernetesConfigMapResourceInOSLCatalog( newObj ); updateKubernetesConfigMapResourceInOSLCatalog( newObj, false ); } Loading @@ -445,7 +460,7 @@ public class NamespaceWatcher { obj.getMetadata().getName(), obj.getMetadata().getUid(), obj.getMetadata().getNamespace()); updateKubernetesConfigMapResourceInOSLCatalog( obj ); updateKubernetesConfigMapResourceInOSLCatalog( obj, true ); } Loading @@ -458,8 +473,15 @@ public class NamespaceWatcher { } private void updateKubernetesConfigMapResourceInOSLCatalog(ConfigMap resource) { private void updateKubernetesConfigMapResourceInOSLCatalog(ConfigMap resource, boolean toDelete) { // if (this.informers.size() == 0) { // logger.debug("Informers are 0. Will exit updateKubernetesConfigMapResourceInOSLCatalog"); // return; // } ResourceCreate rs = this.KubernetesConfigMap2OpensliceResource( resource ).toResourceCreate(); if (toDelete) { rs.setResourceStatus(ResourceStatusType.SUSPENDED); } catalogClient.createOrUpdateResourceByNameCategoryVersion( rs ); } Loading Loading @@ -513,4 +535,19 @@ public class NamespaceWatcher { return kcrv; } public void disableNamespace(String ns) { this.kubernetesClient.configMaps().inNamespace(ns).delete(); this.kubernetesClient.secrets().inNamespace(ns).delete(); this.kubernetesClient.services().inNamespace(ns).delete(); // for (SharedIndexInformer<?> sharedIndexInformer : informers) { // sharedIndexInformer.stop(); // sharedIndexInformer.close(); // // } // this.informers.clear(); } } Loading
src/main/java/org/etsi/osl/cridge/CRRouteBuilder.java +4 −4 Original line number Diff line number Diff line Loading @@ -57,8 +57,8 @@ public class CRRouteBuilder extends RouteBuilder{ .bean( kubernetesClientResource, "patchCR(${headers}, ${body})") .convertBodyTo( String.class ); // every 3600000 ms (60 minutes) from( "timer://processUpdateResources?period=3600000" ) // every 120000 ms (2 minutes) from( "timer://processUpdateResources?period=120000" ) .log(LoggingLevel.INFO, log, " process nameSpacesTobeDeleted!") .to("log:DEBUG?showBody=true&showHeaders=true") .bean( CRRouteBuilder.class , "processNameSpacesTobeDeleted()"); Loading @@ -72,8 +72,8 @@ public class CRRouteBuilder extends RouteBuilder{ 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 long diff = TimeUnit.MINUTES.convert(diffInMillies, TimeUnit.MILLISECONDS); if (diff<=2) { //after 2 minutes this namespace will be deleted return; } Loading
src/main/java/org/etsi/osl/cridge/KubernetesClientResource.java +20 −3 Original line number Diff line number Diff line Loading @@ -66,7 +66,7 @@ public class KubernetesClientResource { */ private ConcurrentHashMap<String, Date> nameSpacesTobeDeleted = new ConcurrentHashMap<>(); private Map<String, Object> watchersForNamespaces = new HashMap<>(); private Map<String, NamespaceWatcher> watchersForNamespaces = new HashMap<>(); Loading Loading @@ -481,8 +481,14 @@ 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(); return "ERROR " + e.getMessage(); Loading Loading @@ -519,8 +525,19 @@ public class KubernetesClientResource { } } })); gkr.getMetadata().setNamespace( (String) headers.get("org.etsi.osl.namespace") ); //set default namespace the service Order ID if a namespace is not there //we must change and assign a name to the resource if ( headers.get("org.etsi.osl.prefixId") !=null ) { gkr.getMetadata().setName( (String) headers.get("org.etsi.osl.prefixName") ) ; }else { //it must start with an alpha character gkr.getMetadata().setName( "cr" + ((String) headers.get("org.etsi.osl.resourceId")).substring(0, 8) ) ; } if ( gkr.getMetadata().getNamespace() == null || gkr.getMetadata().getNamespace().equals("") ) { gkr.getMetadata().setNamespace( (String) headers.get("org.etsi.osl.serviceOrderId") ); //set default namespace the service Order ID if a namespace is not there } logger.debug("{}", gkr.toString() ); Loading
src/main/java/org/etsi/osl/cridge/NamespaceWatcher.java +49 −12 Original line number Diff line number Diff line Loading @@ -11,6 +11,7 @@ import org.etsi.osl.domain.model.kubernetes.KubernetesSecret; import org.etsi.osl.domain.model.kubernetes.KubernetesService; 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.yaml.snakeyaml.Yaml; Loading Loading @@ -127,7 +128,7 @@ public class NamespaceWatcher { } })); updateKubernetesSecretResourceInOSLCatalog( obj ); updateKubernetesSecretResourceInOSLCatalog( obj, false ); } Loading @@ -139,7 +140,7 @@ public class NamespaceWatcher { newObj.getMetadata().getName(), newObj.getMetadata().getUid(), newObj.getMetadata().getNamespace()); updateKubernetesSecretResourceInOSLCatalog( newObj ); updateKubernetesSecretResourceInOSLCatalog( newObj, false ); } Loading @@ -150,7 +151,7 @@ public class NamespaceWatcher { obj.getMetadata().getName(), obj.getMetadata().getUid(), obj.getMetadata().getNamespace()); updateKubernetesSecretResourceInOSLCatalog( obj ); updateKubernetesSecretResourceInOSLCatalog( obj, true ); } Loading @@ -166,8 +167,15 @@ public class NamespaceWatcher { private void updateKubernetesSecretResourceInOSLCatalog(Secret resource) { private void updateKubernetesSecretResourceInOSLCatalog(Secret resource, boolean toDelete) { // if (this.informers.size() == 0) { // logger.debug("Informers are 0. Will exit updateKubernetesSecretResourceInOSLCatalog"); // return; // } ResourceCreate rs = this.KubernetesSecret2OpensliceResource( resource ).toResourceCreate(); if (toDelete) { rs.setResourceStatus(ResourceStatusType.SUSPENDED); } catalogClient.createOrUpdateResourceByNameCategoryVersion( rs ); } Loading Loading @@ -263,7 +271,7 @@ public class NamespaceWatcher { } })); updateKubernetesServiceResourceInOSLCatalog( obj ); updateKubernetesServiceResourceInOSLCatalog( obj, false ); } Loading @@ -275,7 +283,7 @@ public class NamespaceWatcher { newObj.getMetadata().getName(), newObj.getMetadata().getUid(), newObj.getMetadata().getNamespace()); updateKubernetesServiceResourceInOSLCatalog( newObj ); updateKubernetesServiceResourceInOSLCatalog( newObj, false ); } Loading @@ -286,7 +294,7 @@ public class NamespaceWatcher { obj.getMetadata().getName(), obj.getMetadata().getUid(), obj.getMetadata().getNamespace()); updateKubernetesServiceResourceInOSLCatalog( obj ); updateKubernetesServiceResourceInOSLCatalog( obj, true ); } Loading @@ -301,8 +309,15 @@ public class NamespaceWatcher { private void updateKubernetesServiceResourceInOSLCatalog(Service resource) { private void updateKubernetesServiceResourceInOSLCatalog(Service resource, boolean toDelete) { // if (this.informers.size() == 0) { // logger.debug("Informers are 0. Will exit updateKubernetesServiceResourceInOSLCatalog"); // return; // } ResourceCreate rs = this.KubernetesService2OpensliceResource( resource ).toResourceCreate(); if (toDelete) { rs.setResourceStatus(ResourceStatusType.SUSPENDED); } catalogClient.createOrUpdateResourceByNameCategoryVersion( rs ); } Loading Loading @@ -422,7 +437,7 @@ public class NamespaceWatcher { } })); updateKubernetesConfigMapResourceInOSLCatalog( obj ); updateKubernetesConfigMapResourceInOSLCatalog( obj, false ); } Loading @@ -434,7 +449,7 @@ public class NamespaceWatcher { newObj.getMetadata().getName(), newObj.getMetadata().getUid(), newObj.getMetadata().getNamespace()); updateKubernetesConfigMapResourceInOSLCatalog( newObj ); updateKubernetesConfigMapResourceInOSLCatalog( newObj, false ); } Loading @@ -445,7 +460,7 @@ public class NamespaceWatcher { obj.getMetadata().getName(), obj.getMetadata().getUid(), obj.getMetadata().getNamespace()); updateKubernetesConfigMapResourceInOSLCatalog( obj ); updateKubernetesConfigMapResourceInOSLCatalog( obj, true ); } Loading @@ -458,8 +473,15 @@ public class NamespaceWatcher { } private void updateKubernetesConfigMapResourceInOSLCatalog(ConfigMap resource) { private void updateKubernetesConfigMapResourceInOSLCatalog(ConfigMap resource, boolean toDelete) { // if (this.informers.size() == 0) { // logger.debug("Informers are 0. Will exit updateKubernetesConfigMapResourceInOSLCatalog"); // return; // } ResourceCreate rs = this.KubernetesConfigMap2OpensliceResource( resource ).toResourceCreate(); if (toDelete) { rs.setResourceStatus(ResourceStatusType.SUSPENDED); } catalogClient.createOrUpdateResourceByNameCategoryVersion( rs ); } Loading Loading @@ -513,4 +535,19 @@ public class NamespaceWatcher { return kcrv; } public void disableNamespace(String ns) { this.kubernetesClient.configMaps().inNamespace(ns).delete(); this.kubernetesClient.secrets().inNamespace(ns).delete(); this.kubernetesClient.services().inNamespace(ns).delete(); // for (SharedIndexInformer<?> sharedIndexInformer : informers) { // sharedIndexInformer.stop(); // sharedIndexInformer.close(); // // } // this.informers.clear(); } }