All files / modules/85-cv/pages/health-source/connectors/GCOLogsMonitoringSource GCOLogsMonitoringSource.utils.ts

28.57% Statements 2/7
0% Branches 0/16
0% Functions 0/1
28.57% Lines 2/7

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38              23x             23x                                              
/*
 * Copyright 2021 Harness Inc. All rights reserved.
 * Use of this source code is governed by the PolyForm Shield 1.0.0 license
 * that can be found in the licenses directory at the root of this repository, also available at
 * https://polyformproject.org/wp-content/uploads/2020/06/PolyForm-Shield-1.0.0.txt.
 */
 
import { HealthSourceTypes } from '../../types'
import type {
  GCOLogsHealthSourcePayload,
  MapGCOLogsQueryToService
} from './components/MapQueriesToHarnessService/types'
import type { GCOMonitoringSourceInfo } from './GoogleCloudOperationsMonitoringSourceUtils'
 
export function createGCOLogsHealthSourcePayload(setupSource: GCOMonitoringSourceInfo): GCOLogsHealthSourcePayload {
  const gcoLogsPayload: GCOLogsHealthSourcePayload = {
    type: HealthSourceTypes.StackdriverLog,
    identifier: setupSource?.identifier as string,
    name: setupSource?.name as string,
    spec: {
      connectorRef: setupSource.connectorRef as string,
      feature: 'Cloud Logs',
      queries: []
    }
  }
 
  for (const entry of setupSource?.mappedServicesAndEnvs?.entries()) {
    const { metricName, query, serviceInstance, messageIdentifier }: MapGCOLogsQueryToService = entry[1]
    gcoLogsPayload.spec.queries.push({
      name: metricName,
      query,
      serviceInstanceIdentifier: serviceInstance,
      messageIdentifier: messageIdentifier
    })
  }
  return gcoLogsPayload
}