func (c *deploymentDeleter) deploymentManager(installation biinstall.Installation, directorID, installationMbus string) (bidepl.Manager, error) { c.logger.Debug(c.logTag, "Creating cloud client...") cloud, err := c.cloudFactory.NewCloud(installation, directorID) if err != nil { return nil, bosherr.WrapError(err, "Creating CPI client from CPI installation") } c.logger.Debug(c.logTag, "Creating agent client...") agentClient := c.agentClientFactory.NewAgentClient(directorID, installationMbus) c.logger.Debug(c.logTag, "Creating blobstore client...") blobstore, err := c.blobstoreFactory.Create(installationMbus, bihttpclient.CreateDefaultClientInsecureSkipVerify()) if err != nil { return nil, bosherr.WrapError(err, "Creating blobstore client") } c.logger.Debug(c.logTag, "Creating deployment manager...") return c.deploymentManagerFactory.NewManager(cloud, agentClient, blobstore), nil }
func NewSDK(c config.S3Cli) (*s3.S3, error) { var httpClient *http.Client if c.SSLVerifyPeer { httpClient = boshhttp.CreateDefaultClient(nil) } else { httpClient = boshhttp.CreateDefaultClientInsecureSkipVerify() } s3Config := aws.NewConfig(). WithLogLevel(aws.LogOff). WithS3ForcePathStyle(true). WithDisableSSL(!c.UseSSL). WithHTTPClient(httpClient) if c.UseRegion() { s3Config = s3Config.WithRegion(c.Region).WithEndpoint(c.S3Endpoint()) } else { s3Config = s3Config.WithRegion(config.EmptyRegion).WithEndpoint(c.S3Endpoint()) } if c.CredentialsSource == config.StaticCredentialsSource { s3Config = s3Config.WithCredentials(credentials.NewStaticCredentials(c.AccessKeyID, c.SecretAccessKey, "")) } if c.CredentialsSource == config.NoneCredentialsSource { s3Config = s3Config.WithCredentials(credentials.AnonymousCredentials) } s3Session := session.New(s3Config) s3Client := s3.New(s3Session) if c.UseV2SigningMethod { setv2Handlers(s3Client) } return s3Client, nil }
func (c *DeploymentPreparer) deploy( installation biinstall.Installation, deploymentState biconfig.DeploymentState, extractedStemcell bistemcell.ExtractedStemcell, installationManifest biinstallmanifest.Manifest, deploymentManifest bideplmanifest.Manifest, stage biui.Stage, ) (err error) { cloud, err := c.cloudFactory.NewCloud(installation, deploymentState.DirectorID) if err != nil { return bosherr.WrapError(err, "Creating CPI client from CPI installation") } stemcellManager := c.stemcellManagerFactory.NewManager(cloud) cloudStemcell, err := stemcellManager.Upload(extractedStemcell, stage) if err != nil { return err } agentClient := c.agentClientFactory.NewAgentClient(deploymentState.DirectorID, installationManifest.Mbus) vmManager := c.vmManagerFactory.NewManager(cloud, agentClient) blobstore, err := c.blobstoreFactory.Create(installationManifest.Mbus, bihttpclient.CreateDefaultClientInsecureSkipVerify()) if err != nil { return bosherr.WrapError(err, "Creating blobstore client") } err = stage.PerformComplex("deploying", func(deployStage biui.Stage) error { err = c.deploymentRecord.Clear() if err != nil { return bosherr.WrapError(err, "Clearing deployment record") } _, err = c.deployer.Deploy( cloud, deploymentManifest, cloudStemcell, installationManifest.Registry, vmManager, blobstore, deployStage, ) if err != nil { return bosherr.WrapError(err, "Deploying") } err = c.deploymentRecord.Update(c.deploymentManifestPath, c.releaseManager.List()) if err != nil { return bosherr.WrapError(err, "Updating deployment record") } return nil }) if err != nil { return err } // TODO: cleanup unused disks here? err = stemcellManager.DeleteUnused(stage) if err != nil { return err } return nil }