{"action":"created","comment":{"url":"https://api.github.com/repos/Yelp/task_processing/pulls/comments/213406461","pull_request_review_id":150236450,"id":213406461,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIxMzQwNjQ2MQ==","diff_hunk":"@@ -199,6 +199,33 @@ def _background_check(self):\n             )\n             time.sleep(10)\n \n+    def reconcile_task(self, task_config):","path":"task_processing/plugins/mesos/execution_framework.py","position":4,"original_position":4,"commit_id":"d0300bb4a59ad2091d71a3275a645eb41efd8165","original_commit_id":"d0300bb4a59ad2091d71a3275a645eb41efd8165","user":{"login":"qui","id":1322636,"node_id":"MDQ6VXNlcjEzMjI2MzY=","avatar_url":"https://avatars3.githubusercontent.com/u/1322636?v=4","gravatar_id":"","url":"https://api.github.com/users/qui","html_url":"https://github.com/qui","followers_url":"https://api.github.com/users/qui/followers","following_url":"https://api.github.com/users/qui/following{/other_user}","gists_url":"https://api.github.com/users/qui/gists{/gist_id}","starred_url":"https://api.github.com/users/qui/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/qui/subscriptions","organizations_url":"https://api.github.com/users/qui/orgs","repos_url":"https://api.github.com/users/qui/repos","events_url":"https://api.github.com/users/qui/events{/privacy}","received_events_url":"https://api.github.com/users/qui/received_events","type":"User","site_admin":false},"body":"Sure, we could let `task_config` be optional in all the `reconcile` methods and do implicit reconciliation in the framework if the config is None. \r\n\r\nThat kind of makes the `reconcile` method more specific to Mesos, but if we think it would be useful to have implicit reconciliation, I don't think that matters too much.","created_at":"2018-08-28T17:35:52Z","updated_at":"2018-08-28T17:35:52Z","html_url":"https://github.com/Yelp/task_processing/pull/120#discussion_r213406461","pull_request_url":"https://api.github.com/repos/Yelp/task_processing/pulls/120","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/Yelp/task_processing/pulls/comments/213406461"},"html":{"href":"https://github.com/Yelp/task_processing/pull/120#discussion_r213406461"},"pull_request":{"href":"https://api.github.com/repos/Yelp/task_processing/pulls/120"}},"in_reply_to_id":213392547},"pull_request":{"url":"https://api.github.com/repos/Yelp/task_processing/pulls/120","id":210596740,"node_id":"MDExOlB1bGxSZXF1ZXN0MjEwNTk2NzQw","html_url":"https://github.com/Yelp/task_processing/pull/120","diff_url":"https://github.com/Yelp/task_processing/pull/120.diff","patch_url":"https://github.com/Yelp/task_processing/pull/120.patch","issue_url":"https://api.github.com/repos/Yelp/task_processing/issues/120","number":120,"state":"open","locked":false,"title":"Add reconcile method to executor","user":{"login":"qui","id":1322636,"node_id":"MDQ6VXNlcjEzMjI2MzY=","avatar_url":"https://avatars3.githubusercontent.com/u/1322636?v=4","gravatar_id":"","url":"https://api.github.com/users/qui","html_url":"https://github.com/qui","followers_url":"https://api.github.com/users/qui/followers","following_url":"https://api.github.com/users/qui/following{/other_user}","gists_url":"https://api.github.com/users/qui/gists{/gist_id}","starred_url":"https://api.github.com/users/qui/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/qui/subscriptions","organizations_url":"https://api.github.com/users/qui/orgs","repos_url":"https://api.github.com/users/qui/repos","events_url":"https://api.github.com/users/qui/events{/privacy}","received_events_url":"https://api.github.com/users/qui/received_events","type":"User","site_admin":false},"body":"Calling it \"check\" instead of reconcile or something because I'm trying to make it plugin-agnostic...\r\n\r\nI'm conflicted about taking a task_config as an argument to check, instead of a task_id. On one hand, seems like task_id should be sufficient to check the status of a task. But then we'd need to do `task_config=m()` when we create the TaskMetadata in recover_task, and other places might assume that task_config isn't empty. Maybe one solution is to create a different data structure besides `task_metadata` for storing these recovery tasks? Let me know what you think.","created_at":"2018-08-23T22:49:38Z","updated_at":"2018-08-28T17:35:52Z","closed_at":null,"merged_at":null,"merge_commit_sha":"10c95c647d80a46ba75ff81db9d2a6dd7687b06f","assignee":{"login":"qui","id":1322636,"node_id":"MDQ6VXNlcjEzMjI2MzY=","avatar_url":"https://avatars3.githubusercontent.com/u/1322636?v=4","gravatar_id":"","url":"https://api.github.com/users/qui","html_url":"https://github.com/qui","followers_url":"https://api.github.com/users/qui/followers","following_url":"https://api.github.com/users/qui/following{/other_user}","gists_url":"https://api.github.com/users/qui/gists{/gist_id}","starred_url":"https://api.github.com/users/qui/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/qui/subscriptions","organizations_url":"https://api.github.com/users/qui/orgs","repos_url":"https://api.github.com/users/qui/repos","events_url":"https://api.github.com/users/qui/events{/privacy}","received_events_url":"https://api.github.com/users/qui/received_events","type":"User","site_admin":false},"assignees":[{"login":"qui","id":1322636,"node_id":"MDQ6VXNlcjEzMjI2MzY=","avatar_url":"https://avatars3.githubusercontent.com/u/1322636?v=4","gravatar_id":"","url":"https://api.github.com/users/qui","html_url":"https://github.com/qui","followers_url":"https://api.github.com/users/qui/followers","following_url":"https://api.github.com/users/qui/following{/other_user}","gists_url":"https://api.github.com/users/qui/gists{/gist_id}","starred_url":"https://api.github.com/users/qui/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/qui/subscriptions","organizations_url":"https://api.github.com/users/qui/orgs","repos_url":"https://api.github.com/users/qui/repos","events_url":"https://api.github.com/users/qui/events{/privacy}","received_events_url":"https://api.github.com/users/qui/received_events","type":"User","site_admin":false}],"requested_reviewers":[{"login":"chlgit","id":31675758,"node_id":"MDQ6VXNlcjMxNjc1NzU4","avatar_url":"https://avatars2.githubusercontent.com/u/31675758?v=4","gravatar_id":"","url":"https://api.github.com/users/chlgit","html_url":"https://github.com/chlgit","followers_url":"https://api.github.com/users/chlgit/followers","following_url":"https://api.github.com/users/chlgit/following{/other_user}","gists_url":"https://api.github.com/users/chlgit/gists{/gist_id}","starred_url":"https://api.github.com/users/chlgit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chlgit/subscriptions","organizations_url":"https://api.github.com/users/chlgit/orgs","repos_url":"https://api.github.com/users/chlgit/repos","events_url":"https://api.github.com/users/chlgit/events{/privacy}","received_events_url":"https://api.github.com/users/chlgit/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":900943771,"node_id":"MDU6TGFiZWw5MDA5NDM3NzE=","url":"https://api.github.com/repos/Yelp/task_processing/labels/in%20review","name":"in review","color":"ededed","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/Yelp/task_processing/pulls/120/commits","review_comments_url":"https://api.github.com/repos/Yelp/task_processing/pulls/120/comments","review_comment_url":"https://api.github.com/repos/Yelp/task_processing/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Yelp/task_processing/issues/120/comments","statuses_url":"https://api.github.com/repos/Yelp/task_processing/statuses/d0300bb4a59ad2091d71a3275a645eb41efd8165","head":{"label":"Yelp:task-reconciliation","ref":"task-reconciliation","sha":"d0300bb4a59ad2091d71a3275a645eb41efd8165","user":{"login":"Yelp","id":49071,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQ5MDcx","avatar_url":"https://avatars1.githubusercontent.com/u/49071?v=4","gravatar_id":"","url":"https://api.github.com/users/Yelp","html_url":"https://github.com/Yelp","followers_url":"https://api.github.com/users/Yelp/followers","following_url":"https://api.github.com/users/Yelp/following{/other_user}","gists_url":"https://api.github.com/users/Yelp/gists{/gist_id}","starred_url":"https://api.github.com/users/Yelp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Yelp/subscriptions","organizations_url":"https://api.github.com/users/Yelp/orgs","repos_url":"https://api.github.com/users/Yelp/repos","events_url":"https://api.github.com/users/Yelp/events{/privacy}","received_events_url":"https://api.github.com/users/Yelp/received_events","type":"Organization","site_admin":false},"repo":{"id":91122217,"node_id":"MDEwOlJlcG9zaXRvcnk5MTEyMjIxNw==","name":"task_processing","full_name":"Yelp/task_processing","owner":{"login":"Yelp","id":49071,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQ5MDcx","avatar_url":"https://avatars1.githubusercontent.com/u/49071?v=4","gravatar_id":"","url":"https://api.github.com/users/Yelp","html_url":"https://github.com/Yelp","followers_url":"https://api.github.com/users/Yelp/followers","following_url":"https://api.github.com/users/Yelp/following{/other_user}","gists_url":"https://api.github.com/users/Yelp/gists{/gist_id}","starred_url":"https://api.github.com/users/Yelp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Yelp/subscriptions","organizations_url":"https://api.github.com/users/Yelp/orgs","repos_url":"https://api.github.com/users/Yelp/repos","events_url":"https://api.github.com/users/Yelp/events{/privacy}","received_events_url":"https://api.github.com/users/Yelp/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Yelp/task_processing","description":"Interfaces and shared infrastructure for generic task processing at Yelp.","fork":false,"url":"https://api.github.com/repos/Yelp/task_processing","forks_url":"https://api.github.com/repos/Yelp/task_processing/forks","keys_url":"https://api.github.com/repos/Yelp/task_processing/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Yelp/task_processing/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Yelp/task_processing/teams","hooks_url":"https://api.github.com/repos/Yelp/task_processing/hooks","issue_events_url":"https://api.github.com/repos/Yelp/task_processing/issues/events{/number}","events_url":"https://api.github.com/repos/Yelp/task_processing/events","assignees_url":"https://api.github.com/repos/Yelp/task_processing/assignees{/user}","branches_url":"https://api.github.com/repos/Yelp/task_processing/branches{/branch}","tags_url":"https://api.github.com/repos/Yelp/task_processing/tags","blobs_url":"https://api.github.com/repos/Yelp/task_processing/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Yelp/task_processing/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Yelp/task_processing/git/refs{/sha}","trees_url":"https://api.github.com/repos/Yelp/task_processing/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Yelp/task_processing/statuses/{sha}","languages_url":"https://api.github.com/repos/Yelp/task_processing/languages","stargazers_url":"https://api.github.com/repos/Yelp/task_processing/stargazers","contributors_url":"https://api.github.com/repos/Yelp/task_processing/contributors","subscribers_url":"https://api.github.com/repos/Yelp/task_processing/subscribers","subscription_url":"https://api.github.com/repos/Yelp/task_processing/subscription","commits_url":"https://api.github.com/repos/Yelp/task_processing/commits{/sha}","git_commits_url":"https://api.github.com/repos/Yelp/task_processing/git/commits{/sha}","comments_url":"https://api.github.com/repos/Yelp/task_processing/comments{/number}","issue_comment_url":"https://api.github.com/repos/Yelp/task_processing/issues/comments{/number}","contents_url":"https://api.github.com/repos/Yelp/task_processing/contents/{+path}","compare_url":"https://api.github.com/repos/Yelp/task_processing/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Yelp/task_processing/merges","archive_url":"https://api.github.com/repos/Yelp/task_processing/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Yelp/task_processing/downloads","issues_url":"https://api.github.com/repos/Yelp/task_processing/issues{/number}","pulls_url":"https://api.github.com/repos/Yelp/task_processing/pulls{/number}","milestones_url":"https://api.github.com/repos/Yelp/task_processing/milestones{/number}","notifications_url":"https://api.github.com/repos/Yelp/task_processing/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Yelp/task_processing/labels{/name}","releases_url":"https://api.github.com/repos/Yelp/task_processing/releases{/id}","deployments_url":"https://api.github.com/repos/Yelp/task_processing/deployments","created_at":"2017-05-12T19:11:36Z","updated_at":"2018-08-13T21:33:14Z","pushed_at":"2018-08-28T16:35:24Z","git_url":"git://github.com/Yelp/task_processing.git","ssh_url":"git@github.com:Yelp/task_processing.git","clone_url":"https://github.com/Yelp/task_processing.git","svn_url":"https://github.com/Yelp/task_processing","homepage":"","size":37676,"stargazers_count":15,"watchers_count":15,"language":"Python","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":2,"mirror_url":null,"archived":false,"open_issues_count":1,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":2,"open_issues":1,"watchers":15,"default_branch":"master"}},"base":{"label":"Yelp:master","ref":"master","sha":"f5e8ac08d280dca9b5826c42e1874f50c5cb2ea4","user":{"login":"Yelp","id":49071,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQ5MDcx","avatar_url":"https://avatars1.githubusercontent.com/u/49071?v=4","gravatar_id":"","url":"https://api.github.com/users/Yelp","html_url":"https://github.com/Yelp","followers_url":"https://api.github.com/users/Yelp/followers","following_url":"https://api.github.com/users/Yelp/following{/other_user}","gists_url":"https://api.github.com/users/Yelp/gists{/gist_id}","starred_url":"https://api.github.com/users/Yelp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Yelp/subscriptions","organizations_url":"https://api.github.com/users/Yelp/orgs","repos_url":"https://api.github.com/users/Yelp/repos","events_url":"https://api.github.com/users/Yelp/events{/privacy}","received_events_url":"https://api.github.com/users/Yelp/received_events","type":"Organization","site_admin":false},"repo":{"id":91122217,"node_id":"MDEwOlJlcG9zaXRvcnk5MTEyMjIxNw==","name":"task_processing","full_name":"Yelp/task_processing","owner":{"login":"Yelp","id":49071,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQ5MDcx","avatar_url":"https://avatars1.githubusercontent.com/u/49071?v=4","gravatar_id":"","url":"https://api.github.com/users/Yelp","html_url":"https://github.com/Yelp","followers_url":"https://api.github.com/users/Yelp/followers","following_url":"https://api.github.com/users/Yelp/following{/other_user}","gists_url":"https://api.github.com/users/Yelp/gists{/gist_id}","starred_url":"https://api.github.com/users/Yelp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Yelp/subscriptions","organizations_url":"https://api.github.com/users/Yelp/orgs","repos_url":"https://api.github.com/users/Yelp/repos","events_url":"https://api.github.com/users/Yelp/events{/privacy}","received_events_url":"https://api.github.com/users/Yelp/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Yelp/task_processing","description":"Interfaces and shared infrastructure for generic task processing at Yelp.","fork":false,"url":"https://api.github.com/repos/Yelp/task_processing","forks_url":"https://api.github.com/repos/Yelp/task_processing/forks","keys_url":"https://api.github.com/repos/Yelp/task_processing/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Yelp/task_processing/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Yelp/task_processing/teams","hooks_url":"https://api.github.com/repos/Yelp/task_processing/hooks","issue_events_url":"https://api.github.com/repos/Yelp/task_processing/issues/events{/number}","events_url":"https://api.github.com/repos/Yelp/task_processing/events","assignees_url":"https://api.github.com/repos/Yelp/task_processing/assignees{/user}","branches_url":"https://api.github.com/repos/Yelp/task_processing/branches{/branch}","tags_url":"https://api.github.com/repos/Yelp/task_processing/tags","blobs_url":"https://api.github.com/repos/Yelp/task_processing/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Yelp/task_processing/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Yelp/task_processing/git/refs{/sha}","trees_url":"https://api.github.com/repos/Yelp/task_processing/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Yelp/task_processing/statuses/{sha}","languages_url":"https://api.github.com/repos/Yelp/task_processing/languages","stargazers_url":"https://api.github.com/repos/Yelp/task_processing/stargazers","contributors_url":"https://api.github.com/repos/Yelp/task_processing/contributors","subscribers_url":"https://api.github.com/repos/Yelp/task_processing/subscribers","subscription_url":"https://api.github.com/repos/Yelp/task_processing/subscription","commits_url":"https://api.github.com/repos/Yelp/task_processing/commits{/sha}","git_commits_url":"https://api.github.com/repos/Yelp/task_processing/git/commits{/sha}","comments_url":"https://api.github.com/repos/Yelp/task_processing/comments{/number}","issue_comment_url":"https://api.github.com/repos/Yelp/task_processing/issues/comments{/number}","contents_url":"https://api.github.com/repos/Yelp/task_processing/contents/{+path}","compare_url":"https://api.github.com/repos/Yelp/task_processing/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Yelp/task_processing/merges","archive_url":"https://api.github.com/repos/Yelp/task_processing/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Yelp/task_processing/downloads","issues_url":"https://api.github.com/repos/Yelp/task_processing/issues{/number}","pulls_url":"https://api.github.com/repos/Yelp/task_processing/pulls{/number}","milestones_url":"https://api.github.com/repos/Yelp/task_processing/milestones{/number}","notifications_url":"https://api.github.com/repos/Yelp/task_processing/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Yelp/task_processing/labels{/name}","releases_url":"https://api.github.com/repos/Yelp/task_processing/releases{/id}","deployments_url":"https://api.github.com/repos/Yelp/task_processing/deployments","created_at":"2017-05-12T19:11:36Z","updated_at":"2018-08-13T21:33:14Z","pushed_at":"2018-08-28T16:35:24Z","git_url":"git://github.com/Yelp/task_processing.git","ssh_url":"git@github.com:Yelp/task_processing.git","clone_url":"https://github.com/Yelp/task_processing.git","svn_url":"https://github.com/Yelp/task_processing","homepage":"","size":37676,"stargazers_count":15,"watchers_count":15,"language":"Python","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":2,"mirror_url":null,"archived":false,"open_issues_count":1,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":2,"open_issues":1,"watchers":15,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Yelp/task_processing/pulls/120"},"html":{"href":"https://github.com/Yelp/task_processing/pull/120"},"issue":{"href":"https://api.github.com/repos/Yelp/task_processing/issues/120"},"comments":{"href":"https://api.github.com/repos/Yelp/task_processing/issues/120/comments"},"review_comments":{"href":"https://api.github.com/repos/Yelp/task_processing/pulls/120/comments"},"review_comment":{"href":"https://api.github.com/repos/Yelp/task_processing/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Yelp/task_processing/pulls/120/commits"},"statuses":{"href":"https://api.github.com/repos/Yelp/task_processing/statuses/d0300bb4a59ad2091d71a3275a645eb41efd8165"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"qui"}}