{"action":"created","comment":{"url":"https://api.github.com/repos/projectcalico/calico/pulls/comments/39752598","id":39752598,"diff_hunk":"@@ -1,4 +1,5 @@\n # Copyright (c) Metaswitch Networks 2015. All rights reserved.","path":"calico/felix/test/base.py","position":1,"original_position":1,"commit_id":"e708376c8fbefe2c8dcd46f9ffff7f7dcdd01e36","original_commit_id":"e708376c8fbefe2c8dcd46f9ffff7f7dcdd01e36","user":{"login":"alexwlchan","id":301220,"avatar_url":"https://avatars.githubusercontent.com/u/301220?v=3","gravatar_id":"","url":"https://api.github.com/users/alexwlchan","html_url":"https://github.com/alexwlchan","followers_url":"https://api.github.com/users/alexwlchan/followers","following_url":"https://api.github.com/users/alexwlchan/following{/other_user}","gists_url":"https://api.github.com/users/alexwlchan/gists{/gist_id}","starred_url":"https://api.github.com/users/alexwlchan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alexwlchan/subscriptions","organizations_url":"https://api.github.com/users/alexwlchan/orgs","repos_url":"https://api.github.com/users/alexwlchan/repos","events_url":"https://api.github.com/users/alexwlchan/events{/privacy}","received_events_url":"https://api.github.com/users/alexwlchan/received_events","type":"User","site_admin":false},"body":"Does this file need a license?","created_at":"2015-09-17T14:36:58Z","updated_at":"2015-09-17T14:36:58Z","html_url":"https://github.com/projectcalico/calico/pull/814#discussion_r39752598","pull_request_url":"https://api.github.com/repos/projectcalico/calico/pulls/814","_links":{"self":{"href":"https://api.github.com/repos/projectcalico/calico/pulls/comments/39752598"},"html":{"href":"https://github.com/projectcalico/calico/pull/814#discussion_r39752598"},"pull_request":{"href":"https://api.github.com/repos/projectcalico/calico/pulls/814"}}},"pull_request":{"url":"https://api.github.com/repos/projectcalico/calico/pulls/814","id":45055742,"html_url":"https://github.com/projectcalico/calico/pull/814","diff_url":"https://github.com/projectcalico/calico/pull/814.diff","patch_url":"https://github.com/projectcalico/calico/pull/814.patch","issue_url":"https://api.github.com/repos/projectcalico/calico/issues/814","number":814,"state":"open","locked":false,"title":"Add agent liveness reporting to felix/neutron","user":{"login":"fasaxc","id":469264,"avatar_url":"https://avatars.githubusercontent.com/u/469264?v=3","gravatar_id":"","url":"https://api.github.com/users/fasaxc","html_url":"https://github.com/fasaxc","followers_url":"https://api.github.com/users/fasaxc/followers","following_url":"https://api.github.com/users/fasaxc/following{/other_user}","gists_url":"https://api.github.com/users/fasaxc/gists{/gist_id}","starred_url":"https://api.github.com/users/fasaxc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fasaxc/subscriptions","organizations_url":"https://api.github.com/users/fasaxc/orgs","repos_url":"https://api.github.com/users/fasaxc/repos","events_url":"https://api.github.com/users/fasaxc/events{/privacy}","received_events_url":"https://api.github.com/users/fasaxc/received_events","type":"User","site_admin":false},"body":"* Felix reports its liveness into etcd with a TTL.\r\n* Neutron driver polls etcd for felix status and reports into neutron's DB.\r\n* Neutron driver blocks VM scheduling if felix is not running.\r\n* etcd polling function extracted out into etcdutils.EtcdWatcher class.\r\n\r\nHat tip to @miroslav21 who wrote the original version of this patch (300ee04e0121391d387629d5469668baf2f8a641).  I have reworked it to apply code review markups and cleaned up the history, which had become too difficult to rebase.","created_at":"2015-09-15T14:25:04Z","updated_at":"2015-09-17T14:36:58Z","closed_at":null,"merged_at":null,"merge_commit_sha":"8428cd7026f0a7e7fd89b306d3c85e176e5401d2","assignee":{"login":"alexwlchan","id":301220,"avatar_url":"https://avatars.githubusercontent.com/u/301220?v=3","gravatar_id":"","url":"https://api.github.com/users/alexwlchan","html_url":"https://github.com/alexwlchan","followers_url":"https://api.github.com/users/alexwlchan/followers","following_url":"https://api.github.com/users/alexwlchan/following{/other_user}","gists_url":"https://api.github.com/users/alexwlchan/gists{/gist_id}","starred_url":"https://api.github.com/users/alexwlchan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alexwlchan/subscriptions","organizations_url":"https://api.github.com/users/alexwlchan/orgs","repos_url":"https://api.github.com/users/alexwlchan/repos","events_url":"https://api.github.com/users/alexwlchan/events{/privacy}","received_events_url":"https://api.github.com/users/alexwlchan/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/projectcalico/calico/milestones/18","html_url":"https://github.com/projectcalico/calico/milestones/1.2.0","labels_url":"https://api.github.com/repos/projectcalico/calico/milestones/18/labels","id":1297741,"number":18,"title":"1.2.0","description":"","creator":{"login":"fasaxc","id":469264,"avatar_url":"https://avatars.githubusercontent.com/u/469264?v=3","gravatar_id":"","url":"https://api.github.com/users/fasaxc","html_url":"https://github.com/fasaxc","followers_url":"https://api.github.com/users/fasaxc/followers","following_url":"https://api.github.com/users/fasaxc/following{/other_user}","gists_url":"https://api.github.com/users/fasaxc/gists{/gist_id}","starred_url":"https://api.github.com/users/fasaxc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fasaxc/subscriptions","organizations_url":"https://api.github.com/users/fasaxc/orgs","repos_url":"https://api.github.com/users/fasaxc/repos","events_url":"https://api.github.com/users/fasaxc/events{/privacy}","received_events_url":"https://api.github.com/users/fasaxc/received_events","type":"User","site_admin":false},"open_issues":4,"closed_issues":1,"state":"open","created_at":"2015-09-09T13:55:31Z","updated_at":"2015-09-15T14:26:00Z","due_on":"2015-09-13T23:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/projectcalico/calico/pulls/814/commits","review_comments_url":"https://api.github.com/repos/projectcalico/calico/pulls/814/comments","review_comment_url":"https://api.github.com/repos/projectcalico/calico/pulls/comments{/number}","comments_url":"https://api.github.com/repos/projectcalico/calico/issues/814/comments","statuses_url":"https://api.github.com/repos/projectcalico/calico/statuses/e708376c8fbefe2c8dcd46f9ffff7f7dcdd01e36","head":{"label":"projectcalico:smc-felix-liveness-clean","ref":"smc-felix-liveness-clean","sha":"e708376c8fbefe2c8dcd46f9ffff7f7dcdd01e36","user":{"login":"projectcalico","id":12304728,"avatar_url":"https://avatars.githubusercontent.com/u/12304728?v=3","gravatar_id":"","url":"https://api.github.com/users/projectcalico","html_url":"https://github.com/projectcalico","followers_url":"https://api.github.com/users/projectcalico/followers","following_url":"https://api.github.com/users/projectcalico/following{/other_user}","gists_url":"https://api.github.com/users/projectcalico/gists{/gist_id}","starred_url":"https://api.github.com/users/projectcalico/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/projectcalico/subscriptions","organizations_url":"https://api.github.com/users/projectcalico/orgs","repos_url":"https://api.github.com/users/projectcalico/repos","events_url":"https://api.github.com/users/projectcalico/events{/privacy}","received_events_url":"https://api.github.com/users/projectcalico/received_events","type":"Organization","site_admin":false},"repo":{"id":21242831,"name":"calico","full_name":"projectcalico/calico","owner":{"login":"projectcalico","id":12304728,"avatar_url":"https://avatars.githubusercontent.com/u/12304728?v=3","gravatar_id":"","url":"https://api.github.com/users/projectcalico","html_url":"https://github.com/projectcalico","followers_url":"https://api.github.com/users/projectcalico/followers","following_url":"https://api.github.com/users/projectcalico/following{/other_user}","gists_url":"https://api.github.com/users/projectcalico/gists{/gist_id}","starred_url":"https://api.github.com/users/projectcalico/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/projectcalico/subscriptions","organizations_url":"https://api.github.com/users/projectcalico/orgs","repos_url":"https://api.github.com/users/projectcalico/repos","events_url":"https://api.github.com/users/projectcalico/events{/privacy}","received_events_url":"https://api.github.com/users/projectcalico/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/projectcalico/calico","description":"Project Calico core repository.","fork":false,"url":"https://api.github.com/repos/projectcalico/calico","forks_url":"https://api.github.com/repos/projectcalico/calico/forks","keys_url":"https://api.github.com/repos/projectcalico/calico/keys{/key_id}","collaborators_url":"https://api.github.com/repos/projectcalico/calico/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/projectcalico/calico/teams","hooks_url":"https://api.github.com/repos/projectcalico/calico/hooks","issue_events_url":"https://api.github.com/repos/projectcalico/calico/issues/events{/number}","events_url":"https://api.github.com/repos/projectcalico/calico/events","assignees_url":"https://api.github.com/repos/projectcalico/calico/assignees{/user}","branches_url":"https://api.github.com/repos/projectcalico/calico/branches{/branch}","tags_url":"https://api.github.com/repos/projectcalico/calico/tags","blobs_url":"https://api.github.com/repos/projectcalico/calico/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/projectcalico/calico/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/projectcalico/calico/git/refs{/sha}","trees_url":"https://api.github.com/repos/projectcalico/calico/git/trees{/sha}","statuses_url":"https://api.github.com/repos/projectcalico/calico/statuses/{sha}","languages_url":"https://api.github.com/repos/projectcalico/calico/languages","stargazers_url":"https://api.github.com/repos/projectcalico/calico/stargazers","contributors_url":"https://api.github.com/repos/projectcalico/calico/contributors","subscribers_url":"https://api.github.com/repos/projectcalico/calico/subscribers","subscription_url":"https://api.github.com/repos/projectcalico/calico/subscription","commits_url":"https://api.github.com/repos/projectcalico/calico/commits{/sha}","git_commits_url":"https://api.github.com/repos/projectcalico/calico/git/commits{/sha}","comments_url":"https://api.github.com/repos/projectcalico/calico/comments{/number}","issue_comment_url":"https://api.github.com/repos/projectcalico/calico/issues/comments{/number}","contents_url":"https://api.github.com/repos/projectcalico/calico/contents/{+path}","compare_url":"https://api.github.com/repos/projectcalico/calico/compare/{base}...{head}","merges_url":"https://api.github.com/repos/projectcalico/calico/merges","archive_url":"https://api.github.com/repos/projectcalico/calico/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/projectcalico/calico/downloads","issues_url":"https://api.github.com/repos/projectcalico/calico/issues{/number}","pulls_url":"https://api.github.com/repos/projectcalico/calico/pulls{/number}","milestones_url":"https://api.github.com/repos/projectcalico/calico/milestones{/number}","notifications_url":"https://api.github.com/repos/projectcalico/calico/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/projectcalico/calico/labels{/name}","releases_url":"https://api.github.com/repos/projectcalico/calico/releases{/id}","created_at":"2014-06-26T14:08:43Z","updated_at":"2015-09-17T05:51:47Z","pushed_at":"2015-09-17T12:46:37Z","git_url":"git://github.com/projectcalico/calico.git","ssh_url":"git@github.com:projectcalico/calico.git","clone_url":"https://github.com/projectcalico/calico.git","svn_url":"https://github.com/projectcalico/calico","homepage":"http://projectcalico.org/","size":10858,"stargazers_count":194,"watchers_count":194,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":31,"mirror_url":null,"open_issues_count":47,"forks":31,"open_issues":47,"watchers":194,"default_branch":"master"}},"base":{"label":"projectcalico:master","ref":"master","sha":"11e144f767f838c91fb4644a269fa01cf1381165","user":{"login":"projectcalico","id":12304728,"avatar_url":"https://avatars.githubusercontent.com/u/12304728?v=3","gravatar_id":"","url":"https://api.github.com/users/projectcalico","html_url":"https://github.com/projectcalico","followers_url":"https://api.github.com/users/projectcalico/followers","following_url":"https://api.github.com/users/projectcalico/following{/other_user}","gists_url":"https://api.github.com/users/projectcalico/gists{/gist_id}","starred_url":"https://api.github.com/users/projectcalico/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/projectcalico/subscriptions","organizations_url":"https://api.github.com/users/projectcalico/orgs","repos_url":"https://api.github.com/users/projectcalico/repos","events_url":"https://api.github.com/users/projectcalico/events{/privacy}","received_events_url":"https://api.github.com/users/projectcalico/received_events","type":"Organization","site_admin":false},"repo":{"id":21242831,"name":"calico","full_name":"projectcalico/calico","owner":{"login":"projectcalico","id":12304728,"avatar_url":"https://avatars.githubusercontent.com/u/12304728?v=3","gravatar_id":"","url":"https://api.github.com/users/projectcalico","html_url":"https://github.com/projectcalico","followers_url":"https://api.github.com/users/projectcalico/followers","following_url":"https://api.github.com/users/projectcalico/following{/other_user}","gists_url":"https://api.github.com/users/projectcalico/gists{/gist_id}","starred_url":"https://api.github.com/users/projectcalico/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/projectcalico/subscriptions","organizations_url":"https://api.github.com/users/projectcalico/orgs","repos_url":"https://api.github.com/users/projectcalico/repos","events_url":"https://api.github.com/users/projectcalico/events{/privacy}","received_events_url":"https://api.github.com/users/projectcalico/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/projectcalico/calico","description":"Project Calico core repository.","fork":false,"url":"https://api.github.com/repos/projectcalico/calico","forks_url":"https://api.github.com/repos/projectcalico/calico/forks","keys_url":"https://api.github.com/repos/projectcalico/calico/keys{/key_id}","collaborators_url":"https://api.github.com/repos/projectcalico/calico/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/projectcalico/calico/teams","hooks_url":"https://api.github.com/repos/projectcalico/calico/hooks","issue_events_url":"https://api.github.com/repos/projectcalico/calico/issues/events{/number}","events_url":"https://api.github.com/repos/projectcalico/calico/events","assignees_url":"https://api.github.com/repos/projectcalico/calico/assignees{/user}","branches_url":"https://api.github.com/repos/projectcalico/calico/branches{/branch}","tags_url":"https://api.github.com/repos/projectcalico/calico/tags","blobs_url":"https://api.github.com/repos/projectcalico/calico/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/projectcalico/calico/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/projectcalico/calico/git/refs{/sha}","trees_url":"https://api.github.com/repos/projectcalico/calico/git/trees{/sha}","statuses_url":"https://api.github.com/repos/projectcalico/calico/statuses/{sha}","languages_url":"https://api.github.com/repos/projectcalico/calico/languages","stargazers_url":"https://api.github.com/repos/projectcalico/calico/stargazers","contributors_url":"https://api.github.com/repos/projectcalico/calico/contributors","subscribers_url":"https://api.github.com/repos/projectcalico/calico/subscribers","subscription_url":"https://api.github.com/repos/projectcalico/calico/subscription","commits_url":"https://api.github.com/repos/projectcalico/calico/commits{/sha}","git_commits_url":"https://api.github.com/repos/projectcalico/calico/git/commits{/sha}","comments_url":"https://api.github.com/repos/projectcalico/calico/comments{/number}","issue_comment_url":"https://api.github.com/repos/projectcalico/calico/issues/comments{/number}","contents_url":"https://api.github.com/repos/projectcalico/calico/contents/{+path}","compare_url":"https://api.github.com/repos/projectcalico/calico/compare/{base}...{head}","merges_url":"https://api.github.com/repos/projectcalico/calico/merges","archive_url":"https://api.github.com/repos/projectcalico/calico/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/projectcalico/calico/downloads","issues_url":"https://api.github.com/repos/projectcalico/calico/issues{/number}","pulls_url":"https://api.github.com/repos/projectcalico/calico/pulls{/number}","milestones_url":"https://api.github.com/repos/projectcalico/calico/milestones{/number}","notifications_url":"https://api.github.com/repos/projectcalico/calico/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/projectcalico/calico/labels{/name}","releases_url":"https://api.github.com/repos/projectcalico/calico/releases{/id}","created_at":"2014-06-26T14:08:43Z","updated_at":"2015-09-17T05:51:47Z","pushed_at":"2015-09-17T12:46:37Z","git_url":"git://github.com/projectcalico/calico.git","ssh_url":"git@github.com:projectcalico/calico.git","clone_url":"https://github.com/projectcalico/calico.git","svn_url":"https://github.com/projectcalico/calico","homepage":"http://projectcalico.org/","size":10858,"stargazers_count":194,"watchers_count":194,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":31,"mirror_url":null,"open_issues_count":47,"forks":31,"open_issues":47,"watchers":194,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/projectcalico/calico/pulls/814"},"html":{"href":"https://github.com/projectcalico/calico/pull/814"},"issue":{"href":"https://api.github.com/repos/projectcalico/calico/issues/814"},"comments":{"href":"https://api.github.com/repos/projectcalico/calico/issues/814/comments"},"review_comments":{"href":"https://api.github.com/repos/projectcalico/calico/pulls/814/comments"},"review_comment":{"href":"https://api.github.com/repos/projectcalico/calico/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/projectcalico/calico/pulls/814/commits"},"statuses":{"href":"https://api.github.com/repos/projectcalico/calico/statuses/e708376c8fbefe2c8dcd46f9ffff7f7dcdd01e36"}}}}