🎨 Sort imports

This commit is contained in:
Andreas Dinauer 2025-12-20 18:38:36 +01:00
parent 898e7146f3
commit 16a5627b39
63 changed files with 472 additions and 409 deletions

22
pom.xml
View File

@ -163,6 +163,28 @@
</systemPropertyVariables> </systemPropertyVariables>
</configuration> </configuration>
</plugin> </plugin>
<plugin>
<groupId>net.revelc.code</groupId>
<artifactId>impsort-maven-plugin</artifactId>
<version>1.12.0</version>
<configuration>
<groups>java.,jakarta.,org.,com.,io.,*</groups>
<staticGroups>java.,jakarta.,org.,com.,io.,*</staticGroups>
<removeUnused>true</removeUnused>
<lineEnding>LF</lineEnding>
<includes>
<include>**/*.java</include>
</includes>
</configuration>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins> </plugins>
</build> </build>

View File

@ -1,13 +1,7 @@
package dev.dinauer; package dev.dinauer;
import dev.dinauer.service.IngressService; import java.util.List;
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 jakarta.inject.Inject; import jakarta.inject.Inject;
import jakarta.ws.rs.GET; import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path; import jakarta.ws.rs.Path;
@ -15,7 +9,11 @@ import jakarta.ws.rs.Produces;
import jakarta.ws.rs.QueryParam; import jakarta.ws.rs.QueryParam;
import jakarta.ws.rs.core.MediaType; 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") @Path("/ingresses")
@Blocking @Blocking

View File

@ -1,12 +1,7 @@
package dev.dinauer; package dev.dinauer;
import dev.dinauer.utils.ClientProvider; import java.util.List;
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 jakarta.enterprise.context.ApplicationScoped; import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject; import jakarta.inject.Inject;
import jakarta.ws.rs.GET; import jakarta.ws.rs.GET;
@ -14,7 +9,11 @@ import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces; import jakarta.ws.rs.Produces;
import jakarta.ws.rs.core.MediaType; 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") @Path("/namespaces")
@ApplicationScoped @ApplicationScoped

View File

@ -1,21 +1,19 @@
package dev.dinauer; package dev.dinauer;
import dev.dinauer.service.PodService; import java.util.ArrayList;
import dev.dinauer.utils.ClientProvider; import java.util.List;
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 jakarta.enterprise.context.ApplicationScoped; import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject; import jakarta.inject.Inject;
import jakarta.ws.rs.*; import jakarta.ws.rs.*;
import jakarta.ws.rs.core.MediaType; import jakarta.ws.rs.core.MediaType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList; import io.fabric8.kubernetes.api.model.Pod;
import java.util.List; import io.quarkus.runtime.Startup;
import io.smallrye.common.annotation.Blocking;
import dev.dinauer.service.PodService;
import dev.dinauer.utils.ClientProvider;
@Path("/pods") @Path("/pods")
@Startup @Startup
@ -35,16 +33,16 @@ public class PodResource
@Produces(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON)
@Consumes @Consumes
@Blocking @Blocking
@Path("/{namespace}/{name}/env") @Path("/{namespace}/{name}/{containerName}/env")
public List<EnvVar> getEnv(@PathParam("namespace") String namespace, @PathParam("name") String name) public List<EnvVar> 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<EnvVar> getVars(Pod pod) private List<EnvVar> getVars(Pod pod, String containerName)
{ {
List<EnvVar> result = new ArrayList<>(); List<EnvVar> result = new ArrayList<>();
List<String> lines = processRunner.runToLines(String.format("kubectl exec -it %s -n %s -- env", pod.getMetadata().getName(), pod.getMetadata().getNamespace())); List<String> 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) for (String line : lines)
{ {
int indexOfFirstEquals = line.indexOf("="); int indexOfFirstEquals = line.indexOf("=");

View File

@ -1,10 +1,5 @@
package dev.dinauer; 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.BufferedReader;
import java.io.IOException; import java.io.IOException;
import java.io.InputStreamReader; import java.io.InputStreamReader;
@ -12,6 +7,12 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.concurrent.TimeUnit; 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 @ApplicationScoped
public class ProcessRunner public class ProcessRunner
{ {

View File

@ -1,15 +1,16 @@
package dev.dinauer; package dev.dinauer;
import dev.dinauer.service.*; import java.util.List;
import io.fabric8.kubernetes.api.model.ConfigMap; import java.util.Optional;
import jakarta.annotation.security.RolesAllowed; import jakarta.annotation.security.RolesAllowed;
import jakarta.inject.Inject; import jakarta.inject.Inject;
import jakarta.ws.rs.*; import jakarta.ws.rs.*;
import jakarta.ws.rs.core.MediaType; import jakarta.ws.rs.core.MediaType;
import org.jboss.logging.Logger; import org.jboss.logging.Logger;
import java.util.List; import dev.dinauer.service.*;
import java.util.Optional;
@Path("/resources/{resource}") @Path("/resources/{resource}")
public class ResourceResource public class ResourceResource

View File

@ -1,15 +1,7 @@
package dev.dinauer; package dev.dinauer;
import dev.dinauer.service.ServiceService; import java.util.List;
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 jakarta.enterprise.context.ApplicationScoped; import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject; import jakarta.inject.Inject;
import jakarta.ws.rs.GET; import jakarta.ws.rs.GET;
@ -18,8 +10,12 @@ import jakarta.ws.rs.Produces;
import jakarta.ws.rs.QueryParam; import jakarta.ws.rs.QueryParam;
import jakarta.ws.rs.core.MediaType; import jakarta.ws.rs.core.MediaType;
import java.util.List; import io.fabric8.kubernetes.api.model.Service;
import java.util.Optional; import io.quarkus.runtime.Startup;
import io.quarkus.security.Authenticated;
import io.smallrye.common.annotation.Blocking;
import dev.dinauer.service.ServiceService;
@Path("/services") @Path("/services")
@Startup @Startup

View File

@ -1,13 +1,13 @@
package dev.dinauer; 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.io.IOException;
import java.nio.file.Files; import java.nio.file.Files;
import java.nio.file.Path; import java.nio.file.Path;
import jakarta.enterprise.context.ApplicationScoped;
import org.eclipse.microprofile.config.inject.ConfigProperty;
@ApplicationScoped @ApplicationScoped
public class WorkdirProvider public class WorkdirProvider
{ {

View File

@ -1,12 +1,14 @@
package dev.dinauer.inspect; 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.JWTParser;
import io.smallrye.jwt.auth.principal.ParseException; 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 @ApplicationScoped
public class TokenService public class TokenService

View File

@ -1,27 +1,30 @@
package dev.dinauer.inspect.log; 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.BufferedReader;
import java.io.IOException; import java.io.IOException;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.*; 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}") @ServerEndpoint("/logs/{namespace}/{name}")
@ApplicationScoped @ApplicationScoped

View File

@ -1,16 +1,10 @@
package dev.dinauer.inspect.websocket; package dev.dinauer.inspect.websocket;
import com.fasterxml.jackson.core.JsonProcessingException; import java.io.IOException;
import com.fasterxml.jackson.databind.ObjectMapper; import java.util.HashMap;
import dev.dinauer.ResourceType; import java.util.List;
import dev.dinauer.inspect.TokenService; import java.util.Map;
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 jakarta.enterprise.context.ApplicationScoped; import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject; import jakarta.inject.Inject;
import jakarta.websocket.OnClose; import jakarta.websocket.OnClose;
@ -18,15 +12,19 @@ import jakarta.websocket.OnOpen;
import jakarta.websocket.Session; import jakarta.websocket.Session;
import jakarta.websocket.server.PathParam; import jakarta.websocket.server.PathParam;
import jakarta.websocket.server.ServerEndpoint; 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 org.eclipse.microprofile.context.ManagedExecutor;
import java.util.HashMap;
import java.util.List; import com.fasterxml.jackson.core.JsonProcessingException;
import java.util.Map; import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.Optional;
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}") @ServerEndpoint("/watch/{resource-type}/{namespace}")
@ApplicationScoped @ApplicationScoped

View File

@ -1,12 +1,14 @@
package dev.dinauer.inspect.websocket; package dev.dinauer.inspect.websocket;
import dev.dinauer.ResourceType;
import dev.dinauer.service.*;
import jakarta.enterprise.context.ApplicationScoped; import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject; import jakarta.inject.Inject;
import jakarta.ws.rs.BadRequestException; import jakarta.ws.rs.BadRequestException;
import org.jboss.logging.Logger; import org.jboss.logging.Logger;
import dev.dinauer.ResourceType;
import dev.dinauer.service.*;
@ApplicationScoped @ApplicationScoped
public class ServiceFactory public class ServiceFactory
{ {

View File

@ -1,24 +1,18 @@
package dev.dinauer.inspect.websocket; package dev.dinauer.inspect.websocket;
import com.arjuna.ats.internal.arjuna.Header; import java.time.ZonedDateTime;
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 jakarta.inject.Inject; import jakarta.inject.Inject;
import jakarta.ws.rs.HeaderParam;
import jakarta.ws.rs.POST; import jakarta.ws.rs.POST;
import jakarta.ws.rs.Path; import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces; import jakarta.ws.rs.Produces;
import jakarta.ws.rs.core.MediaType; import jakarta.ws.rs.core.MediaType;
import jakarta.ws.rs.core.SecurityContext;
import org.eclipse.microprofile.jwt.JsonWebToken; import org.eclipse.microprofile.jwt.JsonWebToken;
import java.time.ZonedDateTime; import io.quarkus.security.Authenticated;
import java.util.List; import io.quarkus.security.UnauthorizedException;
import java.util.Optional; import io.smallrye.jwt.build.Jwt;
@Path("/websocket-session") @Path("/websocket-session")
public class WebsocketSessionResource public class WebsocketSessionResource
@ -33,18 +27,7 @@ public class WebsocketSessionResource
{ {
if (token != null) if (token != null)
{ {
JwtClaimsBuilder builder = Jwt.upn(token.getName()).issuer(token.getIssuer()).expiresAt(ZonedDateTime.now().plusSeconds(15).toInstant()); return Jwt.upn(token.getName()).issuer(token.getIssuer()).expiresAt(ZonedDateTime.now().plusSeconds(15).toInstant()).claim("purpose", "ws:connect").sign();
Optional<List<String>> namespaces = token.claim("namespaces");
if (namespaces.isPresent())
{
builder = builder.claim("namespaces", namespaces.get());
}
Optional<List<String>> resources = token.claim("resources");
if (resources.isPresent())
{
builder = builder.claim("resources", resources.get());
}
return builder.claim("purpose", "ws:connect").sign();
} }
throw new UnauthorizedException(); throw new UnauthorizedException();
} }

View File

@ -1,21 +1,18 @@
package dev.dinauer.login; package dev.dinauer.login;
import com.fasterxml.jackson.core.JsonProcessingException; import java.time.ZonedDateTime;
import com.fasterxml.jackson.databind.ObjectMapper; import java.util.Optional;
import io.fabric8.kubernetes.api.model.ObjectMeta;
import io.smallrye.jwt.build.Jwt;
import jakarta.enterprise.context.ApplicationScoped; import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject; import jakarta.inject.Inject;
import jakarta.ws.rs.*; import jakarta.ws.rs.*;
import jakarta.ws.rs.core.MediaType; import jakarta.ws.rs.core.MediaType;
import io.quarkus.elytron.security.common.BcryptUtil;
import jakarta.ws.rs.core.Response; import jakarta.ws.rs.core.Response;
import org.jboss.logging.Logger; import org.jboss.logging.Logger;
import java.io.IOException; import io.quarkus.elytron.security.common.BcryptUtil;
import java.time.ZonedDateTime; import io.smallrye.jwt.build.Jwt;
import java.util.List;
import java.util.Optional;
@Path("/login") @Path("/login")
@ApplicationScoped @ApplicationScoped

View File

@ -1,11 +1,10 @@
package dev.dinauer.login; package dev.dinauer.login;
import jakarta.persistence.*;
import java.util.List;
import java.util.Set; import java.util.Set;
import java.util.UUID; import java.util.UUID;
import jakarta.persistence.*;
@Entity @Entity
@Table(name = "kubooboo_user") @Table(name = "kubooboo_user")
public class UserEntity public class UserEntity

View File

@ -1,9 +1,9 @@
package dev.dinauer.login; package dev.dinauer.login;
import jakarta.enterprise.context.ApplicationScoped;
import java.util.List; import java.util.List;
import jakarta.enterprise.context.ApplicationScoped;
@ApplicationScoped @ApplicationScoped
public class UserMapper public class UserMapper
{ {

View File

@ -1,10 +1,11 @@
package dev.dinauer.login; package dev.dinauer.login;
import java.util.Optional;
import jakarta.enterprise.context.ApplicationScoped;
import io.quarkus.hibernate.orm.panache.PanacheRepositoryBase; import io.quarkus.hibernate.orm.panache.PanacheRepositoryBase;
import io.quarkus.panache.common.Parameters; import io.quarkus.panache.common.Parameters;
import jakarta.enterprise.context.ApplicationScoped;
import java.util.Optional;
@ApplicationScoped @ApplicationScoped
public class UserRepo implements PanacheRepositoryBase<UserEntity, String> public class UserRepo implements PanacheRepositoryBase<UserEntity, String>

View File

@ -1,8 +1,9 @@
package dev.dinauer.login; package dev.dinauer.login;
import io.quarkus.elytron.security.common.BcryptUtil; import java.util.List;
import io.quarkus.security.Authenticated; import java.util.Optional;
import io.quarkus.security.identity.SecurityIdentity; import java.util.Set;
import jakarta.annotation.security.RolesAllowed; import jakarta.annotation.security.RolesAllowed;
import jakarta.enterprise.context.ApplicationScoped; import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject; import jakarta.inject.Inject;
@ -10,10 +11,9 @@ import jakarta.transaction.Transactional;
import jakarta.ws.rs.*; import jakarta.ws.rs.*;
import jakarta.ws.rs.core.MediaType; import jakarta.ws.rs.core.MediaType;
import java.io.IOException; import io.quarkus.elytron.security.common.BcryptUtil;
import java.util.List; import io.quarkus.security.Authenticated;
import java.util.Optional; import io.quarkus.security.identity.SecurityIdentity;
import java.util.Set;
@Path("/users") @Path("/users")
@ApplicationScoped @ApplicationScoped

View File

@ -1,10 +1,9 @@
package dev.dinauer.monitoring; package dev.dinauer.monitoring;
import dev.dinauer.monitoring.indexing.Bucket;
import io.fabric8.kubernetes.api.model.Pod;
import java.util.List; import java.util.List;
import dev.dinauer.monitoring.indexing.Bucket;
public record MonitoredResource<E>(E resource, List<Bucket> jobs) public record MonitoredResource<E>(E resource, List<Bucket> jobs)
{ {
} }

View File

@ -1,16 +1,17 @@
package dev.dinauer.monitoring; 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.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; 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") @Path("/monitorings/{monitoring-id}/jobs")
public class MonitoringJobResource public class MonitoringJobResource
{ {

View File

@ -1,7 +1,20 @@
package dev.dinauer.monitoring; 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.MonitoringConfig;
import dev.dinauer.monitoring.entity.MonitoringType;
import dev.dinauer.monitoring.entity.repo.MonitoringRepo; import dev.dinauer.monitoring.entity.repo.MonitoringRepo;
import dev.dinauer.monitoring.log.Log; import dev.dinauer.monitoring.log.Log;
import dev.dinauer.monitoring.log.LogRepo; 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.nodes.NodeMonitoringService;
import dev.dinauer.monitoring.volume.VolumeMonitoringJobRunner; import dev.dinauer.monitoring.volume.VolumeMonitoringJobRunner;
import dev.dinauer.monitoring.volume.utils.Duration; 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 @Startup
@ApplicationScoped @ApplicationScoped

View File

@ -1,24 +1,24 @@
package dev.dinauer.monitoring; package dev.dinauer.monitoring;
import com.fasterxml.jackson.core.JsonProcessingException; import java.io.IOException;
import com.fasterxml.jackson.databind.ObjectMapper; import java.util.List;
import dev.dinauer.monitoring.entity.MonitoringConfig; import java.util.Map;
import dev.dinauer.monitoring.entity.MonitoringType; import java.util.UUID;
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 jakarta.inject.Inject; import jakarta.inject.Inject;
import jakarta.transaction.Transactional; import jakarta.transaction.Transactional;
import jakarta.ws.rs.GET; import jakarta.ws.rs.GET;
import jakarta.ws.rs.POST; import jakarta.ws.rs.POST;
import jakarta.ws.rs.Path; import jakarta.ws.rs.Path;
import java.io.IOException; import com.fasterxml.jackson.core.JsonProcessingException;
import java.util.List;
import java.util.Map; import dev.dinauer.monitoring.entity.MonitoringConfig;
import java.util.UUID; 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") @Path("/monitorings")
public class MonitoringResource public class MonitoringResource

View File

@ -1,14 +1,17 @@
package dev.dinauer.monitoring; 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.MonitoringConfig;
import dev.dinauer.monitoring.entity.TargetConfig; import dev.dinauer.monitoring.entity.TargetConfig;
import dev.dinauer.service.PodService; 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 @ApplicationScoped
public class MonitoringService public class MonitoringService

View File

@ -1,22 +1,21 @@
package dev.dinauer.monitoring; 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.io.IOException;
import java.time.ZonedDateTime; import java.time.ZonedDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; 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") @Path("/monitorings/nodes/jobs")
public class NodeMonitoringJobResource public class NodeMonitoringJobResource
{ {

View File

@ -1,5 +1,13 @@
package dev.dinauer.monitoring; 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.ProcessRunner;
import dev.dinauer.monitoring.nodes.MonitoredNode; import dev.dinauer.monitoring.nodes.MonitoredNode;
import dev.dinauer.monitoring.nodes.NodeMetrics; 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.monitoring.nodes.client.NodeDiskService;
import dev.dinauer.service.PodService; import dev.dinauer.service.PodService;
import dev.dinauer.utils.ClientProvider; 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 @ApplicationScoped
public class TopNodesService public class TopNodesService

View File

@ -1,9 +1,10 @@
package dev.dinauer.monitoring.collection; package dev.dinauer.monitoring.collection;
import dev.dinauer.monitoring.entity.MonitoringConfig; import java.util.List;
import jakarta.persistence.*; import jakarta.persistence.*;
import java.util.List; import dev.dinauer.monitoring.entity.MonitoringConfig;
@Entity @Entity
@Table(name = "monitoring_collection") @Table(name = "monitoring_collection")

View File

@ -1,8 +1,9 @@
package dev.dinauer.monitoring.collection; package dev.dinauer.monitoring.collection;
import io.quarkus.hibernate.orm.panache.PanacheRepositoryBase;
import jakarta.enterprise.context.ApplicationScoped; import jakarta.enterprise.context.ApplicationScoped;
import io.quarkus.hibernate.orm.panache.PanacheRepositoryBase;
@ApplicationScoped @ApplicationScoped
public class MonitoringCollectionRepo implements PanacheRepositoryBase<MonitoringCollection, String> public class MonitoringCollectionRepo implements PanacheRepositoryBase<MonitoringCollection, String>
{ {

View File

@ -1,12 +1,12 @@
package dev.dinauer.monitoring.collection; package dev.dinauer.monitoring.collection;
import java.util.List;
import jakarta.inject.Inject; import jakarta.inject.Inject;
import jakarta.ws.rs.GET; import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path; import jakarta.ws.rs.Path;
import jakarta.ws.rs.PathParam; import jakarta.ws.rs.PathParam;
import java.util.List;
@Path("/monitoring-collections") @Path("/monitoring-collections")
public class MonitoringCollectionResource public class MonitoringCollectionResource
{ {

View File

@ -1,8 +1,9 @@
package dev.dinauer.monitoring.entity; package dev.dinauer.monitoring.entity;
import com.fasterxml.jackson.annotation.JsonIgnore;
import jakarta.persistence.*; import jakarta.persistence.*;
import com.fasterxml.jackson.annotation.JsonIgnore;
@Entity @Entity
@Table(name = "cpu_config") @Table(name = "cpu_config")
public class CpuConfig public class CpuConfig

View File

@ -1,8 +1,9 @@
package dev.dinauer.monitoring.entity; package dev.dinauer.monitoring.entity;
import com.fasterxml.jackson.annotation.JsonIgnore;
import jakarta.persistence.*; import jakarta.persistence.*;
import com.fasterxml.jackson.annotation.JsonIgnore;
@Entity @Entity
@Table(name = "healthcheck_config") @Table(name = "healthcheck_config")
public class HealthcheckConfig public class HealthcheckConfig

View File

@ -1,9 +1,11 @@
package dev.dinauer.monitoring.entity; package dev.dinauer.monitoring.entity;
import com.fasterxml.jackson.annotation.JsonIgnore;
import dev.dinauer.monitoring.collection.MonitoringCollection;
import jakarta.persistence.*; import jakarta.persistence.*;
import com.fasterxml.jackson.annotation.JsonIgnore;
import dev.dinauer.monitoring.collection.MonitoringCollection;
@Entity @Entity
@Table(name = "monitoring_config") @Table(name = "monitoring_config")
public class MonitoringConfig public class MonitoringConfig

View File

@ -1,12 +1,13 @@
package dev.dinauer.monitoring.entity; package dev.dinauer.monitoring.entity;
import java.util.Map;
import jakarta.persistence.*;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import jakarta.persistence.*;
import java.util.Map;
@Entity @Entity
@Table(name = "target_config") @Table(name = "target_config")

View File

@ -1,8 +1,9 @@
package dev.dinauer.monitoring.entity; package dev.dinauer.monitoring.entity;
import com.fasterxml.jackson.annotation.JsonIgnore;
import jakarta.persistence.*; import jakarta.persistence.*;
import com.fasterxml.jackson.annotation.JsonIgnore;
@Entity @Entity
@Table(name = "volume_config") @Table(name = "volume_config")
public class VolumeConfig public class VolumeConfig

View File

@ -1,12 +1,14 @@
package dev.dinauer.monitoring.entity.repo; 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.MonitoringConfig;
import dev.dinauer.monitoring.entity.MonitoringType; 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 @ApplicationScoped
public class MonitoringRepo implements PanacheRepositoryBase<MonitoringConfig, String> public class MonitoringRepo implements PanacheRepositoryBase<MonitoringConfig, String>

View File

@ -1,10 +1,12 @@
package dev.dinauer.monitoring.indexing; package dev.dinauer.monitoring.indexing;
import io.quarkus.rest.client.reactive.ClientBasicAuth; import java.util.List;
import jakarta.ws.rs.*; import jakarta.ws.rs.*;
import org.eclipse.microprofile.rest.client.inject.RegisterRestClient; import org.eclipse.microprofile.rest.client.inject.RegisterRestClient;
import java.util.List; import io.quarkus.rest.client.reactive.ClientBasicAuth;
@Path("/api/metrics/{resource}/{metric}") @Path("/api/metrics/{resource}/{metric}")
@RegisterRestClient(configKey = "big-bucket") @RegisterRestClient(configKey = "big-bucket")

View File

@ -1,15 +1,17 @@
package dev.dinauer.monitoring.indexing; 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.List;
import java.util.Map; 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 @Startup
@ApplicationScoped @ApplicationScoped
public class BigBucketService public class BigBucketService

View File

@ -1,12 +1,12 @@
package dev.dinauer.monitoring.log; package dev.dinauer.monitoring.log;
import java.time.ZonedDateTime;
import java.util.UUID;
import jakarta.persistence.Entity; import jakarta.persistence.Entity;
import jakarta.persistence.Id; import jakarta.persistence.Id;
import jakarta.persistence.Table; import jakarta.persistence.Table;
import java.time.ZonedDateTime;
import java.util.UUID;
@Entity @Entity
@Table(name = "log") @Table(name = "log")
public class Log public class Log

View File

@ -1,8 +1,9 @@
package dev.dinauer.monitoring.log; package dev.dinauer.monitoring.log;
import io.quarkus.hibernate.orm.panache.PanacheRepositoryBase;
import jakarta.enterprise.context.ApplicationScoped; import jakarta.enterprise.context.ApplicationScoped;
import io.quarkus.hibernate.orm.panache.PanacheRepositoryBase;
@ApplicationScoped @ApplicationScoped
public class LogRepo implements PanacheRepositoryBase<Log, String> public class LogRepo implements PanacheRepositoryBase<Log, String>
{ {

View File

@ -1,10 +1,10 @@
package dev.dinauer.monitoring.memory; package dev.dinauer.monitoring.memory;
import com.cronutils.utils.StringUtils;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import com.cronutils.utils.StringUtils;
public class ByteExtractor public class ByteExtractor
{ {
public static long extractBytes(String input) public static long extractBytes(String input)

View File

@ -1,17 +1,19 @@
package dev.dinauer.monitoring.memory; 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.ProcessRunner;
import dev.dinauer.monitoring.MonitoringService; import dev.dinauer.monitoring.MonitoringService;
import dev.dinauer.monitoring.entity.MonitoringConfig; import dev.dinauer.monitoring.entity.MonitoringConfig;
import dev.dinauer.monitoring.entity.MonitoringType; import dev.dinauer.monitoring.entity.MonitoringType;
import dev.dinauer.monitoring.indexing.BigBucketService; 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 @ApplicationScoped
public class MemoryMonitoringJobRunner public class MemoryMonitoringJobRunner

View File

@ -1,9 +1,5 @@
package dev.dinauer.monitoring.nodes; 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.io.IOException;
import java.util.AbstractMap; import java.util.AbstractMap;
import java.util.List; import java.util.List;
@ -11,6 +7,12 @@ import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream; 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 @ApplicationScoped
public class NodeMonitoringService public class NodeMonitoringService
{ {

View File

@ -1,14 +1,5 @@
package dev.dinauer.monitoring.nodes.client; 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.io.IOException;
import java.net.URI; import java.net.URI;
import java.net.URISyntaxException; import java.net.URISyntaxException;
@ -18,6 +9,17 @@ import java.net.http.HttpResponse;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; 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 @ApplicationScoped
public class NodeDiskService public class NodeDiskService
@ -30,6 +32,9 @@ public class NodeDiskService
@Inject @Inject
PodService podService; PodService podService;
@ConfigProperty(name = "quarkus.profile")
String profile;
public Map<String, NodeDiskMetrics> getDiskMetrics() public Map<String, NodeDiskMetrics> getDiskMetrics()
{ {
Map<String, NodeDiskMetrics> result = new HashMap<>(); Map<String, NodeDiskMetrics> result = new HashMap<>();
@ -48,6 +53,10 @@ public class NodeDiskService
private Map.Entry<String, NodeDiskMetrics> getDiskMetricsForPod(Pod pod) private Map.Entry<String, NodeDiskMetrics> getDiskMetricsForPod(Pod pod)
{ {
String nodeName = pod.getSpec().getNodeName(); 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 ip = pod.getStatus().getPodIP();
String port = "8080"; String port = "8080";
try (HttpClient client = HttpClient.newBuilder().build()) try (HttpClient client = HttpClient.newBuilder().build())

View File

@ -1,15 +1,17 @@
package dev.dinauer.monitoring.pods; 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.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; 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 @ApplicationScoped
public class PodMetricsService public class PodMetricsService
{ {

View File

@ -1,15 +1,5 @@
package dev.dinauer.monitoring.volume; 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.io.IOException;
import java.time.ZonedDateTime; import java.time.ZonedDateTime;
import java.time.temporal.ChronoUnit; import java.time.temporal.ChronoUnit;
@ -18,6 +8,19 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.UUID; 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 @ApplicationScoped
public class VolumeMonitoringJobRunner public class VolumeMonitoringJobRunner
{ {

View File

@ -1,15 +1,5 @@
package dev.dinauer.monitoring.volume; 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.io.IOException;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.nio.file.Files; import java.nio.file.Files;
@ -19,6 +9,15 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.stream.Stream; 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 @ApplicationScoped
public class VolumeUsageRepo public class VolumeUsageRepo
{ {

View File

@ -1,16 +1,19 @@
package dev.dinauer.service; 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.List;
import java.util.Optional; 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 @ApplicationScoped
public class ConfigMapService implements ResourceService<ConfigMap> public class ConfigMapService implements ResourceService<ConfigMap>
{ {

View File

@ -1,16 +1,19 @@
package dev.dinauer.service; 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.api.model.apiextensions.v1.CustomResourceDefinition;
import io.fabric8.kubernetes.client.Watch; import io.fabric8.kubernetes.client.Watch;
import io.fabric8.kubernetes.client.Watcher; import io.fabric8.kubernetes.client.Watcher;
import io.fabric8.kubernetes.client.dsl.ApiextensionsAPIGroupDSL; 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 dev.dinauer.utils.ClientProvider;
import java.util.Optional;
@ApplicationScoped @ApplicationScoped
public class CustomResourceDefinitionService implements ResourceService<CustomResourceDefinition> public class CustomResourceDefinitionService implements ResourceService<CustomResourceDefinition>

View File

@ -1,16 +1,19 @@
package dev.dinauer.service; 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.api.model.apps.Deployment;
import io.fabric8.kubernetes.client.Watch; import io.fabric8.kubernetes.client.Watch;
import io.fabric8.kubernetes.client.Watcher; import io.fabric8.kubernetes.client.Watcher;
import io.fabric8.kubernetes.client.dsl.AppsAPIGroupDSL; 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 dev.dinauer.utils.ClientProvider;
import java.util.Optional;
@ApplicationScoped @ApplicationScoped
public class DeploymentService implements ResourceService<Deployment> public class DeploymentService implements ResourceService<Deployment>

View File

@ -1,19 +1,20 @@
package dev.dinauer.service; package dev.dinauer.service;
import com.fasterxml.jackson.databind.ObjectMapper; import java.util.List;
import dev.dinauer.utils.ClientProvider; 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.ObjectMeta;
import io.fabric8.kubernetes.api.model.networking.v1.Ingress; import io.fabric8.kubernetes.api.model.networking.v1.Ingress;
import io.fabric8.kubernetes.client.Watch; import io.fabric8.kubernetes.client.Watch;
import io.fabric8.kubernetes.client.Watcher; import io.fabric8.kubernetes.client.Watcher;
import io.fabric8.kubernetes.client.dsl.NetworkAPIGroupDSL; 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 dev.dinauer.utils.ClientProvider;
import java.util.Optional;
@ApplicationScoped @ApplicationScoped
public class IngressService implements ResourceService<Ingress> public class IngressService implements ResourceService<Ingress>

View File

@ -1,15 +1,17 @@
package dev.dinauer.service; 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.List;
import java.util.Optional; 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 @ApplicationScoped
public class NamespaceService implements ResourceService<Namespace> public class NamespaceService implements ResourceService<Namespace>
{ {

View File

@ -1,14 +1,18 @@
package dev.dinauer.service; 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.TopNodesService;
import dev.dinauer.monitoring.nodes.MonitoredNode; 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 @ApplicationScoped
public class NodeService implements ResourceService<MonitoredNode> public class NodeService implements ResourceService<MonitoredNode>

View File

@ -1,19 +1,20 @@
package dev.dinauer.service; 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.List;
import java.util.Map; import java.util.Map;
import java.util.Optional; 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 @ApplicationScoped
public class PodService implements ResourceService<Pod> public class PodService implements ResourceService<Pod>
{ {

View File

@ -1,15 +1,17 @@
package dev.dinauer.service; 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.List;
import java.util.Optional; 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 @ApplicationScoped
public class PvService implements ResourceService<PersistentVolume> public class PvService implements ResourceService<PersistentVolume>
{ {

View File

@ -1,15 +1,17 @@
package dev.dinauer.service; 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.List;
import java.util.Optional; 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 @ApplicationScoped
public class PvcService implements ResourceService<PersistentVolumeClaim> public class PvcService implements ResourceService<PersistentVolumeClaim>
{ {

View File

@ -1,11 +1,11 @@
package dev.dinauer.service; package dev.dinauer.service;
import io.fabric8.kubernetes.client.Watch;
import io.fabric8.kubernetes.client.Watcher;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
import io.fabric8.kubernetes.client.Watch;
import io.fabric8.kubernetes.client.Watcher;
public interface ResourceService<T> public interface ResourceService<T>
{ {
void delete(String name, String namespace); void delete(String name, String namespace);

View File

@ -1,16 +1,19 @@
package dev.dinauer.service; 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.List;
import java.util.Optional; 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 @ApplicationScoped
public class SecretService implements ResourceService<Secret> public class SecretService implements ResourceService<Secret>
{ {

View File

@ -1,20 +1,19 @@
package dev.dinauer.service; 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.List;
import java.util.Optional; 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 @ApplicationScoped
public class ServiceService implements ResourceService<Service> public class ServiceService implements ResourceService<Service>
{ {

View File

@ -1,16 +1,19 @@
package dev.dinauer.service; 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.api.model.apps.StatefulSet;
import io.fabric8.kubernetes.client.Watch; import io.fabric8.kubernetes.client.Watch;
import io.fabric8.kubernetes.client.Watcher; import io.fabric8.kubernetes.client.Watcher;
import io.fabric8.kubernetes.client.dsl.AppsAPIGroupDSL; 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 dev.dinauer.utils.ClientProvider;
import java.util.Optional;
@ApplicationScoped @ApplicationScoped
public class StatefulSetService implements ResourceService<StatefulSet> public class StatefulSetService implements ResourceService<StatefulSet>

View File

@ -1,15 +1,17 @@
package dev.dinauer.settings; 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.File;
import java.io.IOException; import java.io.IOException;
import java.nio.file.Path; 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 @ApplicationScoped
public class SettingsRepo public class SettingsRepo
{ {

View File

@ -1,14 +1,16 @@
package dev.dinauer.settings; package dev.dinauer.settings;
import io.quarkus.security.Authenticated; import java.io.IOException;
import jakarta.annotation.security.RolesAllowed; import jakarta.annotation.security.RolesAllowed;
import jakarta.enterprise.context.ApplicationScoped; import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject; import jakarta.inject.Inject;
import jakarta.ws.rs.*; import jakarta.ws.rs.*;
import jakarta.ws.rs.core.MediaType; import jakarta.ws.rs.core.MediaType;
import org.jboss.resteasy.reactive.common.NotImplementedYet; import org.jboss.resteasy.reactive.common.NotImplementedYet;
import java.io.IOException; import io.quarkus.security.Authenticated;
@Path("/settings") @Path("/settings")
@ApplicationScoped @ApplicationScoped

View File

@ -1,15 +1,12 @@
package dev.dinauer.utils; 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.KubernetesClient;
import io.fabric8.kubernetes.client.KubernetesClientBuilder; import io.fabric8.kubernetes.client.KubernetesClientBuilder;
import io.fabric8.kubernetes.client.vertx.VertxHttpClientFactory; import io.fabric8.kubernetes.client.vertx.VertxHttpClientFactory;
import io.vertx.mutiny.core.Vertx; 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 @ApplicationScoped
public class ClientProvider public class ClientProvider

View File

@ -1,19 +1,19 @@
package dev.dinauer.utils; package dev.dinauer.utils;
import dev.dinauer.login.User; import java.util.Set;
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 jakarta.annotation.PostConstruct; import jakarta.annotation.PostConstruct;
import jakarta.enterprise.context.ApplicationScoped; import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject; import jakarta.inject.Inject;
import jakarta.transaction.Transactional;
import org.jboss.logging.Logger; import org.jboss.logging.Logger;
import java.io.IOException; import io.quarkus.elytron.security.common.BcryptUtil;
import java.util.Set; import io.quarkus.narayana.jta.QuarkusTransaction;
import io.quarkus.runtime.Startup;
import dev.dinauer.login.UserEntity;
import dev.dinauer.login.UserRepo;
@Startup @Startup
@ApplicationScoped @ApplicationScoped

View File

@ -1,10 +1,9 @@
package dev.dinauer.monitoring.memory; 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 static org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.jupiter.api.Test;
public class ByteExtractorTest public class ByteExtractorTest
{ {
@Test @Test