func newAWSImporter()

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
}