diff --git a/maxctrl/lib/create.js b/maxctrl/lib/create.js index c78a933b5..2a54114a2 100644 --- a/maxctrl/lib/create.js +++ b/maxctrl/lib/create.js @@ -12,23 +12,27 @@ */ require('./common.js')() -// Converts an array of key=value pairs into an object +// Converts a key=value string into an object function to_obj(obj, value) { - var kv = value.split('=') - obj[kv[0]] = kv[1] - return obj + var pos = value.indexOf("="); + obj[value.slice(0, pos)] = value.slice(pos + 1); + return obj; } function validateParams(argv, params) { - var rval = null; - params.forEach((value) => { - var kv = value.split('=') - if (!kv || kv.length != 2) { - rval = 'Not a key-value parameter: ' + value - } - }) + var rval = null; + params.forEach((value) => { + try { + var pos = value.indexOf("="); + if (pos == -1) { + rval = "Not a key-value parameter: " + value; + } + } catch (err) { + rval = "Not a key-value parameter: " + value; + } + }); - return rval + return rval; } exports.command = 'create ' diff --git a/maxctrl/test/createdestroy.js b/maxctrl/test/createdestroy.js index 17b1f72cd..f678c30f6 100644 --- a/maxctrl/test/createdestroy.js +++ b/maxctrl/test/createdestroy.js @@ -267,5 +267,12 @@ describe("Create/Destroy Commands", function() { .should.be.fulfilled }) + it('create filter with equals sign in parameters', function() { + return verifyCommand('create filter test-filter regexfilter match=/this=is=a=test/ replace=test-passed', + 'filters/test-filter') + .then(() => doCommand('destroy filter test-filter')) + .should.be.fulfilled + }) + after(stopMaxScale) });