azukiapp/azk

`azk doctor` fails when `azk agent` is down

Closed this issue · 0 comments

In Linux, azk doctor fails to run when the agent is down. This is because docker:host config is set on agent startup .

To solve this, there are several strategies:

  1. Create a way to connect to Docker socket in other contexts beyond azk agent startup;
  2. azk doctor requires azk agent;
  3. Add logic to hide Docker info from azk doctor when azk agent is down;

IMHO, I think (1) is the best alternative, since its solution can be used in other cases that demand connection to Docker but don't require azk agent to be up.

Linux (Arch Linux)
azk v0.14.6
Docker v1.8.1
➜  azk git:(master) ✗ azk agent stop                                                                                        [13:28:26]
azk: Agent is running...
azk: Agent is being stopped...
azk: Agent has been successfully stopped.

➜  azk git:(master) ✗ azk doctor                                                                                            [13:28:47]
azk: Error: Config docker:host to be set by configure
azk:     at Object.get (/azk:0.14.6/src/config.js:205:11)
azk:     at Object.module.exports.Object.defineProperties.default.get [as default] (/azk:0.14.6/src/docker/index.js:1:10)
azk:     at Doctor._createClass.get (/azk:0.14.6/src/cmds/doctor.js:13:33)
azk:     at Doctor.callee$2$0$ (/azk:0.14.6/src/cmds/doctor.js:30:82)
azk:     at tryCatch (/media/Data/home/felipe/workspace/azukiapp/azk/node_modules/babel-runtime/regenerator/runtime.js:65:40)
azk:     at GeneratorFunctionPrototype.invoke [as _invoke] (/media/Data/home/felipe/workspace/azukiapp/azk/node_modules/babel-runtime/regenerator/runtime.js:229:22)
azk:     at GeneratorFunctionPrototype.Gp.(anonymous function) [as next] (/media/Data/home/felipe/workspace/azukiapp/azk/node_modules/babel-runtime/regenerator/runtime.js:262:19)
azk:     at GeneratorFunctionPrototype.tryCatcher (/media/Data/home/felipe/workspace/azukiapp/azk/node_modules/bluebird/js/main/util.js:24:31)
azk:     at PromiseSpawn._next (/media/Data/home/felipe/workspace/azukiapp/azk/node_modules/bluebird/js/main/generators.js:100:49)
azk:     at Promise._settlePromiseAt (/media/Data/home/felipe/workspace/azukiapp/azk/node_modules/bluebird/js/main/promise.js:528:21)
azk:     at Promise._settlePromiseAtPostResolution (/media/Data/home/felipe/workspace/azukiapp/azk/node_modules/bluebird/js/main/promise.js:224:10)
azk:     at Async._drainQueue (/media/Data/home/felipe/workspace/azukiapp/azk/node_modules/bluebird/js/main/async.js:182:12)
azk:     at Async._drainQueues (/media/Data/home/felipe/workspace/azukiapp/azk/node_modules/bluebird/js/main/async.js:187:10)
azk:     at Async.drainQueues (/media/Data/home/felipe/workspace/azukiapp/azk/node_modules/bluebird/js/main/async.js:15:14)
azk:     at process._tickCallback (node.js:442:13)
azk:     at Function.Module.runMain (module.js:499:11)