Pushing invalid manifest provides unhelpful feedback #29

Open
glenngillen opened this Issue Mar 13, 2012 · 2 comments

Comments

Projects
None yet
3 participants
@glenngillen
Contributor

glenngillen commented Mar 13, 2012

pvh was tried to push a manifest, which turned out to be invalid. Rather than providing a useful explanation of what went wrong it simply provided an output of the usage/help.

@mmcgrana

This comment has been minimized.

Show comment
Hide comment
@mmcgrana

mmcgrana Nov 8, 2012

I ran into this today. The problems happens even for the simpler case of kensa test manifest and even more confusingly for e.g. kensa test provision. Here's a test case (the broken manifest in this case was missing a comma):

/tmp $ mkdir test
/tmp $ cd test/
/tmp/test $ curl -o addon-manifest.json https://raw.github.com/gist/ae63d1161bd5c64a48ed/c427d79d1a09eed1aaf9d0393b72cedb6daf1121/manifest-broken.json
/tmp/test $ kensa test manifest

Usage: kensa [OPTIONS] command
       kensa init
       kensa create <app_name> --template
       kensa test   <type> [arg1 arg2 ...]
       kensa run    <command> [arg1 arg1 ...]

OPTIONS

  -f, --filename path-to-file
    Sets the manifest file to operate on, default is addon-manifest.json.

  -h, --help
    Show this message

  -p, --plan
    Provision the specified plan instead of "test"

  --async
    Check provision call with async response.

  --without-sso
    Skip single sign-on authentication when doing provision calls

  --post
    Use HTTP POST for single sign-on instead of GET

  --template
    Name of git template on github or full url of git repo.

COMMANDS

  init            Creates a skeleton manifest

  create <app>    Clone a git repo that contains a template add-on

  test <type>     Simulate call from Heroku (provision or deprovision)

  run <command>   Provisions a resource and runs command in returned ENV

  sso <id>        Launches the browser on a Heroku session for the specified id

  push            Send the manifest to Heroku

  pull <id>       Fetch the latest manifest from Heroku

TEST TYPES

  provision [optional params] 
    Simulate a provision call from Heroku.
    [optional params]
      accepts extra command options and passes them on to the provision request
      ie: kensa test provision --foo bar

  deprovision <id>
    Simulate a deprovision call from Heroku.

  planchange <id> <new_plan>
    Simulate a plan change call from Heroku.

  sso <id>
    Simulate a single sign-on call from Heroku.

  manifest
    Confirm that the manifest is valid.  Automatically runs before all tests.

  all
    runs provision, planchange, and deprovision tests.  
    defaults to using 'foo' for planchange plan.

/tmp/test $ curl -o addon-manifest.json https://raw.github.com/gist/ae63d1161bd5c64a48ed/43f4dddac795e240fe86f2285d418d1d2a18af16/manifest-fixed.json
/tmp/test $ kensa test manifest


Testing manifest id key
  Check if exists [PASS]
  Check is a string [PASS]
  Check is not blank [PASS]

Testing manifest api key
  Check if exists [PASS]
  Check is a hash [PASS]
  Check contains password [PASS]
  Check contains test url [PASS]
  Check contains production url [PASS]
  Check production url uses SSL [PASS]
  Check sso url uses SSL [PASS]
  Check contains config_vars array [PASS]
  Check containst at least one config var [PASS]
  Check all config vars are uppercase strings [PASS]
  Check all config vars are prefixed with the addon id [PASS]
  Check deprecated fields [PASS]

done.
/tmp/test $ kensa version
Kensa 1.4.1

mmcgrana commented Nov 8, 2012

I ran into this today. The problems happens even for the simpler case of kensa test manifest and even more confusingly for e.g. kensa test provision. Here's a test case (the broken manifest in this case was missing a comma):

/tmp $ mkdir test
/tmp $ cd test/
/tmp/test $ curl -o addon-manifest.json https://raw.github.com/gist/ae63d1161bd5c64a48ed/c427d79d1a09eed1aaf9d0393b72cedb6daf1121/manifest-broken.json
/tmp/test $ kensa test manifest

Usage: kensa [OPTIONS] command
       kensa init
       kensa create <app_name> --template
       kensa test   <type> [arg1 arg2 ...]
       kensa run    <command> [arg1 arg1 ...]

OPTIONS

  -f, --filename path-to-file
    Sets the manifest file to operate on, default is addon-manifest.json.

  -h, --help
    Show this message

  -p, --plan
    Provision the specified plan instead of "test"

  --async
    Check provision call with async response.

  --without-sso
    Skip single sign-on authentication when doing provision calls

  --post
    Use HTTP POST for single sign-on instead of GET

  --template
    Name of git template on github or full url of git repo.

COMMANDS

  init            Creates a skeleton manifest

  create <app>    Clone a git repo that contains a template add-on

  test <type>     Simulate call from Heroku (provision or deprovision)

  run <command>   Provisions a resource and runs command in returned ENV

  sso <id>        Launches the browser on a Heroku session for the specified id

  push            Send the manifest to Heroku

  pull <id>       Fetch the latest manifest from Heroku

TEST TYPES

  provision [optional params] 
    Simulate a provision call from Heroku.
    [optional params]
      accepts extra command options and passes them on to the provision request
      ie: kensa test provision --foo bar

  deprovision <id>
    Simulate a deprovision call from Heroku.

  planchange <id> <new_plan>
    Simulate a plan change call from Heroku.

  sso <id>
    Simulate a single sign-on call from Heroku.

  manifest
    Confirm that the manifest is valid.  Automatically runs before all tests.

  all
    runs provision, planchange, and deprovision tests.  
    defaults to using 'foo' for planchange plan.

/tmp/test $ curl -o addon-manifest.json https://raw.github.com/gist/ae63d1161bd5c64a48ed/43f4dddac795e240fe86f2285d418d1d2a18af16/manifest-fixed.json
/tmp/test $ kensa test manifest


Testing manifest id key
  Check if exists [PASS]
  Check is a string [PASS]
  Check is not blank [PASS]

Testing manifest api key
  Check if exists [PASS]
  Check is a hash [PASS]
  Check contains password [PASS]
  Check contains test url [PASS]
  Check contains production url [PASS]
  Check production url uses SSL [PASS]
  Check sso url uses SSL [PASS]
  Check contains config_vars array [PASS]
  Check containst at least one config var [PASS]
  Check all config vars are uppercase strings [PASS]
  Check all config vars are prefixed with the addon id [PASS]
  Check deprecated fields [PASS]

done.
/tmp/test $ kensa version
Kensa 1.4.1
@friism

This comment has been minimized.

Show comment
Hide comment
@friism

friism Apr 18, 2013

I encountered this also, not helpful.

friism commented Apr 18, 2013

I encountered this also, not helpful.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment