diff options
Diffstat (limited to 'opendc-web')
34 files changed, 218 insertions, 49 deletions
diff --git a/opendc-web/opendc-web-client/src/main/kotlin/org/opendc/web/client/ProjectResource.kt b/opendc-web/opendc-web-client/src/main/kotlin/org/opendc/web/client/ProjectResource.kt index 12635b89..579d0d66 100644 --- a/opendc-web/opendc-web-client/src/main/kotlin/org/opendc/web/client/ProjectResource.kt +++ b/opendc-web/opendc-web-client/src/main/kotlin/org/opendc/web/client/ProjectResource.kt @@ -22,7 +22,9 @@ package org.opendc.web.client -import org.opendc.web.client.internal.* +import org.opendc.web.client.internal.delete +import org.opendc.web.client.internal.get +import org.opendc.web.client.internal.post import org.opendc.web.client.transport.TransportClient import org.opendc.web.proto.user.Project diff --git a/opendc-web/opendc-web-client/src/main/kotlin/org/opendc/web/client/TraceResource.kt b/opendc-web/opendc-web-client/src/main/kotlin/org/opendc/web/client/TraceResource.kt index 8201c432..b4a8c089 100644 --- a/opendc-web/opendc-web-client/src/main/kotlin/org/opendc/web/client/TraceResource.kt +++ b/opendc-web/opendc-web-client/src/main/kotlin/org/opendc/web/client/TraceResource.kt @@ -22,7 +22,7 @@ package org.opendc.web.client -import org.opendc.web.client.internal.* +import org.opendc.web.client.internal.get import org.opendc.web.client.transport.TransportClient import org.opendc.web.proto.Trace diff --git a/opendc-web/opendc-web-client/src/main/kotlin/org/opendc/web/client/runner/JobResource.kt b/opendc-web/opendc-web-client/src/main/kotlin/org/opendc/web/client/runner/JobResource.kt index 372a92d7..ad3f1c9b 100644 --- a/opendc-web/opendc-web-client/src/main/kotlin/org/opendc/web/client/runner/JobResource.kt +++ b/opendc-web/opendc-web-client/src/main/kotlin/org/opendc/web/client/runner/JobResource.kt @@ -22,7 +22,8 @@ package org.opendc.web.client.runner -import org.opendc.web.client.internal.* +import org.opendc.web.client.internal.get +import org.opendc.web.client.internal.post import org.opendc.web.client.transport.TransportClient import org.opendc.web.proto.runner.Job diff --git a/opendc-web/opendc-web-client/src/main/kotlin/org/opendc/web/client/runner/OpenDCRunnerClient.kt b/opendc-web/opendc-web-client/src/main/kotlin/org/opendc/web/client/runner/OpenDCRunnerClient.kt index e2112b8c..98785a55 100644 --- a/opendc-web/opendc-web-client/src/main/kotlin/org/opendc/web/client/runner/OpenDCRunnerClient.kt +++ b/opendc-web/opendc-web-client/src/main/kotlin/org/opendc/web/client/runner/OpenDCRunnerClient.kt @@ -22,7 +22,8 @@ package org.opendc.web.client.runner -import org.opendc.web.client.* +import org.opendc.web.client.SchedulerResource +import org.opendc.web.client.TraceResource import org.opendc.web.client.auth.AuthController import org.opendc.web.client.transport.HttpTransportClient import org.opendc.web.client.transport.TransportClient diff --git a/opendc-web/opendc-web-proto/src/main/kotlin/org/opendc/web/proto/runner/Scenario.kt b/opendc-web/opendc-web-proto/src/main/kotlin/org/opendc/web/proto/runner/Scenario.kt index c5e609ec..aeffc4d7 100644 --- a/opendc-web/opendc-web-proto/src/main/kotlin/org/opendc/web/proto/runner/Scenario.kt +++ b/opendc-web/opendc-web-proto/src/main/kotlin/org/opendc/web/proto/runner/Scenario.kt @@ -23,7 +23,8 @@ package org.opendc.web.proto.runner import org.eclipse.microprofile.openapi.annotations.media.Schema -import org.opendc.web.proto.* +import org.opendc.web.proto.OperationalPhenomena +import org.opendc.web.proto.Workload /** * A [Scenario] that is exposed to an OpenDC runner. diff --git a/opendc-web/opendc-web-proto/src/main/kotlin/org/opendc/web/proto/runner/Topology.kt b/opendc-web/opendc-web-proto/src/main/kotlin/org/opendc/web/proto/runner/Topology.kt index ea576e71..4bffdee9 100644 --- a/opendc-web/opendc-web-proto/src/main/kotlin/org/opendc/web/proto/runner/Topology.kt +++ b/opendc-web/opendc-web-proto/src/main/kotlin/org/opendc/web/proto/runner/Topology.kt @@ -23,7 +23,7 @@ package org.opendc.web.proto.runner import org.eclipse.microprofile.openapi.annotations.media.Schema -import org.opendc.web.proto.* +import org.opendc.web.proto.Room import java.time.Instant /** diff --git a/opendc-web/opendc-web-runner/src/cli/kotlin/org/opendc/web/runner/Main.kt b/opendc-web/opendc-web-runner/src/cli/kotlin/org/opendc/web/runner/Main.kt index 4cfbdd7c..56fecf78 100644 --- a/opendc-web/opendc-web-runner/src/cli/kotlin/org/opendc/web/runner/Main.kt +++ b/opendc-web/opendc-web-runner/src/cli/kotlin/org/opendc/web/runner/Main.kt @@ -23,7 +23,11 @@ package org.opendc.web.runner import com.github.ajalt.clikt.core.CliktCommand -import com.github.ajalt.clikt.parameters.options.* +import com.github.ajalt.clikt.parameters.options.convert +import com.github.ajalt.clikt.parameters.options.default +import com.github.ajalt.clikt.parameters.options.defaultLazy +import com.github.ajalt.clikt.parameters.options.option +import com.github.ajalt.clikt.parameters.options.required import com.github.ajalt.clikt.parameters.types.file import com.github.ajalt.clikt.parameters.types.int import mu.KotlinLogging diff --git a/opendc-web/opendc-web-runner/src/main/kotlin/org/opendc/web/runner/OpenDCRunner.kt b/opendc-web/opendc-web-runner/src/main/kotlin/org/opendc/web/runner/OpenDCRunner.kt index d340d31c..b0f99084 100644 --- a/opendc-web/opendc-web-runner/src/main/kotlin/org/opendc/web/runner/OpenDCRunner.kt +++ b/opendc-web/opendc-web-runner/src/main/kotlin/org/opendc/web/runner/OpenDCRunner.kt @@ -24,8 +24,16 @@ package org.opendc.web.runner import mu.KotlinLogging import org.opendc.compute.service.ComputeService -import org.opendc.experiments.compute.* +import org.opendc.experiments.compute.ComputeWorkloadLoader +import org.opendc.experiments.compute.createComputeScheduler +import org.opendc.experiments.compute.grid5000 +import org.opendc.experiments.compute.registerComputeMonitor +import org.opendc.experiments.compute.replay +import org.opendc.experiments.compute.sampleByLoad +import org.opendc.experiments.compute.setupComputeService +import org.opendc.experiments.compute.setupHosts import org.opendc.experiments.compute.topology.HostSpec +import org.opendc.experiments.compute.trace import org.opendc.experiments.provisioner.Provisioner import org.opendc.simulator.compute.model.MachineModel import org.opendc.simulator.compute.model.MemoryUnit @@ -40,9 +48,16 @@ import org.opendc.web.proto.runner.Topology import org.opendc.web.runner.internal.WebComputeMonitor import java.io.File import java.time.Duration -import java.util.* -import java.util.concurrent.* +import java.util.Random +import java.util.UUID +import java.util.concurrent.Executors +import java.util.concurrent.ForkJoinPool import java.util.concurrent.ForkJoinPool.ForkJoinWorkerThreadFactory +import java.util.concurrent.ForkJoinWorkerThread +import java.util.concurrent.RecursiveAction +import java.util.concurrent.RecursiveTask +import java.util.concurrent.ScheduledExecutorService +import java.util.concurrent.TimeUnit /** * Class to execute the pending jobs via the OpenDC web API. diff --git a/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/model/Job.kt b/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/model/Job.kt index 024e7b89..c07e07f0 100644 --- a/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/model/Job.kt +++ b/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/model/Job.kt @@ -27,7 +27,17 @@ import org.hibernate.annotations.TypeDef import org.opendc.web.proto.JobState import org.opendc.web.server.util.hibernate.json.JsonType import java.time.Instant -import javax.persistence.* +import javax.persistence.Column +import javax.persistence.Entity +import javax.persistence.FetchType +import javax.persistence.GeneratedValue +import javax.persistence.GenerationType +import javax.persistence.Id +import javax.persistence.JoinColumn +import javax.persistence.NamedQueries +import javax.persistence.NamedQuery +import javax.persistence.OneToOne +import javax.persistence.Table /** * A simulation job to be run by the simulator. diff --git a/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/model/Portfolio.kt b/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/model/Portfolio.kt index 3e3f76a0..5b686d5f 100644 --- a/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/model/Portfolio.kt +++ b/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/model/Portfolio.kt @@ -26,7 +26,21 @@ import org.hibernate.annotations.Type import org.hibernate.annotations.TypeDef import org.opendc.web.proto.Targets import org.opendc.web.server.util.hibernate.json.JsonType -import javax.persistence.* +import javax.persistence.CascadeType +import javax.persistence.Column +import javax.persistence.Entity +import javax.persistence.GeneratedValue +import javax.persistence.GenerationType +import javax.persistence.Id +import javax.persistence.Index +import javax.persistence.JoinColumn +import javax.persistence.ManyToOne +import javax.persistence.NamedQueries +import javax.persistence.NamedQuery +import javax.persistence.OneToMany +import javax.persistence.OrderBy +import javax.persistence.Table +import javax.persistence.UniqueConstraint /** * A portfolio is the composition of multiple scenarios. diff --git a/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/model/Project.kt b/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/model/Project.kt index aa98b677..5eb925ea 100644 --- a/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/model/Project.kt +++ b/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/model/Project.kt @@ -23,7 +23,17 @@ package org.opendc.web.server.model import java.time.Instant -import javax.persistence.* +import javax.persistence.CascadeType +import javax.persistence.Column +import javax.persistence.Entity +import javax.persistence.GeneratedValue +import javax.persistence.GenerationType +import javax.persistence.Id +import javax.persistence.NamedQueries +import javax.persistence.NamedQuery +import javax.persistence.OneToMany +import javax.persistence.OrderBy +import javax.persistence.Table /** * A project in OpenDC encapsulates all the datacenter designs and simulation runs for a set of users. diff --git a/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/model/ProjectAuthorization.kt b/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/model/ProjectAuthorization.kt index a353186e..791725cd 100644 --- a/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/model/ProjectAuthorization.kt +++ b/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/model/ProjectAuthorization.kt @@ -23,7 +23,13 @@ package org.opendc.web.server.model import org.opendc.web.proto.user.ProjectRole -import javax.persistence.* +import javax.persistence.Column +import javax.persistence.EmbeddedId +import javax.persistence.Entity +import javax.persistence.JoinColumn +import javax.persistence.ManyToOne +import javax.persistence.MapsId +import javax.persistence.Table /** * An authorization for some user to participate in a project. diff --git a/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/model/Scenario.kt b/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/model/Scenario.kt index e40cff47..a7258e7b 100644 --- a/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/model/Scenario.kt +++ b/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/model/Scenario.kt @@ -26,7 +26,21 @@ import org.hibernate.annotations.Type import org.hibernate.annotations.TypeDef import org.opendc.web.proto.OperationalPhenomena import org.opendc.web.server.util.hibernate.json.JsonType -import javax.persistence.* +import javax.persistence.CascadeType +import javax.persistence.Column +import javax.persistence.Embedded +import javax.persistence.Entity +import javax.persistence.GeneratedValue +import javax.persistence.GenerationType +import javax.persistence.Id +import javax.persistence.Index +import javax.persistence.JoinColumn +import javax.persistence.ManyToOne +import javax.persistence.NamedQueries +import javax.persistence.NamedQuery +import javax.persistence.OneToOne +import javax.persistence.Table +import javax.persistence.UniqueConstraint /** * A single scenario to be explored by the simulator. diff --git a/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/model/Topology.kt b/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/model/Topology.kt index a190b1ee..26368455 100644 --- a/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/model/Topology.kt +++ b/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/model/Topology.kt @@ -27,7 +27,18 @@ import org.hibernate.annotations.TypeDef import org.opendc.web.proto.Room import org.opendc.web.server.util.hibernate.json.JsonType import java.time.Instant -import javax.persistence.* +import javax.persistence.Column +import javax.persistence.Entity +import javax.persistence.GeneratedValue +import javax.persistence.GenerationType +import javax.persistence.Id +import javax.persistence.Index +import javax.persistence.JoinColumn +import javax.persistence.ManyToOne +import javax.persistence.NamedQueries +import javax.persistence.NamedQuery +import javax.persistence.Table +import javax.persistence.UniqueConstraint /** * A datacenter design in OpenDC. diff --git a/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/model/Trace.kt b/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/model/Trace.kt index 8aaac613..0fc79ca8 100644 --- a/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/model/Trace.kt +++ b/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/model/Trace.kt @@ -22,7 +22,12 @@ package org.opendc.web.server.model -import javax.persistence.* +import javax.persistence.Column +import javax.persistence.Entity +import javax.persistence.Id +import javax.persistence.NamedQueries +import javax.persistence.NamedQuery +import javax.persistence.Table /** * A workload trace available for simulation. diff --git a/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/rest/TraceResource.kt b/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/rest/TraceResource.kt index f46f7f91..a33bd8f1 100644 --- a/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/rest/TraceResource.kt +++ b/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/rest/TraceResource.kt @@ -25,7 +25,10 @@ package org.opendc.web.server.rest import org.opendc.web.proto.Trace import org.opendc.web.server.service.TraceService import javax.inject.Inject -import javax.ws.rs.* +import javax.ws.rs.GET +import javax.ws.rs.Path +import javax.ws.rs.PathParam +import javax.ws.rs.WebApplicationException /** * A resource representing the workload traces available in the OpenDC instance. diff --git a/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/rest/runner/JobResource.kt b/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/rest/runner/JobResource.kt index 351a2237..4aa2f6a1 100644 --- a/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/rest/runner/JobResource.kt +++ b/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/rest/runner/JobResource.kt @@ -28,7 +28,11 @@ import javax.annotation.security.RolesAllowed import javax.inject.Inject import javax.transaction.Transactional import javax.validation.Valid -import javax.ws.rs.* +import javax.ws.rs.GET +import javax.ws.rs.POST +import javax.ws.rs.Path +import javax.ws.rs.PathParam +import javax.ws.rs.WebApplicationException /** * A resource representing the available simulation jobs. diff --git a/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/rest/user/PortfolioResource.kt b/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/rest/user/PortfolioResource.kt index 2a9d6f1b..da565fe4 100644 --- a/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/rest/user/PortfolioResource.kt +++ b/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/rest/user/PortfolioResource.kt @@ -29,7 +29,12 @@ import javax.annotation.security.RolesAllowed import javax.inject.Inject import javax.transaction.Transactional import javax.validation.Valid -import javax.ws.rs.* +import javax.ws.rs.DELETE +import javax.ws.rs.GET +import javax.ws.rs.POST +import javax.ws.rs.Path +import javax.ws.rs.PathParam +import javax.ws.rs.WebApplicationException /** * A resource representing the portfolios of a project. diff --git a/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/rest/user/PortfolioScenarioResource.kt b/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/rest/user/PortfolioScenarioResource.kt index f2372bde..515f6be6 100644 --- a/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/rest/user/PortfolioScenarioResource.kt +++ b/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/rest/user/PortfolioScenarioResource.kt @@ -29,7 +29,11 @@ import javax.annotation.security.RolesAllowed import javax.inject.Inject import javax.transaction.Transactional import javax.validation.Valid -import javax.ws.rs.* +import javax.ws.rs.GET +import javax.ws.rs.POST +import javax.ws.rs.Path +import javax.ws.rs.PathParam +import javax.ws.rs.WebApplicationException /** * A resource representing the scenarios of a portfolio. diff --git a/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/rest/user/ProjectResource.kt b/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/rest/user/ProjectResource.kt index f3d96f55..817f53a5 100644 --- a/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/rest/user/ProjectResource.kt +++ b/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/rest/user/ProjectResource.kt @@ -29,7 +29,12 @@ import javax.annotation.security.RolesAllowed import javax.inject.Inject import javax.transaction.Transactional import javax.validation.Valid -import javax.ws.rs.* +import javax.ws.rs.DELETE +import javax.ws.rs.GET +import javax.ws.rs.POST +import javax.ws.rs.Path +import javax.ws.rs.PathParam +import javax.ws.rs.WebApplicationException /** * A resource representing the created projects. diff --git a/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/rest/user/ScenarioResource.kt b/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/rest/user/ScenarioResource.kt index 24cdcb6a..56bb4290 100644 --- a/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/rest/user/ScenarioResource.kt +++ b/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/rest/user/ScenarioResource.kt @@ -28,7 +28,11 @@ import org.opendc.web.server.service.ScenarioService import javax.annotation.security.RolesAllowed import javax.inject.Inject import javax.transaction.Transactional -import javax.ws.rs.* +import javax.ws.rs.DELETE +import javax.ws.rs.GET +import javax.ws.rs.Path +import javax.ws.rs.PathParam +import javax.ws.rs.WebApplicationException /** * A resource representing the scenarios of a portfolio. diff --git a/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/rest/user/TopologyResource.kt b/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/rest/user/TopologyResource.kt index 40b3741c..8eef66c8 100644 --- a/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/rest/user/TopologyResource.kt +++ b/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/rest/user/TopologyResource.kt @@ -29,7 +29,13 @@ import javax.annotation.security.RolesAllowed import javax.inject.Inject import javax.transaction.Transactional import javax.validation.Valid -import javax.ws.rs.* +import javax.ws.rs.DELETE +import javax.ws.rs.GET +import javax.ws.rs.POST +import javax.ws.rs.PUT +import javax.ws.rs.Path +import javax.ws.rs.PathParam +import javax.ws.rs.WebApplicationException /** * A resource representing the constructed datacenter topologies. diff --git a/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/service/PortfolioService.kt b/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/service/PortfolioService.kt index 0d380190..c83b7a54 100644 --- a/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/service/PortfolioService.kt +++ b/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/service/PortfolioService.kt @@ -23,7 +23,6 @@ package org.opendc.web.server.service import org.opendc.web.proto.user.Portfolio -import org.opendc.web.server.model.* import org.opendc.web.server.repository.PortfolioRepository import org.opendc.web.server.repository.ProjectRepository import java.time.Instant diff --git a/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/service/ProjectService.kt b/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/service/ProjectService.kt index 44348195..2fc5a054 100644 --- a/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/service/ProjectService.kt +++ b/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/service/ProjectService.kt @@ -22,13 +22,15 @@ package org.opendc.web.server.service -import org.opendc.web.proto.user.Project import org.opendc.web.proto.user.ProjectRole -import org.opendc.web.server.model.* +import org.opendc.web.server.model.Project +import org.opendc.web.server.model.ProjectAuthorization +import org.opendc.web.server.model.ProjectAuthorizationKey import org.opendc.web.server.repository.ProjectRepository import java.time.Instant import javax.enterprise.context.ApplicationScoped import javax.inject.Inject +import org.opendc.web.proto.user.Project as ProjectDto /** * Service for managing [Project]s. @@ -38,21 +40,21 @@ class ProjectService @Inject constructor(private val repository: ProjectReposito /** * List all projects for the user with the specified [userId]. */ - fun findWithUser(userId: String): List<Project> { + fun findWithUser(userId: String): List<ProjectDto> { return repository.findAll(userId).map { it.toUserDto() } } /** * Obtain the project with the specified [id] for the user with the specified [userId]. */ - fun findWithUser(userId: String, id: Long): Project? { + fun findWithUser(userId: String, id: Long): ProjectDto? { return repository.findOne(userId, id)?.toUserDto() } /** * Create a new [Project] for the user with the specified [userId]. */ - fun createForUser(userId: String, name: String): Project { + fun createForUser(userId: String, name: String): ProjectDto { val now = Instant.now() val entity = Project(0, name, now) repository.save(entity) @@ -71,7 +73,7 @@ class ProjectService @Inject constructor(private val repository: ProjectReposito * @param userId The user that invokes the action. * @param id The identifier of the project. */ - fun deleteWithUser(userId: String, id: Long): Project? { + fun deleteWithUser(userId: String, id: Long): ProjectDto? { val auth = repository.findOne(userId, id) ?: return null if (!auth.role.canDelete) { diff --git a/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/service/ScenarioService.kt b/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/service/ScenarioService.kt index 5b56068d..1929f44b 100644 --- a/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/service/ScenarioService.kt +++ b/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/service/ScenarioService.kt @@ -22,12 +22,18 @@ package org.opendc.web.server.service -import org.opendc.web.proto.user.Scenario -import org.opendc.web.server.model.* -import org.opendc.web.server.repository.* +import org.opendc.web.server.model.Job +import org.opendc.web.server.model.Scenario +import org.opendc.web.server.model.Workload +import org.opendc.web.server.repository.PortfolioRepository +import org.opendc.web.server.repository.ProjectRepository +import org.opendc.web.server.repository.ScenarioRepository +import org.opendc.web.server.repository.TopologyRepository +import org.opendc.web.server.repository.TraceRepository import java.time.Instant import javax.enterprise.context.ApplicationScoped import javax.inject.Inject +import org.opendc.web.proto.user.Scenario as ScenarioDto /** * Service for managing [Scenario]s. @@ -43,7 +49,7 @@ class ScenarioService @Inject constructor( /** * List all [Scenario]s that belong a certain portfolio. */ - fun findAll(userId: String, projectId: Long, number: Int): List<Scenario> { + fun findAll(userId: String, projectId: Long, number: Int): List<ScenarioDto> { // User must have access to project val auth = projectRepository.findOne(userId, projectId) ?: return emptyList() val project = auth.toUserDto() @@ -53,7 +59,7 @@ class ScenarioService @Inject constructor( /** * Obtain a [Scenario] by identifier. */ - fun findOne(userId: String, projectId: Long, number: Int): Scenario? { + fun findOne(userId: String, projectId: Long, number: Int): ScenarioDto? { // User must have access to project val auth = projectRepository.findOne(userId, projectId) ?: return null val project = auth.toUserDto() @@ -63,7 +69,7 @@ class ScenarioService @Inject constructor( /** * Delete the specified scenario. */ - fun delete(userId: String, projectId: Long, number: Int): Scenario? { + fun delete(userId: String, projectId: Long, number: Int): ScenarioDto? { // User must have access to project val auth = projectRepository.findOne(userId, projectId) @@ -82,7 +88,7 @@ class ScenarioService @Inject constructor( /** * Construct a new [Scenario] with the specified data. */ - fun create(userId: String, projectId: Long, portfolioNumber: Int, request: Scenario.Create): Scenario? { + fun create(userId: String, projectId: Long, portfolioNumber: Int, request: ScenarioDto.Create): ScenarioDto? { // User must have access to project val auth = projectRepository.findOne(userId, projectId) diff --git a/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/service/UserConversions.kt b/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/service/UserConversions.kt index ee78d103..e28d9c0f 100644 --- a/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/service/UserConversions.kt +++ b/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/service/UserConversions.kt @@ -23,7 +23,13 @@ package org.opendc.web.server.service import org.opendc.web.proto.user.Project -import org.opendc.web.server.model.* +import org.opendc.web.server.model.Job +import org.opendc.web.server.model.Portfolio +import org.opendc.web.server.model.ProjectAuthorization +import org.opendc.web.server.model.Scenario +import org.opendc.web.server.model.Topology +import org.opendc.web.server.model.Trace +import org.opendc.web.server.model.Workload /** * Conversions into DTOs provided to users. diff --git a/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/util/hibernate/json/JsonBytesSqlTypeDescriptor.kt b/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/util/hibernate/json/JsonBytesSqlTypeDescriptor.kt index 216c465f..cc8dad48 100644 --- a/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/util/hibernate/json/JsonBytesSqlTypeDescriptor.kt +++ b/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/util/hibernate/json/JsonBytesSqlTypeDescriptor.kt @@ -27,7 +27,10 @@ import org.hibernate.type.descriptor.WrapperOptions import org.hibernate.type.descriptor.java.JavaTypeDescriptor import org.hibernate.type.descriptor.sql.BasicBinder import java.io.UnsupportedEncodingException -import java.sql.* +import java.sql.CallableStatement +import java.sql.PreparedStatement +import java.sql.ResultSet +import java.sql.Types /** * A [AbstractJsonSqlTypeDescriptor] that stores the JSON as UTF-8 encoded bytes. diff --git a/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/util/hibernate/json/JsonSqlTypeDescriptor.kt b/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/util/hibernate/json/JsonSqlTypeDescriptor.kt index f5069c4c..bd22ffbe 100644 --- a/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/util/hibernate/json/JsonSqlTypeDescriptor.kt +++ b/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/util/hibernate/json/JsonSqlTypeDescriptor.kt @@ -32,7 +32,10 @@ import org.hibernate.type.descriptor.java.JavaTypeDescriptor import org.hibernate.type.descriptor.sql.BasicBinder import org.hibernate.type.descriptor.sql.BasicExtractor import org.hibernate.type.descriptor.sql.SqlTypeDescriptor -import java.sql.* +import java.sql.CallableStatement +import java.sql.PreparedStatement +import java.sql.ResultSet +import java.sql.Types /** * A [SqlTypeDescriptor] that automatically selects the correct implementation for the database dialect. diff --git a/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/util/hibernate/json/JsonStringSqlTypeDescriptor.kt b/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/util/hibernate/json/JsonStringSqlTypeDescriptor.kt index 3d10cb0e..63f32849 100644 --- a/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/util/hibernate/json/JsonStringSqlTypeDescriptor.kt +++ b/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/util/hibernate/json/JsonStringSqlTypeDescriptor.kt @@ -4,7 +4,10 @@ import org.hibernate.type.descriptor.ValueBinder import org.hibernate.type.descriptor.WrapperOptions import org.hibernate.type.descriptor.java.JavaTypeDescriptor import org.hibernate.type.descriptor.sql.BasicBinder -import java.sql.* +import java.sql.CallableStatement +import java.sql.PreparedStatement +import java.sql.ResultSet +import java.sql.Types /** * A [AbstractJsonSqlTypeDescriptor] that stores the JSON as string (VARCHAR). diff --git a/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/util/hibernate/json/JsonType.kt b/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/util/hibernate/json/JsonType.kt index 98663640..9ee21a4c 100644 --- a/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/util/hibernate/json/JsonType.kt +++ b/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/util/hibernate/json/JsonType.kt @@ -26,7 +26,7 @@ import com.fasterxml.jackson.databind.ObjectMapper import org.hibernate.type.AbstractSingleColumnStandardBasicType import org.hibernate.type.BasicType import org.hibernate.usertype.DynamicParameterizedType -import java.util.* +import java.util.Properties import javax.enterprise.inject.spi.CDI /** diff --git a/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/util/hibernate/json/JsonTypeDescriptor.kt b/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/util/hibernate/json/JsonTypeDescriptor.kt index 6c6078dd..9407f940 100644 --- a/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/util/hibernate/json/JsonTypeDescriptor.kt +++ b/opendc-web/opendc-web-server/src/main/kotlin/org/opendc/web/server/util/hibernate/json/JsonTypeDescriptor.kt @@ -40,7 +40,8 @@ import java.io.InputStream import java.lang.reflect.Type import java.sql.Blob import java.sql.SQLException -import java.util.* +import java.util.Objects +import java.util.Properties /** * An [AbstractTypeDescriptor] implementation for Hibernate JSON type. diff --git a/opendc-web/opendc-web-server/src/test/kotlin/org/opendc/web/server/rest/runner/JobResourceTest.kt b/opendc-web/opendc-web-server/src/test/kotlin/org/opendc/web/server/rest/runner/JobResourceTest.kt index c96788b0..71aaa8a4 100644 --- a/opendc-web/opendc-web-server/src/test/kotlin/org/opendc/web/server/rest/runner/JobResourceTest.kt +++ b/opendc-web/opendc-web-server/src/test/kotlin/org/opendc/web/server/rest/runner/JobResourceTest.kt @@ -35,8 +35,11 @@ import io.restassured.module.kotlin.extensions.When import org.hamcrest.Matchers.equalTo import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test -import org.opendc.web.proto.* +import org.opendc.web.proto.JobState +import org.opendc.web.proto.OperationalPhenomena import org.opendc.web.proto.Targets +import org.opendc.web.proto.Trace +import org.opendc.web.proto.Workload import org.opendc.web.proto.runner.Job import org.opendc.web.proto.runner.Portfolio import org.opendc.web.proto.runner.Scenario diff --git a/opendc-web/opendc-web-server/src/test/kotlin/org/opendc/web/server/rest/user/PortfolioScenarioResourceTest.kt b/opendc-web/opendc-web-server/src/test/kotlin/org/opendc/web/server/rest/user/PortfolioScenarioResourceTest.kt index 13c47d19..676a43dc 100644 --- a/opendc-web/opendc-web-server/src/test/kotlin/org/opendc/web/server/rest/user/PortfolioScenarioResourceTest.kt +++ b/opendc-web/opendc-web-server/src/test/kotlin/org/opendc/web/server/rest/user/PortfolioScenarioResourceTest.kt @@ -35,8 +35,17 @@ import io.restassured.module.kotlin.extensions.When import org.hamcrest.Matchers import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test -import org.opendc.web.proto.* -import org.opendc.web.proto.user.* +import org.opendc.web.proto.JobState +import org.opendc.web.proto.OperationalPhenomena +import org.opendc.web.proto.Targets +import org.opendc.web.proto.Trace +import org.opendc.web.proto.Workload +import org.opendc.web.proto.user.Job +import org.opendc.web.proto.user.Portfolio +import org.opendc.web.proto.user.Project +import org.opendc.web.proto.user.ProjectRole +import org.opendc.web.proto.user.Scenario +import org.opendc.web.proto.user.Topology import org.opendc.web.server.service.ScenarioService import java.time.Instant diff --git a/opendc-web/opendc-web-server/src/test/kotlin/org/opendc/web/server/rest/user/ScenarioResourceTest.kt b/opendc-web/opendc-web-server/src/test/kotlin/org/opendc/web/server/rest/user/ScenarioResourceTest.kt index 1d63679e..2e080971 100644 --- a/opendc-web/opendc-web-server/src/test/kotlin/org/opendc/web/server/rest/user/ScenarioResourceTest.kt +++ b/opendc-web/opendc-web-server/src/test/kotlin/org/opendc/web/server/rest/user/ScenarioResourceTest.kt @@ -35,8 +35,17 @@ import io.restassured.module.kotlin.extensions.When import org.hamcrest.Matchers import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test -import org.opendc.web.proto.* -import org.opendc.web.proto.user.* +import org.opendc.web.proto.JobState +import org.opendc.web.proto.OperationalPhenomena +import org.opendc.web.proto.Targets +import org.opendc.web.proto.Trace +import org.opendc.web.proto.Workload +import org.opendc.web.proto.user.Job +import org.opendc.web.proto.user.Portfolio +import org.opendc.web.proto.user.Project +import org.opendc.web.proto.user.ProjectRole +import org.opendc.web.proto.user.Scenario +import org.opendc.web.proto.user.Topology import org.opendc.web.server.service.ScenarioService import java.time.Instant |
