Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

adjust newapp/newbuild error messages (arg classification vs. actual … #18272

Merged

Conversation

gabemontero
Copy link
Contributor

…processing

Fixes #17925

@openshift/sig-developer-experience ptal

Now produces:

gmontero ~/go/src/github.com/openshift/origin  (new-app-bld-msgs)$ oc new-build --name imagesourcetest python~https://github.com/openshift-katacoda/blog-django-py --source-image xxx --source-image-path=yyy --dry-run
error: unable to locate resource for "xxx"

The 'oc new-build' command will match arguments to the following types:

  1. Images tagged into image streams in the current project or the 'openshift' project
     - if you don't specify a tag, we'll add ':latest'
  2. Images in the Docker Hub, on remote registries, or on the local Docker engine
  3. Git repository URLs or local paths that point to Git repositories

--allow-missing-images can be used to force the use of an image that was not matched

See 'oc new-build -h' for examples.

@openshift-ci-robot openshift-ci-robot added the size/S Denotes a PR that changes 10-29 lines, ignoring generated files. label Jan 24, 2018
@@ -723,7 +723,7 @@ func handleError(err error, baseName, commandName, commandPath string, config *n
// this print serves as a header for the printing of the errorGroups, but
// only print it if we precede with classification errors, to help distinguish
// between the two
fmt.Fprintln(buf, "Errors occurred during resource creation:")
fmt.Fprintln(buf, "Errors occurred during %s processing of arguments:")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

missing arg for %s

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oh nm, i see

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nope, i don't see.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ahhhh .... fix coming ....

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fix pushed

@@ -723,7 +723,8 @@ func handleError(err error, baseName, commandName, commandPath string, config *n
// this print serves as a header for the printing of the errorGroups, but
// only print it if we precede with classification errors, to help distinguish
// between the two
fmt.Fprintln(buf, "Errors occurred during resource creation:")
fmt.Fprintf(buf, "Errors occurred during %s processing of arguments:", commandName)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we see a sample of this new output? i'm not clear on what values "commandName" takes on

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For a new-build invocation it would be:

Errors occurred during new-build processing of arguments:

where the dump of the errorGroup follows ...i.e. error: ....

substitute new-app for new-build if it comes from oc new-app ...

@gabemontero
Copy link
Contributor Author

the cmd failure was a result of masking the classification error text (I was thinking there was a test for it but could not find it earlier)

some more adjustments coming ...

@gabemontero
Copy link
Contributor Author

same for one of the two items noted in the integration test failure

Copy link
Contributor

@bparees bparees left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit and lgtm.

@@ -723,7 +723,8 @@ func handleError(err error, baseName, commandName, commandPath string, config *n
// this print serves as a header for the printing of the errorGroups, but
// only print it if we precede with classification errors, to help distinguish
// between the two
fmt.Fprintln(buf, "Errors occurred during resource creation:")
fmt.Fprintf(buf, "Errors occurred during %s processing of arguments:", commandName)
fmt.Fprint(buf, "\n")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why not just put this in the Fprintf above?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

will do

also, an fyi, this path is proving rare now, in that most args pass the IsComponentReference test

@openshift-ci-robot openshift-ci-robot added size/M Denotes a PR that changes 30-99 lines, ignoring generated files. and removed size/S Denotes a PR that changes 10-29 lines, ignoring generated files. labels Jan 24, 2018
@gabemontero
Copy link
Contributor Author

pushed changes for latest @bparees comments, as well as test adjustments for the changes in messages

os::cmd::expect_failure_and_text 'oc new-build https://www.google.com/openshift/nodejs-e' 'as a Git repository URL: '
os::cmd::expect_failure_and_text 'oc new-build https://examplegit.com/openshift/nodejs-e' 'as a Git repository URL: '
os::cmd::expect_failure_and_text 'oc new-app mysql-persisten mysql' 'only a partial match was found'
os::cmd::expect_failure_and_text 'oc new-app --strategy=docker https://192.30.253.113/openshift/ruby-hello-world.git' 'only a partial match was found'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wouldn't expect this change... feels like a step backwards from the current output:

$ oc new-app --strategy=docker https://192.30.253.113/openshift/ruby-hello-world.git
error: Errors occurred while determining argument types:

https://192.30.253.113/openshift/ruby-hello-world.git as a Git repository URL:  fatal: unable to access 'https://192.30.253.113/openshift/ruby-hello-world.git/': SSL: no alternative certificate subject name matches target host name '192.30.253.113'

https://192.30.253.113/openshift/ruby-hello-world.git as a local directory pointing to a Git repository:  stat https://192.30.253.113/openshift/ruby-hello-world.git: no such file or directory

Errors occurred during resource creation:
error: --strategy is specified and none of the arguments provided could be classified as a source code location

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(If i were to change anything about the above output, i'd skip the resource creation error output and just abort after the argument determination errors)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this change centers around my observation about the component ref classification rarely failing

I had been consider shifting my check from the classification logic (though it was more elegant) to the handleError logic ... your concern has prompted me to do that

I believe that will result in reverting the change here

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One more point as a result of the shift though ... I'll be curious after I start posting some sample output if you'll want to qualify on which runtime errors the classification errors get posted.

I wonder if we'll want to reconcile the type of error noted in functions like https://github.com/openshift/origin/blob/master/pkg/oc/cli/cmd/newapp.go#L752-L878 with the output you want to see with say the invocation from @GrahamDumpleton that stemmed this issue.

I'll provide some precise examples in a bit if that helps the determination.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, I have a set of changes on my laptop, that if we go with, would result in:

  1. only changing the newapp.sh test to account for the @bparees requested transition of no match for to unable to locate resource for

  2. output of the following for @GrahamDumpleton 's example:

error: unable to locate resource for "xxx"

The 'oc new-build' command will match arguments to the following types:

  1. Images tagged into image streams in the current project or the 'openshift' project
     - if you don't specify a tag, we'll add ':latest'
  2. Images in the Docker Hub, on remote registries, or on the local Docker engine
  3. Git repository URLs or local paths that point to Git repositories

--allow-missing-images can be used to force the use of an image that was not matched

See 'oc new-build -h' for examples.
For further assistance,  new-build classification of argument types resulted in the following:

python~https://github.com/openshift-katacoda/blog-django-py as a Git repository URL:  fatal: I don't handle protocol 'python~https'

python~https://github.com/openshift-katacoda/blog-django-py as a local directory pointing to a Git repository:  stat python~https://github.com/openshift-katacoda/blog-django-py: no such file or directory

The argument python~https://github.com/openshift-katacoda/blog-django-py passed the component classification tests

Thoughts ?

os::cmd::expect_failure_and_text 'oc new-app mysql-persisten mysql' 'only a partial match was found'
os::cmd::expect_failure_and_text 'oc new-app --strategy=docker https://192.30.253.113/openshift/ruby-hello-world.git' 'only a partial match was found'
os::cmd::expect_failure_and_text 'oc new-app https://www.google.com/openshift/nodejs-e' 'unable to lo'
os::cmd::expect_failure_and_text 'oc new-app https://examplegit.com/openshift/nodejs-e' 'unable to lo '
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

similar concerns/questions on these 2.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

also i think you have an extraneous space in the second one? but i'd prefer to see a lengthier text anyway, cutting it in the middle of a word is odd.

@gabemontero
Copy link
Contributor Author

refactor / redirection from latest discussion thread pushed

@bparees
Copy link
Contributor

bparees commented Jan 26, 2018

hard for me to visualize the impact of the change, can you create some sample output?

That said, taking a step back in terms of how we can help users, I think there's a flow/filter (which i think you've sort of evolved towards):

  1. for a given argument, could we determine its type (image, imagestream, source)
  2. for a given argument could we match it to a resource (matched to image stream, matched to local directory, matched to remote repository, matched to a docker image)
  3. for a given argument do we think we can access it (image is pullable, repo is cloneable)
  4. were we able to define resources based on the arguments
  5. were we able to create (oc create) the resources

1+2 are a bit combined today which makes this hard, of course.

@gabemontero
Copy link
Contributor Author

@gabemontero
Copy link
Contributor Author

I suspect the gcp failure https://openshift-gce-devel.appspot.com/build/origin-ci-test/pr-logs/pull/18272/test_pull_request_origin_extended_conformance_gce/15085/ is related to all the in flight work @smarterclayton is doing with prometheus and the routers (#18245 and #18254)

@gabemontero
Copy link
Contributor Author

@bparees - sure thing:

  1. @GrahamDumpleton 's example which initiated this foray:
gmontero ~ $ oc new-build --name imagesourcetest python~https://github.com/openshift-katacoda/blog-django-py --source-image xxx --source-image-path=yyy --dry-run
error: unable to locate resource for "xxx"

The 'oc new-build' command will match arguments to the following types:

  1. Images tagged into image streams in the current project or the 'openshift' project
     - if you don't specify a tag, we'll add ':latest'
  2. Images in the Docker Hub, on remote registries, or on the local Docker engine
  3. Git repository URLs or local paths that point to Git repositories

--allow-missing-images can be used to force the use of an image that was not matched

See 'oc new-build -h' for examples.
For further assistance,  new-build classification of the argument types resulted in the following:

python~https://github.com/openshift-katacoda/blog-django-py as a Git repository URL:  fatal: I don't handle protocol 'python~https'

python~https://github.com/openshift-katacoda/blog-django-py as a local directory pointing to a Git repository:  stat python~https://github.com/openshift-katacoda/blog-django-py: no such file or directory

python~https://github.com/openshift-katacoda/blog-django-py as a template stored in a local file:  stat python~https://github.com/openshift-katacoda/blog-django-py: no such file or directory

The argument python~https://github.com/openshift-katacoda/blog-django-py passed the component classification tests
  1. An example from the cmd tests:
gmontero ~ $ oc new-app mysql-persisten mysql
error: only a partial match was found for "mysql-persisten": "openshift/mysql-persistent"

The argument "mysql-persisten" only partially matched the following Docker image, OpenShift image stream, or template:

* Template "mysql-persistent" in project "openshift"
  Use --template="openshift/mysql-persistent" to specify this image or template


For further assistance,  new-app classification of the argument types resulted in the following:

mysql-persisten as a local directory pointing to a Git repository:  stat mysql-persisten: no such file or directory

mysql-persisten as a template stored in a local file:  stat mysql-persisten: no such file or directory

mysql as a local directory pointing to a Git repository:  stat mysql: no such file or directory

mysql as a template stored in a local file:  stat mysql: no such file or directory

The argument mysql passed the component classification tests

  1. another cmd test example stemming from prior github issues re: confusion with the messages:
gmontero ~ $ oc new-app --strategy=docker https://192.30.253.113/openshift/ruby-hello-world.git
error: --strategy is specified and none of the arguments provided could be classified as a source code location

For further assistance,  new-app classification of the argument types resulted in the following:

https://192.30.253.113/openshift/ruby-hello-world.git as a Git repository URL:  fatal: unable to access 'https://192.30.253.113/openshift/ruby-hello-world.git/': SSL: no alternative certificate subject name matches target host name '192.30.253.113'

https://192.30.253.113/openshift/ruby-hello-world.git as a local directory pointing to a Git repository:  stat https://192.30.253.113/openshift/ruby-hello-world.git: no such file or directory

https://192.30.253.113/openshift/ruby-hello-world.git as a template stored in a local file:  stat https://192.30.253.113/openshift/ruby-hello-world.git: no such file or directory

The argument https://192.30.253.113/openshift/ruby-hello-world.git passed the component classification tests

for _, group := range groups {
fmt.Fprint(buf, kcmdutil.MultipleErrors("error: ", group.errs))
if len(group.suggestion) > 0 {
fmt.Fprintln(buf)
}
fmt.Fprint(buf, group.suggestion)
}
if len(config.ArgumentClassificationErrors) > 0 && len(groups) > 0 {
fmt.Fprintf(buf, "\nFor further assistance, %s classification of the argument types resulted in the following:\n", commandName)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think including the cmd name in this output helps (also you've got an extra space after the comma).

I think i'd just trim it down to "Classification of arguments resulted in the following:\n"

c.ArgumentClassificationWinner = fmt.Sprintf(winnerFmt, s, "template")
case c.tryToAddComponentArguments(s):
// NOTE, component argument classification currently is the most lenient, so we save it for the end
c.ArgumentClassificationWinner = fmt.Sprintf(winnerFmt, s, "component")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"component" is a confusing term here...as a user when i see "the argument x passedt he component classification tests" i don't really know what that means my argument was treated as. Is there another term we can use?

@@ -312,6 +313,7 @@ func (c *AppConfig) tryToAddTemplateArguments(s string) bool {
// AddArguments converts command line arguments into the appropriate bucket based on what they look like
func (c *AppConfig) AddArguments(args []string) []string {
unknown := []string{}
winnerFmt := "The argument %s passed the %s classification tests"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can an argument be classified as more than one thing? if not, i'd change this to "Argument x was classified as y"

@bparees
Copy link
Contributor

bparees commented Jan 26, 2018

@gabemontero it seems a bit strange to me that we report that we couldn't match "xxx" to a resource, but we aren't printing any information about what "xxx" was classified(or not classified) as.

also I don't think its useful to print the classification information for arguments that we ultimately successfully classified, unless something else goes wrong.

Again breaking this down i think we should fail as early as possible and only report on the first thing we failed out on. Let users iterate their way to a correct set of args. As it stands right now, the fact that we couldn't understand "xxx" gets a bit lost w/ all the other output of the things that were not actually a problem.

@gabemontero
Copy link
Contributor Author

@bparees

  1. we do print what xxx was classified as if it was classified as something; it is possible that all the classification checks fail

  2. we only print the classification information if there was a problem; all three of those samples I showed you were invocations that failed

  3. on the information getting lost ... the original printing of those failed classification came from an older upstream issue around providing more information (i.e. it wasn't obvious that parameter was treated as a file that did not exist), and those newapp.sh cmd tests which were modified, when my change filtered them but you were worried we were losing functionality, stems from those .... that said, I could see perhaps only printing a) what we classified as but only when there was an error as being helpful, but again, we'll most likely have to tweak the newapp.sh accordingly.

While you percolate on that, I'll make updates per your inline PR comments and push. And can resubmit those 3 examples I posted afterward.

@gabemontero
Copy link
Contributor Author

Updates on those 3 examples:

gmontero ~ $ oc new-build --name imagesourcetest python~https://github.com/openshift-katacoda/blog-django-py --source-image xxx --source-image-path=yyy --dry-run
error: unable to locate resource for "xxx"

The 'oc new-build' command will match arguments to the following types:

  1. Images tagged into image streams in the current project or the 'openshift' project
     - if you don't specify a tag, we'll add ':latest'
  2. Images in the Docker Hub, on remote registries, or on the local Docker engine
  3. Git repository URLs or local paths that point to Git repositories

--allow-missing-images can be used to force the use of an image that was not matched

See 'oc new-build -h' for examples.
Classification of arguments is the following:

python~https://github.com/openshift-katacoda/blog-django-py as a Git repository URL:  fatal: I don't handle protocol 'python~https'

python~https://github.com/openshift-katacoda/blog-django-py as a local directory pointing to a Git repository:  stat python~https://github.com/openshift-katacoda/blog-django-py: no such file or directory

python~https://github.com/openshift-katacoda/blog-django-py as a template stored in a local file:  stat python~https://github.com/openshift-katacoda/blog-django-py: no such file or directory

Argument python~https://github.com/openshift-katacoda/blog-django-py was classified as  an image reference with optionally a source repository
gmontero ~ $ 
gmontero ~ $ oc new-app mysql-persisten mysql
error: only a partial match was found for "mysql-persisten": "openshift/mysql-persistent"

The argument "mysql-persisten" only partially matched the following Docker image, OpenShift image stream, or template:

* Template "mysql-persistent" in project "openshift"
  Use --template="openshift/mysql-persistent" to specify this image or template


Classification of arguments is the following:

mysql-persisten as a local directory pointing to a Git repository:  stat mysql-persisten: no such file or directory

mysql-persisten as a template stored in a local file:  stat mysql-persisten: no such file or directory

mysql as a local directory pointing to a Git repository:  stat mysql: no such file or directory

mysql as a template stored in a local file:  stat mysql: no such file or directory

Argument mysql was classified as  an image reference with optionally a source repository
gmontero ~ $ 
gmontero ~ $ oc new-app --strategy=docker https://192.30.253.113/openshift/ruby-hello-world.git
error: --strategy is specified and none of the arguments provided could be classified as a source code location

Classification of arguments is the following:

https://192.30.253.113/openshift/ruby-hello-world.git as a Git repository URL:  fatal: unable to access 'https://192.30.253.113/openshift/ruby-hello-world.git/': SSL: no alternative certificate subject name matches target host name '192.30.253.113'

https://192.30.253.113/openshift/ruby-hello-world.git as a local directory pointing to a Git repository:  stat https://192.30.253.113/openshift/ruby-hello-world.git: no such file or directory

https://192.30.253.113/openshift/ruby-hello-world.git as a template stored in a local file:  stat https://192.30.253.113/openshift/ruby-hello-world.git: no such file or directory

Argument https://192.30.253.113/openshift/ruby-hello-world.git was classified as  an image reference with optionally a source repository
gmontero ~ $ 

@openshift-merge-robot openshift-merge-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jan 30, 2018
@openshift-merge-robot openshift-merge-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Jan 30, 2018
@gabemontero
Copy link
Contributor Author

@bparees and I had a chance to talk yesterday. We'll go with:

  1. displaying the classification winner, and not losers, and adjust the tests accordingly
  2. if nobody wins, then display how each classification failed

@gabemontero
Copy link
Contributor Author

Something happened to my push with the unit/integration test fixes ... trying again

Once I have that sorted out, I'll circle back to @bparees 's #18272 (comment)

@gabemontero
Copy link
Contributor Author

OK they are there now ... waiting for the tests to complete.

@gabemontero
Copy link
Contributor Author

OK everything passed but cmd ... it was newapp related, but I don't understand yet why if failed. It seems like the text it was looking for was there:

test/cmd/newapp.sh:362: executing 'oc new-app --dry-run __template_fail __templatefile_fail' expecting failure and text 'for "__templatefile_fail"'
FAILURE after 0.290s: test/cmd/newapp.sh:362: executing 'oc new-app --dry-run __template_fail __templatefile_fail' expecting failure and text 'for "__templatefile_fail"': the output content test failed
There was no output from the command.
Standard error from the command:
error: unable to find the specified template: __template_fail
error: unable to locate any images in image streams, templates loaded in accessible projects, template files, local docker images with name "__template_fail"
error: unable to find the specified template file: __templatefile_fail
error: unable to locate any images in image streams, templates loaded in accessible projects, template files, local docker images with name "__templatefile_fail"

Argument '__templatefile_fail' was classified as an image reference and/or source repository.

The 'oc new-app' command will match arguments to the following types:

  1. Images tagged into image streams in the current project or the 'openshift' project
     - if you don't specify a tag, we'll add ':latest'
  2. Images in the Docker Hub, on remote registries, or on the local Docker engine
  3. Templates in the current project or the 'openshift' project
  4. Git repository URLs or local paths that point to Git repositories

--allow-missing-images can be used to point to an image that does not exist yet.

See 'oc new-app -h' for examples.

Sure enough it is failing for me now locally (had been passing I though) ... investigating

@gabemontero
Copy link
Contributor Author

Ahhh ... @bparees had me replace for with with name ;-) ... fixing ....

@bparees
Copy link
Contributor

bparees commented Feb 6, 2018

Ahhh ... @bparees had me replace for with with name ;-) ... fixing ....

sorry :)

@gabemontero
Copy link
Contributor Author

/retest

@gabemontero
Copy link
Contributor Author

Something became amiss forwarding params to the remote host across the board:

++ OCT_CONFIG_HOME=/var/lib/jenkins/jobs/test_pull_request_origin_verify/workspace@3/.config
+ ssh -F ./.config/origin-ci-tool/inventory/.ssh_config openshiftdevel sudo chmod o+rw /etc/environment
Can't open user config file ./.config/origin-ci-tool/inventory/.ssh_config: No such file or directory

@dobbymoodge fyi ^^

@gabemontero
Copy link
Contributor Author

ok @bparees I've made the change which will include errors for git repo access check for args ultimately classified as image, image~code, or loaded templates

give it a whirl

@gabemontero
Copy link
Contributor Author

Forgot ... here are the outputs for the samples I've been posting:

gmontero ~ $ oc new-build --name imagesourcetest python~https://github.com/openshift-katacoda/blog-django-py --source-image xxx --source-image-path=yyy --dry-run
error: unable to locate any image stream images with a 'supports' annotation, images in image streams, local docker images with name "xxx"

The 'oc new-build' command will match arguments to the following types:

  1. Images tagged into image streams in the current project or the 'openshift' project
     - if you don't specify a tag, we'll add ':latest'
  2. Images in the Docker Hub, on remote registries, or on the local Docker engine
  3. Git repository URLs or local paths that point to Git repositories

--allow-missing-images can be used to force the use of an image that was not matched

See 'oc new-build -h' for examples.
gmontero ~ $ oc new-app --strategy=docker https://192.30.253.113/openshift/ruby-hello-world.git
error: --strategy is specified and none of the arguments provided could be classified as a source code location
gmontero ~ $  oc new-app ~java
error: Did not recognize the following arguments: [~java]

~java:
is not an environment variable
is not a Git repository:   local file access failed with: stat ~java: no such file or directory
is not a template stored in a local file:  stat ~java: no such file or directory
is not an image reference, image~source reference, nor template loaded in an accessible project:  when using '[image]~[code]' form for "~java", you must specify a image name


See 'oc new-app -h' for help and examples.
gmontero ~ $ oc new-app https://www.google.com/openshift/nodejs-e
error: unable to load template file "https://www.google.com/openshift/nodejs-e": unable to read URL "https://www.google.com/openshift/nodejs-e", server reported 404 Not Found, status code=404
error: git ls-remote failed with: fatal: repository 'https://www.google.com/openshift/nodejs-e/' not found;  local file access failed with: stat https://www.google.com/openshift/nodejs-e: no such file or directory
error: unable to locate any images in image streams, templates loaded in accessible projects, template files, local docker images with name "https://www.google.com/openshift/nodejs-e"

Argument 'https://www.google.com/openshift/nodejs-e' was classified as an image, image~source, or loaded template reference.

The 'oc new-app' command will match arguments to the following types:

  1. Images tagged into image streams in the current project or the 'openshift' project
     - if you don't specify a tag, we'll add ':latest'
  2. Images in the Docker Hub, on remote registries, or on the local Docker engine
  3. Templates in the current project or the 'openshift' project
  4. Git repository URLs or local paths that point to Git repositories

--allow-missing-images can be used to point to an image that does not exist yet.

See 'oc new-app -h' for examples.

@gabemontero
Copy link
Contributor Author

gabemontero commented Feb 7, 2018

So the unit test failure was weird. The tests passed, but 24 were skipped:

[INFO] jUnit XML report placed at _output/scripts/test-go/artifacts/gotest_report_jtnu5.xml
Of 8120 tests executed in 2816.239s, 8096 succeeded, 0 failed, and 24 were skipped.

And then it said while no failures were found, test-go.sh "failed" :

[WARNING] While the jUnit report found no failed tests, the `go test` process failed.
[WARNING] This usually means that the unit test suite failed to compile.
[ERROR] hack/test-go.sh exited with code 1 after 00h 35m 20s
make: *** [test-unit] Error 1

Will poke around and try to find out if this has been reported elsewhere.

@gabemontero
Copy link
Contributor Author

gcp tests failed provisioning the test cluster

@gabemontero
Copy link
Contributor Author

unit test failure is #17881

@gabemontero
Copy link
Contributor Author

/test unit

@bparees
Copy link
Contributor

bparees commented Feb 7, 2018

barring a complete rewrite of how this arg matching+classifying logic works, i guess this is as good as it's going to get.

but please reintroduce a test around partial matches in some form.

@gabemontero
Copy link
Contributor Author

partial match test sorted out @bparees

@bparees
Copy link
Contributor

bparees commented Feb 7, 2018

/lgtm

@openshift-ci-robot openshift-ci-robot added the lgtm Indicates that a PR is ready to be merged. label Feb 7, 2018
@openshift-ci-robot
Copy link

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: bparees, gabemontero

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these OWNERS Files:

You can indicate your approval by writing /approve in a comment
You can cancel your approval by writing /approve cancel in a comment

@openshift-ci-robot openshift-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Feb 7, 2018
@openshift-merge-robot
Copy link
Contributor

Automatic merge from submit-queue (batch tested with PRs 18454, 18504, 18510, 18481, 18272).

@openshift-merge-robot openshift-merge-robot merged commit 953814c into openshift:master Feb 8, 2018
@gabemontero gabemontero deleted the new-app-bld-msgs branch February 8, 2018 22:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. lgtm Indicates that a PR is ready to be merged. sig/developer-experience size/L Denotes a PR that changes 100-499 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants