Skip to content
Snippets Groups Projects
Commit dc6a7268 authored by tranoris's avatar tranoris
Browse files

Implementing CR patch

parent c44d9219
No related branches found
No related tags found
1 merge request!8Merging 2024Q2_RC into main, creating 2024Q2 Release
...@@ -444,13 +444,20 @@ public class KubernetesClientResource { ...@@ -444,13 +444,20 @@ public class KubernetesClientResource {
} }
} }
})); }));
//we must change and assign a name to the resource
if ( headers.get("org.etsi.osl.prefixId") !=null ) { if ( headers.get("org.etsi.osl.prefixId") !=null ) {
gkr.getMetadata().setName( (String) headers.get("org.etsi.osl.prefixName") ) ; gkr.getMetadata().setName( (String) headers.get("org.etsi.osl.prefixName") ) ;
}else { }else {
gkr.getMetadata().setName( "cr" + ((String) headers.get("org.etsi.osl.resourceId")).substring(0, 8) ) ; //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
}
String nameSpacename = (String) headers.get("org.etsi.osl.namespace"); String nameSpacename = (String) headers.get("org.etsi.osl.namespace");
try { try {
...@@ -615,22 +622,70 @@ public class KubernetesClientResource { ...@@ -615,22 +622,70 @@ public class KubernetesClientResource {
}catch (Exception e) { }catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
return "DONE"; return "DONE";
} }
public String patchCR(Map<String, Object> headers, String crspec) { public String patchCR(Map<String, Object> headers, String crspec) {
logger.debug("============ patchCR crspec =============");
logger.debug("============ PATCH crspec =============" ); logger.debug("Check if this CRIDGE instance is related to this kubernets cluster context");
logger.debug("{}", crspec ); if (!checkCRIDGEClusterContext(headers)) {
logger.error("NOT IMPLEMENTED" ); return "SEE OTHER";
}
return "DONE";
logger.debug("Patch the following CR:");
logger.debug("{}", crspec);
try (final KubernetesClient k8s = new KubernetesClientBuilder().build()) {
GenericKubernetesResource gkr = Serialization.unmarshal( crspec );
headers.forEach(((hname, hval) ->{
if (hval instanceof String s) {
if ( hname.contains("org.etsi.osl")) {
logger.debug("Header: {} = {} ", hname, s );
if ( gkr.getMetadata() == null ) {
gkr.setMetadata( new ObjectMeta());
gkr.getMetadata().setLabels( new HashMap<String, String>());
}
gkr.getMetadata().getLabels().put(hname, s);
}
}
}));
gkr.getMetadata().setNamespace( (String) headers.get("org.etsi.osl.namespace") ); //set default namespace the service Order ID if a namespace is not there
gkr.getMetadata().setName( (String) headers.get("org.etsi.osl.prefixName") ) ;
logger.debug("{}", gkr.toString() );
Resource<GenericKubernetesResource> dummyObject = k8s.resource( gkr );
dummyObject.patch();
}catch (Exception e) {
e.printStackTrace();
return "FAIL " + e.getMessage();
}
return "OK";
}
private Boolean checkCRIDGEClusterContext( Map<String, Object> headers) {
if ( (headers.get("currentContextCluster") ==null) ||
(headers.get("clusterMasterURL") ==null) ||
( ! headers.get("currentContextCluster").equals( kubernetesContextDefinition.getCurrentContextCluster() )) ||
( ! headers.get("clusterMasterURL").equals( kubernetesContextDefinition.getMasterURL() ))) {
logger.debug("Will return SEE OTHER header.currentContextCluster={}, this.context= {} header.clusterMasterURLclusterMasterURL={}, this.context= {}",
headers.get("currentContextCluster"),
kubernetesContextDefinition.getCurrentContextCluster(),
headers.get("clusterMasterURL"),
kubernetesContextDefinition.getMasterURL() );
return false;
}
return 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