Skip to content

Commit

Permalink
fix: call home to tradle vs parent deployment
Browse files Browse the repository at this point in the history
  • Loading branch information
mvayngrib committed Aug 1, 2018
1 parent 04bda39 commit 4079fc8
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 7 deletions.
20 changes: 13 additions & 7 deletions src/in-house-bot/deployment.ts
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ import {
isEmployee,
isProbablyTradle,
getTradleBotStub,
urlsFuzzyEqual,
} from './utils'

import { getLogAlertsTopicName } from './log-processor'
Expand Down Expand Up @@ -511,22 +512,27 @@ export class Deployment {
tasks.push(callHomeToParent)
}

const callHomeToTradle = this.callHomeToTradle(callHomeOpts).catch(err => {
this.logger.debug('failed to call home to tradle', {
error: err.stack
if (!referrerUrl || !urlsFuzzyEqual(referrerUrl, TRADLE.API_BASE_URL)) {
this.logger.debug('calling tradle')
const callTradleOpts = _.omit(callHomeOpts, ['referrerUrl', 'deploymentUUID'])
const callHomeToTradle = this.callHomeToTradle(callTradleOpts).catch(err => {
this.logger.debug('failed to call home to tradle', {
error: err.stack
})

throw err
})

throw err
})
tasks.push(callHomeToTradle)
}

tasks.push(callHomeToTradle)
await Promise.all(tasks)
}

public callHomeToTradle = async (opts:CallHomeOpts={}) => {
return await this.callHomeTo({
referrerUrl: TRADLE.API_BASE_URL,
...opts,
referrerUrl: TRADLE.API_BASE_URL,
})
}

Expand Down
12 changes: 12 additions & 0 deletions src/in-house-bot/utils.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { parse as parseUrl } from 'url'
import _ from 'lodash'
import { isEmployee } from '@tradle/bot-employee-manager'
import validateResource from '@tradle/validate-resource'
Expand Down Expand Up @@ -571,3 +572,14 @@ export const getTradleBotIdentity = async () => {
const info = await get(`${TRADLE.API_BASE_URL}/info`)
return info.bot.pub
}

const trailingSlashesRegex = /\/+$/
const pathsEqual = (a: string, b: string) => {
return a.replace(trailingSlashesRegex, '') === b.replace(trailingSlashesRegex, '')
}

export const urlsFuzzyEqual = (a: string, b: string) => {
const aParsed = parseUrl(a)
const bParsed = parseUrl(b)
return aParsed.host === bParsed.host && pathsEqual(aParsed.pathname, bParsed.pathname)
}

0 comments on commit 4079fc8

Please sign in to comment.