in fast-build-update-tool/internal/runner/instance_updater_factory.go [39:71]
func (i *instanceUpdaterFactory) Create(ctx context.Context, verbose bool, sshKey ssh.Signer, updateScript string, sshPort int32, instance *gamelift.Instance) (InstanceUpdater, error) {
instanceLogger := i.logger.With(
"instanceId", instance.InstanceId,
"ipAddress", instance.IpAddress)
sshEnabler, err := tools.NewSSHEnabler(instanceLogger, instance, i.gameLiftClient, sshKey.PublicKey(), sshPort)
if err != nil {
return nil, err
}
fileUploader, err := tools.NewFileUploader(instanceLogger, instance, i.privateKeyPath, i.GetFilesToUpload(updateScript), sshPort)
if err != nil {
return nil, err
}
commandRunner, err := tools.NewSSHCommandRunner(instanceLogger, updateScript, sshPort, sshKey, instance)
if err != nil {
return nil, err
}
progressTracker, err := NewInstanceProgressWriter(instance, verbose)
if err != nil {
return nil, err
}
return &instanceUpdater{
sshEnabler: sshEnabler,
fileUploader: fileUploader,
commandRunner: commandRunner,
logger: instanceLogger,
progressTracker: progressTracker,
}, nil
}