Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[AN-226] Enable submitting workflows to Cromwell's GCP Batch backend #3141

Merged
merged 33 commits into from
Dec 9, 2024
Merged
Show file tree
Hide file tree
Changes from 27 commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
1c37f55
Add new workspace setting
sam-schu Nov 15, 2024
6adc2cc
Remove unnecessary cases
sam-schu Nov 15, 2024
9f0a1bc
Move tests for consistency
sam-schu Nov 15, 2024
e5c70f3
Fix new setting capitalization
sam-schu Nov 15, 2024
6493663
Update Swagger page
sam-schu Nov 18, 2024
4c21a9d
Merge branch 'develop' into sts_AN-225_batch_api_workspace_setting
sam-schu Nov 18, 2024
0924efb
Add unit tests
sam-schu Nov 19, 2024
fb0bbc7
Refactor test
sam-schu Nov 19, 2024
d065d7f
Minimum viable changes for new backend value
sam-schu Nov 22, 2024
fef634e
Merge branch 'develop' into sts_AN-226_submit_to_batch_backend
sam-schu Nov 25, 2024
bb29484
Update local config template pool versions
sam-schu Nov 26, 2024
60b70c7
Scalafmt
sam-schu Nov 26, 2024
1af1359
Add additional GCS root workflow option key
sam-schu Nov 27, 2024
f33844a
Get GCP Batch backend name from config
sam-schu Dec 2, 2024
5f142a8
Update tests
sam-schu Dec 2, 2024
01b9f48
Merge branch 'develop' into sts_AN-226_submit_to_batch_backend
sam-schu Dec 2, 2024
6f7de22
Add unit tests for switching backend based on setting value
sam-schu Dec 3, 2024
02dddf7
Update out-of-date comment
sam-schu Dec 3, 2024
3187133
Clarify rawls-model dependency update process
sam-schu Dec 4, 2024
25e2c4e
Add troubleshooting notes to README
sam-schu Dec 4, 2024
b8bc763
Add dev DB warning
sam-schu Dec 4, 2024
024e36d
Add comment for new workflow options key
sam-schu Dec 4, 2024
1a4de46
Update comment
sam-schu Dec 4, 2024
d05642c
Update test from PR feedback
sam-schu Dec 4, 2024
4ae9be2
Update comment pt. 2
sam-schu Dec 4, 2024
0697b44
Remove local Rawls workflow submission note
sam-schu Dec 4, 2024
8ee7126
Merge branch 'develop' into sts_AN-226_submit_to_batch_backend
sam-schu Dec 4, 2024
0d90360
Revert "Remove local Rawls workflow submission note"
sam-schu Dec 5, 2024
2d8bf9d
Revert "Add dev DB warning"
sam-schu Dec 5, 2024
9c3b890
Revert "Add troubleshooting notes to README"
sam-schu Dec 5, 2024
d39caae
Add clarifying comment
sam-schu Dec 5, 2024
1129375
Rewrite backend determination code for clarity
sam-schu Dec 6, 2024
c854091
Remove test log message
sam-schu Dec 9, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,10 @@ Ticket: <Link to Jira ticket>
- [ ] Include the JIRA issue number in the PR description and title
- [ ] Make sure Swagger is updated if API changes
- [ ] **...and Orchestration's Swagger too!**
- [ ] If you changed anything in `model/`, then you should [publish a new official `rawls-model`](https://github.com/broadinstitute/rawls/blob/develop/README.md#publish-rawls-model) and update `rawls-model` in [Orchestration's dependencies](https://github.com/broadinstitute/firecloud-orchestration/blob/develop/project/Dependencies.scala).
- [ ] If you changed anything in `model/`, then you should publish a new official `rawls-model` and perform the corresponding dependency updates as specified in the [README](https://github.com/broadinstitute/rawls/blob/develop/README.md#publish-rawls-model):
- [ ] in the automation subdirectory
- [ ] in workbench-libs
- [ ] in firecloud-orchestration
- [ ] Get two thumbsworth of PR review
- [ ] Verify all tests go green, including CI tests
- [ ] **Squash commits and merge** to develop (branches are automatically deleted after merging)
Expand Down
19 changes: 13 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,10 @@ After satisfying the above requirements, execute the following command from the
./config/docker-rsync-local-rawls.sh
```

By default, this will set up an instance of rawls pointing to the database and Sam in dev.
**Reminder:** You should be on a Broad internal internet connection or VPN every time you want to run Rawls locally!
If you are not, Rawls may start up, but certain functionality may not work as expected.

By default, this command will set up an instance of rawls pointing to the database and Sam in dev.
It will also set up a process that will watch the local files for changes, and restart the service when source files change.

See docker-rsync-local-rawls.sh for more configuration options.
Expand All @@ -99,6 +102,8 @@ BACK_RAWLS=true ./config/docker-rsync-local-rawls.sh
```

**Important**: It is highly recommended that use your own Cloud SQL instance when running an instance of back Rawls by cloning the [dev Rawls DB](https://console.cloud.google.com/sql/instances/terraform-qfarbdq3lrexxck5htofjs5z6m/overview?project=broad-dsde-dev). See note below on database work.
* If you use the dev database itself, your local Rawls instance (with your code changes!) and dev Rawls can interact in
unpredictable ways, affecting both your own local testing and others' testing in the dev environment.

#### Developing Database Schema Changes

Expand Down Expand Up @@ -154,19 +159,21 @@ VAULT_TOKEN=$(cat ~/.vault-token) ARTIFACTORY_USERNAME=dsdejenkins ARTIFACTORY_P
You can view what is in the artifactory here: https://broadinstitute.jfrog.io/broadinstitute/webapp/#/home

After publishing:
* update [model/CHANGELOG.md](model/CHANGELOG.md) properly
* update the rawls-model dependency in the automation subdirectory, and ensure that sbt project is healthy
* update the rawls-model dependency in workbench-libs serviceTest, and ensure that sbt project is healthy
* Update [model/CHANGELOG.md](model/CHANGELOG.md) properly
* Update the rawls-model dependency in the automation subdirectory, and ensure that the sbt project is healthy
* In workbench-libs, update the rawls-model dependency in the project dependencies, update the README and the serviceTest changelog accordingly, and ensure that the sbt project is healthy
* In firecloud-orchestration, update the rawls-model dependency in the project dependencies, and ensure that the sbt project is healthy


## Troubleshooting

If you get the error message `release version 17 not supported`:
* Run `java -version` and verify that you're running 17. If not, you will need to install / update your PATH.

If you have trouble submitting workflows and see errors like `HTTP error calling URI https://cromiam-priv.dsde-dev.broadinstitute.org`:
If you have trouble submitting workflows and see errors like `HTTP error calling URI https://cromiam-priv.dsde-dev.broadinstitute.org`,
or you get unusual errors for other workflows-related functionality (like accessing workflow configurations):
* Connect to the NonSplit VPN and try again
* CromIAM doesn't accept requests from outside the Broad trusted IP space
* CromIAM doesn't accept requests from outside the Broad trusted IP space

When running back Rawls with a DB clone, the app may crash on launch with an error related to `OpenTelemetry`.
* Work around by setting `entityStatisticsCache.enabled = false`.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -299,6 +299,8 @@ object Boot extends IOApp with LazyLogging {
CromwellBackend(appConfigManager.conf.getString("executionservice.defaultNetworkBackend"))
val highSecurityNetworkCromwellBackend: CromwellBackend =
CromwellBackend(appConfigManager.conf.getString("executionservice.highSecurityNetworkBackend"))
val gcpBatchBackend: CromwellBackend =
CromwellBackend(appConfigManager.conf.getString("executionservice.gcpBatchBackend"))

val wdlParsingConfig = WDLParserConfig(appConfigManager.conf.getConfig("wdl-parsing"))
def cromwellSwaggerClient = new CromwellSwaggerClient(wdlParsingConfig.serverBasePath)
Expand Down Expand Up @@ -599,6 +601,7 @@ object Boot extends IOApp with LazyLogging {
useWorkflowCollectionLabel,
defaultNetworkCromwellBackend,
highSecurityNetworkCromwellBackend,
gcpBatchBackend,
methodConfigResolver,
bardService,
workspaceSettingRepository
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ object WorkflowSubmissionActor {
useWorkflowCollectionLabel: Boolean,
defaultNetworkCromwellBackend: CromwellBackend,
highSecurityNetworkCromwellBackend: CromwellBackend,
gcpBatchBackend: CromwellBackend,
methodConfigResolver: MethodConfigResolver,
bardService: BardService,
workspaceSettingRepository: WorkspaceSettingRepository
Expand All @@ -69,6 +70,7 @@ object WorkflowSubmissionActor {
useWorkflowCollectionLabel,
defaultNetworkCromwellBackend,
highSecurityNetworkCromwellBackend,
gcpBatchBackend,
methodConfigResolver,
bardService,
workspaceSettingRepository
Expand Down Expand Up @@ -105,6 +107,7 @@ class WorkflowSubmissionActor(val dataSource: SlickDataSource,
val useWorkflowCollectionLabel: Boolean,
val defaultNetworkCromwellBackend: CromwellBackend,
val highSecurityNetworkCromwellBackend: CromwellBackend,
val gcpBatchBackend: CromwellBackend,
val methodConfigResolver: MethodConfigResolver,
val bardService: BardService,
val workspaceSettingRepository: WorkspaceSettingRepository
Expand Down Expand Up @@ -159,6 +162,7 @@ trait WorkflowSubmission extends FutureSupport with LazyLogging with MethodWiths
val useWorkflowCollectionLabel: Boolean
val defaultNetworkCromwellBackend: CromwellBackend
val highSecurityNetworkCromwellBackend: CromwellBackend
val gcpBatchBackend: CromwellBackend
val methodConfigResolver: MethodConfigResolver
val bardService: BardService
val workspaceSettingRepository: WorkspaceSettingRepository
Expand Down Expand Up @@ -301,7 +305,16 @@ trait WorkflowSubmission extends FutureSupport with LazyLogging with MethodWiths
// - final_workflow_outputs_dir = submissions/final-outputs
// - final_workflow_outputs_mode = "copy".

useCromwellGcpBatchBackend: Boolean = currentSettings
.collectFirst { case setting: UseCromwellGcpBatchBackendSetting =>
setting
}
.exists(_.config.enabled)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this would be clearer if we did it in a single invocation (further tweaking welcome, this is just an idea):

useCromwellGcpBatchBackend = currentSettings.exists { setting => 
    setting match {
        case backendSetting: UseCromwellGcpBatchBackendSetting => backendSetting.config.enabled
        case _ => false
     }
}

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What do you mean by a single invocation?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I mean going from a collectFirst followed by a exists, to just an exists. I find it easier to read because I don't have to think about the type coming out of the collectFirst. I also like making it obvious that we are handling two different false cases - the settings exists and is set to false, or the setting doesn't exist.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we should probably create a reusable utility method to retrieve a strongly-typed workspace setting from the settings list, a la:

  def findSetting[T](allSettings: List[WorkspaceSetting]): Option[T] = {
    allSettings.collectFirst {
      case found:T => found
    }
  }

if we had that, then this code could be a bit clearer, like:

useBatchSetting: Option[UseCromwellGcpBatchBackendSetting] = somwhereTheUtilityLives
        .findSetting[UseCromwellGcpBatchBackendSetting](currentSettings)

or

useCromwellGcpBatchBackend: Boolean = somwhereTheUtilityLives
        .findSetting[UseCromwellGcpBatchBackendSetting](currentSettings).exists(_.config.enabled)

you could use the same utility to calculate separateSubmissionSetting up at line 293, too.

I'd consider this a stretch goal/out of scope/does not block this PR. I don't want to scope-creep!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! @davidangb I agree that refactoring would be great for clarity and reusability in the future, but I have implemented Janet's suggestion for now.

cromwellSubmissionBackend =
if (useCromwellGcpBatchBackend) gcpBatchBackend else highSecurityNetworkCromwellBackend

executionServiceWorkflowOptions = ExecutionServiceWorkflowOptions(
submission.submissionRoot,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is this meant to be duplicated?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes! David was confused by the same thing. I added a clarifying comment as he suggested!

submission.submissionRoot,
Comment on lines +318 to 319
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there's a good comment on ExecutionServiceWorkflowOptions that explains why we're passing the same value as the first two arguments … perhaps add a code comment here too? I was awfully confused when I first read this code, until I drilled down into ExecutionServiceWorkflowOptions

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added a clarifying comment, thanks!

final_workflow_outputs_dir,
final_workflow_outputs_dir_metadata,
Expand All @@ -315,7 +328,7 @@ trait WorkflowSubmission extends FutureSupport with LazyLogging with MethodWiths
deleteIntermediateOutputFiles,
useReferenceDisks,
memoryRetryMultiplier,
highSecurityNetworkCromwellBackend,
cromwellSubmissionBackend,
workflowFailureMode,
google_labels = Map("terra-submission-id" -> s"terra-${submission.id.toString}"),
ignoreEmptyOutputs,
Expand Down Expand Up @@ -467,6 +480,7 @@ trait WorkflowSubmission extends FutureSupport with LazyLogging with MethodWiths
monitoringImageScript = submissionRec.monitoringImageScript
)
} yield {
logger.error("Test workflow options: " + wfOpts.toString);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove or demote below error.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please see my standalone comment below.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will remove this log before merging.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like this is still here!

val submissionAndWorkspaceLabels =
Map("submission-id" -> submissionRec.id.toString, "workspace-id" -> workspaceRec.id.toString)
val wfLabels = workspaceRec.workflowCollection match {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ object BootMonitors extends LazyLogging {
useWorkflowCollectionLabel: Boolean,
defaultNetworkCromwellBackend: CromwellBackend,
highSecurityNetworkCromwellBackend: CromwellBackend,
gcpBatchBackend: CromwellBackend,
methodConfigResolver: MethodConfigResolver,
bardService: BardService,
workspaceSettingRepository: WorkspaceSettingRepository
Expand Down Expand Up @@ -147,6 +148,7 @@ object BootMonitors extends LazyLogging {
useWorkflowCollectionLabel,
defaultNetworkCromwellBackend,
highSecurityNetworkCromwellBackend,
gcpBatchBackend,
methodConfigResolver,
bardService,
workspaceSettingRepository
Expand Down Expand Up @@ -338,6 +340,7 @@ object BootMonitors extends LazyLogging {
useWorkflowCollectionLabel: Boolean,
defaultNetworkCromwellBackend: CromwellBackend,
highSecurityNetworkCromwellBackend: CromwellBackend,
gcpBatchBackend: CromwellBackend,
methodConfigResolver: MethodConfigResolver,
bardService: BardService,
workspaceSettingRepository: WorkspaceSettingRepository
Expand Down Expand Up @@ -366,6 +369,7 @@ object BootMonitors extends LazyLogging {
useWorkflowCollectionLabel,
defaultNetworkCromwellBackend,
highSecurityNetworkCromwellBackend,
gcpBatchBackend,
methodConfigResolver,
bardService,
workspaceSettingRepository
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,11 @@ import org.broadinstitute.dsde.rawls.jobexec.WorkflowSubmissionActor.{
import org.broadinstitute.dsde.rawls.metrics.{BardService, RawlsStatsDTestUtils}
import org.broadinstitute.dsde.rawls.mock.{MockBardService, MockSamDAO, RemoteServicesMockServer}
import org.broadinstitute.dsde.rawls.model.ExecutionJsonSupport.ExecutionServiceWorkflowOptionsFormat
import org.broadinstitute.dsde.rawls.model.WorkspaceSettingConfig.SeparateSubmissionFinalOutputsConfig
import org.broadinstitute.dsde.rawls.model.WorkspaceSettingTypes.SeparateSubmissionFinalOutputs
import org.broadinstitute.dsde.rawls.model.{WorkspaceSetting, _}
import org.broadinstitute.dsde.rawls.model.WorkspaceSettingConfig.{
SeparateSubmissionFinalOutputsConfig,
UseCromwellGcpBatchBackendConfig
}
import org.broadinstitute.dsde.rawls.model._
import org.broadinstitute.dsde.rawls.util.MockitoTestUtils
import org.broadinstitute.dsde.rawls.workspace.WorkspaceSettingRepository
import org.broadinstitute.dsde.rawls.{RawlsExceptionWithErrorReport, RawlsTestUtils}
Expand Down Expand Up @@ -120,6 +122,7 @@ class WorkflowSubmissionSpec(_system: ActorSystem)
val useWorkflowCollectionLabel: Boolean = false,
val defaultNetworkCromwellBackend: CromwellBackend = CromwellBackend("PAPIv2"),
val highSecurityNetworkCromwellBackend: CromwellBackend = CromwellBackend("PAPIv2-CloudNAT"),
val gcpBatchBackend: CromwellBackend = CromwellBackend("GCPBatch"),
val methodConfigResolver: MethodConfigResolver = methodConfigResolver,
val bardService: BardService = mockBardService,
val workspaceSettingRepository: WorkspaceSettingRepository = mockWorkspaceSettingRepository
Expand Down Expand Up @@ -381,6 +384,7 @@ class WorkflowSubmissionSpec(_system: ActorSystem)
Some(
ExecutionServiceWorkflowOptions(
jes_gcs_root = s"gs://${testData.workspace.bucketName}/${testData.submission1.submissionId}",
gcp_batch_gcs_root = s"gs://${testData.workspace.bucketName}/${testData.submission1.submissionId}",
None,
None,
google_project = testData.workspace.googleProjectId.value,
Expand Down Expand Up @@ -937,6 +941,7 @@ class WorkflowSubmissionSpec(_system: ActorSystem)
false,
CromwellBackend("PAPIv2"),
CromwellBackend("PAPIv2-CloudNAT"),
CromwellBackend("GCPBatch"),
methodConfigResolver,
mockBardService,
mockWorkspaceSettingRepository
Expand Down Expand Up @@ -1005,6 +1010,7 @@ class WorkflowSubmissionSpec(_system: ActorSystem)
false,
CromwellBackend("PAPIv2"),
CromwellBackend("PAPIv2-CloudNAT"),
CromwellBackend("GCPBatch"),
methodConfigResolver,
mockBardService,
mockWorkspaceSettingRepository
Expand Down Expand Up @@ -1202,6 +1208,90 @@ class WorkflowSubmissionSpec(_system: ActorSystem)
}
}

it should "submit workflows to Cromwell's GCP Batch backend when UseCromwellGcpBatchBackendSetting is true" in withDefaultTestDatabase {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice tests!

val mockExecCluster = MockShardedExecutionServiceCluster.fromDAO(new MockExecutionServiceDAO(), slickDataSource)
val workspaceSettingRepository = mock[WorkspaceSettingRepository]
when(workspaceSettingRepository.getWorkspaceSettings(UUID.fromString(testData.workspace.workspaceId))).thenReturn(
Future.successful(List(UseCromwellGcpBatchBackendSetting(UseCromwellGcpBatchBackendConfig(true))))
)

val workflowSubmission =
new TestWorkflowSubmission(slickDataSource, workspaceSettingRepository = workspaceSettingRepository) {
override val executionServiceCluster = mockExecCluster
}

val (workflowRecs, submissionRec, workspaceRec) =
getWorkflowSubmissionWorkspaceRecords(testData.regionalSubmission, testData.workspace)

Await.result(
workflowSubmission.submitWorkflowBatch(WorkflowBatch(workflowRecs.map(_.id), submissionRec, workspaceRec)),
Duration.Inf
)

val workflowOptions = mockExecCluster.getDefaultSubmitMember
.asInstanceOf[MockExecutionServiceDAO]
.submitOptions
.map(_.parseJson.convertTo[ExecutionServiceWorkflowOptions])

workflowOptions.get.backend should be(CromwellBackend("GCPBatch"))
}

it should "submit workflows to Cromwell's high security network backend when UseCromwellGcpBatchBackendSetting is false" in withDefaultTestDatabase {
val mockExecCluster = MockShardedExecutionServiceCluster.fromDAO(new MockExecutionServiceDAO(), slickDataSource)
val workspaceSettingRepository = mock[WorkspaceSettingRepository]
when(workspaceSettingRepository.getWorkspaceSettings(UUID.fromString(testData.workspace.workspaceId))).thenReturn(
Future.successful(List(UseCromwellGcpBatchBackendSetting(UseCromwellGcpBatchBackendConfig(false))))
)

val workflowSubmission =
new TestWorkflowSubmission(slickDataSource, workspaceSettingRepository = workspaceSettingRepository) {
override val executionServiceCluster = mockExecCluster
}

val (workflowRecs, submissionRec, workspaceRec) =
getWorkflowSubmissionWorkspaceRecords(testData.regionalSubmission, testData.workspace)

Await.result(
workflowSubmission.submitWorkflowBatch(WorkflowBatch(workflowRecs.map(_.id), submissionRec, workspaceRec)),
Duration.Inf
)

val workflowOptions = mockExecCluster.getDefaultSubmitMember
.asInstanceOf[MockExecutionServiceDAO]
.submitOptions
.map(_.parseJson.convertTo[ExecutionServiceWorkflowOptions])

workflowOptions.get.backend should be(CromwellBackend("PAPIv2-CloudNAT"))
}

it should "submit workflows to Cromwell's high security network backend when UseCromwellGcpBatchBackendSetting is not set" in withDefaultTestDatabase {
val mockExecCluster = MockShardedExecutionServiceCluster.fromDAO(new MockExecutionServiceDAO(), slickDataSource)
val workspaceSettingRepository = mock[WorkspaceSettingRepository]
when(workspaceSettingRepository.getWorkspaceSettings(UUID.fromString(testData.workspace.workspaceId))).thenReturn(
Future.successful(List())
)

val workflowSubmission =
new TestWorkflowSubmission(slickDataSource, workspaceSettingRepository = workspaceSettingRepository) {
override val executionServiceCluster = mockExecCluster
}

val (workflowRecs, submissionRec, workspaceRec) =
getWorkflowSubmissionWorkspaceRecords(testData.regionalSubmission, testData.workspace)

Await.result(
workflowSubmission.submitWorkflowBatch(WorkflowBatch(workflowRecs.map(_.id), submissionRec, workspaceRec)),
Duration.Inf
)

val workflowOptions = mockExecCluster.getDefaultSubmitMember
.asInstanceOf[MockExecutionServiceDAO]
.submitOptions
.map(_.parseJson.convertTo[ExecutionServiceWorkflowOptions])

workflowOptions.get.backend should be(CromwellBackend("PAPIv2-CloudNAT"))
}

private def setWorkflowBatchToQueued(batchSize: Int, submissionId: String): Seq[WorkflowRecord] =
runAndWait(
for {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,7 @@ class ExecutionModelSpec extends AnyFlatSpec with Matchers {
"ExecutionServiceWorkflowOptions" should "serialize/deserialize to/from JSON" in {
val test = ExecutionServiceWorkflowOptions(
jes_gcs_root = "jes_gcs_root",
gcp_batch_gcs_root = "example_gcp_batch_gcs_root",
final_workflow_outputs_dir = None,
final_workflow_outputs_dir_metadata = None,
google_project = "google_project",
Expand Down Expand Up @@ -162,6 +163,7 @@ class ExecutionModelSpec extends AnyFlatSpec with Matchers {
"""
|{
| "jes_gcs_root": "jes_gcs_root",
| "gcp_batch_gcs_root": "example_gcp_batch_gcs_root",
| "google_project": "google_project",
| "account_name": "account_name",
| "google_compute_service_account": "[email protected]",
Expand Down Expand Up @@ -192,6 +194,7 @@ class ExecutionModelSpec extends AnyFlatSpec with Matchers {
"""
|{
| "jes_gcs_root": "jes_gcs_root",
| "gcp_batch_gcs_root": "example_gcp_batch_gcs_root",
| "google_project": "google_project",
| "account_name": "account_name",
| "google_compute_service_account": "[email protected]",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,7 @@ class SubmissionApiServiceSpec extends ApiServiceSpec with TableDrivenPropertyCh
false,
CromwellBackend("PAPIv2"),
CromwellBackend("PAPIv2-CloudNAT"),
CromwellBackend("GCPBatch"),
methodConfigResolver,
new MockBardService(),
new WorkspaceSettingRepository(slickDataSource)
Expand Down
5 changes: 3 additions & 2 deletions local-dev/templates/rawls.conf
Original file line number Diff line number Diff line change
Expand Up @@ -93,8 +93,8 @@ dataRepo {

resourceBuffer {
projectPool {
regular = "cwb_ws_dev_v7"
exfiltrationControlled = "vpc_sc_v10"
regular = "cwb_ws_dev_v8"
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jgainerdewar I updated these pools in the local dev config to reflect the new pools you recently created because the old values were giving me trouble when trying to run Rawls locally. Do these new values seem correct? (The exfiltrationControlled value I was particularly unsure of.)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yup, those look correct!

exfiltrationControlled = "vpc_sc_v13"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Whoops, should have updated these when I switched to the new pools but I didn't know they existed!

}
url = "https://buffer.dsde-dev.broadinstitute.org"
saEmail = "[email protected]"
Expand Down Expand Up @@ -132,6 +132,7 @@ executionservice {

defaultNetworkBackend = "PAPIv2-beta"
highSecurityNetworkBackend = "PAPIv2-CloudNAT"
gcpBatchBackend = "GCPBatch"

cromiamUrl = "https://cromiam-priv.dsde-dev.broadinstitute.org"
}
Expand Down
Loading
Loading