diff --git a/pom.xml b/pom.xml index 8fd6258..3b480fb 100644 --- a/pom.xml +++ b/pom.xml @@ -163,6 +163,28 @@ + + net.revelc.code + impsort-maven-plugin + 1.12.0 + + java.,jakarta.,org.,com.,io.,* + java.,jakarta.,org.,com.,io.,* + true + LF + + **/*.java + + + + + validate + + check + + + + diff --git a/src/main/java/dev/dinauer/IngressResource.java b/src/main/java/dev/dinauer/IngressResource.java index 18c017c..3f4c163 100644 --- a/src/main/java/dev/dinauer/IngressResource.java +++ b/src/main/java/dev/dinauer/IngressResource.java @@ -1,13 +1,7 @@ package dev.dinauer; -import dev.dinauer.service.IngressService; -import dev.dinauer.utils.ClientProvider; -import io.fabric8.kubernetes.api.model.networking.v1.Ingress; -import io.fabric8.kubernetes.client.KubernetesClient; -import io.fabric8.kubernetes.client.KubernetesClientBuilder; -import io.quarkus.security.Authenticated; -import io.smallrye.common.annotation.Blocking; -import jakarta.annotation.PostConstruct; +import java.util.List; + import jakarta.inject.Inject; import jakarta.ws.rs.GET; import jakarta.ws.rs.Path; @@ -15,7 +9,11 @@ import jakarta.ws.rs.Produces; import jakarta.ws.rs.QueryParam; import jakarta.ws.rs.core.MediaType; -import java.util.List; +import io.fabric8.kubernetes.api.model.networking.v1.Ingress; +import io.quarkus.security.Authenticated; +import io.smallrye.common.annotation.Blocking; + +import dev.dinauer.service.IngressService; @Path("/ingresses") @Blocking diff --git a/src/main/java/dev/dinauer/NamespaceResource.java b/src/main/java/dev/dinauer/NamespaceResource.java index a700f80..2c9d27d 100644 --- a/src/main/java/dev/dinauer/NamespaceResource.java +++ b/src/main/java/dev/dinauer/NamespaceResource.java @@ -1,12 +1,7 @@ package dev.dinauer; -import dev.dinauer.utils.ClientProvider; -import io.fabric8.kubernetes.api.model.Namespace; -import io.fabric8.kubernetes.client.KubernetesClient; -import io.fabric8.kubernetes.client.KubernetesClientBuilder; -import io.quarkus.security.Authenticated; -import io.smallrye.common.annotation.Blocking; -import jakarta.annotation.PostConstruct; +import java.util.List; + import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; import jakarta.ws.rs.GET; @@ -14,7 +9,11 @@ import jakarta.ws.rs.Path; import jakarta.ws.rs.Produces; import jakarta.ws.rs.core.MediaType; -import java.util.List; +import io.fabric8.kubernetes.api.model.Namespace; +import io.quarkus.security.Authenticated; +import io.smallrye.common.annotation.Blocking; + +import dev.dinauer.utils.ClientProvider; @Path("/namespaces") @ApplicationScoped diff --git a/src/main/java/dev/dinauer/PodResource.java b/src/main/java/dev/dinauer/PodResource.java index 2431be9..0872f96 100644 --- a/src/main/java/dev/dinauer/PodResource.java +++ b/src/main/java/dev/dinauer/PodResource.java @@ -1,21 +1,19 @@ package dev.dinauer; -import dev.dinauer.service.PodService; -import dev.dinauer.utils.ClientProvider; -import io.fabric8.kubernetes.api.model.Pod; -import io.quarkus.runtime.Startup; -import io.quarkus.security.Authenticated; -import io.smallrye.common.annotation.Blocking; -import jakarta.annotation.security.RolesAllowed; +import java.util.ArrayList; +import java.util.List; + import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; import jakarta.ws.rs.*; import jakarta.ws.rs.core.MediaType; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import java.util.ArrayList; -import java.util.List; +import io.fabric8.kubernetes.api.model.Pod; +import io.quarkus.runtime.Startup; +import io.smallrye.common.annotation.Blocking; + +import dev.dinauer.service.PodService; +import dev.dinauer.utils.ClientProvider; @Path("/pods") @Startup @@ -35,16 +33,16 @@ public class PodResource @Produces(MediaType.APPLICATION_JSON) @Consumes @Blocking - @Path("/{namespace}/{name}/env") - public List getEnv(@PathParam("namespace") String namespace, @PathParam("name") String name) + @Path("/{namespace}/{name}/{containerName}/env") + public List getEnv(@PathParam("namespace") String namespace, @PathParam("name") String name, @PathParam("containerName") String containerName) { - return getVars(podService.findByNameAndNamespace(name, namespace)); + return getVars(podService.findByNameAndNamespace(name, namespace), containerName); } - private List getVars(Pod pod) + private List getVars(Pod pod, String containerName) { List result = new ArrayList<>(); - List lines = processRunner.runToLines(String.format("kubectl exec -it %s -n %s -- env", pod.getMetadata().getName(), pod.getMetadata().getNamespace())); + List lines = processRunner.runToLines(String.format("kubectl exec -it %s -c %s -n %s -- env", pod.getMetadata().getName(), containerName, pod.getMetadata().getNamespace())); for (String line : lines) { int indexOfFirstEquals = line.indexOf("="); diff --git a/src/main/java/dev/dinauer/ProcessRunner.java b/src/main/java/dev/dinauer/ProcessRunner.java index 4bdae05..f0e0c54 100644 --- a/src/main/java/dev/dinauer/ProcessRunner.java +++ b/src/main/java/dev/dinauer/ProcessRunner.java @@ -1,10 +1,5 @@ package dev.dinauer; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; -import org.eclipse.microprofile.context.ManagedExecutor; -import org.jboss.logging.Logger; - import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; @@ -12,6 +7,12 @@ import java.util.ArrayList; import java.util.List; import java.util.concurrent.TimeUnit; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; + +import org.eclipse.microprofile.context.ManagedExecutor; +import org.jboss.logging.Logger; + @ApplicationScoped public class ProcessRunner { diff --git a/src/main/java/dev/dinauer/ResourceResource.java b/src/main/java/dev/dinauer/ResourceResource.java index 178b419..f496904 100644 --- a/src/main/java/dev/dinauer/ResourceResource.java +++ b/src/main/java/dev/dinauer/ResourceResource.java @@ -1,15 +1,16 @@ package dev.dinauer; -import dev.dinauer.service.*; -import io.fabric8.kubernetes.api.model.ConfigMap; +import java.util.List; +import java.util.Optional; + import jakarta.annotation.security.RolesAllowed; import jakarta.inject.Inject; import jakarta.ws.rs.*; import jakarta.ws.rs.core.MediaType; + import org.jboss.logging.Logger; -import java.util.List; -import java.util.Optional; +import dev.dinauer.service.*; @Path("/resources/{resource}") public class ResourceResource diff --git a/src/main/java/dev/dinauer/ServiceResource.java b/src/main/java/dev/dinauer/ServiceResource.java index 2e322c3..565cb8f 100644 --- a/src/main/java/dev/dinauer/ServiceResource.java +++ b/src/main/java/dev/dinauer/ServiceResource.java @@ -1,15 +1,7 @@ package dev.dinauer; -import dev.dinauer.service.ServiceService; -import dev.dinauer.utils.ClientProvider; -import io.fabric8.kubernetes.api.model.Pod; -import io.fabric8.kubernetes.api.model.Service; -import io.fabric8.kubernetes.client.KubernetesClient; -import io.fabric8.kubernetes.client.KubernetesClientBuilder; -import io.quarkus.runtime.Startup; -import io.quarkus.security.Authenticated; -import io.smallrye.common.annotation.Blocking; -import jakarta.annotation.PostConstruct; +import java.util.List; + import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; import jakarta.ws.rs.GET; @@ -18,8 +10,12 @@ import jakarta.ws.rs.Produces; import jakarta.ws.rs.QueryParam; import jakarta.ws.rs.core.MediaType; -import java.util.List; -import java.util.Optional; +import io.fabric8.kubernetes.api.model.Service; +import io.quarkus.runtime.Startup; +import io.quarkus.security.Authenticated; +import io.smallrye.common.annotation.Blocking; + +import dev.dinauer.service.ServiceService; @Path("/services") @Startup diff --git a/src/main/java/dev/dinauer/WorkdirProvider.java b/src/main/java/dev/dinauer/WorkdirProvider.java index 9faaca9..9e6a19f 100644 --- a/src/main/java/dev/dinauer/WorkdirProvider.java +++ b/src/main/java/dev/dinauer/WorkdirProvider.java @@ -1,13 +1,13 @@ package dev.dinauer; -import io.quarkus.runtime.Startup; -import jakarta.enterprise.context.ApplicationScoped; -import org.eclipse.microprofile.config.inject.ConfigProperty; - import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; +import jakarta.enterprise.context.ApplicationScoped; + +import org.eclipse.microprofile.config.inject.ConfigProperty; + @ApplicationScoped public class WorkdirProvider { diff --git a/src/main/java/dev/dinauer/inspect/TokenService.java b/src/main/java/dev/dinauer/inspect/TokenService.java index 59bb5bc..1127cbb 100644 --- a/src/main/java/dev/dinauer/inspect/TokenService.java +++ b/src/main/java/dev/dinauer/inspect/TokenService.java @@ -1,12 +1,14 @@ package dev.dinauer.inspect; +import java.util.Optional; + +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; + +import org.eclipse.microprofile.jwt.JsonWebToken; + import io.smallrye.jwt.auth.principal.JWTParser; import io.smallrye.jwt.auth.principal.ParseException; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; -import org.eclipse.microprofile.jwt.JsonWebToken; - -import java.util.Optional; @ApplicationScoped public class TokenService diff --git a/src/main/java/dev/dinauer/inspect/log/LogWebsocket.java b/src/main/java/dev/dinauer/inspect/log/LogWebsocket.java index b2245d5..c0608d1 100644 --- a/src/main/java/dev/dinauer/inspect/log/LogWebsocket.java +++ b/src/main/java/dev/dinauer/inspect/log/LogWebsocket.java @@ -1,27 +1,30 @@ package dev.dinauer.inspect.log; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.SerializationFeature; -import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; -import dev.dinauer.utils.ClientProvider; -import io.fabric8.kubernetes.client.dsl.LogWatch; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; -import jakarta.websocket.OnClose; -import jakarta.websocket.OnOpen; -import jakarta.websocket.Session; -import jakarta.websocket.server.PathParam; -import jakarta.websocket.server.ServerEndpoint; -import org.eclipse.microprofile.context.ManagedExecutor; -import org.jboss.logging.Logger; - import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.*; -import java.util.concurrent.Future; + +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; +import jakarta.websocket.OnClose; +import jakarta.websocket.OnOpen; +import jakarta.websocket.Session; +import jakarta.websocket.server.PathParam; +import jakarta.websocket.server.ServerEndpoint; + +import org.eclipse.microprofile.context.ManagedExecutor; +import org.jboss.logging.Logger; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; + +import io.fabric8.kubernetes.client.dsl.LogWatch; + +import dev.dinauer.utils.ClientProvider; @ServerEndpoint("/logs/{namespace}/{name}") @ApplicationScoped diff --git a/src/main/java/dev/dinauer/inspect/websocket/ResourceWebsocket.java b/src/main/java/dev/dinauer/inspect/websocket/ResourceWebsocket.java index 28b0201..d7a9ba3 100644 --- a/src/main/java/dev/dinauer/inspect/websocket/ResourceWebsocket.java +++ b/src/main/java/dev/dinauer/inspect/websocket/ResourceWebsocket.java @@ -1,16 +1,10 @@ package dev.dinauer.inspect.websocket; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import dev.dinauer.ResourceType; -import dev.dinauer.inspect.TokenService; -import dev.dinauer.service.ResourceService; -import dev.dinauer.utils.ClientProvider; -import io.fabric8.kubernetes.client.Watch; -import io.fabric8.kubernetes.client.Watcher; -import io.fabric8.kubernetes.client.WatcherException; -import io.smallrye.jwt.auth.principal.JWTParser; -import io.smallrye.jwt.auth.principal.ParseException; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; import jakarta.websocket.OnClose; @@ -18,15 +12,19 @@ import jakarta.websocket.OnOpen; import jakarta.websocket.Session; import jakarta.websocket.server.PathParam; import jakarta.websocket.server.ServerEndpoint; -import org.eclipse.microprofile.context.ManagedExecutor; -import org.eclipse.microprofile.jwt.JsonWebToken; -import org.jboss.logging.Logger; -import java.io.IOException; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Optional; +import org.eclipse.microprofile.context.ManagedExecutor; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +import io.fabric8.kubernetes.client.Watch; +import io.fabric8.kubernetes.client.Watcher; +import io.fabric8.kubernetes.client.WatcherException; + +import dev.dinauer.ResourceType; +import dev.dinauer.inspect.TokenService; +import dev.dinauer.service.ResourceService; @ServerEndpoint("/watch/{resource-type}/{namespace}") @ApplicationScoped diff --git a/src/main/java/dev/dinauer/inspect/websocket/ServiceFactory.java b/src/main/java/dev/dinauer/inspect/websocket/ServiceFactory.java index f81c528..45fa50b 100644 --- a/src/main/java/dev/dinauer/inspect/websocket/ServiceFactory.java +++ b/src/main/java/dev/dinauer/inspect/websocket/ServiceFactory.java @@ -1,12 +1,14 @@ package dev.dinauer.inspect.websocket; -import dev.dinauer.ResourceType; -import dev.dinauer.service.*; import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; import jakarta.ws.rs.BadRequestException; + import org.jboss.logging.Logger; +import dev.dinauer.ResourceType; +import dev.dinauer.service.*; + @ApplicationScoped public class ServiceFactory { diff --git a/src/main/java/dev/dinauer/inspect/websocket/WebsocketSessionResource.java b/src/main/java/dev/dinauer/inspect/websocket/WebsocketSessionResource.java index 7869a88..76be388 100644 --- a/src/main/java/dev/dinauer/inspect/websocket/WebsocketSessionResource.java +++ b/src/main/java/dev/dinauer/inspect/websocket/WebsocketSessionResource.java @@ -1,24 +1,18 @@ package dev.dinauer.inspect.websocket; -import com.arjuna.ats.internal.arjuna.Header; -import io.quarkus.security.Authenticated; -import io.quarkus.security.UnauthorizedException; -import io.smallrye.jwt.auth.principal.JWTParser; -import io.smallrye.jwt.auth.principal.ParseException; -import io.smallrye.jwt.build.Jwt; -import io.smallrye.jwt.build.JwtClaimsBuilder; +import java.time.ZonedDateTime; + import jakarta.inject.Inject; -import jakarta.ws.rs.HeaderParam; import jakarta.ws.rs.POST; import jakarta.ws.rs.Path; import jakarta.ws.rs.Produces; import jakarta.ws.rs.core.MediaType; -import jakarta.ws.rs.core.SecurityContext; + import org.eclipse.microprofile.jwt.JsonWebToken; -import java.time.ZonedDateTime; -import java.util.List; -import java.util.Optional; +import io.quarkus.security.Authenticated; +import io.quarkus.security.UnauthorizedException; +import io.smallrye.jwt.build.Jwt; @Path("/websocket-session") public class WebsocketSessionResource @@ -33,18 +27,7 @@ public class WebsocketSessionResource { if (token != null) { - JwtClaimsBuilder builder = Jwt.upn(token.getName()).issuer(token.getIssuer()).expiresAt(ZonedDateTime.now().plusSeconds(15).toInstant()); - Optional> namespaces = token.claim("namespaces"); - if (namespaces.isPresent()) - { - builder = builder.claim("namespaces", namespaces.get()); - } - Optional> resources = token.claim("resources"); - if (resources.isPresent()) - { - builder = builder.claim("resources", resources.get()); - } - return builder.claim("purpose", "ws:connect").sign(); + return Jwt.upn(token.getName()).issuer(token.getIssuer()).expiresAt(ZonedDateTime.now().plusSeconds(15).toInstant()).claim("purpose", "ws:connect").sign(); } throw new UnauthorizedException(); } diff --git a/src/main/java/dev/dinauer/login/LoginResource.java b/src/main/java/dev/dinauer/login/LoginResource.java index b2c4302..f0faabe 100644 --- a/src/main/java/dev/dinauer/login/LoginResource.java +++ b/src/main/java/dev/dinauer/login/LoginResource.java @@ -1,21 +1,18 @@ package dev.dinauer.login; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import io.fabric8.kubernetes.api.model.ObjectMeta; -import io.smallrye.jwt.build.Jwt; +import java.time.ZonedDateTime; +import java.util.Optional; + import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; import jakarta.ws.rs.*; import jakarta.ws.rs.core.MediaType; -import io.quarkus.elytron.security.common.BcryptUtil; import jakarta.ws.rs.core.Response; + import org.jboss.logging.Logger; -import java.io.IOException; -import java.time.ZonedDateTime; -import java.util.List; -import java.util.Optional; +import io.quarkus.elytron.security.common.BcryptUtil; +import io.smallrye.jwt.build.Jwt; @Path("/login") @ApplicationScoped diff --git a/src/main/java/dev/dinauer/login/UserEntity.java b/src/main/java/dev/dinauer/login/UserEntity.java index 7601f33..159bb42 100644 --- a/src/main/java/dev/dinauer/login/UserEntity.java +++ b/src/main/java/dev/dinauer/login/UserEntity.java @@ -1,11 +1,10 @@ package dev.dinauer.login; -import jakarta.persistence.*; - -import java.util.List; import java.util.Set; import java.util.UUID; +import jakarta.persistence.*; + @Entity @Table(name = "kubooboo_user") public class UserEntity diff --git a/src/main/java/dev/dinauer/login/UserMapper.java b/src/main/java/dev/dinauer/login/UserMapper.java index 072f93a..a4f621c 100644 --- a/src/main/java/dev/dinauer/login/UserMapper.java +++ b/src/main/java/dev/dinauer/login/UserMapper.java @@ -1,9 +1,9 @@ package dev.dinauer.login; -import jakarta.enterprise.context.ApplicationScoped; - import java.util.List; +import jakarta.enterprise.context.ApplicationScoped; + @ApplicationScoped public class UserMapper { diff --git a/src/main/java/dev/dinauer/login/UserRepo.java b/src/main/java/dev/dinauer/login/UserRepo.java index 3f6671c..3274e9c 100644 --- a/src/main/java/dev/dinauer/login/UserRepo.java +++ b/src/main/java/dev/dinauer/login/UserRepo.java @@ -1,10 +1,11 @@ package dev.dinauer.login; +import java.util.Optional; + +import jakarta.enterprise.context.ApplicationScoped; + import io.quarkus.hibernate.orm.panache.PanacheRepositoryBase; import io.quarkus.panache.common.Parameters; -import jakarta.enterprise.context.ApplicationScoped; - -import java.util.Optional; @ApplicationScoped public class UserRepo implements PanacheRepositoryBase diff --git a/src/main/java/dev/dinauer/login/UserResource.java b/src/main/java/dev/dinauer/login/UserResource.java index 0c77513..465bc77 100644 --- a/src/main/java/dev/dinauer/login/UserResource.java +++ b/src/main/java/dev/dinauer/login/UserResource.java @@ -1,8 +1,9 @@ package dev.dinauer.login; -import io.quarkus.elytron.security.common.BcryptUtil; -import io.quarkus.security.Authenticated; -import io.quarkus.security.identity.SecurityIdentity; +import java.util.List; +import java.util.Optional; +import java.util.Set; + import jakarta.annotation.security.RolesAllowed; import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; @@ -10,10 +11,9 @@ import jakarta.transaction.Transactional; import jakarta.ws.rs.*; import jakarta.ws.rs.core.MediaType; -import java.io.IOException; -import java.util.List; -import java.util.Optional; -import java.util.Set; +import io.quarkus.elytron.security.common.BcryptUtil; +import io.quarkus.security.Authenticated; +import io.quarkus.security.identity.SecurityIdentity; @Path("/users") @ApplicationScoped diff --git a/src/main/java/dev/dinauer/monitoring/MonitoredResource.java b/src/main/java/dev/dinauer/monitoring/MonitoredResource.java index 074afcd..7092d3f 100644 --- a/src/main/java/dev/dinauer/monitoring/MonitoredResource.java +++ b/src/main/java/dev/dinauer/monitoring/MonitoredResource.java @@ -1,10 +1,9 @@ package dev.dinauer.monitoring; -import dev.dinauer.monitoring.indexing.Bucket; -import io.fabric8.kubernetes.api.model.Pod; - import java.util.List; +import dev.dinauer.monitoring.indexing.Bucket; + public record MonitoredResource(E resource, List jobs) { } diff --git a/src/main/java/dev/dinauer/monitoring/MonitoringJobResource.java b/src/main/java/dev/dinauer/monitoring/MonitoringJobResource.java index 02b661f..9c43c65 100644 --- a/src/main/java/dev/dinauer/monitoring/MonitoringJobResource.java +++ b/src/main/java/dev/dinauer/monitoring/MonitoringJobResource.java @@ -1,16 +1,17 @@ package dev.dinauer.monitoring; -import dev.dinauer.monitoring.entity.MonitoringConfig; -import dev.dinauer.monitoring.entity.repo.MonitoringRepo; -import dev.dinauer.monitoring.indexing.Bucket; -import io.fabric8.kubernetes.api.model.Pod; -import jakarta.inject.Inject; -import jakarta.ws.rs.*; - import java.io.IOException; import java.util.ArrayList; import java.util.List; +import jakarta.inject.Inject; +import jakarta.ws.rs.*; + +import io.fabric8.kubernetes.api.model.Pod; + +import dev.dinauer.monitoring.entity.MonitoringConfig; +import dev.dinauer.monitoring.entity.repo.MonitoringRepo; + @Path("/monitorings/{monitoring-id}/jobs") public class MonitoringJobResource { diff --git a/src/main/java/dev/dinauer/monitoring/MonitoringJobRunner.java b/src/main/java/dev/dinauer/monitoring/MonitoringJobRunner.java index 6604b98..e7cbb20 100644 --- a/src/main/java/dev/dinauer/monitoring/MonitoringJobRunner.java +++ b/src/main/java/dev/dinauer/monitoring/MonitoringJobRunner.java @@ -1,7 +1,20 @@ package dev.dinauer.monitoring; +import java.io.IOException; +import java.util.List; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; + +import jakarta.annotation.PostConstruct; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; + +import org.jboss.logging.Logger; + +import io.quarkus.runtime.Startup; + import dev.dinauer.monitoring.entity.MonitoringConfig; -import dev.dinauer.monitoring.entity.MonitoringType; import dev.dinauer.monitoring.entity.repo.MonitoringRepo; import dev.dinauer.monitoring.log.Log; import dev.dinauer.monitoring.log.LogRepo; @@ -9,18 +22,6 @@ import dev.dinauer.monitoring.memory.MemoryMonitoringJobRunner; import dev.dinauer.monitoring.nodes.NodeMonitoringService; import dev.dinauer.monitoring.volume.VolumeMonitoringJobRunner; import dev.dinauer.monitoring.volume.utils.Duration; -import io.quarkus.runtime.Startup; -import jakarta.annotation.PostConstruct; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; -import org.jboss.logging.Logger; - -import java.io.IOException; -import java.util.List; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.TimeUnit; @Startup @ApplicationScoped diff --git a/src/main/java/dev/dinauer/monitoring/MonitoringResource.java b/src/main/java/dev/dinauer/monitoring/MonitoringResource.java index 5958871..3be86ad 100644 --- a/src/main/java/dev/dinauer/monitoring/MonitoringResource.java +++ b/src/main/java/dev/dinauer/monitoring/MonitoringResource.java @@ -1,24 +1,24 @@ package dev.dinauer.monitoring; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import dev.dinauer.monitoring.entity.MonitoringConfig; -import dev.dinauer.monitoring.entity.MonitoringType; -import dev.dinauer.monitoring.entity.TargetConfig; -import dev.dinauer.monitoring.entity.VolumeConfig; -import dev.dinauer.monitoring.entity.creation.MonitoringConfigCreation; -import dev.dinauer.monitoring.entity.creation.VolumeConfigCreation; -import dev.dinauer.monitoring.entity.repo.MonitoringRepo; +import java.io.IOException; +import java.util.List; +import java.util.Map; +import java.util.UUID; + import jakarta.inject.Inject; import jakarta.transaction.Transactional; import jakarta.ws.rs.GET; import jakarta.ws.rs.POST; import jakarta.ws.rs.Path; -import java.io.IOException; -import java.util.List; -import java.util.Map; -import java.util.UUID; +import com.fasterxml.jackson.core.JsonProcessingException; + +import dev.dinauer.monitoring.entity.MonitoringConfig; +import dev.dinauer.monitoring.entity.MonitoringType; +import dev.dinauer.monitoring.entity.TargetConfig; +import dev.dinauer.monitoring.entity.VolumeConfig; +import dev.dinauer.monitoring.entity.creation.MonitoringConfigCreation; +import dev.dinauer.monitoring.entity.repo.MonitoringRepo; @Path("/monitorings") public class MonitoringResource diff --git a/src/main/java/dev/dinauer/monitoring/MonitoringService.java b/src/main/java/dev/dinauer/monitoring/MonitoringService.java index b8dc55c..af0f68e 100644 --- a/src/main/java/dev/dinauer/monitoring/MonitoringService.java +++ b/src/main/java/dev/dinauer/monitoring/MonitoringService.java @@ -1,14 +1,17 @@ package dev.dinauer.monitoring; +import java.util.List; + +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; + +import org.jboss.resteasy.reactive.common.NotImplementedYet; + +import io.fabric8.kubernetes.api.model.Pod; + import dev.dinauer.monitoring.entity.MonitoringConfig; import dev.dinauer.monitoring.entity.TargetConfig; import dev.dinauer.service.PodService; -import io.fabric8.kubernetes.api.model.Pod; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; -import org.jboss.resteasy.reactive.common.NotImplementedYet; - -import java.util.List; @ApplicationScoped public class MonitoringService diff --git a/src/main/java/dev/dinauer/monitoring/NodeMonitoringJobResource.java b/src/main/java/dev/dinauer/monitoring/NodeMonitoringJobResource.java index 3644e09..af143f7 100644 --- a/src/main/java/dev/dinauer/monitoring/NodeMonitoringJobResource.java +++ b/src/main/java/dev/dinauer/monitoring/NodeMonitoringJobResource.java @@ -1,22 +1,21 @@ package dev.dinauer.monitoring; -import dev.dinauer.monitoring.indexing.BigBucketService; -import dev.dinauer.monitoring.indexing.Bucket; -import dev.dinauer.monitoring.indexing.BucketUnit; -import dev.dinauer.service.NodeService; -import dev.dinauer.utils.ClientProvider; -import io.fabric8.kubernetes.api.model.Node; -import jakarta.inject.Inject; -import jakarta.ws.rs.GET; -import jakarta.ws.rs.Path; -import jakarta.ws.rs.QueryParam; -import org.jboss.resteasy.reactive.common.NotImplementedYet; - import java.io.IOException; import java.time.ZonedDateTime; import java.util.ArrayList; import java.util.List; +import jakarta.inject.Inject; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.QueryParam; + +import io.fabric8.kubernetes.api.model.Node; + +import dev.dinauer.monitoring.indexing.BigBucketService; +import dev.dinauer.monitoring.indexing.BucketUnit; +import dev.dinauer.service.NodeService; + @Path("/monitorings/nodes/jobs") public class NodeMonitoringJobResource { diff --git a/src/main/java/dev/dinauer/monitoring/TopNodesService.java b/src/main/java/dev/dinauer/monitoring/TopNodesService.java index 09914ac..3dd0daf 100644 --- a/src/main/java/dev/dinauer/monitoring/TopNodesService.java +++ b/src/main/java/dev/dinauer/monitoring/TopNodesService.java @@ -1,5 +1,13 @@ package dev.dinauer.monitoring; +import java.util.*; + +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; + +import io.fabric8.kubernetes.api.model.Node; +import io.fabric8.kubernetes.api.model.Pod; + import dev.dinauer.ProcessRunner; import dev.dinauer.monitoring.nodes.MonitoredNode; import dev.dinauer.monitoring.nodes.NodeMetrics; @@ -7,12 +15,6 @@ import dev.dinauer.monitoring.nodes.client.NodeDiskMetrics; import dev.dinauer.monitoring.nodes.client.NodeDiskService; import dev.dinauer.service.PodService; import dev.dinauer.utils.ClientProvider; -import io.fabric8.kubernetes.api.model.Node; -import io.fabric8.kubernetes.api.model.Pod; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; - -import java.util.*; @ApplicationScoped public class TopNodesService diff --git a/src/main/java/dev/dinauer/monitoring/collection/MonitoringCollection.java b/src/main/java/dev/dinauer/monitoring/collection/MonitoringCollection.java index 24f174f..9470442 100644 --- a/src/main/java/dev/dinauer/monitoring/collection/MonitoringCollection.java +++ b/src/main/java/dev/dinauer/monitoring/collection/MonitoringCollection.java @@ -1,9 +1,10 @@ package dev.dinauer.monitoring.collection; -import dev.dinauer.monitoring.entity.MonitoringConfig; +import java.util.List; + import jakarta.persistence.*; -import java.util.List; +import dev.dinauer.monitoring.entity.MonitoringConfig; @Entity @Table(name = "monitoring_collection") diff --git a/src/main/java/dev/dinauer/monitoring/collection/MonitoringCollectionRepo.java b/src/main/java/dev/dinauer/monitoring/collection/MonitoringCollectionRepo.java index ce35444..81ecbbb 100644 --- a/src/main/java/dev/dinauer/monitoring/collection/MonitoringCollectionRepo.java +++ b/src/main/java/dev/dinauer/monitoring/collection/MonitoringCollectionRepo.java @@ -1,8 +1,9 @@ package dev.dinauer.monitoring.collection; -import io.quarkus.hibernate.orm.panache.PanacheRepositoryBase; import jakarta.enterprise.context.ApplicationScoped; +import io.quarkus.hibernate.orm.panache.PanacheRepositoryBase; + @ApplicationScoped public class MonitoringCollectionRepo implements PanacheRepositoryBase { diff --git a/src/main/java/dev/dinauer/monitoring/collection/MonitoringCollectionResource.java b/src/main/java/dev/dinauer/monitoring/collection/MonitoringCollectionResource.java index 1614d14..5869654 100644 --- a/src/main/java/dev/dinauer/monitoring/collection/MonitoringCollectionResource.java +++ b/src/main/java/dev/dinauer/monitoring/collection/MonitoringCollectionResource.java @@ -1,12 +1,12 @@ package dev.dinauer.monitoring.collection; +import java.util.List; + import jakarta.inject.Inject; import jakarta.ws.rs.GET; import jakarta.ws.rs.Path; import jakarta.ws.rs.PathParam; -import java.util.List; - @Path("/monitoring-collections") public class MonitoringCollectionResource { diff --git a/src/main/java/dev/dinauer/monitoring/entity/CpuConfig.java b/src/main/java/dev/dinauer/monitoring/entity/CpuConfig.java index 462789b..c085959 100644 --- a/src/main/java/dev/dinauer/monitoring/entity/CpuConfig.java +++ b/src/main/java/dev/dinauer/monitoring/entity/CpuConfig.java @@ -1,8 +1,9 @@ package dev.dinauer.monitoring.entity; -import com.fasterxml.jackson.annotation.JsonIgnore; import jakarta.persistence.*; +import com.fasterxml.jackson.annotation.JsonIgnore; + @Entity @Table(name = "cpu_config") public class CpuConfig diff --git a/src/main/java/dev/dinauer/monitoring/entity/HealthcheckConfig.java b/src/main/java/dev/dinauer/monitoring/entity/HealthcheckConfig.java index 08fa452..98499bd 100644 --- a/src/main/java/dev/dinauer/monitoring/entity/HealthcheckConfig.java +++ b/src/main/java/dev/dinauer/monitoring/entity/HealthcheckConfig.java @@ -1,8 +1,9 @@ package dev.dinauer.monitoring.entity; -import com.fasterxml.jackson.annotation.JsonIgnore; import jakarta.persistence.*; +import com.fasterxml.jackson.annotation.JsonIgnore; + @Entity @Table(name = "healthcheck_config") public class HealthcheckConfig diff --git a/src/main/java/dev/dinauer/monitoring/entity/MonitoringConfig.java b/src/main/java/dev/dinauer/monitoring/entity/MonitoringConfig.java index 16af31e..b379ee4 100644 --- a/src/main/java/dev/dinauer/monitoring/entity/MonitoringConfig.java +++ b/src/main/java/dev/dinauer/monitoring/entity/MonitoringConfig.java @@ -1,9 +1,11 @@ package dev.dinauer.monitoring.entity; -import com.fasterxml.jackson.annotation.JsonIgnore; -import dev.dinauer.monitoring.collection.MonitoringCollection; import jakarta.persistence.*; +import com.fasterxml.jackson.annotation.JsonIgnore; + +import dev.dinauer.monitoring.collection.MonitoringCollection; + @Entity @Table(name = "monitoring_config") public class MonitoringConfig diff --git a/src/main/java/dev/dinauer/monitoring/entity/TargetConfig.java b/src/main/java/dev/dinauer/monitoring/entity/TargetConfig.java index 273b55b..dcdec77 100644 --- a/src/main/java/dev/dinauer/monitoring/entity/TargetConfig.java +++ b/src/main/java/dev/dinauer/monitoring/entity/TargetConfig.java @@ -1,12 +1,13 @@ package dev.dinauer.monitoring.entity; +import java.util.Map; + +import jakarta.persistence.*; + import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; -import jakarta.persistence.*; - -import java.util.Map; @Entity @Table(name = "target_config") diff --git a/src/main/java/dev/dinauer/monitoring/entity/VolumeConfig.java b/src/main/java/dev/dinauer/monitoring/entity/VolumeConfig.java index 5e1a40b..7189968 100644 --- a/src/main/java/dev/dinauer/monitoring/entity/VolumeConfig.java +++ b/src/main/java/dev/dinauer/monitoring/entity/VolumeConfig.java @@ -1,8 +1,9 @@ package dev.dinauer.monitoring.entity; -import com.fasterxml.jackson.annotation.JsonIgnore; import jakarta.persistence.*; +import com.fasterxml.jackson.annotation.JsonIgnore; + @Entity @Table(name = "volume_config") public class VolumeConfig @@ -64,4 +65,4 @@ public class VolumeConfig this.containerName = containerName; return this; } -} \ No newline at end of file +} diff --git a/src/main/java/dev/dinauer/monitoring/entity/repo/MonitoringRepo.java b/src/main/java/dev/dinauer/monitoring/entity/repo/MonitoringRepo.java index 85374ff..9cebfbb 100644 --- a/src/main/java/dev/dinauer/monitoring/entity/repo/MonitoringRepo.java +++ b/src/main/java/dev/dinauer/monitoring/entity/repo/MonitoringRepo.java @@ -1,12 +1,14 @@ package dev.dinauer.monitoring.entity.repo; +import java.util.List; + +import jakarta.enterprise.context.ApplicationScoped; + +import io.quarkus.hibernate.orm.panache.PanacheRepositoryBase; +import io.quarkus.panache.common.Parameters; + import dev.dinauer.monitoring.entity.MonitoringConfig; import dev.dinauer.monitoring.entity.MonitoringType; -import io.quarkus.hibernate.orm.panache.PanacheRepositoryBase; -import io.quarkus.panache.common.Parameters; -import jakarta.enterprise.context.ApplicationScoped; - -import java.util.List; @ApplicationScoped public class MonitoringRepo implements PanacheRepositoryBase diff --git a/src/main/java/dev/dinauer/monitoring/indexing/BigBucketClient.java b/src/main/java/dev/dinauer/monitoring/indexing/BigBucketClient.java index 73c8cf0..6621ed6 100644 --- a/src/main/java/dev/dinauer/monitoring/indexing/BigBucketClient.java +++ b/src/main/java/dev/dinauer/monitoring/indexing/BigBucketClient.java @@ -1,10 +1,12 @@ package dev.dinauer.monitoring.indexing; -import io.quarkus.rest.client.reactive.ClientBasicAuth; +import java.util.List; + import jakarta.ws.rs.*; + import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; -import java.util.List; +import io.quarkus.rest.client.reactive.ClientBasicAuth; @Path("/api/metrics/{resource}/{metric}") @RegisterRestClient(configKey = "big-bucket") diff --git a/src/main/java/dev/dinauer/monitoring/indexing/BigBucketService.java b/src/main/java/dev/dinauer/monitoring/indexing/BigBucketService.java index 714f54b..c40bda6 100644 --- a/src/main/java/dev/dinauer/monitoring/indexing/BigBucketService.java +++ b/src/main/java/dev/dinauer/monitoring/indexing/BigBucketService.java @@ -1,15 +1,17 @@ package dev.dinauer.monitoring.indexing; -import io.quarkus.runtime.Startup; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; -import jakarta.ws.rs.InternalServerErrorException; -import org.eclipse.microprofile.rest.client.inject.RestClient; -import org.jboss.logging.Logger; - import java.util.List; import java.util.Map; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; +import jakarta.ws.rs.InternalServerErrorException; + +import org.eclipse.microprofile.rest.client.inject.RestClient; +import org.jboss.logging.Logger; + +import io.quarkus.runtime.Startup; + @Startup @ApplicationScoped public class BigBucketService diff --git a/src/main/java/dev/dinauer/monitoring/log/Log.java b/src/main/java/dev/dinauer/monitoring/log/Log.java index 97be5eb..c9af79b 100644 --- a/src/main/java/dev/dinauer/monitoring/log/Log.java +++ b/src/main/java/dev/dinauer/monitoring/log/Log.java @@ -1,12 +1,12 @@ package dev.dinauer.monitoring.log; +import java.time.ZonedDateTime; +import java.util.UUID; + import jakarta.persistence.Entity; import jakarta.persistence.Id; import jakarta.persistence.Table; -import java.time.ZonedDateTime; -import java.util.UUID; - @Entity @Table(name = "log") public class Log diff --git a/src/main/java/dev/dinauer/monitoring/log/LogRepo.java b/src/main/java/dev/dinauer/monitoring/log/LogRepo.java index 928d29f..9b2ea08 100644 --- a/src/main/java/dev/dinauer/monitoring/log/LogRepo.java +++ b/src/main/java/dev/dinauer/monitoring/log/LogRepo.java @@ -1,8 +1,9 @@ package dev.dinauer.monitoring.log; -import io.quarkus.hibernate.orm.panache.PanacheRepositoryBase; import jakarta.enterprise.context.ApplicationScoped; +import io.quarkus.hibernate.orm.panache.PanacheRepositoryBase; + @ApplicationScoped public class LogRepo implements PanacheRepositoryBase { diff --git a/src/main/java/dev/dinauer/monitoring/memory/ByteExtractor.java b/src/main/java/dev/dinauer/monitoring/memory/ByteExtractor.java index 885bf6b..ee299ee 100644 --- a/src/main/java/dev/dinauer/monitoring/memory/ByteExtractor.java +++ b/src/main/java/dev/dinauer/monitoring/memory/ByteExtractor.java @@ -1,10 +1,10 @@ package dev.dinauer.monitoring.memory; -import com.cronutils.utils.StringUtils; - import java.util.Arrays; import java.util.List; +import com.cronutils.utils.StringUtils; + public class ByteExtractor { public static long extractBytes(String input) diff --git a/src/main/java/dev/dinauer/monitoring/memory/MemoryMonitoringJobRunner.java b/src/main/java/dev/dinauer/monitoring/memory/MemoryMonitoringJobRunner.java index a4229dd..5a2172a 100644 --- a/src/main/java/dev/dinauer/monitoring/memory/MemoryMonitoringJobRunner.java +++ b/src/main/java/dev/dinauer/monitoring/memory/MemoryMonitoringJobRunner.java @@ -1,17 +1,19 @@ package dev.dinauer.monitoring.memory; +import java.io.IOException; +import java.util.List; +import java.util.Map; + +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; + +import io.fabric8.kubernetes.api.model.Pod; + import dev.dinauer.ProcessRunner; import dev.dinauer.monitoring.MonitoringService; import dev.dinauer.monitoring.entity.MonitoringConfig; import dev.dinauer.monitoring.entity.MonitoringType; import dev.dinauer.monitoring.indexing.BigBucketService; -import io.fabric8.kubernetes.api.model.Pod; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; - -import java.io.IOException; -import java.util.List; -import java.util.Map; @ApplicationScoped public class MemoryMonitoringJobRunner diff --git a/src/main/java/dev/dinauer/monitoring/nodes/NodeMonitoringService.java b/src/main/java/dev/dinauer/monitoring/nodes/NodeMonitoringService.java index 0d700ba..e6df61c 100644 --- a/src/main/java/dev/dinauer/monitoring/nodes/NodeMonitoringService.java +++ b/src/main/java/dev/dinauer/monitoring/nodes/NodeMonitoringService.java @@ -1,9 +1,5 @@ package dev.dinauer.monitoring.nodes; -import dev.dinauer.monitoring.TopNodesService; -import dev.dinauer.monitoring.indexing.BigBucketService; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; import java.io.IOException; import java.util.AbstractMap; import java.util.List; @@ -11,6 +7,12 @@ import java.util.Map; import java.util.stream.Collectors; import java.util.stream.Stream; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; + +import dev.dinauer.monitoring.TopNodesService; +import dev.dinauer.monitoring.indexing.BigBucketService; + @ApplicationScoped public class NodeMonitoringService { diff --git a/src/main/java/dev/dinauer/monitoring/nodes/client/NodeDiskService.java b/src/main/java/dev/dinauer/monitoring/nodes/client/NodeDiskService.java index 4f1ddf7..355d813 100644 --- a/src/main/java/dev/dinauer/monitoring/nodes/client/NodeDiskService.java +++ b/src/main/java/dev/dinauer/monitoring/nodes/client/NodeDiskService.java @@ -1,14 +1,5 @@ package dev.dinauer.monitoring.nodes.client; -import dev.dinauer.service.PodService; -import io.fabric8.kubernetes.api.model.Node; -import io.fabric8.kubernetes.api.model.Pod; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; -import org.eclipse.microprofile.config.ConfigProvider; -import org.eclipse.microprofile.config.inject.ConfigProperty; -import org.jboss.logging.Logger; - import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; @@ -18,6 +9,17 @@ import java.net.http.HttpResponse; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Random; + +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; + +import org.eclipse.microprofile.config.inject.ConfigProperty; +import org.jboss.logging.Logger; + +import io.fabric8.kubernetes.api.model.Pod; + +import dev.dinauer.service.PodService; @ApplicationScoped public class NodeDiskService @@ -30,6 +32,9 @@ public class NodeDiskService @Inject PodService podService; + @ConfigProperty(name = "quarkus.profile") + String profile; + public Map getDiskMetrics() { Map result = new HashMap<>(); @@ -48,6 +53,10 @@ public class NodeDiskService private Map.Entry getDiskMetricsForPod(Pod pod) { String nodeName = pod.getSpec().getNodeName(); + if ("dev".equals(profile)) + { + return Map.entry(nodeName, new NodeDiskMetrics(new Random().nextInt(80) + 10, 0L)); + } String ip = pod.getStatus().getPodIP(); String port = "8080"; try (HttpClient client = HttpClient.newBuilder().build()) diff --git a/src/main/java/dev/dinauer/monitoring/pods/PodMetricsService.java b/src/main/java/dev/dinauer/monitoring/pods/PodMetricsService.java index 3f4af11..0c6ab22 100644 --- a/src/main/java/dev/dinauer/monitoring/pods/PodMetricsService.java +++ b/src/main/java/dev/dinauer/monitoring/pods/PodMetricsService.java @@ -1,15 +1,17 @@ package dev.dinauer.monitoring.pods; -import dev.dinauer.ProcessRunner; -import io.fabric8.kubernetes.api.model.Pod; -import io.quarkus.scheduler.Scheduled; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; - import java.util.HashMap; import java.util.List; import java.util.Map; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; + +import io.fabric8.kubernetes.api.model.Pod; +import io.quarkus.scheduler.Scheduled; + +import dev.dinauer.ProcessRunner; + @ApplicationScoped public class PodMetricsService { diff --git a/src/main/java/dev/dinauer/monitoring/volume/VolumeMonitoringJobRunner.java b/src/main/java/dev/dinauer/monitoring/volume/VolumeMonitoringJobRunner.java index 1bd2f55..7302a7c 100644 --- a/src/main/java/dev/dinauer/monitoring/volume/VolumeMonitoringJobRunner.java +++ b/src/main/java/dev/dinauer/monitoring/volume/VolumeMonitoringJobRunner.java @@ -1,15 +1,5 @@ package dev.dinauer.monitoring.volume; -import dev.dinauer.ProcessRunner; -import dev.dinauer.monitoring.MonitoringService; -import dev.dinauer.monitoring.entity.MonitoringConfig; -import dev.dinauer.monitoring.entity.MonitoringType; -import dev.dinauer.monitoring.indexing.BigBucketService; -import io.fabric8.kubernetes.api.model.Pod; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; -import org.jboss.logging.Logger; - import java.io.IOException; import java.time.ZonedDateTime; import java.time.temporal.ChronoUnit; @@ -18,6 +8,19 @@ import java.util.List; import java.util.Map; import java.util.UUID; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; + +import org.jboss.logging.Logger; + +import io.fabric8.kubernetes.api.model.Pod; + +import dev.dinauer.ProcessRunner; +import dev.dinauer.monitoring.MonitoringService; +import dev.dinauer.monitoring.entity.MonitoringConfig; +import dev.dinauer.monitoring.entity.MonitoringType; +import dev.dinauer.monitoring.indexing.BigBucketService; + @ApplicationScoped public class VolumeMonitoringJobRunner { diff --git a/src/main/java/dev/dinauer/monitoring/volume/VolumeUsageRepo.java b/src/main/java/dev/dinauer/monitoring/volume/VolumeUsageRepo.java index 5777ba6..1aeb92b 100644 --- a/src/main/java/dev/dinauer/monitoring/volume/VolumeUsageRepo.java +++ b/src/main/java/dev/dinauer/monitoring/volume/VolumeUsageRepo.java @@ -1,15 +1,5 @@ package dev.dinauer.monitoring.volume; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; -import dev.dinauer.WorkdirProvider; -import jakarta.annotation.PostConstruct; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; -import jakarta.ws.rs.NotFoundException; -import org.jboss.resteasy.reactive.common.NotImplementedYet; - -import java.io.File; import java.io.IOException; import java.nio.charset.StandardCharsets; import java.nio.file.Files; @@ -19,6 +9,15 @@ import java.util.ArrayList; import java.util.List; import java.util.stream.Stream; +import jakarta.annotation.PostConstruct; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; + +import dev.dinauer.WorkdirProvider; + @ApplicationScoped public class VolumeUsageRepo { diff --git a/src/main/java/dev/dinauer/service/ConfigMapService.java b/src/main/java/dev/dinauer/service/ConfigMapService.java index c11e595..f57bb2e 100644 --- a/src/main/java/dev/dinauer/service/ConfigMapService.java +++ b/src/main/java/dev/dinauer/service/ConfigMapService.java @@ -1,16 +1,19 @@ package dev.dinauer.service; -import dev.dinauer.utils.ClientProvider; -import io.fabric8.kubernetes.api.model.ConfigMap; -import io.fabric8.kubernetes.client.Watch; -import io.fabric8.kubernetes.client.Watcher; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; -import org.jboss.resteasy.reactive.common.NotImplementedYet; - import java.util.List; import java.util.Optional; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; + +import org.jboss.resteasy.reactive.common.NotImplementedYet; + +import io.fabric8.kubernetes.api.model.ConfigMap; +import io.fabric8.kubernetes.client.Watch; +import io.fabric8.kubernetes.client.Watcher; + +import dev.dinauer.utils.ClientProvider; + @ApplicationScoped public class ConfigMapService implements ResourceService { diff --git a/src/main/java/dev/dinauer/service/CustomResourceDefinitionService.java b/src/main/java/dev/dinauer/service/CustomResourceDefinitionService.java index 2805391..562eabf 100644 --- a/src/main/java/dev/dinauer/service/CustomResourceDefinitionService.java +++ b/src/main/java/dev/dinauer/service/CustomResourceDefinitionService.java @@ -1,16 +1,19 @@ package dev.dinauer.service; -import dev.dinauer.utils.ClientProvider; +import java.util.List; +import java.util.Optional; + +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; + +import org.jboss.resteasy.reactive.common.NotImplementedYet; + import io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinition; import io.fabric8.kubernetes.client.Watch; import io.fabric8.kubernetes.client.Watcher; import io.fabric8.kubernetes.client.dsl.ApiextensionsAPIGroupDSL; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; -import org.jboss.resteasy.reactive.common.NotImplementedYet; -import java.util.List; -import java.util.Optional; +import dev.dinauer.utils.ClientProvider; @ApplicationScoped public class CustomResourceDefinitionService implements ResourceService diff --git a/src/main/java/dev/dinauer/service/DeploymentService.java b/src/main/java/dev/dinauer/service/DeploymentService.java index ac10695..6dfca82 100644 --- a/src/main/java/dev/dinauer/service/DeploymentService.java +++ b/src/main/java/dev/dinauer/service/DeploymentService.java @@ -1,16 +1,19 @@ package dev.dinauer.service; -import dev.dinauer.utils.ClientProvider; +import java.util.List; +import java.util.Optional; + +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; + +import org.jboss.resteasy.reactive.common.NotImplementedYet; + import io.fabric8.kubernetes.api.model.apps.Deployment; import io.fabric8.kubernetes.client.Watch; import io.fabric8.kubernetes.client.Watcher; import io.fabric8.kubernetes.client.dsl.AppsAPIGroupDSL; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; -import org.jboss.resteasy.reactive.common.NotImplementedYet; -import java.util.List; -import java.util.Optional; +import dev.dinauer.utils.ClientProvider; @ApplicationScoped public class DeploymentService implements ResourceService diff --git a/src/main/java/dev/dinauer/service/IngressService.java b/src/main/java/dev/dinauer/service/IngressService.java index f1bd2e5..663bd61 100644 --- a/src/main/java/dev/dinauer/service/IngressService.java +++ b/src/main/java/dev/dinauer/service/IngressService.java @@ -1,19 +1,20 @@ package dev.dinauer.service; -import com.fasterxml.jackson.databind.ObjectMapper; -import dev.dinauer.utils.ClientProvider; +import java.util.List; +import java.util.Optional; + +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; + +import org.jboss.resteasy.reactive.common.NotImplementedYet; + import io.fabric8.kubernetes.api.model.ObjectMeta; import io.fabric8.kubernetes.api.model.networking.v1.Ingress; import io.fabric8.kubernetes.client.Watch; import io.fabric8.kubernetes.client.Watcher; import io.fabric8.kubernetes.client.dsl.NetworkAPIGroupDSL; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; -import jakarta.ws.rs.NotFoundException; -import org.jboss.resteasy.reactive.common.NotImplementedYet; -import java.util.List; -import java.util.Optional; +import dev.dinauer.utils.ClientProvider; @ApplicationScoped public class IngressService implements ResourceService diff --git a/src/main/java/dev/dinauer/service/NamespaceService.java b/src/main/java/dev/dinauer/service/NamespaceService.java index 30501e9..d3d083e 100644 --- a/src/main/java/dev/dinauer/service/NamespaceService.java +++ b/src/main/java/dev/dinauer/service/NamespaceService.java @@ -1,15 +1,17 @@ package dev.dinauer.service; -import dev.dinauer.utils.ClientProvider; -import io.fabric8.kubernetes.api.model.Namespace; -import io.fabric8.kubernetes.client.Watch; -import io.fabric8.kubernetes.client.Watcher; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; - import java.util.List; import java.util.Optional; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; + +import io.fabric8.kubernetes.api.model.Namespace; +import io.fabric8.kubernetes.client.Watch; +import io.fabric8.kubernetes.client.Watcher; + +import dev.dinauer.utils.ClientProvider; + @ApplicationScoped public class NamespaceService implements ResourceService { diff --git a/src/main/java/dev/dinauer/service/NodeService.java b/src/main/java/dev/dinauer/service/NodeService.java index 0876f96..51a9c8b 100644 --- a/src/main/java/dev/dinauer/service/NodeService.java +++ b/src/main/java/dev/dinauer/service/NodeService.java @@ -1,14 +1,18 @@ package dev.dinauer.service; +import java.util.List; +import java.util.Optional; + +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; + +import org.jboss.resteasy.reactive.common.NotImplementedYet; + +import io.fabric8.kubernetes.client.Watch; +import io.fabric8.kubernetes.client.Watcher; + import dev.dinauer.monitoring.TopNodesService; import dev.dinauer.monitoring.nodes.MonitoredNode; -import io.fabric8.kubernetes.client.Watch; -import io.fabric8.kubernetes.client.Watcher; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; -import org.jboss.resteasy.reactive.common.NotImplementedYet; -import java.util.List; -import java.util.Optional; @ApplicationScoped public class NodeService implements ResourceService diff --git a/src/main/java/dev/dinauer/service/PodService.java b/src/main/java/dev/dinauer/service/PodService.java index 089cb13..0d50b8d 100644 --- a/src/main/java/dev/dinauer/service/PodService.java +++ b/src/main/java/dev/dinauer/service/PodService.java @@ -1,19 +1,20 @@ package dev.dinauer.service; -import dev.dinauer.utils.ClientProvider; -import io.fabric8.kubernetes.api.model.Pod; -import io.fabric8.kubernetes.api.model.apps.DaemonSet; -import io.fabric8.kubernetes.api.model.apps.StatefulSet; -import io.fabric8.kubernetes.client.Watch; -import io.fabric8.kubernetes.client.Watcher; -import io.fabric8.kubernetes.client.dsl.AppsAPIGroupDSL; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; - import java.util.List; import java.util.Map; import java.util.Optional; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; + +import io.fabric8.kubernetes.api.model.Pod; +import io.fabric8.kubernetes.api.model.apps.StatefulSet; +import io.fabric8.kubernetes.client.Watch; +import io.fabric8.kubernetes.client.Watcher; +import io.fabric8.kubernetes.client.dsl.AppsAPIGroupDSL; + +import dev.dinauer.utils.ClientProvider; + @ApplicationScoped public class PodService implements ResourceService { diff --git a/src/main/java/dev/dinauer/service/PvService.java b/src/main/java/dev/dinauer/service/PvService.java index 51ec68b..20da17c 100644 --- a/src/main/java/dev/dinauer/service/PvService.java +++ b/src/main/java/dev/dinauer/service/PvService.java @@ -1,15 +1,17 @@ package dev.dinauer.service; -import dev.dinauer.utils.ClientProvider; -import io.fabric8.kubernetes.api.model.PersistentVolume; -import io.fabric8.kubernetes.client.Watch; -import io.fabric8.kubernetes.client.Watcher; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; - import java.util.List; import java.util.Optional; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; + +import io.fabric8.kubernetes.api.model.PersistentVolume; +import io.fabric8.kubernetes.client.Watch; +import io.fabric8.kubernetes.client.Watcher; + +import dev.dinauer.utils.ClientProvider; + @ApplicationScoped public class PvService implements ResourceService { diff --git a/src/main/java/dev/dinauer/service/PvcService.java b/src/main/java/dev/dinauer/service/PvcService.java index c774ce0..def8c1c 100644 --- a/src/main/java/dev/dinauer/service/PvcService.java +++ b/src/main/java/dev/dinauer/service/PvcService.java @@ -1,15 +1,17 @@ package dev.dinauer.service; -import dev.dinauer.utils.ClientProvider; -import io.fabric8.kubernetes.api.model.PersistentVolumeClaim; -import io.fabric8.kubernetes.client.Watch; -import io.fabric8.kubernetes.client.Watcher; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; - import java.util.List; import java.util.Optional; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; + +import io.fabric8.kubernetes.api.model.PersistentVolumeClaim; +import io.fabric8.kubernetes.client.Watch; +import io.fabric8.kubernetes.client.Watcher; + +import dev.dinauer.utils.ClientProvider; + @ApplicationScoped public class PvcService implements ResourceService { diff --git a/src/main/java/dev/dinauer/service/ResourceService.java b/src/main/java/dev/dinauer/service/ResourceService.java index 065b79c..b614f07 100644 --- a/src/main/java/dev/dinauer/service/ResourceService.java +++ b/src/main/java/dev/dinauer/service/ResourceService.java @@ -1,11 +1,11 @@ package dev.dinauer.service; -import io.fabric8.kubernetes.client.Watch; -import io.fabric8.kubernetes.client.Watcher; - import java.util.List; import java.util.Optional; +import io.fabric8.kubernetes.client.Watch; +import io.fabric8.kubernetes.client.Watcher; + public interface ResourceService { void delete(String name, String namespace); diff --git a/src/main/java/dev/dinauer/service/SecretService.java b/src/main/java/dev/dinauer/service/SecretService.java index 044ca9e..4cfa6dd 100644 --- a/src/main/java/dev/dinauer/service/SecretService.java +++ b/src/main/java/dev/dinauer/service/SecretService.java @@ -1,16 +1,19 @@ package dev.dinauer.service; -import dev.dinauer.utils.ClientProvider; -import io.fabric8.kubernetes.api.model.Secret; -import io.fabric8.kubernetes.client.Watch; -import io.fabric8.kubernetes.client.Watcher; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; -import org.jboss.resteasy.reactive.common.NotImplementedYet; - import java.util.List; import java.util.Optional; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; + +import org.jboss.resteasy.reactive.common.NotImplementedYet; + +import io.fabric8.kubernetes.api.model.Secret; +import io.fabric8.kubernetes.client.Watch; +import io.fabric8.kubernetes.client.Watcher; + +import dev.dinauer.utils.ClientProvider; + @ApplicationScoped public class SecretService implements ResourceService { diff --git a/src/main/java/dev/dinauer/service/ServiceService.java b/src/main/java/dev/dinauer/service/ServiceService.java index bb527d4..e822163 100644 --- a/src/main/java/dev/dinauer/service/ServiceService.java +++ b/src/main/java/dev/dinauer/service/ServiceService.java @@ -1,20 +1,19 @@ package dev.dinauer.service; -import dev.dinauer.utils.ClientProvider; -import io.fabric8.kubernetes.api.model.Pod; -import io.fabric8.kubernetes.api.model.Service; -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 jakarta.annotation.PostConstruct; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; -import org.jboss.resteasy.reactive.common.NotImplementedYet; - import java.util.List; import java.util.Optional; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; + +import org.jboss.resteasy.reactive.common.NotImplementedYet; + +import io.fabric8.kubernetes.api.model.Service; +import io.fabric8.kubernetes.client.Watch; +import io.fabric8.kubernetes.client.Watcher; + +import dev.dinauer.utils.ClientProvider; + @ApplicationScoped public class ServiceService implements ResourceService { diff --git a/src/main/java/dev/dinauer/service/StatefulSetService.java b/src/main/java/dev/dinauer/service/StatefulSetService.java index f530150..da44833 100644 --- a/src/main/java/dev/dinauer/service/StatefulSetService.java +++ b/src/main/java/dev/dinauer/service/StatefulSetService.java @@ -1,16 +1,19 @@ package dev.dinauer.service; -import dev.dinauer.utils.ClientProvider; +import java.util.List; +import java.util.Optional; + +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; + +import org.jboss.resteasy.reactive.common.NotImplementedYet; + import io.fabric8.kubernetes.api.model.apps.StatefulSet; import io.fabric8.kubernetes.client.Watch; import io.fabric8.kubernetes.client.Watcher; import io.fabric8.kubernetes.client.dsl.AppsAPIGroupDSL; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; -import org.jboss.resteasy.reactive.common.NotImplementedYet; -import java.util.List; -import java.util.Optional; +import dev.dinauer.utils.ClientProvider; @ApplicationScoped public class StatefulSetService implements ResourceService diff --git a/src/main/java/dev/dinauer/settings/SettingsRepo.java b/src/main/java/dev/dinauer/settings/SettingsRepo.java index 8c11696..c970d8a 100644 --- a/src/main/java/dev/dinauer/settings/SettingsRepo.java +++ b/src/main/java/dev/dinauer/settings/SettingsRepo.java @@ -1,15 +1,17 @@ package dev.dinauer.settings; -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.ObjectMapper; -import dev.dinauer.WorkdirProvider; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; - import java.io.File; import java.io.IOException; import java.nio.file.Path; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; + +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; + +import dev.dinauer.WorkdirProvider; + @ApplicationScoped public class SettingsRepo { diff --git a/src/main/java/dev/dinauer/settings/SettingsResource.java b/src/main/java/dev/dinauer/settings/SettingsResource.java index abab1ce..86b4d88 100644 --- a/src/main/java/dev/dinauer/settings/SettingsResource.java +++ b/src/main/java/dev/dinauer/settings/SettingsResource.java @@ -1,14 +1,16 @@ package dev.dinauer.settings; -import io.quarkus.security.Authenticated; +import java.io.IOException; + import jakarta.annotation.security.RolesAllowed; import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; import jakarta.ws.rs.*; import jakarta.ws.rs.core.MediaType; + import org.jboss.resteasy.reactive.common.NotImplementedYet; -import java.io.IOException; +import io.quarkus.security.Authenticated; @Path("/settings") @ApplicationScoped diff --git a/src/main/java/dev/dinauer/utils/ClientProvider.java b/src/main/java/dev/dinauer/utils/ClientProvider.java index 308817b..b91ec17 100644 --- a/src/main/java/dev/dinauer/utils/ClientProvider.java +++ b/src/main/java/dev/dinauer/utils/ClientProvider.java @@ -1,15 +1,12 @@ package dev.dinauer.utils; -import io.fabric8.kubernetes.client.Config; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; + import io.fabric8.kubernetes.client.KubernetesClient; import io.fabric8.kubernetes.client.KubernetesClientBuilder; import io.fabric8.kubernetes.client.vertx.VertxHttpClientFactory; import io.vertx.mutiny.core.Vertx; -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; -import org.eclipse.microprofile.config.inject.ConfigProperty; - -import java.io.File; @ApplicationScoped public class ClientProvider diff --git a/src/main/java/dev/dinauer/utils/StartupService.java b/src/main/java/dev/dinauer/utils/StartupService.java index 2d764a1..27d05e3 100644 --- a/src/main/java/dev/dinauer/utils/StartupService.java +++ b/src/main/java/dev/dinauer/utils/StartupService.java @@ -1,19 +1,19 @@ package dev.dinauer.utils; -import dev.dinauer.login.User; -import dev.dinauer.login.UserEntity; -import dev.dinauer.login.UserRepo; -import io.quarkus.elytron.security.common.BcryptUtil; -import io.quarkus.narayana.jta.QuarkusTransaction; -import io.quarkus.runtime.Startup; +import java.util.Set; + import jakarta.annotation.PostConstruct; import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; -import jakarta.transaction.Transactional; + import org.jboss.logging.Logger; -import java.io.IOException; -import java.util.Set; +import io.quarkus.elytron.security.common.BcryptUtil; +import io.quarkus.narayana.jta.QuarkusTransaction; +import io.quarkus.runtime.Startup; + +import dev.dinauer.login.UserEntity; +import dev.dinauer.login.UserRepo; @Startup @ApplicationScoped diff --git a/src/test/java/dev/dinauer/monitoring/memory/ByteExtractorTest.java b/src/test/java/dev/dinauer/monitoring/memory/ByteExtractorTest.java index cfe3957..d670eaf 100644 --- a/src/test/java/dev/dinauer/monitoring/memory/ByteExtractorTest.java +++ b/src/test/java/dev/dinauer/monitoring/memory/ByteExtractorTest.java @@ -1,10 +1,9 @@ package dev.dinauer.monitoring.memory; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; - import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.Test; + public class ByteExtractorTest { @Test