Skip to content

Commit b6a0ab7

Browse files
omerdemirokactions-user
authored andcommitted
Add gcp source process (#1291)
Resolves #1264 GitOrigin-RevId: a94bb7cabab02816177fd7f27f9363001a02e927
1 parent a562fee commit b6a0ab7

File tree

2 files changed

+39
-1
lines changed

2 files changed

+39
-1
lines changed

cmd/explore.go

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import (
1515
"github.com/overmindtech/cli/tfutils"
1616
"github.com/overmindtech/cli/discovery"
1717
"github.com/overmindtech/cli/sdp-go"
18+
gcpproc "github.com/overmindtech/workspace/sources/gcp/proc"
1819
stdlibSource "github.com/overmindtech/cli/stdlib-source/adapters"
1920
"github.com/overmindtech/cli/tracing"
2021
"github.com/pkg/browser"
@@ -49,6 +50,7 @@ func StartLocalSources(ctx context.Context, oi sdp.OvermindInstance, token *oaut
4950
}()
5051
stdlibSpinner, _ := pterm.DefaultSpinner.WithWriter(multi.NewWriter()).Start("Starting stdlib source engine")
5152
awsSpinner, _ := pterm.DefaultSpinner.WithWriter(multi.NewWriter()).Start("Starting AWS source engine")
53+
gcpSpinner, _ := pterm.DefaultSpinner.WithWriter(multi.NewWriter()).Start("Starting GCP source engine")
5254
statusArea := pterm.DefaultParagraph.WithWriter(multi.NewWriter())
5355

5456
natsOptions := natsOptions(ctx, oi, token)
@@ -167,6 +169,39 @@ func StartLocalSources(ctx context.Context, oi sdp.OvermindInstance, token *oaut
167169
return awsEngine, nil
168170
})
169171

172+
p.Go(func() (*discovery.Engine, error) {
173+
ec := discovery.EngineConfig{
174+
EngineType: "cli-gcp",
175+
Version: fmt.Sprintf("cli-%v", tracing.Version()),
176+
SourceName: fmt.Sprintf("gcp-source-%v", hostname),
177+
SourceUUID: uuid.New(),
178+
App: oi.ApiUrl.Host,
179+
ApiKey: token.AccessToken,
180+
MaxParallelExecutions: 2_000,
181+
NATSOptions: &natsOptions,
182+
HeartbeatOptions: heartbeatOptions,
183+
}
184+
185+
gcpEngine, err := gcpproc.Initialize(ctx, &ec)
186+
if err != nil {
187+
gcpSpinner.Fail("Failed to initialize GCP source engine", err.Error())
188+
// TODO: return the actual error when we have a company-wide GCP setup
189+
// https://github.com/overmindtech/workspace/issues/1337
190+
return nil, nil
191+
}
192+
193+
err = gcpEngine.Start() //nolint:contextcheck
194+
if err != nil {
195+
gcpSpinner.Fail("Failed to start GCP source engine", err.Error())
196+
// TODO: return the actual error when we have a company-wide GCP setup
197+
// https://github.com/overmindtech/workspace/issues/1337
198+
return nil, nil
199+
}
200+
201+
gcpSpinner.Success("GCP source engine started")
202+
return gcpEngine, nil
203+
})
204+
170205
engines, err := p.Wait()
171206
if err != nil {
172207
return func() {}, fmt.Errorf("error starting sources: %w", err)

tfutils/plan_mapper.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414
awsAdapters "github.com/overmindtech/cli/aws-source/adapters"
1515
k8sAdapters "github.com/overmindtech/cli/k8s-source/adapters"
1616
"github.com/overmindtech/cli/sdp-go"
17+
gcpAdapters "github.com/overmindtech/workspace/sources/gcp/adapters"
1718
log "github.com/sirupsen/logrus"
1819
"go.opentelemetry.io/otel/attribute"
1920
"go.opentelemetry.io/otel/trace"
@@ -147,7 +148,9 @@ func MappedItemDiffsFromPlan(ctx context.Context, planJson []byte, fileName stri
147148

148149
// Load mapping data from the sources and convert into a map so that we can
149150
// index by Terraform type
150-
adapterMetadata := append(awsAdapters.Metadata.AllAdapterMetadata(), k8sAdapters.Metadata.AllAdapterMetadata()...)
151+
adapterMetadata := awsAdapters.Metadata.AllAdapterMetadata()
152+
adapterMetadata = append(adapterMetadata, k8sAdapters.Metadata.AllAdapterMetadata()...)
153+
adapterMetadata = append(adapterMetadata, gcpAdapters.Metadata.AllAdapterMetadata()...)
151154
// These mappings are from the terraform type, to required mapping data
152155
mappings := make(map[string][]TfMapData)
153156
for _, metadata := range adapterMetadata {

0 commit comments

Comments
 (0)