func NewFactory(ui terminal.UI, config configuration.ReadWriter, manifestRepo manifest.ManifestRepository, repoLocator api.RepositoryLocator) (factory concreteFactory) { factory.cmdsByName = make(map[string]command.Command) factory.cmdsByName["api"] = commands.NewApi(ui, config, repoLocator.GetEndpointRepository()) factory.cmdsByName["apps"] = application.NewListApps(ui, config, repoLocator.GetAppSummaryRepository()) factory.cmdsByName["auth"] = commands.NewAuthenticate(ui, config, repoLocator.GetAuthenticationRepository()) factory.cmdsByName["buildpacks"] = buildpack.NewListBuildpacks(ui, repoLocator.GetBuildpackRepository()) factory.cmdsByName["config"] = commands.NewConfig(ui, config) factory.cmdsByName["create-buildpack"] = buildpack.NewCreateBuildpack(ui, repoLocator.GetBuildpackRepository(), repoLocator.GetBuildpackBitsRepository()) factory.cmdsByName["create-domain"] = domain.NewCreateDomain(ui, config, repoLocator.GetDomainRepository()) factory.cmdsByName["create-org"] = organization.NewCreateOrg(ui, config, repoLocator.GetOrganizationRepository(), repoLocator.GetQuotaRepository()) factory.cmdsByName["create-service"] = service.NewCreateService(ui, config, repoLocator.GetServiceRepository()) factory.cmdsByName["create-service-auth-token"] = serviceauthtoken.NewCreateServiceAuthToken(ui, config, repoLocator.GetServiceAuthTokenRepository()) factory.cmdsByName["create-service-broker"] = servicebroker.NewCreateServiceBroker(ui, config, repoLocator.GetServiceBrokerRepository()) factory.cmdsByName["create-user"] = user.NewCreateUser(ui, config, repoLocator.GetUserRepository()) factory.cmdsByName["create-user-provided-service"] = service.NewCreateUserProvidedService(ui, config, repoLocator.GetUserProvidedServiceInstanceRepository()) factory.cmdsByName["curl"] = commands.NewCurl(ui, config, repoLocator.GetCurlRepository()) factory.cmdsByName["delete"] = application.NewDeleteApp(ui, config, repoLocator.GetApplicationRepository(), repoLocator.GetRouteRepository()) factory.cmdsByName["delete-buildpack"] = buildpack.NewDeleteBuildpack(ui, repoLocator.GetBuildpackRepository()) factory.cmdsByName["delete-domain"] = domain.NewDeleteDomain(ui, config, repoLocator.GetDomainRepository()) factory.cmdsByName["delete-shared-domain"] = domain.NewDeleteSharedDomain(ui, config, repoLocator.GetDomainRepository()) factory.cmdsByName["delete-org"] = organization.NewDeleteOrg(ui, config, repoLocator.GetOrganizationRepository()) factory.cmdsByName["delete-orphaned-routes"] = route.NewDeleteOrphanedRoutes(ui, config, repoLocator.GetRouteRepository()) factory.cmdsByName["delete-route"] = route.NewDeleteRoute(ui, config, repoLocator.GetRouteRepository()) factory.cmdsByName["delete-service"] = service.NewDeleteService(ui, config, repoLocator.GetServiceRepository()) factory.cmdsByName["delete-service-auth-token"] = serviceauthtoken.NewDeleteServiceAuthToken(ui, config, repoLocator.GetServiceAuthTokenRepository()) factory.cmdsByName["delete-service-broker"] = servicebroker.NewDeleteServiceBroker(ui, config, repoLocator.GetServiceBrokerRepository()) factory.cmdsByName["delete-space"] = space.NewDeleteSpace(ui, config, repoLocator.GetSpaceRepository()) factory.cmdsByName["delete-user"] = user.NewDeleteUser(ui, config, repoLocator.GetUserRepository()) factory.cmdsByName["domains"] = domain.NewListDomains(ui, config, repoLocator.GetDomainRepository()) factory.cmdsByName["env"] = application.NewEnv(ui, config, repoLocator.GetApplicationRepository()) factory.cmdsByName["events"] = application.NewEvents(ui, config, repoLocator.GetAppEventsRepository()) factory.cmdsByName["files"] = application.NewFiles(ui, config, repoLocator.GetAppFilesRepository()) factory.cmdsByName["login"] = commands.NewLogin(ui, config, repoLocator.GetAuthenticationRepository(), repoLocator.GetEndpointRepository(), repoLocator.GetOrganizationRepository(), repoLocator.GetSpaceRepository()) factory.cmdsByName["logout"] = commands.NewLogout(ui, config) factory.cmdsByName["logs"] = application.NewLogs(ui, config, repoLocator.GetLogsRepository()) factory.cmdsByName["marketplace"] = service.NewMarketplaceServices(ui, config, repoLocator.GetServiceRepository()) factory.cmdsByName["org"] = organization.NewShowOrg(ui, config) factory.cmdsByName["org-users"] = user.NewOrgUsers(ui, config, repoLocator.GetUserRepository()) factory.cmdsByName["orgs"] = organization.NewListOrgs(ui, config, repoLocator.GetOrganizationRepository()) factory.cmdsByName["passwd"] = commands.NewPassword(ui, repoLocator.GetPasswordRepository(), config) factory.cmdsByName["purge-service-offering"] = service.NewPurgeServiceOffering(ui, config, repoLocator.GetServiceRepository()) factory.cmdsByName["quotas"] = quota.NewListQuotas(ui, config, repoLocator.GetQuotaRepository()) factory.cmdsByName["quota"] = quota.NewShowQuota(ui, config, repoLocator.GetQuotaRepository()) factory.cmdsByName["create-quota"] = quota.NewCreateQuota(ui, config, repoLocator.GetQuotaRepository()) factory.cmdsByName["update-quota"] = quota.NewUpdateQuota(ui, config, repoLocator.GetQuotaRepository()) factory.cmdsByName["delete-quota"] = quota.NewDeleteQuota(ui, config, repoLocator.GetQuotaRepository()) factory.cmdsByName["rename"] = application.NewRenameApp(ui, config, repoLocator.GetApplicationRepository()) factory.cmdsByName["rename-buildpack"] = buildpack.NewRenameBuildpack(ui, repoLocator.GetBuildpackRepository()) factory.cmdsByName["rename-org"] = organization.NewRenameOrg(ui, config, repoLocator.GetOrganizationRepository()) factory.cmdsByName["rename-service"] = service.NewRenameService(ui, config, repoLocator.GetServiceRepository()) factory.cmdsByName["rename-service-broker"] = servicebroker.NewRenameServiceBroker(ui, config, repoLocator.GetServiceBrokerRepository()) factory.cmdsByName["rename-space"] = space.NewRenameSpace(ui, config, repoLocator.GetSpaceRepository()) factory.cmdsByName["routes"] = route.NewListRoutes(ui, config, repoLocator.GetRouteRepository()) factory.cmdsByName["service"] = service.NewShowService(ui) factory.cmdsByName["service-auth-tokens"] = serviceauthtoken.NewListServiceAuthTokens(ui, config, repoLocator.GetServiceAuthTokenRepository()) factory.cmdsByName["service-brokers"] = servicebroker.NewListServiceBrokers(ui, config, repoLocator.GetServiceBrokerRepository()) factory.cmdsByName["services"] = service.NewListServices(ui, config, repoLocator.GetServiceSummaryRepository()) factory.cmdsByName["migrate-service-instances"] = service.NewMigrateServiceInstances(ui, config, repoLocator.GetServiceRepository()) factory.cmdsByName["set-env"] = application.NewSetEnv(ui, config, repoLocator.GetApplicationRepository()) factory.cmdsByName["set-org-role"] = user.NewSetOrgRole(ui, config, repoLocator.GetUserRepository()) factory.cmdsByName["set-quota"] = organization.NewSetQuota(ui, config, repoLocator.GetQuotaRepository()) factory.cmdsByName["create-shared-domain"] = domain.NewCreateSharedDomain(ui, config, repoLocator.GetDomainRepository()) factory.cmdsByName["space"] = space.NewShowSpace(ui, config, repoLocator.GetSpaceQuotaRepository()) factory.cmdsByName["space-users"] = user.NewSpaceUsers(ui, config, repoLocator.GetSpaceRepository(), repoLocator.GetUserRepository()) factory.cmdsByName["spaces"] = space.NewListSpaces(ui, config, repoLocator.GetSpaceRepository()) factory.cmdsByName["stacks"] = commands.NewListStacks(ui, config, repoLocator.GetStackRepository()) factory.cmdsByName["target"] = commands.NewTarget(ui, config, repoLocator.GetOrganizationRepository(), repoLocator.GetSpaceRepository()) factory.cmdsByName["unbind-service"] = service.NewUnbindService(ui, config, repoLocator.GetServiceBindingRepository()) factory.cmdsByName["unset-env"] = application.NewUnsetEnv(ui, config, repoLocator.GetApplicationRepository()) factory.cmdsByName["unset-org-role"] = user.NewUnsetOrgRole(ui, config, repoLocator.GetUserRepository()) factory.cmdsByName["unset-space-role"] = user.NewUnsetSpaceRole(ui, config, repoLocator.GetSpaceRepository(), repoLocator.GetUserRepository()) factory.cmdsByName["update-buildpack"] = buildpack.NewUpdateBuildpack(ui, repoLocator.GetBuildpackRepository(), repoLocator.GetBuildpackBitsRepository()) factory.cmdsByName["update-service-broker"] = servicebroker.NewUpdateServiceBroker(ui, config, repoLocator.GetServiceBrokerRepository()) factory.cmdsByName["update-service-auth-token"] = serviceauthtoken.NewUpdateServiceAuthToken(ui, config, repoLocator.GetServiceAuthTokenRepository()) factory.cmdsByName["update-user-provided-service"] = service.NewUpdateUserProvidedService(ui, config, repoLocator.GetUserProvidedServiceInstanceRepository()) factory.cmdsByName["create-security-group"] = securitygroup.NewCreateSecurityGroup(ui, config, repoLocator.GetSecurityGroupRepository()) factory.cmdsByName["update-security-group"] = securitygroup.NewUpdateSecurityGroup(ui, config, repoLocator.GetSecurityGroupRepository()) factory.cmdsByName["delete-security-group"] = securitygroup.NewDeleteSecurityGroup(ui, config, repoLocator.GetSecurityGroupRepository()) factory.cmdsByName["security-group"] = securitygroup.NewShowSecurityGroup(ui, config, repoLocator.GetSecurityGroupRepository()) factory.cmdsByName["security-groups"] = securitygroup.NewSecurityGroups(ui, config, repoLocator.GetSecurityGroupRepository()) factory.cmdsByName["bind-staging-security-group"] = securitygroup.NewBindToStagingGroup( ui, config, repoLocator.GetSecurityGroupRepository(), repoLocator.GetStagingSecurityGroupsRepository(), ) factory.cmdsByName["staging-security-groups"] = securitygroup.NewListStagingSecurityGroups(ui, config, repoLocator.GetStagingSecurityGroupsRepository()) factory.cmdsByName["unbind-staging-security-group"] = securitygroup.NewUnbindFromStagingGroup( ui, config, repoLocator.GetSecurityGroupRepository(), repoLocator.GetStagingSecurityGroupsRepository(), ) factory.cmdsByName["bind-running-security-group"] = securitygroup.NewBindToRunningGroup( ui, config, repoLocator.GetSecurityGroupRepository(), repoLocator.GetRunningSecurityGroupsRepository(), ) factory.cmdsByName["unbind-running-security-group"] = securitygroup.NewUnbindFromRunningGroup( ui, config, repoLocator.GetSecurityGroupRepository(), repoLocator.GetRunningSecurityGroupsRepository(), ) factory.cmdsByName["running-security-groups"] = securitygroup.NewListRunningSecurityGroups(ui, config, repoLocator.GetRunningSecurityGroupsRepository()) factory.cmdsByName["bind-security-group"] = securitygroup.NewBindSecurityGroup( ui, config, repoLocator.GetSecurityGroupRepository(), repoLocator.GetSpaceRepository(), repoLocator.GetOrganizationRepository(), repoLocator.GetSecurityGroupSpaceBinder(), ) factory.cmdsByName["unbind-security-group"] = securitygroup.NewUnbindSecurityGroup(ui, config, repoLocator.GetSecurityGroupRepository(), repoLocator.GetOrganizationRepository(), repoLocator.GetSpaceRepository(), repoLocator.GetSecurityGroupSpaceBinder()) createRoute := route.NewCreateRoute(ui, config, repoLocator.GetRouteRepository()) factory.cmdsByName["create-route"] = createRoute factory.cmdsByName["map-route"] = route.NewMapRoute(ui, config, repoLocator.GetRouteRepository(), createRoute) factory.cmdsByName["unmap-route"] = route.NewUnmapRoute(ui, config, repoLocator.GetRouteRepository()) displayApp := application.NewShowApp(ui, config, repoLocator.GetAppSummaryRepository(), repoLocator.GetAppInstancesRepository()) start := application.NewStart(ui, config, displayApp, repoLocator.GetApplicationRepository(), repoLocator.GetAppInstancesRepository(), repoLocator.GetLogsRepository()) stop := application.NewStop(ui, config, repoLocator.GetApplicationRepository()) restart := application.NewRestart(ui, start, stop) restage := application.NewRestage(ui, config, repoLocator.GetApplicationRepository(), start) bind := service.NewBindService(ui, config, repoLocator.GetServiceBindingRepository()) factory.cmdsByName["app"] = displayApp factory.cmdsByName["bind-service"] = bind factory.cmdsByName["start"] = start factory.cmdsByName["stop"] = stop factory.cmdsByName["restart"] = restart factory.cmdsByName["restage"] = restage factory.cmdsByName["push"] = application.NewPush( ui, config, manifestRepo, start, stop, bind, repoLocator.GetApplicationRepository(), repoLocator.GetDomainRepository(), repoLocator.GetRouteRepository(), repoLocator.GetStackRepository(), repoLocator.GetServiceRepository(), repoLocator.GetAuthenticationRepository(), words.NewWordGenerator(), actors.NewPushActor(repoLocator.GetApplicationBitsRepository(), app_files.ApplicationZipper{}, app_files.ApplicationFiles{}), app_files.ApplicationZipper{}, app_files.ApplicationFiles{}) factory.cmdsByName["scale"] = application.NewScale(ui, config, restart, repoLocator.GetApplicationRepository()) spaceRoleSetter := user.NewSetSpaceRole(ui, config, repoLocator.GetSpaceRepository(), repoLocator.GetUserRepository()) factory.cmdsByName["set-space-role"] = spaceRoleSetter factory.cmdsByName["create-space"] = space.NewCreateSpace(ui, config, spaceRoleSetter, repoLocator.GetSpaceRepository(), repoLocator.GetOrganizationRepository(), repoLocator.GetUserRepository()) planBuilder := plan_builder.NewBuilder( repoLocator.GetServicePlanRepository(), repoLocator.GetServicePlanVisibilityRepository(), repoLocator.GetOrganizationRepository(), ) serviceBuilder := service_builder.NewBuilder( repoLocator.GetServiceRepository(), planBuilder, ) brokerBuilder := broker_builder.NewBuilder( repoLocator.GetServiceBrokerRepository(), serviceBuilder, ) factory.cmdsByName["service-access"] = serviceaccess.NewServiceAccess( ui, config, actors.NewServiceHandler( repoLocator.GetOrganizationRepository(), brokerBuilder, serviceBuilder, ), repoLocator.GetAuthenticationRepository(), ) factory.cmdsByName["enable-service-access"] = serviceaccess.NewEnableServiceAccess( ui, config, actors.NewServicePlanHandler( repoLocator.GetServicePlanRepository(), repoLocator.GetServicePlanVisibilityRepository(), repoLocator.GetOrganizationRepository(), planBuilder, serviceBuilder, ), repoLocator.GetAuthenticationRepository(), ) factory.cmdsByName["disable-service-access"] = serviceaccess.NewDisableServiceAccess( ui, config, actors.NewServicePlanHandler( repoLocator.GetServicePlanRepository(), repoLocator.GetServicePlanVisibilityRepository(), repoLocator.GetOrganizationRepository(), planBuilder, serviceBuilder, ), repoLocator.GetAuthenticationRepository(), ) factory.cmdsByName["create-space-quota"] = spacequota.NewCreateSpaceQuota(ui, config, repoLocator.GetSpaceQuotaRepository(), repoLocator.GetOrganizationRepository()) factory.cmdsByName["delete-space-quota"] = spacequota.NewDeleteSpaceQuota(ui, config, repoLocator.GetSpaceQuotaRepository()) factory.cmdsByName["space-quotas"] = spacequota.NewListSpaceQuotas(ui, config, repoLocator.GetSpaceQuotaRepository()) factory.cmdsByName["space-quota"] = spacequota.NewSpaceQuota(ui, config, repoLocator.GetSpaceQuotaRepository()) factory.cmdsByName["update-space-quota"] = spacequota.NewUpdateSpaceQuota(ui, config, repoLocator.GetSpaceQuotaRepository()) factory.cmdsByName["set-space-quota"] = spacequota.NewSetSpaceQuota(ui, config, repoLocator.GetSpaceRepository(), repoLocator.GetSpaceQuotaRepository()) factory.cmdsByName["unset-space-quota"] = spacequota.NewUnsetSpaceQuota(ui, config, repoLocator.GetSpaceQuotaRepository(), repoLocator.GetSpaceRepository()) factory.cmdsByName["feature-flags"] = featureflag.NewListFeatureFlags(ui, config, repoLocator.GetFeatureFlagRepository()) factory.cmdsByName["feature-flag"] = featureflag.NewShowFeatureFlag(ui, config, repoLocator.GetFeatureFlagRepository()) factory.cmdsByName["enable-feature-flag"] = featureflag.NewEnableFeatureFlag(ui, config, repoLocator.GetFeatureFlagRepository()) factory.cmdsByName["disable-feature-flag"] = featureflag.NewDisableFeatureFlag(ui, config, repoLocator.GetFeatureFlagRepository()) factory.cmdsByName["running-environment-variable-group"] = environmentvariablegroup.NewRunningEnvironmentVariableGroup(ui, config, repoLocator.GetEnvironmentVariableGroupsRepository()) factory.cmdsByName["staging-environment-variable-group"] = environmentvariablegroup.NewStagingEnvironmentVariableGroup(ui, config, repoLocator.GetEnvironmentVariableGroupsRepository()) factory.cmdsByName["set-staging-environment-variable-group"] = environmentvariablegroup.NewSetStagingEnvironmentVariableGroup(ui, config, repoLocator.GetEnvironmentVariableGroupsRepository()) factory.cmdsByName["set-running-environment-variable-group"] = environmentvariablegroup.NewSetRunningEnvironmentVariableGroup(ui, config, repoLocator.GetEnvironmentVariableGroupsRepository()) return }
func NewDependency(logger trace.Printer) Dependency { deps := Dependency{} deps.TeePrinter = terminal.NewTeePrinter() deps.Ui = terminal.NewUI(os.Stdin, deps.TeePrinter, logger) errorHandler := func(err error) { if err != nil { deps.Ui.Failed(fmt.Sprintf("Config error: %s", err)) } } deps.Config = core_config.NewRepositoryFromFilepath(config_helpers.DefaultFilePath(), errorHandler) deps.ManifestRepo = manifest.NewManifestDiskRepository() deps.AppManifest = manifest.NewGenerator() deps.PluginConfig = plugin_config.NewPluginConfig(errorHandler) terminal.UserAskedForColors = deps.Config.ColorEnabled() terminal.InitColorSupport() deps.Gateways = map[string]net.Gateway{ "cloud-controller": net.NewCloudControllerGateway(deps.Config, time.Now, deps.Ui, logger), "uaa": net.NewUAAGateway(deps.Config, deps.Ui, logger), "routing-api": net.NewRoutingApiGateway(deps.Config, time.Now, deps.Ui, logger), } deps.RepoLocator = api.NewRepositoryLocator(deps.Config, deps.Gateways, logger) deps.PluginModels = &PluginModels{Application: nil} deps.PlanBuilder = plan_builder.NewBuilder( deps.RepoLocator.GetServicePlanRepository(), deps.RepoLocator.GetServicePlanVisibilityRepository(), deps.RepoLocator.GetOrganizationRepository(), ) deps.ServiceBuilder = service_builder.NewBuilder( deps.RepoLocator.GetServiceRepository(), deps.PlanBuilder, ) deps.BrokerBuilder = broker_builder.NewBuilder( deps.RepoLocator.GetServiceBrokerRepository(), deps.ServiceBuilder, ) deps.PluginRepo = plugin_repo.NewPluginRepo() deps.ServiceHandler = actors.NewServiceHandler( deps.RepoLocator.GetOrganizationRepository(), deps.BrokerBuilder, deps.ServiceBuilder, ) deps.ServicePlanHandler = actors.NewServicePlanHandler( deps.RepoLocator.GetServicePlanRepository(), deps.RepoLocator.GetServicePlanVisibilityRepository(), deps.RepoLocator.GetOrganizationRepository(), deps.PlanBuilder, deps.ServiceBuilder, ) deps.WordGenerator = generator.NewWordGenerator() deps.AppZipper = app_files.ApplicationZipper{} deps.AppFiles = app_files.ApplicationFiles{} deps.PushActor = actors.NewPushActor(deps.RepoLocator.GetApplicationBitsRepository(), deps.AppZipper, deps.AppFiles) deps.ChecksumUtil = utils.NewSha1Checksum("") deps.Logger = logger return deps }
func NewFactory(ui terminal.UI, config core_config.ReadWriter, manifestRepo manifest.ManifestRepository, repoLocator api.RepositoryLocator, pluginConfig plugin_config.PluginConfiguration, rpcService *rpc.CliRpcService) (factory concreteFactory) { factory.cmdsByName = make(map[string]command.Command) planBuilder := plan_builder.NewBuilder( repoLocator.GetServicePlanRepository(), repoLocator.GetServicePlanVisibilityRepository(), repoLocator.GetOrganizationRepository(), ) serviceBuilder := service_builder.NewBuilder( repoLocator.GetServiceRepository(), planBuilder, ) brokerBuilder := broker_builder.NewBuilder( repoLocator.GetServiceBrokerRepository(), serviceBuilder, ) factory.cmdsByName["config"] = commands.NewConfig(ui, config) factory.cmdsByName["update-service"] = service.NewUpdateService( ui, config, repoLocator.GetServiceRepository(), plan_builder.NewBuilder( repoLocator.GetServicePlanRepository(), repoLocator.GetServicePlanVisibilityRepository(), repoLocator.GetOrganizationRepository(), ), ) factory.cmdsByName["create-service-key"] = servicekey.NewCreateServiceKey(ui, config, repoLocator.GetServiceRepository(), repoLocator.GetServiceKeyRepository()) factory.cmdsByName["create-user"] = user.NewCreateUser(ui, config, repoLocator.GetUserRepository()) factory.cmdsByName["create-user-provided-service"] = service.NewCreateUserProvidedService(ui, config, repoLocator.GetUserProvidedServiceInstanceRepository()) factory.cmdsByName["curl"] = commands.NewCurl(ui, config, repoLocator.GetCurlRepository()) factory.cmdsByName["delete-service-key"] = servicekey.NewDeleteServiceKey(ui, config, repoLocator.GetServiceRepository(), repoLocator.GetServiceKeyRepository()) factory.cmdsByName["oauth-token"] = commands.NewOAuthToken(ui, config, repoLocator.GetAuthenticationRepository()) factory.cmdsByName["service-keys"] = servicekey.NewListServiceKeys(ui, config, repoLocator.GetServiceRepository(), repoLocator.GetServiceKeyRepository()) factory.cmdsByName["service-key"] = servicekey.NewGetServiceKey(ui, config, repoLocator.GetServiceRepository(), repoLocator.GetServiceKeyRepository()) factory.cmdsByName["unbind-service"] = service.NewUnbindService(ui, config, repoLocator.GetServiceBindingRepository()) factory.cmdsByName["update-user-provided-service"] = service.NewUpdateUserProvidedService(ui, config, repoLocator.GetUserProvidedServiceInstanceRepository()) factory.cmdsByName["bind-staging-security-group"] = securitygroup.NewBindToStagingGroup( ui, config, repoLocator.GetSecurityGroupRepository(), repoLocator.GetStagingSecurityGroupsRepository(), ) factory.cmdsByName["staging-security-groups"] = securitygroup.NewListStagingSecurityGroups(ui, config, repoLocator.GetStagingSecurityGroupsRepository()) factory.cmdsByName["unbind-staging-security-group"] = securitygroup.NewUnbindFromStagingGroup( ui, config, repoLocator.GetSecurityGroupRepository(), repoLocator.GetStagingSecurityGroupsRepository(), ) factory.cmdsByName["bind-running-security-group"] = securitygroup.NewBindToRunningGroup( ui, config, repoLocator.GetSecurityGroupRepository(), repoLocator.GetRunningSecurityGroupsRepository(), ) factory.cmdsByName["unbind-running-security-group"] = securitygroup.NewUnbindFromRunningGroup( ui, config, repoLocator.GetSecurityGroupRepository(), repoLocator.GetRunningSecurityGroupsRepository(), ) factory.cmdsByName["running-security-groups"] = securitygroup.NewListRunningSecurityGroups(ui, config, repoLocator.GetRunningSecurityGroupsRepository()) factory.cmdsByName["bind-security-group"] = securitygroup.NewBindSecurityGroup( ui, config, repoLocator.GetSecurityGroupRepository(), repoLocator.GetSpaceRepository(), repoLocator.GetOrganizationRepository(), repoLocator.GetSecurityGroupSpaceBinder(), ) factory.cmdsByName["unbind-security-group"] = securitygroup.NewUnbindSecurityGroup(ui, config, repoLocator.GetSecurityGroupRepository(), repoLocator.GetOrganizationRepository(), repoLocator.GetSpaceRepository(), repoLocator.GetSecurityGroupSpaceBinder()) createRoute := route.NewCreateRoute(ui, config, repoLocator.GetRouteRepository()) factory.cmdsByName["create-route"] = createRoute factory.cmdsByName["map-route"] = route.NewMapRoute(ui, config, repoLocator.GetRouteRepository(), createRoute) displayApp := application.NewShowApp(ui, config, repoLocator.GetAppSummaryRepository(), repoLocator.GetAppInstancesRepository(), repoLocator.GetLogsNoaaRepository()) start := application.NewStart(ui, config, displayApp, repoLocator.GetApplicationRepository(), repoLocator.GetAppInstancesRepository(), repoLocator.GetLogsNoaaRepository(), repoLocator.GetOldLogsRepository()) stop := application.NewStop(ui, config, repoLocator.GetApplicationRepository()) restart := application.NewRestart(ui, config, start, stop) restage := application.NewRestage(ui, config, repoLocator.GetApplicationRepository(), start) bind := service.NewBindService(ui, config, repoLocator.GetServiceBindingRepository()) factory.cmdsByName["bind-service"] = bind factory.cmdsByName["start"] = start factory.cmdsByName["stop"] = stop factory.cmdsByName["restart"] = restart factory.cmdsByName["restart-app-instance"] = application.NewRestartAppInstance(ui, config, repoLocator.GetAppInstancesRepository()) factory.cmdsByName["restage"] = restage factory.cmdsByName["push"] = application.NewPush( ui, config, manifestRepo, start, stop, bind, repoLocator.GetApplicationRepository(), repoLocator.GetDomainRepository(), repoLocator.GetRouteRepository(), repoLocator.GetStackRepository(), repoLocator.GetServiceRepository(), repoLocator.GetAuthenticationRepository(), generator.NewWordGenerator(), actors.NewPushActor(repoLocator.GetApplicationBitsRepository(), app_files.ApplicationZipper{}, app_files.ApplicationFiles{}), app_files.ApplicationZipper{}, app_files.ApplicationFiles{}) factory.cmdsByName["scale"] = application.NewScale(ui, config, restart, repoLocator.GetApplicationRepository()) spaceRoleSetter := user.NewSetSpaceRole(ui, config, repoLocator.GetSpaceRepository(), repoLocator.GetUserRepository()) factory.cmdsByName["set-space-role"] = spaceRoleSetter factory.cmdsByName["create-space"] = space.NewCreateSpace(ui, config, spaceRoleSetter, repoLocator.GetSpaceRepository(), repoLocator.GetOrganizationRepository(), repoLocator.GetUserRepository(), repoLocator.GetSpaceQuotaRepository()) factory.cmdsByName["service-access"] = serviceaccess.NewServiceAccess( ui, config, actors.NewServiceHandler( repoLocator.GetOrganizationRepository(), brokerBuilder, serviceBuilder, ), repoLocator.GetAuthenticationRepository(), ) factory.cmdsByName["enable-service-access"] = serviceaccess.NewEnableServiceAccess( ui, config, actors.NewServicePlanHandler( repoLocator.GetServicePlanRepository(), repoLocator.GetServicePlanVisibilityRepository(), repoLocator.GetOrganizationRepository(), planBuilder, serviceBuilder, ), repoLocator.GetAuthenticationRepository(), ) factory.cmdsByName["disable-service-access"] = serviceaccess.NewDisableServiceAccess( ui, config, actors.NewServicePlanHandler( repoLocator.GetServicePlanRepository(), repoLocator.GetServicePlanVisibilityRepository(), repoLocator.GetOrganizationRepository(), planBuilder, serviceBuilder, ), repoLocator.GetAuthenticationRepository(), ) factory.cmdsByName["feature-flags"] = featureflag.NewListFeatureFlags(ui, config, repoLocator.GetFeatureFlagRepository()) factory.cmdsByName["feature-flag"] = featureflag.NewShowFeatureFlag(ui, config, repoLocator.GetFeatureFlagRepository()) factory.cmdsByName["enable-feature-flag"] = featureflag.NewEnableFeatureFlag(ui, config, repoLocator.GetFeatureFlagRepository()) factory.cmdsByName["disable-feature-flag"] = featureflag.NewDisableFeatureFlag(ui, config, repoLocator.GetFeatureFlagRepository()) factory.cmdsByName["running-environment-variable-group"] = environmentvariablegroup.NewRunningEnvironmentVariableGroup(ui, config, repoLocator.GetEnvironmentVariableGroupsRepository()) factory.cmdsByName["staging-environment-variable-group"] = environmentvariablegroup.NewStagingEnvironmentVariableGroup(ui, config, repoLocator.GetEnvironmentVariableGroupsRepository()) factory.cmdsByName["set-staging-environment-variable-group"] = environmentvariablegroup.NewSetStagingEnvironmentVariableGroup(ui, config, repoLocator.GetEnvironmentVariableGroupsRepository()) factory.cmdsByName["set-running-environment-variable-group"] = environmentvariablegroup.NewSetRunningEnvironmentVariableGroup(ui, config, repoLocator.GetEnvironmentVariableGroupsRepository()) factory.cmdsByName["uninstall-plugin"] = plugin.NewPluginUninstall(ui, pluginConfig, rpcService) factory.cmdsByName["install-plugin"] = plugin.NewPluginInstall(ui, config, pluginConfig, factory.cmdsByName, actor_plugin_repo.NewPluginRepo(), utils.NewSha1Checksum(""), rpcService) factory.cmdsByName["plugins"] = plugin.NewPlugins(ui, pluginConfig) factory.cmdsByName["add-plugin-repo"] = plugin_repo.NewAddPluginRepo(ui, config) factory.cmdsByName["list-plugin-repos"] = plugin_repo.NewListPluginRepos(ui, config) factory.cmdsByName["remove-plugin-repo"] = plugin_repo.NewRemovePluginRepo(ui, config) factory.cmdsByName["repo-plugins"] = plugin_repo.NewRepoPlugins(ui, config, actor_plugin_repo.NewPluginRepo()) factory.cmdsByName["copy-source"] = application.NewCopySource( ui, config, repoLocator.GetAuthenticationRepository(), repoLocator.GetApplicationRepository(), repoLocator.GetOrganizationRepository(), repoLocator.GetSpaceRepository(), repoLocator.GetCopyApplicationSourceRepository(), restart, //note this is built up above. ) return }
publicAndLimitedService models.ServiceOffering org1 models.Organization org2 models.Organization visibility1 models.ServicePlanVisibilityFields ) BeforeEach(func() { servicePlanRepo = new(apifakes.OldFakeServicePlanRepo) servicePlanVisibilityRepo = new(apifakes.FakeServicePlanVisibilityRepository) orgRepo = new(organizationsfakes.FakeOrganizationRepository) planBuilder = new(planbuilderfakes.FakePlanBuilder) serviceBuilder = new(servicebuilderfakes.FakeServiceBuilder) actor = actors.NewServicePlanHandler(servicePlanRepo, servicePlanVisibilityRepo, orgRepo, planBuilder, serviceBuilder) org1 = models.Organization{} org1.Name = "org-1" org1.GUID = "org-1-guid" org2 = models.Organization{} org2.Name = "org-2" org2.GUID = "org-2-guid" orgRepo.FindByNameReturns(org1, nil) publicServicePlanVisibilityFields = models.ServicePlanVisibilityFields{ GUID: "public-service-plan-visibility-guid", ServicePlanGUID: "public-service-plan-guid", }
func NewDependency(writer io.Writer, logger trace.Printer) Dependency { deps := Dependency{} deps.TeePrinter = terminal.NewTeePrinter(writer) deps.UI = terminal.NewUI(os.Stdin, writer, deps.TeePrinter, logger) errorHandler := func(err error) { if err != nil { deps.UI.Failed(fmt.Sprintf("Config error: %s", err)) } } configPath, err := confighelpers.DefaultFilePath() if err != nil { errorHandler(err) } deps.Config = coreconfig.NewRepositoryFromFilepath(configPath, errorHandler) deps.ManifestRepo = manifest.NewDiskRepository() deps.AppManifest = manifest.NewGenerator() pluginPath := filepath.Join(confighelpers.PluginRepoDir(), ".cf", "plugins") deps.PluginConfig = pluginconfig.NewPluginConfig( errorHandler, configuration.NewDiskPersistor(filepath.Join(pluginPath, "config.json")), pluginPath, ) terminal.UserAskedForColors = deps.Config.ColorEnabled() terminal.InitColorSupport() deps.Gateways = map[string]net.Gateway{ "cloud-controller": net.NewCloudControllerGateway(deps.Config, time.Now, deps.UI, logger), "uaa": net.NewUAAGateway(deps.Config, deps.UI, logger), "routing-api": net.NewRoutingAPIGateway(deps.Config, time.Now, deps.UI, logger), } deps.RepoLocator = api.NewRepositoryLocator(deps.Config, deps.Gateways, logger) deps.PluginModels = &PluginModels{Application: nil} deps.PlanBuilder = planbuilder.NewBuilder( deps.RepoLocator.GetServicePlanRepository(), deps.RepoLocator.GetServicePlanVisibilityRepository(), deps.RepoLocator.GetOrganizationRepository(), ) deps.ServiceBuilder = servicebuilder.NewBuilder( deps.RepoLocator.GetServiceRepository(), deps.PlanBuilder, ) deps.BrokerBuilder = brokerbuilder.NewBuilder( deps.RepoLocator.GetServiceBrokerRepository(), deps.ServiceBuilder, ) deps.PluginRepo = pluginrepo.NewPluginRepo() deps.ServiceHandler = actors.NewServiceHandler( deps.RepoLocator.GetOrganizationRepository(), deps.BrokerBuilder, deps.ServiceBuilder, ) deps.ServicePlanHandler = actors.NewServicePlanHandler( deps.RepoLocator.GetServicePlanRepository(), deps.RepoLocator.GetServicePlanVisibilityRepository(), deps.RepoLocator.GetOrganizationRepository(), deps.PlanBuilder, deps.ServiceBuilder, ) deps.WordGenerator = generator.NewWordGenerator() deps.AppZipper = appfiles.ApplicationZipper{} deps.AppFiles = appfiles.ApplicationFiles{} deps.PushActor = actors.NewPushActor(deps.RepoLocator.GetApplicationBitsRepository(), deps.AppZipper, deps.AppFiles) deps.ChecksumUtil = utils.NewSha1Checksum("") deps.Logger = logger return deps }