in cli_tools/gce_onestep_image_import/onestep_importer/aws_importer.go [83:122]
func newAWSImporter(oauth string, timeoutChan chan struct{}, args *awsImportArguments) (*awsImporter, error) {
ctx := context.Background()
client, err := createGCSClient(ctx, oauth)
if err != nil {
return nil, err
}
computeClient, err := param.CreateComputeClient(&ctx, oauth, args.gcsComputeEndpoint)
if err != nil {
return nil, err
}
metadataGCE := &compute.MetadataGCE{}
paramPopulator := param.NewPopulator(
param.NewNetworkResolver(computeClient),
metadataGCE,
client,
storageutils.NewResourceLocationRetriever(metadataGCE, computeClient),
storageutils.NewScratchBucketCreator(ctx, client),
param.NewMachineSeriesDetector(computeClient),
)
awsSession, err := createAWSSession(args.region, args.accessKeyID, args.secretAccessKey, args.sessionToken)
if err != nil {
return nil, err
}
importer := &awsImporter{
args: args,
gcsClient: client,
s3Client: s3.New(awsSession),
ec2Client: ec2.New(awsSession),
ctx: ctx,
oauth: oauth,
paramPopulator: paramPopulator,
timeoutChan: timeoutChan,
}
return importer, nil
}