diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8830f21cdc..6098c89a1d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -17,8 +17,16 @@ env: AERIE_USERNAME: '${{secrets.AERIE_USERNAME}}' HASURA_GRAPHQL_ADMIN_SECRET: '${{secrets.HASURA_GRAPHQL_ADMIN_SECRET}}' HASURA_GRAPHQL_JWT_SECRET: '${{secrets.HASURA_GRAPHQL_JWT_SECRET}}' - POSTGRES_PASSWORD: '${{secrets.POSTGRES_PASSWORD}}' POSTGRES_USER: '${{secrets.POSTGRES_USER}}' + POSTGRES_PASSWORD: '${{secrets.POSTGRES_PASSWORD}}' + GATEWAY_USERNAME: '${{secrets.GATEWAY_USERNAME}}' + GATEWAY_PASSWORD: '${{secrets.GATEWAY_PASSWORD}}' + MERLIN_USERNAME: '${{secrets.MERLIN_USERNAME}}' + MERLIN_PASSWORD: '${{secrets.MERLIN_PASSWORD}}' + SCHEDULER_USERNAME: '${{secrets.SCHEDULER_USERNAME}}' + SCHEDULER_PASSWORD: '${{secrets.SCHEDULER_PASSWORD}}' + SEQUENCING_USERNAME: '${{secrets.SEQUENCING_USERNAME}}' + SEQUENCING_PASSWORD: '${{secrets.SEQUENCING_PASSWORD}}' jobs: test: diff --git a/docker-compose-test.yml b/docker-compose-test.yml index 1cb11835ca..d070a164b3 100644 --- a/docker-compose-test.yml +++ b/docker-compose-test.yml @@ -15,12 +15,10 @@ services: LOG_LEVEL: debug NODE_TLS_REJECT_UNAUTHORIZED: '0' PORT: 9000 - POSTGRES_AERIE_MERLIN_DB: aerie_merlin - POSTGRES_AERIE_SCHEDULER_DB: aerie_scheduler - POSTGRES_HOST: postgres - POSTGRES_PASSWORD: '${AERIE_PASSWORD}' - POSTGRES_PORT: 5432 - POSTGRES_USER: '${AERIE_USERNAME}' + AERIE_DB_HOST: postgres + AERIE_DB_PORT: 5432 + GATEWAY_DB_USER: '${GATEWAY_USERNAME}' + GATEWAY_DB_PASSWORD: '${GATEWAY_PASSWORD}' image: 'ghcr.io/nasa-ammos/aerie-gateway:develop' ports: ['9000:9000'] restart: always @@ -30,16 +28,17 @@ services: container_name: aerie_merlin depends_on: ['postgres'] environment: - MERLIN_DB: 'aerie_merlin' - MERLIN_DB_PASSWORD: '${AERIE_PASSWORD}' - MERLIN_DB_PORT: 5432 - MERLIN_DB_SERVER: postgres - MERLIN_DB_USER: '${AERIE_USERNAME}' + HASURA_GRAPHQL_ADMIN_SECRET: '${HASURA_GRAPHQL_ADMIN_SECRET}' + HASURA_GRAPHQL_URL: http://hasura:8080/v1/graphql + AERIE_DB_HOST: postgres + AERIE_DB_PORT: 5432 + MERLIN_DB_USER: '${MERLIN_USERNAME}' + MERLIN_DB_PASSWORD: '${MERLIN_PASSWORD}' MERLIN_LOCAL_STORE: /usr/src/app/merlin_file_store MERLIN_PORT: 27183 MERLIN_USE_NEW_CONSTRAINT_PIPELINE: 'true' JAVA_OPTS: > - -Dorg.slf4j.simpleLogger.defaultLogLevel=DEBUG + -Dorg.slf4j.simpleLogger.defaultLogLevel=INFO -Dorg.slf4j.simpleLogger.log.com.zaxxer.hikari=INFO -Dorg.slf4j.simpleLogger.logFile=System.err UNTRUE_PLAN_START: '2000-01-01T11:58:55.816Z' @@ -52,14 +51,14 @@ services: container_name: aerie_merlin_worker depends_on: ['postgres'] environment: - MERLIN_WORKER_DB: 'aerie_merlin' - MERLIN_WORKER_DB_PASSWORD: '${AERIE_PASSWORD}' - MERLIN_WORKER_DB_PORT: 5432 - MERLIN_WORKER_DB_SERVER: postgres - MERLIN_WORKER_DB_USER: '${AERIE_USERNAME}' + AERIE_DB_HOST: postgres + AERIE_DB_PORT: 5432 + MERLIN_DB_USER: '${MERLIN_USERNAME}' + MERLIN_DB_PASSWORD: '${MERLIN_PASSWORD}' MERLIN_WORKER_LOCAL_STORE: /usr/src/app/merlin_file_store + SIMULATION_PROGRESS_POLL_PERIOD_MILLIS: 2000 JAVA_OPTS: > - -Dorg.slf4j.simpleLogger.defaultLogLevel=DEBUG + -Dorg.slf4j.simpleLogger.defaultLogLevel=INFO -Dorg.slf4j.simpleLogger.log.com.zaxxer.hikari=INFO -Dorg.slf4j.simpleLogger.logFile=System.err UNTRUE_PLAN_START: '2000-01-01T11:58:55.816Z' @@ -74,14 +73,13 @@ services: environment: HASURA_GRAPHQL_ADMIN_SECRET: '${HASURA_GRAPHQL_ADMIN_SECRET}' MERLIN_GRAPHQL_URL: http://hasura:8080/v1/graphql - SCHEDULER_DB: 'aerie_scheduler' - SCHEDULER_DB_PASSWORD: '${AERIE_PASSWORD}' - SCHEDULER_DB_PORT: 5432 - SCHEDULER_DB_SERVER: postgres - SCHEDULER_DB_USER: '${AERIE_USERNAME}' + AERIE_DB_HOST: postgres + AERIE_DB_PORT: 5432 + SCHEDULER_DB_USER: '${SCHEDULER_USERNAME}' + SCHEDULER_DB_PASSWORD: '${SCHEDULER_PASSWORD}' SCHEDULER_PORT: 27185 JAVA_OPTS: > - -Dorg.slf4j.simpleLogger.defaultLogLevel=DEBUG + -Dorg.slf4j.simpleLogger.defaultLogLevel=INFO -Dorg.slf4j.simpleLogger.log.com.zaxxer.hikari=INFO -Dorg.slf4j.simpleLogger.logFile=System.err image: 'ghcr.io/nasa-ammos/aerie-scheduler:develop' @@ -98,12 +96,13 @@ services: MERLIN_LOCAL_STORE: /usr/src/app/merlin_file_store SCHEDULER_OUTPUT_MODE: UpdateInputPlanWithNewActivities SCHEDULER_RULES_JAR: /usr/src/app/merlin_file_store/scheduler_rules.jar - SCHEDULER_WORKER_DB: 'aerie_scheduler' - SCHEDULER_WORKER_DB_PASSWORD: '${AERIE_PASSWORD}' - SCHEDULER_WORKER_DB_PORT: 5432 - SCHEDULER_WORKER_DB_SERVER: postgres - SCHEDULER_WORKER_DB_USER: '${AERIE_USERNAME}' + AERIE_DB_HOST: postgres + AERIE_DB_PORT: 5432 + SCHEDULER_DB_USER: '${SCHEDULER_USERNAME}' + SCHEDULER_DB_PASSWORD: '${SCHEDULER_PASSWORD}' JAVA_OPTS: > + -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005 + -Dorg.slf4j.simpleLogger.defaultLogLevel=INFO -Dorg.slf4j.simpleLogger.log.com.zaxxer.hikari=INFO -Dorg.slf4j.simpleLogger.logFile=System.err image: 'ghcr.io/nasa-ammos/aerie-scheduler-worker:develop' @@ -119,11 +118,10 @@ services: LOG_FILE: console LOG_LEVEL: debug MERLIN_GRAPHQL_URL: http://hasura:8080/v1/graphql - SEQUENCING_DB: aerie_sequencing - SEQUENCING_DB_PASSWORD: '${AERIE_PASSWORD}' - SEQUENCING_DB_PORT: 5432 - SEQUENCING_DB_SERVER: postgres - SEQUENCING_DB_USER: '${AERIE_USERNAME}' + AERIE_DB_HOST: postgres + AERIE_DB_PORT: 5432 + SEQUENCING_DB_USER: '${SEQUENCING_USERNAME}' + SEQUENCING_DB_PASSWORD: '${SEQUENCING_PASSWORD}' SEQUENCING_LOCAL_STORE: /usr/src/app/sequencing_file_store SEQUENCING_SERVER_PORT: 27184 image: 'ghcr.io/nasa-ammos/aerie-sequencing:develop' @@ -135,17 +133,15 @@ services: container_name: aerie_hasura depends_on: ['postgres'] environment: - AERIE_MERLIN_DATABASE_URL: 'postgres://${AERIE_USERNAME}:${AERIE_PASSWORD}@postgres:5432/aerie_merlin' + AERIE_DATABASE_URL: 'postgres://${AERIE_USERNAME}:${AERIE_PASSWORD}@postgres:5432/aerie?options=-c%20search_path%3Dutil_functions%2Chasura%2Cpermissions%2Ctags%2Cmerlin%2Cscheduler%2Csequencing%2Cpublic' AERIE_MERLIN_URL: 'http://aerie_merlin:27183' - AERIE_SCHEDULER_DATABASE_URL: 'postgres://${AERIE_USERNAME}:${AERIE_PASSWORD}@postgres:5432/aerie_scheduler' AERIE_SCHEDULER_URL: 'http://aerie_scheduler:27185' - AERIE_SEQUENCING_DATABASE_URL: 'postgres://${AERIE_USERNAME}:${AERIE_PASSWORD}@postgres:5432/aerie_sequencing' AERIE_SEQUENCING_URL: 'http://aerie_sequencing:27184' - AERIE_UI_DATABASE_URL: 'postgres://${AERIE_USERNAME}:${AERIE_PASSWORD}@postgres:5432/aerie_ui' HASURA_GRAPHQL_ADMIN_SECRET: '${HASURA_GRAPHQL_ADMIN_SECRET}' HASURA_GRAPHQL_DEV_MODE: 'true' HASURA_GRAPHQL_ENABLE_CONSOLE: 'true' HASURA_GRAPHQL_ENABLED_LOG_TYPES: startup, http-log, webhook-log, websocket-log, query-log + HASURA_GRAPHQL_INFER_FUNCTION_PERMISSIONS: false HASURA_GRAPHQL_JWT_SECRET: '${HASURA_GRAPHQL_JWT_SECRET}' HASURA_GRAPHQL_LOG_LEVEL: info HASURA_GRAPHQL_METADATA_DATABASE_URL: 'postgres://${AERIE_USERNAME}:${AERIE_PASSWORD}@postgres:5432/aerie_hasura' @@ -156,11 +152,19 @@ services: postgres: container_name: aerie_postgres environment: - AERIE_PASSWORD: '${AERIE_PASSWORD}' - AERIE_USERNAME: '${AERIE_USERNAME}' POSTGRES_DB: postgres POSTGRES_PASSWORD: '${POSTGRES_PASSWORD}' POSTGRES_USER: '${POSTGRES_USER}' + AERIE_USERNAME: '${AERIE_USERNAME}' + AERIE_PASSWORD: '${AERIE_PASSWORD}' + GATEWAY_DB_USER: '${GATEWAY_USERNAME}' + GATEWAY_DB_PASSWORD: '${GATEWAY_PASSWORD}' + MERLIN_DB_USER: '${MERLIN_USERNAME}' + MERLIN_DB_PASSWORD: '${MERLIN_PASSWORD}' + SCHEDULER_DB_USER: '${SCHEDULER_USERNAME}' + SCHEDULER_DB_PASSWORD: '${SCHEDULER_PASSWORD}' + SEQUENCING_DB_USER: '${SEQUENCING_USERNAME}' + SEQUENCING_DB_PASSWORD: '${SEQUENCING_PASSWORD}' image: 'ghcr.io/nasa-ammos/aerie-postgres:develop' ports: ['5432:5432'] restart: always diff --git a/e2e-tests/fixtures/Plan.ts b/e2e-tests/fixtures/Plan.ts index 1311825901..82397410a5 100644 --- a/e2e-tests/fixtures/Plan.ts +++ b/e2e-tests/fixtures/Plan.ts @@ -212,6 +212,7 @@ export class Plan { async reRunSimulation(expectedFinalState = Status.Complete) { await this.reSimulateButton.click(); + await this.page.waitForTimeout(1000); await this.waitForSimulationStatus(expectedFinalState); } @@ -253,6 +254,7 @@ export class Plan { async runSimulation(expectedFinalState = Status.Complete) { await this.simulateButton.click(); + await this.page.waitForTimeout(1000); await this.waitForSimulationStatus(expectedFinalState); } diff --git a/src/routes/plans/[id]/+page.ts b/src/routes/plans/[id]/+page.ts index 411b101d1e..9bc3c4ac24 100644 --- a/src/routes/plans/[id]/+page.ts +++ b/src/routes/plans/[id]/+page.ts @@ -21,6 +21,7 @@ export const load: PageLoad = async ({ parent, params, url }) => { } // if plan doesn't have a scheduling spec, create one at this point + // this code only runs if a user manually deletes their scheduling specification somehow if (!initialPlan.scheduling_specification) { const { start_time_doy, end_time_doy, revision } = initialPlan; const schedulingSpec = await effects.createSchedulingPlanSpecification( diff --git a/src/utilities/effects.ts b/src/utilities/effects.ts index d0a442eb9d..da66b9c872 100644 --- a/src/utilities/effects.ts +++ b/src/utilities/effects.ts @@ -863,22 +863,6 @@ const effects = { throw Error('Failed to update simulation.'); } - if ( - !(await effects.createSchedulingPlanSpecification( - { - analysis_only: false, - horizon_end: end_time_doy, - horizon_start: start_time_doy, - plan_id: id, - plan_revision: revision, - simulation_arguments: {}, - }, - user, - )) - ) { - throw Error('Failed to create scheduling spec.'); - } - const plan: PlanSlim = { collaborators, created_at, @@ -927,18 +911,6 @@ const effects = { const data = await reqHasura(gql.DUPLICATE_PLAN, { new_plan_name: name, plan_id: plan.id }, user); const { duplicate_plan } = data; if (duplicate_plan != null) { - const { new_plan_id } = duplicate_plan; - await effects.createSchedulingPlanSpecification( - { - analysis_only: false, - horizon_end: plan.end_time_doy, - horizon_start: plan.start_time_doy, - plan_id: new_plan_id, - plan_revision: 0, - simulation_arguments: {}, - }, - user, - ); goto(`${base}/plans/${duplicate_plan.new_plan_id}`); showSuccessToast('Branch Created Successfully'); } else {