{"action":"created","issue":{"url":"https://api.github.com/repos/RackHD/on-taskgraph/issues/56","repository_url":"https://api.github.com/repos/RackHD/on-taskgraph","labels_url":"https://api.github.com/repos/RackHD/on-taskgraph/issues/56/labels{/name}","comments_url":"https://api.github.com/repos/RackHD/on-taskgraph/issues/56/comments","events_url":"https://api.github.com/repos/RackHD/on-taskgraph/issues/56/events","html_url":"https://github.com/RackHD/on-taskgraph/pull/56","id":130901737,"number":56,"title":"Workflow engine refactor","user":{"login":"benbp","id":1020379,"avatar_url":"https://avatars.githubusercontent.com/u/1020379?v=3","gravatar_id":"","url":"https://api.github.com/users/benbp","html_url":"https://github.com/benbp","followers_url":"https://api.github.com/users/benbp/followers","following_url":"https://api.github.com/users/benbp/following{/other_user}","gists_url":"https://api.github.com/users/benbp/gists{/gist_id}","starred_url":"https://api.github.com/users/benbp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/benbp/subscriptions","organizations_url":"https://api.github.com/users/benbp/orgs","repos_url":"https://api.github.com/users/benbp/repos","events_url":"https://api.github.com/users/benbp/events{/privacy}","received_events_url":"https://api.github.com/users/benbp/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2016-02-03T03:42:32Z","updated_at":"2016-02-16T23:31:36Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/RackHD/on-taskgraph/pulls/56","html_url":"https://github.com/RackHD/on-taskgraph/pull/56","diff_url":"https://github.com/RackHD/on-taskgraph/pull/56.diff","patch_url":"https://github.com/RackHD/on-taskgraph/pull/56.patch"},"body":"Refactoring the workflow engine for:\r\n\r\n- High Availability\r\n- Fault Tolerance\r\n- Better performance\r\n- Better execution strategy\r\n\r\nThis PR completely overhauls the on-taskgraph repository:\r\n\r\n- TaskGraph is refactored out into on-core\r\n- Adding TaskScheduler and TaskRunner classes that do the main graph scheduling and task running work, as well as a couple database poller classes.\r\n- Removing all old pieces related to previous TaskGraph execution model: scheduler.js, task-graph-subscriptions.js, registry.js, etc.\r\n- Adding multiple run modes (detailed in the README updates), so it can run in scheduler only mode, task runner only mode, or hybrid mode depending on a user's performance and reliability needs.\r\n\r\nRelies on https://github.com/RackHD/on-tasks/pull/116, https://github.com/RackHD/on-core/pull/75, and https://github.com/RackHD/on-http/pull/112\r\n\r\nHigh level architecture and design goals detailed are in the attached slides:\r\n[RackHD Workflow Engine Refactor.pdf](https://github.com/RackHD/on-taskgraph/files/114831/RackHD.Workflow.Engine.Refactor.pdf)\r\n"},"comment":{"url":"https://api.github.com/repos/RackHD/on-taskgraph/issues/comments/184919381","html_url":"https://github.com/RackHD/on-taskgraph/pull/56#issuecomment-184919381","issue_url":"https://api.github.com/repos/RackHD/on-taskgraph/issues/56","id":184919381,"user":{"login":"JenkinsRHD","id":16692395,"avatar_url":"https://avatars.githubusercontent.com/u/16692395?v=3","gravatar_id":"","url":"https://api.github.com/users/JenkinsRHD","html_url":"https://github.com/JenkinsRHD","followers_url":"https://api.github.com/users/JenkinsRHD/followers","following_url":"https://api.github.com/users/JenkinsRHD/following{/other_user}","gists_url":"https://api.github.com/users/JenkinsRHD/gists{/gist_id}","starred_url":"https://api.github.com/users/JenkinsRHD/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JenkinsRHD/subscriptions","organizations_url":"https://api.github.com/users/JenkinsRHD/orgs","repos_url":"https://api.github.com/users/JenkinsRHD/repos","events_url":"https://api.github.com/users/JenkinsRHD/events{/privacy}","received_events_url":"https://api.github.com/users/JenkinsRHD/received_events","type":"User","site_admin":false},"created_at":"2016-02-16T23:31:35Z","updated_at":"2016-02-16T23:31:35Z","body":"```\n*** BUILD #224 ***\nTest Name: Loader \"before all\" hook\nError Details: Cannot read property 'annotations' of undefined\nStack Trace: TypeError: Cannot read property 'annotations' of undefined\n    at provider (node_modules/on-core/spec/helper.js:67:35)\n    at node_modules/on-core/spec/helper.js:133:32\n    at Array.forEach (native)\n    at Object.global.helper.setupInjector (node_modules/on-core/spec/helper.js:131:40)\n    at Context.&lt;anonymous&gt; (spec/lib/loader-spec.js:14:16)\n\nTest Name: Task Runner \"before all\" hook\nError Details: Cannot read property 'annotations' of undefined\nStack Trace: TypeError: Cannot read property 'annotations' of undefined\n    at provider (node_modules/on-core/spec/helper.js:67:35)\n    at node_modules/on-core/spec/helper.js:133:32\n    at Array.forEach (native)\n    at Object.global.helper.setupInjector (node_modules/on-core/spec/helper.js:131:40)\n    at Context.&lt;anonymous&gt; (spec/lib/task-runner-spec.js:45:16)\n\nTest Name: Completed Task Poller \"before all\" hook\nError Details: Cannot read property 'annotations' of undefined\nStack Trace: TypeError: Cannot read property 'annotations' of undefined\n    at provider (node_modules/on-core/spec/helper.js:67:35)\n    at node_modules/on-core/spec/helper.js:133:32\n    at Array.forEach (native)\n    at Object.global.helper.setupInjector (node_modules/on-core/spec/helper.js:131:40)\n    at Context.&lt;anonymous&gt; (spec/lib/completed-task-poller-spec.js:29:16)\n\nTest Name: Graph Library \"before all\" hook\nError Details: Cannot read property 'annotations' of undefined\nStack Trace: TypeError: Cannot read property 'annotations' of undefined\n    at provider (node_modules/on-core/spec/helper.js:67:35)\n    at node_modules/on-core/spec/helper.js:133:32\n    at Array.forEach (native)\n    at Object.global.helper.setupInjector (node_modules/on-core/spec/helper.js:131:40)\n    at Context.&lt;anonymous&gt; (spec/lib/graph-library-spec.js:27:16)\n\nTest Name: Task Scheduler \"before all\" hook\nError Details: Cannot read property 'annotations' of undefined\nStack Trace: TypeError: Cannot read property 'annotations' of undefined\n    at provider (node_modules/on-core/spec/helper.js:67:35)\n    at node_modules/on-core/spec/helper.js:133:32\n    at Array.forEach (native)\n    at Object.global.helper.setupInjector (node_modules/on-core/spec/helper.js:131:40)\n    at Context.&lt;anonymous&gt; (spec/lib/task-scheduler-spec.js:54:16)\n\nTest Name: Lease Expiration Poller \"before all\" hook\nError Details: Cannot read property 'annotations' of undefined\nStack Trace: TypeError: Cannot read property 'annotations' of undefined\n    at provider (node_modules/on-core/spec/helper.js:67:35)\n    at node_modules/on-core/spec/helper.js:133:32\n    at Array.forEach (native)\n    at Object.global.helper.setupInjector (node_modules/on-core/spec/helper.js:131:40)\n    at Context.&lt;anonymous&gt; (spec/lib/lease-expiration-poller-spec.js:28:16)\n\nTest Name: Service Graph should restart service graphs that have failed\nError Details: expected stub to have been called exactly once, but it was called 0 times\nStack Trace: AssertionError: expected stub to have been called exactly once, but it was called 0 times\n\n```\n"}}