diff --git a/app/scripts/modules/google/src/domain/autoHealingPolicy.ts b/app/scripts/modules/google/src/domain/autoHealingPolicy.ts index f2ff85083b8..204eebd73cb 100644 --- a/app/scripts/modules/google/src/domain/autoHealingPolicy.ts +++ b/app/scripts/modules/google/src/domain/autoHealingPolicy.ts @@ -1,8 +1,9 @@ import { IGceHealthCheckKind } from 'google/domain/healthCheck'; export interface IGceAutoHealingPolicy { - healthCheck?: string; - healthCheckKind?: IGceHealthCheckKind; + healthCheck?: string; // received from server as health check URL, but posted as health check name + healthCheckKind?: IGceHealthCheckKind; // used by Clouddriver to disambiguate health checks + healthCheckUrl?: string; // used by Deck as unique ID initialDelaySec?: number; maxUnavailable?: IMaxUnavailable; } diff --git a/app/scripts/modules/google/src/serverGroup/configure/serverGroupCommandBuilder.service.js b/app/scripts/modules/google/src/serverGroup/configure/serverGroupCommandBuilder.service.js index 4682b682ca9..e019385b8d0 100644 --- a/app/scripts/modules/google/src/serverGroup/configure/serverGroupCommandBuilder.service.js +++ b/app/scripts/modules/google/src/serverGroup/configure/serverGroupCommandBuilder.service.js @@ -5,6 +5,7 @@ import _ from 'lodash'; import { AccountService, ExpectedArtifactService, INSTANCE_TYPE_SERVICE } from '@spinnaker/core'; import { GCEProviderSettings } from 'google/gce.settings'; +import { parseHealthCheckUrl } from 'google/healthCheck/healthCheckUtils'; module.exports = angular .module('spinnaker.gce.serverGroupCommandBuilder.service', [ @@ -194,14 +195,18 @@ module.exports = angular } function populateAutoHealingPolicy(serverGroup, command) { - if (serverGroup.autoHealingPolicy) { - let autoHealingPolicy = serverGroup.autoHealingPolicy; - const healthCheckUrl = autoHealingPolicy.healthCheck; - const autoHealingPolicyHealthCheck = healthCheckUrl ? _.last(healthCheckUrl.split('/')) : null; - - if (autoHealingPolicyHealthCheck) { + const autoHealingPolicy = serverGroup.autoHealingPolicy; + if (autoHealingPolicy) { + const healthCheckUrl = autoHealingPolicy.healthCheckUrl + ? autoHealingPolicy.healthCheckUrl + : autoHealingPolicy.healthCheck; + + if (healthCheckUrl) { + const { healthCheckName, healthCheckKind } = parseHealthCheckUrl(healthCheckUrl); command.autoHealingPolicy = { - healthCheck: healthCheckUrl, + healthCheck: healthCheckName, + healthCheckKind: healthCheckKind, + healthCheckUrl: healthCheckUrl, initialDelaySec: autoHealingPolicy.initialDelaySec, }; } diff --git a/app/scripts/modules/google/src/serverGroup/configure/serverGroupConfiguration.service.js b/app/scripts/modules/google/src/serverGroup/configure/serverGroupConfiguration.service.js index 297154a713f..d8f55be51b6 100644 --- a/app/scripts/modules/google/src/serverGroup/configure/serverGroupConfiguration.service.js +++ b/app/scripts/modules/google/src/serverGroup/configure/serverGroupConfiguration.service.js @@ -139,7 +139,7 @@ module.exports = angular if ( !_.chain(healthChecks) .map('selfLink') - .includes(command.autoHealingPolicy.healthCheck) + .includes(command.autoHealingPolicy.healthCheckUrl) .value() ) { healthCheckReloader = refreshHealthChecks(command, true); @@ -406,7 +406,7 @@ module.exports = angular _.has(command, 'autoHealingPolicy.healthCheck') && !_.chain(filteredData.healthChecks) .map('selfLink') - .includes(command.autoHealingPolicy.healthCheck) + .includes(command.autoHealingPolicy.healthCheckUrl) .value() ) { delete command.autoHealingPolicy.healthCheck; diff --git a/app/scripts/modules/google/src/serverGroup/configure/wizard/autoHealingPolicy/autoHealingPolicySelector.component.html b/app/scripts/modules/google/src/serverGroup/configure/wizard/autoHealingPolicy/autoHealingPolicySelector.component.html index 33215135aaf..6355f8acef7 100644 --- a/app/scripts/modules/google/src/serverGroup/configure/wizard/autoHealingPolicy/autoHealingPolicySelector.component.html +++ b/app/scripts/modules/google/src/serverGroup/configure/wizard/autoHealingPolicy/autoHealingPolicySelector.component.html @@ -3,7 +3,12 @@ Health Check
- + {{ $select.selected.displayName }} { - const { healthCheckName, healthCheckKind } = parseHealthCheckUrl(this.autoHealingPolicy.healthCheck); - this.autoHealingPolicy.healthCheck = healthCheckName; - this.autoHealingPolicy.healthCheckKind = healthCheckKind; return this.gceAutoscalingPolicyWriter.upsertAutoHealingPolicy( this.application, this.serverGroup,