diff --git a/index.js b/index.js index d1183a3..611ea73 100644 --- a/index.js +++ b/index.js @@ -1,10 +1,8 @@ -const path = require('path'); - const myDefaults = { - // etcd object which provides .get(), .set() and .del() methods such as "node-etcd" module + // etcd3 object etcdObj: null, // etcd path prefix where challenges are stored - etcdPathPrefix: '/le-challenge-etcd/', + etcdPathPrefix: 'le-challenge-etcd/', }; module.exports = cfg => { @@ -16,55 +14,12 @@ module.exports = cfg => { return { init: async () => {}, - - get: opts => { - return new Promise((resolve, reject) => { - options.etcdObj.get( - path.posix.join(options.etcdPathPrefix, opts.challenge.token), - (err, data) => { - if(err) { - reject(err) - return - } - - resolve({keyAuthorization: data.node.value}) - } - ) - }) + get: async opts => { + const value = await options.etcdObj.get(`${options.etcdPathPrefix}${opts.challenge.token}`) + return {keyAuthorization: value} }, - - set: opts => { - return new Promise((resolve, reject) => { - options.etcdObj.set( - path.posix.join(options.etcdPathPrefix, opts.challenge.token), - opts.challenge.keyAuthorization, - err => { - if(err) { - reject(err) - return - } - - resolve() - } - ) - }) - }, - - remove: opts => { - return new Promise((resolve, reject) => { - options.etcdObj.del( - path.posix.join(options.etcdPathPrefix, opts.challenge.token), - err => { - if(err) { - reject(err) - return - } - - resolve() - } - ) - }) - } + set: opts => options.etcdObj.put(`${options.etcdPathPrefix}${opts.challenge.token}`).value(opts.challenge.keyAuthorization), + remove: opts => options.etcdObj.delete().key(`${options.etcdPathPrefix}${opts.challenge.token}`), } } diff --git a/package.json b/package.json index ed0ed71..30d103c 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "le-challenge-etcd", - "version": "2.0.0", - "description": "An etcd-based strategy for greenlock v4 for reading, setting and removing ACME challenges", + "version": "3.0.0", + "description": "An etcd3-based strategy for greenlock v4 for reading, setting and removing ACME challenges", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" @@ -16,6 +16,7 @@ "cluster", "ephemeral", "etcd", + "etcd3", "http", "http-01", "le",