apigeetool-node
apigeetool-node copied to clipboard
Misleading exception when there is no base apiproxy directory
When using the -d
option from the deployproxy
command, the error makes no hint that the cli was looking for a child directory called apiproxy
.
Using a directory structure of:
getstarted
└── proxy
├── getstarted.xml
├── policies
├── proxies
│ └── default.xml
└── targets
└── default.xml
Running:
apigeetool deployproxy -d ./getstarted
Outputs:
Error: Proxy base directory ./getstarted does not exist
at getDeploymentInfo (/Users/michaelcarey/workspace/apigee-demo/node_modules/apigeetool/lib/commands/deployproxy.js:196:10)
at /Users/michaelcarey/workspace/apigee-demo/node_modules/apigeetool/lib/commands/deployproxy.js:113:7
at /Users/michaelcarey/workspace/apigee-demo/node_modules/async/lib/async.js:718:13
at Immediate.iterate [as _onImmediate] (/Users/michaelcarey/workspace/apigee-demo/node_modules/async/lib/async.js:262:13)
at processImmediate (internal/timers.js:439:21)
Error: Proxy base directory ./getstarted does not exist
at getDeploymentInfo (/Users/michaelcarey/workspace/apigee-demo/node_modules/apigeetool/lib/commands/deployproxy.js:196:10)
at /Users/michaelcarey/workspace/apigee-demo/node_modules/apigeetool/lib/commands/deployproxy.js:113:7
at /Users/michaelcarey/workspace/apigee-demo/node_modules/async/lib/async.js:718:13
at Immediate.iterate [as _onImmediate] (/Users/michaelcarey/workspace/apigee-demo/node_modules/async/lib/async.js:262:13)
at processImmediate (internal/timers.js:439:21)
I interpret this as the directory ./getstarted
does not exist. Similarly adding the proxy
directory after also makes it look the directory ./getstarted/proxy
does not exist. Reading through the code reveals a a non-configurable directory name. The error comes from here which only passes the opt.directory
into the error.
Suggestion/Request
- Can we please make that error a little more obvious or at least include the
apiproxy
directory so you know that the code is appending it without reading the code? - Can we make this value configurable? I think it will be fine without, but it might be nice to allow users to choose what they name their root directory. If anything, can we please get the help page updated. The description for
-d
only saysDirectory
.
So you're saying that when using -d
, even when the directory used exists, if {dir}/apiproxy
does not exist it gives the error above?
Yes, that is correct @whitlockjc. Do you believe that the error message should be in that format instead?
It seems that deploysharedflow
does the same thing: https://github.com/apigee/apigeetool-node/blob/master/lib/commands/deploysharedflow.js#L126