// PrepareAppConfig sets fields in config appropriate for running tests. It // returns two buffers bound to stdout and stderr. func PrepareAppConfig(config *cmd.AppConfig) (stdout, stderr *bytes.Buffer) { config.ExpectToBuild = true stdout, stderr = new(bytes.Buffer), new(bytes.Buffer) config.Out, config.ErrOut = stdout, stderr config.Detector = app.SourceRepositoryEnumerator{ Detectors: source.DefaultDetectors, Tester: dockerfile.NewTester(), } config.DockerSearcher = app.DockerRegistrySearcher{ Client: dockerregistry.NewClient(10*time.Second, true), } config.ImageStreamByAnnotationSearcher = fakeImageStreamSearcher() config.ImageStreamSearcher = fakeImageStreamSearcher() config.OriginNamespace = "default" config.OSClient = &client.Fake{} config.RefBuilder = &app.ReferenceBuilder{} config.TemplateSearcher = app.TemplateSearcher{ Client: &client.Fake{}, TemplateConfigsNamespacer: &client.Fake{}, Namespaces: []string{"openshift", "default"}, } config.Typer = kapi.Scheme return }
func CompleteAppConfig(config *newcmd.AppConfig, f *clientcmd.Factory, c *cobra.Command, args []string) error { mapper, typer := f.Object(false) if config.Mapper == nil { config.Mapper = mapper } if config.Typer == nil { config.Typer = typer } if config.ClientMapper == nil { config.ClientMapper = resource.ClientMapperFunc(f.ClientForMapping) } namespace, _, err := f.DefaultNamespace() if err != nil { return err } osclient, _, kclient, err := f.Clients() if err != nil { return err } config.KubeClient = kclient dockerClient, _ := getDockerClient() config.SetOpenShiftClient(osclient, namespace, dockerClient) if config.AllowSecretUse { cfg, err := f.OpenShiftClientConfig.ClientConfig() if err != nil { return err } config.SecretAccessor = newConfigSecretRetriever(cfg) } unknown := config.AddArguments(args) if len(unknown) != 0 { return kcmdutil.UsageError(c, "Did not recognize the following arguments: %v", unknown) } if config.AllowMissingImages && config.AsSearch { return kcmdutil.UsageError(c, "--allow-missing-images and --search are mutually exclusive.") } if len(config.SourceImage) != 0 && len(config.SourceImagePath) == 0 { return kcmdutil.UsageError(c, "--source-image-path must be specified when --source-image is specified.") } if len(config.SourceImage) == 0 && len(config.SourceImagePath) != 0 { return kcmdutil.UsageError(c, "--source-image must be specified when --source-image-path is specified.") } if config.BinaryBuild && config.Strategy == generate.StrategyPipeline { return kcmdutil.UsageError(c, "specifying binary builds and the pipeline strategy at the same time is not allowed.") } return nil }