From 87fc9b27d961b0475efa70ae4a52b7fc2ac63f0f Mon Sep 17 00:00:00 2001 From: bennettn4 Date: Mon, 15 Jul 2024 10:08:38 -0400 Subject: [PATCH 01/17] add base v1 routes to azure --- .../dsde/workbench/leonardo/http/api/HttpRoutes.scala | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/HttpRoutes.scala b/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/HttpRoutes.scala index 6d11ebcf2cd..15afa9ad1b8 100644 --- a/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/HttpRoutes.scala +++ b/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/HttpRoutes.scala @@ -133,7 +133,8 @@ class HttpRoutes( oidcConfig .swaggerRoutes("swagger/api-docs.yaml") ~ oidcConfig.oauth2Routes ~ statusRoutes.route ~ pathPrefix("api") { - runtimeV2Routes.routes ~ appV2Routes.routes ~ diskV2Routes.routes ~ adminRoutes.routes + runtimeRoutes.get.routes ~ runtimeV2Routes.routes ~ + diskRoutes.get.routes ~ diskV2Routes.routes ~ appV2Routes.routes ~ adminRoutes.routes } ) } From de9477aeb638a77dfc8589234bffc69e193109e1 Mon Sep 17 00:00:00 2001 From: bennettn4 Date: Mon, 15 Jul 2024 11:12:32 -0400 Subject: [PATCH 02/17] added diskservice to azure dependency --- .../leonardo/http/AzureDependenciesBuilder.scala | 16 +++++++++++++++- .../http/service/DiskServiceInterp.scala | 4 ++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/AzureDependenciesBuilder.scala b/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/AzureDependenciesBuilder.scala index 21ef44eb027..386c715b517 100644 --- a/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/AzureDependenciesBuilder.scala +++ b/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/AzureDependenciesBuilder.scala @@ -3,7 +3,7 @@ import akka.actor.ActorSystem import cats.effect.{IO, Resource} import org.broadinstitute.dsde.workbench.leonardo.config.Config.{appServiceConfig, gkeCustomAppConfig} import org.broadinstitute.dsde.workbench.leonardo.db.DbReference -import org.broadinstitute.dsde.workbench.leonardo.http.service.LeoAppServiceInterp +import org.broadinstitute.dsde.workbench.leonardo.http.service.{DiskService, DiskServiceInterp, LeoAppServiceInterp} import org.broadinstitute.dsde.workbench.leonardo.monitor.MonitorAtBoot import org.broadinstitute.dsde.workbench.leonardo.util.ServicesRegistry import org.broadinstitute.dsde.workbench.openTelemetry.OpenTelemetryMetrics @@ -85,10 +85,24 @@ class AzureDependenciesBuilder extends CloudDependenciesBuilder { baselineDependencies.wsmClientProvider ) + val diskService = new DiskServiceInterp[IO]( + ConfigReader.appConfig.persistentDisk, + baselineDependencies.authProvider, + baselineDependencies.serviceAccountProvider, + baselineDependencies.publisherQueue, + None, + None + ) + + var servicesRegistry = ServicesRegistry() servicesRegistry.register[LeoAppServiceInterp[IO]](leoKubernetesService) + //From GCP + servicesRegistry.register[DiskService[IO]](diskService) + + Resource.make(IO(servicesRegistry))(_ => IO.unit) } } diff --git a/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/service/DiskServiceInterp.scala b/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/service/DiskServiceInterp.scala index 6fffdb6a274..fdcb970d47b 100644 --- a/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/service/DiskServiceInterp.scala +++ b/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/service/DiskServiceInterp.scala @@ -38,8 +38,8 @@ class DiskServiceInterp[F[_]: Parallel](config: PersistentDiskConfig, authProvider: LeoAuthProvider[F], serviceAccountProvider: ServiceAccountProvider[F], publisherQueue: Queue[F, LeoPubsubMessage], - googleDiskService: GoogleDiskService[F], - googleProjectDAO: GoogleProjectDAO + googleDiskService: Option[GoogleDiskService[F]], + googleProjectDAO: Option[GoogleProjectDAO] )(implicit F: Async[F], log: StructuredLogger[F], From 9d487bcfee60d8c4679b69aded1d034793f1b289 Mon Sep 17 00:00:00 2001 From: bennettn4 Date: Mon, 15 Jul 2024 11:45:10 -0400 Subject: [PATCH 03/17] finish diskservice options --- .../workbench/leonardo/http/AzureDependenciesBuilder.scala | 4 +--- .../workbench/leonardo/http/GcpDependenciesBuilder.scala | 4 ++-- .../workbench/leonardo/http/service/DiskServiceInterp.scala | 6 +++--- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/AzureDependenciesBuilder.scala b/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/AzureDependenciesBuilder.scala index 386c715b517..080a6000073 100644 --- a/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/AzureDependenciesBuilder.scala +++ b/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/AzureDependenciesBuilder.scala @@ -94,15 +94,13 @@ class AzureDependenciesBuilder extends CloudDependenciesBuilder { None ) - var servicesRegistry = ServicesRegistry() servicesRegistry.register[LeoAppServiceInterp[IO]](leoKubernetesService) - //From GCP + // From GCP servicesRegistry.register[DiskService[IO]](diskService) - Resource.make(IO(servicesRegistry))(_ => IO.unit) } } diff --git a/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/GcpDependenciesBuilder.scala b/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/GcpDependenciesBuilder.scala index 842bc9dc2fc..d66cc6ea502 100644 --- a/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/GcpDependenciesBuilder.scala +++ b/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/GcpDependenciesBuilder.scala @@ -284,8 +284,8 @@ class GcpDependencyBuilder extends CloudDependenciesBuilder { baselineDependencies.authProvider, baselineDependencies.serviceAccountProvider, baselineDependencies.publisherQueue, - gcpDependencies.googleDiskService, - gcpDependencies.googleProjectDAO + Some(gcpDependencies.googleDiskService), + Some(gcpDependencies.googleProjectDAO) ) val runtimeService = RuntimeService( diff --git a/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/service/DiskServiceInterp.scala b/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/service/DiskServiceInterp.scala index fdcb970d47b..91de307f4f8 100644 --- a/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/service/DiskServiceInterp.scala +++ b/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/service/DiskServiceInterp.scala @@ -122,10 +122,10 @@ class DiskServiceInterp[F[_]: Parallel](config: PersistentDiskConfig, ): F[Unit] = for { ctx <- as.ask - sourceAncestry <- F.fromFuture(F.delay(googleProjectDAO.getAncestry(sourceGoogleProject.value))) + sourceAncestry <- F.fromFuture(F.delay(googleProjectDAO.get.getAncestry(sourceGoogleProject.value))) sourceAncestor <- immediateAncestor(sourceAncestry) - targetAncestry <- F.fromFuture(F.delay(googleProjectDAO.getAncestry(targetGoogleProject.value))) + targetAncestry <- F.fromFuture(F.delay(googleProjectDAO.get.getAncestry(targetGoogleProject.value))) targetAncestor <- immediateAncestor(targetAncestry) _ <- F.raiseWhen( @@ -160,7 +160,7 @@ class DiskServiceInterp[F[_]: Parallel](config: PersistentDiskConfig, case _: DiskNotFoundException => F.raiseError(BadRequestException("source disk does not exist", Option(ctx.traceId))) } - maybeGoogleDisk <- googleDiskService.getDisk(sourceDiskReq.googleProject, sourceDisk.zone, sourceDisk.name) + maybeGoogleDisk <- googleDiskService.get.getDisk(sourceDiskReq.googleProject, sourceDisk.zone, sourceDisk.name) googleDisk <- maybeGoogleDisk.toOptionT.getOrElseF( F.raiseError( LeoInternalServerError(s"Source disk $sourceDiskReq does not exist in google", Option(ctx.traceId)) From 2669ad1091fc5bf6d01906f2022d77d8d011bd2d Mon Sep 17 00:00:00 2001 From: bennettn4 Date: Mon, 15 Jul 2024 12:38:21 -0400 Subject: [PATCH 04/17] temp remove runtime routes --- .../dsde/workbench/leonardo/http/api/HttpRoutes.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/HttpRoutes.scala b/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/HttpRoutes.scala index 15afa9ad1b8..bc590b979d8 100644 --- a/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/HttpRoutes.scala +++ b/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/HttpRoutes.scala @@ -133,7 +133,7 @@ class HttpRoutes( oidcConfig .swaggerRoutes("swagger/api-docs.yaml") ~ oidcConfig.oauth2Routes ~ statusRoutes.route ~ pathPrefix("api") { - runtimeRoutes.get.routes ~ runtimeV2Routes.routes ~ + runtimeV2Routes.routes ~ diskRoutes.get.routes ~ diskV2Routes.routes ~ appV2Routes.routes ~ adminRoutes.routes } ) From 1c834e5c2e20ada4f2b5465fe211693266020dbc Mon Sep 17 00:00:00 2001 From: bennettn4 Date: Wed, 17 Jul 2024 10:56:59 -0400 Subject: [PATCH 05/17] Update azure routes --- .../leonardo/http/AzureDependenciesBuilder.scala | 13 ++++++++++++- .../leonardo/http/GcpDependenciesBuilder.scala | 4 ++-- .../workbench/leonardo/http/api/HttpRoutes.scala | 6 ++++-- .../leonardo/http/service/RuntimeService.scala | 4 ++-- .../http/service/RuntimeServiceInterp.scala | 8 ++++---- 5 files changed, 24 insertions(+), 11 deletions(-) diff --git a/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/AzureDependenciesBuilder.scala b/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/AzureDependenciesBuilder.scala index 080a6000073..95ce1293767 100644 --- a/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/AzureDependenciesBuilder.scala +++ b/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/AzureDependenciesBuilder.scala @@ -3,7 +3,7 @@ import akka.actor.ActorSystem import cats.effect.{IO, Resource} import org.broadinstitute.dsde.workbench.leonardo.config.Config.{appServiceConfig, gkeCustomAppConfig} import org.broadinstitute.dsde.workbench.leonardo.db.DbReference -import org.broadinstitute.dsde.workbench.leonardo.http.service.{DiskService, DiskServiceInterp, LeoAppServiceInterp} +import org.broadinstitute.dsde.workbench.leonardo.http.service.{DiskService, DiskServiceInterp, LeoAppServiceInterp, RuntimeService} import org.broadinstitute.dsde.workbench.leonardo.monitor.MonitorAtBoot import org.broadinstitute.dsde.workbench.leonardo.util.ServicesRegistry import org.broadinstitute.dsde.workbench.openTelemetry.OpenTelemetryMetrics @@ -94,6 +94,17 @@ class AzureDependenciesBuilder extends CloudDependenciesBuilder { None ) + val runtimeService = RuntimeService( + baselineDependencies.runtimeServicesConfig, + ConfigReader.appConfig.persistentDisk, + baselineDependencies.authProvider, + baselineDependencies.serviceAccountProvider, + baselineDependencies.dockerDAO, + None, + None, + baselineDependencies.publisherQueue + ) + var servicesRegistry = ServicesRegistry() servicesRegistry.register[LeoAppServiceInterp[IO]](leoKubernetesService) diff --git a/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/GcpDependenciesBuilder.scala b/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/GcpDependenciesBuilder.scala index d66cc6ea502..36e6bc07c24 100644 --- a/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/GcpDependenciesBuilder.scala +++ b/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/GcpDependenciesBuilder.scala @@ -294,8 +294,8 @@ class GcpDependencyBuilder extends CloudDependenciesBuilder { baselineDependencies.authProvider, baselineDependencies.serviceAccountProvider, baselineDependencies.dockerDAO, - gcpDependencies.googleStorageService, - gcpDependencies.googleComputeService, + Some(gcpDependencies.googleStorageService), + Some(gcpDependencies.googleComputeService), baselineDependencies.publisherQueue ) diff --git a/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/HttpRoutes.scala b/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/HttpRoutes.scala index bc590b979d8..a0e97e81d70 100644 --- a/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/HttpRoutes.scala +++ b/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/HttpRoutes.scala @@ -133,8 +133,10 @@ class HttpRoutes( oidcConfig .swaggerRoutes("swagger/api-docs.yaml") ~ oidcConfig.oauth2Routes ~ statusRoutes.route ~ pathPrefix("api") { - runtimeV2Routes.routes ~ - diskRoutes.get.routes ~ diskV2Routes.routes ~ appV2Routes.routes ~ adminRoutes.routes + runtimeRoutes.get.routes ~ runtimeV2Routes.routes ~ + diskRoutes.get.routes ~ diskV2Routes.routes ~ + kubernetesRoutes.routes ~ appV2Routes.routes ~ + adminRoutes.routes } ) } diff --git a/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/service/RuntimeService.scala b/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/service/RuntimeService.scala index 1f303c5f46c..0e2fd101b39 100644 --- a/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/service/RuntimeService.scala +++ b/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/service/RuntimeService.scala @@ -71,8 +71,8 @@ object RuntimeService { authProvider: LeoAuthProvider[F], serviceAccountProvider: ServiceAccountProvider[F], dockerDAO: DockerDAO[F], - googleStorageService: GoogleStorageService[F], - googleComputeService: GoogleComputeService[F], + googleStorageService: Option[GoogleStorageService[F]], + googleComputeService: Option[GoogleComputeService[F]], publisherQueue: Queue[F, LeoPubsubMessage] )(implicit F: Async[F], diff --git a/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/service/RuntimeServiceInterp.scala b/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/service/RuntimeServiceInterp.scala index 998011f5fce..d0d78e03c24 100644 --- a/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/service/RuntimeServiceInterp.scala +++ b/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/service/RuntimeServiceInterp.scala @@ -68,8 +68,8 @@ class RuntimeServiceInterp[F[_]: Parallel]( authProvider: LeoAuthProvider[F], serviceAccountProvider: ServiceAccountProvider[F], dockerDAO: DockerDAO[F], - googleStorageService: GoogleStorageService[F], - googleComputeService: GoogleComputeService[F], + googleStorageService: Option[GoogleStorageService[F]], + googleComputeService: Option[GoogleComputeService[F]], publisherQueue: Queue[F, LeoPubsubMessage] )(implicit F: Async[F], @@ -369,7 +369,7 @@ class RuntimeServiceInterp[F[_]: Parallel]( disk <- F.fromEither( diskOpt.toRight(new RuntimeException(s"Can't find ${diskId} in PERSISTENT_DISK table")) ) - detachOp <- googleComputeService.detachDisk( + detachOp <- googleComputeService.get.detachDisk( req.googleProject, disk.zone, InstanceName(runtime.runtimeName.asString), @@ -765,7 +765,7 @@ class RuntimeServiceInterp[F[_]: Parallel]( ) val res = for { - blob <- googleStorageService + blob <- googleStorageService.get .getBlob( gcsPath.bucketName, GcsBlobName(gcsPath.objectName.value), From bd9e457731c5bcc4a351390f04a0a437833f065c Mon Sep 17 00:00:00 2001 From: bennettn4 Date: Wed, 17 Jul 2024 12:07:11 -0400 Subject: [PATCH 06/17] temp remove approutes --- .../dsde/workbench/leonardo/http/api/HttpRoutes.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/HttpRoutes.scala b/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/HttpRoutes.scala index a0e97e81d70..b8dd76906fb 100644 --- a/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/HttpRoutes.scala +++ b/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/HttpRoutes.scala @@ -135,7 +135,7 @@ class HttpRoutes( pathPrefix("api") { runtimeRoutes.get.routes ~ runtimeV2Routes.routes ~ diskRoutes.get.routes ~ diskV2Routes.routes ~ - kubernetesRoutes.routes ~ appV2Routes.routes ~ + appV2Routes.routes ~ adminRoutes.routes } ) From abd7803b7a1e4fea599eb08f5850ed64eb4a592e Mon Sep 17 00:00:00 2001 From: bennettn4 Date: Wed, 17 Jul 2024 12:23:51 -0400 Subject: [PATCH 07/17] add runtimeservice to service registry --- .../dsde/workbench/leonardo/http/AzureDependenciesBuilder.scala | 1 + 1 file changed, 1 insertion(+) diff --git a/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/AzureDependenciesBuilder.scala b/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/AzureDependenciesBuilder.scala index 95ce1293767..8aa9c1035bd 100644 --- a/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/AzureDependenciesBuilder.scala +++ b/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/AzureDependenciesBuilder.scala @@ -111,6 +111,7 @@ class AzureDependenciesBuilder extends CloudDependenciesBuilder { // From GCP servicesRegistry.register[DiskService[IO]](diskService) + servicesRegistry.register[RuntimeService[IO]](runtimeService) Resource.make(IO(servicesRegistry))(_ => IO.unit) } From 7979684b22fcb2cc2cbbaf7f4dddd87830aa404f Mon Sep 17 00:00:00 2001 From: bennettn4 Date: Wed, 17 Jul 2024 12:40:46 -0400 Subject: [PATCH 08/17] update oidcconfig --- .../dsde/workbench/leonardo/http/api/HttpRoutes.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/HttpRoutes.scala b/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/HttpRoutes.scala index b8dd76906fb..196458f8689 100644 --- a/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/HttpRoutes.scala +++ b/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/HttpRoutes.scala @@ -133,7 +133,7 @@ class HttpRoutes( oidcConfig .swaggerRoutes("swagger/api-docs.yaml") ~ oidcConfig.oauth2Routes ~ statusRoutes.route ~ pathPrefix("api") { - runtimeRoutes.get.routes ~ runtimeV2Routes.routes ~ + runtimeV2Routes.routes ~ diskRoutes.get.routes ~ diskV2Routes.routes ~ appV2Routes.routes ~ adminRoutes.routes From 4d71d9c7ac2f8f540b9e798b95cf88d6a26a0070 Mon Sep 17 00:00:00 2001 From: bennettn4 Date: Thu, 18 Jul 2024 10:44:16 -0400 Subject: [PATCH 09/17] readd routes --- .../dsde/workbench/leonardo/http/api/HttpRoutes.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/HttpRoutes.scala b/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/HttpRoutes.scala index 196458f8689..a0e97e81d70 100644 --- a/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/HttpRoutes.scala +++ b/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/HttpRoutes.scala @@ -133,9 +133,9 @@ class HttpRoutes( oidcConfig .swaggerRoutes("swagger/api-docs.yaml") ~ oidcConfig.oauth2Routes ~ statusRoutes.route ~ pathPrefix("api") { - runtimeV2Routes.routes ~ + runtimeRoutes.get.routes ~ runtimeV2Routes.routes ~ diskRoutes.get.routes ~ diskV2Routes.routes ~ - appV2Routes.routes ~ + kubernetesRoutes.routes ~ appV2Routes.routes ~ adminRoutes.routes } ) From 5ea28b9ac4efd18ba1707d5e9faa1a5e827771e8 Mon Sep 17 00:00:00 2001 From: bennettn4 Date: Thu, 18 Jul 2024 13:42:43 -0400 Subject: [PATCH 10/17] update approutes --- .../dsde/workbench/leonardo/http/api/HttpRoutes.scala | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/HttpRoutes.scala b/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/HttpRoutes.scala index a0e97e81d70..f05b4abbd47 100644 --- a/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/HttpRoutes.scala +++ b/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/HttpRoutes.scala @@ -44,6 +44,7 @@ class HttpRoutes( private val statusRoutes = new StatusRoutes(statusService) private val corsSupport = new CorsSupport(contentSecurityPolicy, refererConfig) private val kubernetesRoutes = new AppRoutes(kubernetesService, userInfoDirectives) + private val appRoutes = createAppRoutesUsingServicesRegistry private val appV2Routes = new AppV2Routes(kubernetesService, userInfoDirectives) private val runtimeV2Routes = new RuntimeV2Routes(refererConfig, azureService, userInfoDirectives) private val diskV2Routes = new DiskV2Routes(diskV2Service, userInfoDirectives) @@ -135,7 +136,7 @@ class HttpRoutes( pathPrefix("api") { runtimeRoutes.get.routes ~ runtimeV2Routes.routes ~ diskRoutes.get.routes ~ diskV2Routes.routes ~ - kubernetesRoutes.routes ~ appV2Routes.routes ~ + appRoutes.get.routes ~ appV2Routes.routes ~ adminRoutes.routes } ) @@ -156,6 +157,11 @@ class HttpRoutes( .lookup[RuntimeService[IO]] .map(runtimeService => new RuntimeRoutes(refererConfig, runtimeService, userInfoDirectives)) + private def createAppRoutesUsingServicesRegistry = + gcpOnlyServicesRegistry + .lookup[LeoAppServiceInterp[IO]] + .map(appService => new AppRoutes(appService, userInfoDirectives)) + private def createProxyRoutesUsingServicesRegistry = gcpOnlyServicesRegistry .lookup[ProxyService] From 737c9446720229f456dc87f9da46114650b11ebf Mon Sep 17 00:00:00 2001 From: bennettn4 Date: Tue, 6 Aug 2024 10:20:42 -0400 Subject: [PATCH 11/17] cleanup --- .../dsde/workbench/leonardo/http/AzureDependenciesBuilder.scala | 2 -- 1 file changed, 2 deletions(-) diff --git a/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/AzureDependenciesBuilder.scala b/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/AzureDependenciesBuilder.scala index 8aa9c1035bd..19d07c73ee8 100644 --- a/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/AzureDependenciesBuilder.scala +++ b/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/AzureDependenciesBuilder.scala @@ -108,8 +108,6 @@ class AzureDependenciesBuilder extends CloudDependenciesBuilder { var servicesRegistry = ServicesRegistry() servicesRegistry.register[LeoAppServiceInterp[IO]](leoKubernetesService) - - // From GCP servicesRegistry.register[DiskService[IO]](diskService) servicesRegistry.register[RuntimeService[IO]](runtimeService) From d06805c8fa61c16b700bba8b631a3ff2c25aa2c5 Mon Sep 17 00:00:00 2001 From: bennettn4 Date: Tue, 6 Aug 2024 10:57:07 -0400 Subject: [PATCH 12/17] update tests --- .../leonardo/http/api/TestLeoRoutes.scala | 4 ++-- .../http/service/DiskServiceInterpSpec.scala | 14 +++++++------- .../http/service/RuntimeServiceInterpSpec.scala | 4 ++-- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/http/src/test/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/TestLeoRoutes.scala b/http/src/test/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/TestLeoRoutes.scala index 9f906487328..97169908930 100644 --- a/http/src/test/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/TestLeoRoutes.scala +++ b/http/src/test/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/TestLeoRoutes.scala @@ -191,8 +191,8 @@ trait TestLeoRoutes { allowListAuthProvider, serviceAccountProvider, new MockDockerDAO, - FakeGoogleStorageInterpreter, - FakeGoogleComputeService, + Some(FakeGoogleStorageInterpreter), + Some(FakeGoogleComputeService), QueueFactory.makePublisherQueue() ) diff --git a/http/src/test/scala/org/broadinstitute/dsde/workbench/leonardo/http/service/DiskServiceInterpSpec.scala b/http/src/test/scala/org/broadinstitute/dsde/workbench/leonardo/http/service/DiskServiceInterpSpec.scala index 5c355dfffdd..8cace4a4d61 100644 --- a/http/src/test/scala/org/broadinstitute/dsde/workbench/leonardo/http/service/DiskServiceInterpSpec.scala +++ b/http/src/test/scala/org/broadinstitute/dsde/workbench/leonardo/http/service/DiskServiceInterpSpec.scala @@ -67,8 +67,8 @@ trait DiskServiceInterpSpec extends AnyFlatSpec with LeonardoTestSuite with Test allowListAuthProvider, serviceAccountProvider, publisherQueue, - MockGoogleDiskService, - googleProjectDAO + Some(MockGoogleDiskService), + Some(googleProjectDAO) ) (diskService, publisherQueue) } @@ -166,13 +166,13 @@ class DiskServiceInterpTest allowListAuthProvider, serviceAccountProvider, publisherQueue, - new MockGoogleDiskService { + Some(new MockGoogleDiskService { override def getDisk(project: GoogleProject, zone: ZoneName, diskName: DiskName)(implicit ev: Ask[IO, TraceId] ): IO[Option[Disk]] = IO.pure(Some(Disk.newBuilder().setSelfLink(dummyDiskLink).build())) - }, - new MockGoogleProjectDAOWithCustomAncestors(projectToFolder) + }), + Some(new MockGoogleProjectDAOWithCustomAncestors(projectToFolder)) ) val userInfo = UserInfo(OAuth2BearerToken(""), @@ -291,8 +291,8 @@ class DiskServiceInterpTest authProviderMock, serviceAccountProvider, publisherQueue, - googleDiskServiceMock, - new MockGoogleProjectDAO + Some(googleDiskServiceMock), + Some(new MockGoogleProjectDAO) ) val userInfoCreator = UserInfo(OAuth2BearerToken(""), WorkbenchUserId("creator"), WorkbenchEmail("creator@example.com"), 0) diff --git a/http/src/test/scala/org/broadinstitute/dsde/workbench/leonardo/http/service/RuntimeServiceInterpSpec.scala b/http/src/test/scala/org/broadinstitute/dsde/workbench/leonardo/http/service/RuntimeServiceInterpSpec.scala index df95aff7212..e69b069fa4e 100644 --- a/http/src/test/scala/org/broadinstitute/dsde/workbench/leonardo/http/service/RuntimeServiceInterpSpec.scala +++ b/http/src/test/scala/org/broadinstitute/dsde/workbench/leonardo/http/service/RuntimeServiceInterpSpec.scala @@ -95,8 +95,8 @@ trait RuntimeServiceInterpSpec extends AnyFlatSpec with LeonardoTestSuite with T authProvider, serviceAccountProvider, new MockDockerDAO, - FakeGoogleStorageInterpreter, - computeService, + Some(FakeGoogleStorageInterpreter), + Some(computeService), publisherQueue ) From 150e65d1cf37f722a9cf275f64609cfb6ae52690 Mon Sep 17 00:00:00 2001 From: bennettn4 Date: Tue, 6 Aug 2024 11:06:45 -0400 Subject: [PATCH 13/17] scalafmt --- .../workbench/leonardo/http/AzureDependenciesBuilder.scala | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/AzureDependenciesBuilder.scala b/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/AzureDependenciesBuilder.scala index 19d07c73ee8..4709564ee59 100644 --- a/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/AzureDependenciesBuilder.scala +++ b/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/AzureDependenciesBuilder.scala @@ -3,7 +3,12 @@ import akka.actor.ActorSystem import cats.effect.{IO, Resource} import org.broadinstitute.dsde.workbench.leonardo.config.Config.{appServiceConfig, gkeCustomAppConfig} import org.broadinstitute.dsde.workbench.leonardo.db.DbReference -import org.broadinstitute.dsde.workbench.leonardo.http.service.{DiskService, DiskServiceInterp, LeoAppServiceInterp, RuntimeService} +import org.broadinstitute.dsde.workbench.leonardo.http.service.{ + DiskService, + DiskServiceInterp, + LeoAppServiceInterp, + RuntimeService +} import org.broadinstitute.dsde.workbench.leonardo.monitor.MonitorAtBoot import org.broadinstitute.dsde.workbench.leonardo.util.ServicesRegistry import org.broadinstitute.dsde.workbench.openTelemetry.OpenTelemetryMetrics From 52eced7c8ec8751cd9c1ba746c36d04f5265ea10 Mon Sep 17 00:00:00 2001 From: bennettn4 Date: Tue, 6 Aug 2024 11:47:29 -0400 Subject: [PATCH 14/17] clean --- .../dsde/workbench/leonardo/http/api/HttpRoutes.scala | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/HttpRoutes.scala b/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/HttpRoutes.scala index f05b4abbd47..36ae7e705ca 100644 --- a/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/HttpRoutes.scala +++ b/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/HttpRoutes.scala @@ -136,8 +136,7 @@ class HttpRoutes( pathPrefix("api") { runtimeRoutes.get.routes ~ runtimeV2Routes.routes ~ diskRoutes.get.routes ~ diskV2Routes.routes ~ - appRoutes.get.routes ~ appV2Routes.routes ~ - adminRoutes.routes + appRoutes.get.routes ~ appV2Routes.routes ~ adminRoutes.routes } ) } From e44b8ae390e9c5ffcaa00866aabc51a06a55cd14 Mon Sep 17 00:00:00 2001 From: bennettn4 Date: Wed, 7 Aug 2024 09:51:18 -0400 Subject: [PATCH 15/17] Update AzureDependenciesBuilder.scala --- .../dsde/workbench/leonardo/http/AzureDependenciesBuilder.scala | 1 + 1 file changed, 1 insertion(+) diff --git a/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/AzureDependenciesBuilder.scala b/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/AzureDependenciesBuilder.scala index 4709564ee59..a1275ee01b4 100644 --- a/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/AzureDependenciesBuilder.scala +++ b/http/src/main/scala/org/broadinstitute/dsde/workbench/leonardo/http/AzureDependenciesBuilder.scala @@ -90,6 +90,7 @@ class AzureDependenciesBuilder extends CloudDependenciesBuilder { baselineDependencies.wsmClientProvider ) + // Needed for v1 APIs val diskService = new DiskServiceInterp[IO]( ConfigReader.appConfig.persistentDisk, baselineDependencies.authProvider, From b0db8fe74d2dfe5ec3e8eb094f411dc72eecc6db Mon Sep 17 00:00:00 2001 From: bennettn4 Date: Mon, 12 Aug 2024 14:13:21 -0400 Subject: [PATCH 16/17] retrigger checks From a50a8f37e34dad8339320ef069c9fab27bdd2d58 Mon Sep 17 00:00:00 2001 From: bennettn4 Date: Tue, 13 Aug 2024 09:51:59 -0400 Subject: [PATCH 17/17] retrigger checks