{"action":"created","issue":{"url":"https://api.github.com/repos/confluentinc/ducktape/issues/135","repository_url":"https://api.github.com/repos/confluentinc/ducktape","labels_url":"https://api.github.com/repos/confluentinc/ducktape/issues/135/labels{/name}","comments_url":"https://api.github.com/repos/confluentinc/ducktape/issues/135/comments","events_url":"https://api.github.com/repos/confluentinc/ducktape/issues/135/events","html_url":"https://github.com/confluentinc/ducktape/pull/135","id":142000102,"number":135,"title":"User defined globals","user":{"login":"granders","id":1295932,"avatar_url":"https://avatars.githubusercontent.com/u/1295932?v=3","gravatar_id":"","url":"https://api.github.com/users/granders","html_url":"https://github.com/granders","followers_url":"https://api.github.com/users/granders/followers","following_url":"https://api.github.com/users/granders/following{/other_user}","gists_url":"https://api.github.com/users/granders/gists{/gist_id}","starred_url":"https://api.github.com/users/granders/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/granders/subscriptions","organizations_url":"https://api.github.com/users/granders/orgs","repos_url":"https://api.github.com/users/granders/repos","events_url":"https://api.github.com/users/granders/events{/privacy}","received_events_url":"https://api.github.com/users/granders/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":13,"created_at":"2016-03-18T23:18:55Z","updated_at":"2016-04-27T22:54:11Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/confluentinc/ducktape/pulls/135","html_url":"https://github.com/confluentinc/ducktape/pull/135","diff_url":"https://github.com/confluentinc/ducktape/pull/135.diff","patch_url":"https://github.com/confluentinc/ducktape/pull/135.patch"},"body":"The primary contribution here is to allow users to specify a set of global key/values that is made available as an immutable dict attached to the shared session context object.\r\n\r\n* Users can specify globals as a JSON string, or as a filename which contains JSON\r\n* Included a few unit tests for this\r\n\r\nAdditional changes:\r\n* Factored option parsing into a self-contained file, and attempted to make the logic a bit more readable\r\n* Fixed an error which before had prevented calling ducktape with multiple test paths (e.g. `ducktape path_a path_b`), and added associated unit test\r\n* Added several associated parser unit tests\r\n* Minor change - passing parsed args as a dict rather than the ArgParse.NameSpace object.\r\n* On the service class, added a base `Service.name` property to use instead of the ad hoc `my_service.__class__.__name__`"},"comment":{"url":"https://api.github.com/repos/confluentinc/ducktape/issues/comments/215256286","html_url":"https://github.com/confluentinc/ducktape/pull/135#issuecomment-215256286","issue_url":"https://api.github.com/repos/confluentinc/ducktape/issues/135","id":215256286,"user":{"login":"ewencp","id":47366,"avatar_url":"https://avatars.githubusercontent.com/u/47366?v=3","gravatar_id":"","url":"https://api.github.com/users/ewencp","html_url":"https://github.com/ewencp","followers_url":"https://api.github.com/users/ewencp/followers","following_url":"https://api.github.com/users/ewencp/following{/other_user}","gists_url":"https://api.github.com/users/ewencp/gists{/gist_id}","starred_url":"https://api.github.com/users/ewencp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ewencp/subscriptions","organizations_url":"https://api.github.com/users/ewencp/orgs","repos_url":"https://api.github.com/users/ewencp/repos","events_url":"https://api.github.com/users/ewencp/events{/privacy}","received_events_url":"https://api.github.com/users/ewencp/received_events","type":"User","site_admin":false},"created_at":"2016-04-27T22:54:11Z","updated_at":"2016-04-27T22:54:11Z","body":"@granders One minor comment, otherwise LGTM."}}