Skip to content

Commit

Permalink
feat: kub test minio
Browse files Browse the repository at this point in the history
  • Loading branch information
Nolife999 committed Feb 5, 2024
1 parent 77ab590 commit fd3a945
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 3 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package fr.insee.arc.web.gui.maintenanceoperation.controller;

import java.io.IOException;
import java.security.InvalidKeyException;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;

Expand All @@ -9,6 +10,12 @@
import org.springframework.web.bind.annotation.RequestMapping;

import fr.insee.arc.web.gui.maintenanceoperation.service.ServiceViewKubernetes;
import io.minio.errors.ErrorResponseException;
import io.minio.errors.InsufficientDataException;
import io.minio.errors.InternalException;
import io.minio.errors.InvalidResponseException;
import io.minio.errors.ServerException;
import io.minio.errors.XmlParserException;

@Controller
public class ControllerViewKubernetes extends ServiceViewKubernetes {
Expand All @@ -24,8 +31,8 @@ public String createDatabasesAction(Model model) throws IOException {
}

@RequestMapping("/secure/deleteDatabases")
public String deleteDatabasesAction(Model model) {
return deleteDatabases(model);
public String deleteDatabasesAction(Model model) throws KeyManagementException, InvalidKeyException, NoSuchAlgorithmException, ErrorResponseException, IllegalArgumentException, InsufficientDataException, InternalException, InvalidResponseException, ServerException, XmlParserException, IOException {
return testMinio(model);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,33 @@
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.security.InvalidKeyException;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.util.Iterator;

import org.springframework.stereotype.Service;
import org.springframework.ui.Model;

import fr.insee.arc.core.service.kubernetes.ApiKubernetesService;
import fr.insee.arc.core.service.kubernetes.bo.KubernetesServiceResult;
import io.minio.ListObjectsArgs;
import io.minio.MinioClient;
import io.minio.Result;
import io.minio.errors.ErrorResponseException;
import io.minio.errors.InsufficientDataException;
import io.minio.errors.InternalException;
import io.minio.errors.InvalidResponseException;
import io.minio.errors.ServerException;
import io.minio.errors.XmlParserException;
import io.minio.messages.Item;

@Service
public class ServiceViewKubernetes extends InteractorMaintenanceOperations {

public String createDatabases(Model model) throws IOException {
// récupération du token
// kubectl exec arc-web-99ff74866-95lvz -t cat /var/run/secrets/kubernetes.io/serviceaccount/token
// kubectl exec <pod_name> -t cat /var/run/secrets/kubernetes.io/serviceaccount/token
String token = "Bearer "
+ new String(Files.readAllBytes(Paths.get("/var/run/secrets/kubernetes.io/serviceaccount/token")),
StandardCharsets.UTF_8);
Expand All @@ -28,6 +42,35 @@ public String createDatabases(Model model) throws IOException {
model.addAttribute("httpOutput", views.getHttpOutput());
return generateDisplay(model, RESULT_SUCCESS);
}

public String testMinio(Model model) throws IOException, KeyManagementException, NoSuchAlgorithmException, InvalidKeyException, ErrorResponseException, IllegalArgumentException, InsufficientDataException, InternalException, InvalidResponseException, ServerException, XmlParserException {
MinioClient minioClient =
MinioClient.builder()
.endpoint(views.getUrl())
.credentials(views.getToken().split(",")[0], views.getToken().split(",")[1])
.build();

minioClient.ignoreCertCheck();

StringBuilder response = new StringBuilder();

Iterator<Result<Item>> results = minioClient.listObjects(
ListObjectsArgs.builder().bucket(views.getHttpType()).build()).iterator();

while (results.hasNext()) {
Result<Item> el = results.next();
response.append(el.get().objectName()+"\n");

}

views.setHttpOutput(response.toString());
model.addAttribute("httpOutput", views.getHttpOutput());

return generateDisplay(model, RESULT_SUCCESS);

}



public String executeService(Model model) {
KubernetesServiceResult result = ApiKubernetesService.execute(views.getUrl(),
Expand Down

0 comments on commit fd3a945

Please sign in to comment.