{"action":"opened","number":958,"pull_request":{"url":"https://api.github.com/repos/contiv/netplugin/pulls/958","id":137341977,"html_url":"https://github.com/contiv/netplugin/pull/958","diff_url":"https://github.com/contiv/netplugin/pull/958.diff","patch_url":"https://github.com/contiv/netplugin/pull/958.patch","issue_url":"https://api.github.com/repos/contiv/netplugin/issues/958","number":958,"state":"open","locked":false,"title":"Provide a way to reclaim stale endpoints","user":{"login":"DivyaVavili","id":406488,"avatar_url":"https://avatars1.githubusercontent.com/u/406488?v=4","gravatar_id":"","url":"https://api.github.com/users/DivyaVavili","html_url":"https://github.com/DivyaVavili","followers_url":"https://api.github.com/users/DivyaVavili/followers","following_url":"https://api.github.com/users/DivyaVavili/following{/other_user}","gists_url":"https://api.github.com/users/DivyaVavili/gists{/gist_id}","starred_url":"https://api.github.com/users/DivyaVavili/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DivyaVavili/subscriptions","organizations_url":"https://api.github.com/users/DivyaVavili/orgs","repos_url":"https://api.github.com/users/DivyaVavili/repos","events_url":"https://api.github.com/users/DivyaVavili/events{/privacy}","received_events_url":"https://api.github.com/users/DivyaVavili/received_events","type":"User","site_admin":false},"body":"## Description of the changes\r\n#### Type of fix: Enhancement\r\n\r\nThis PR includes the following changes:\r\n- Add **/debug/reclaimEndpoint** REST endpoint in netplugin that clears up endpoint state store state, ovs state and ofnet flows on all hosts in the cluster\r\n- Add **/debug/epcleanup/tenant/\\<tenantName\\>/\\<category\\>/\\<id\\>** REST endpoint in netmaster to cleanup the endpoints in the category\r\n**NOTE:** \\<category\\> can take three values - _net/group/ep_\r\n<id> depends on the category. net category takes network name as id and clears up all endpoints within the network and recursively in all EPGs in the network, group category takes group name as id and clears up all endpoints in the group and ep category takes endpointID as id and clears the single endpoint\r\n-  Misc changes: \r\n-- Fix an issue where deleting an endpoint does not update the ovs-driver oper state in state store\r\n-- Minor typos\r\n-- Fix missing hostname in netplugin.vtep state\r\n\r\n#### Testing done:\r\n- Test netplugin REST endpoint and verify that the port is deleted in OVS, the endpoint states in state store (cfg and oper states) and clear up all the flows in the ofnet on all hosts in a cluster. \r\n- Test netmaster REST endpoints for network/group/endpoint and verify all states (mentioned above) are cleared up\r\n\r\n#### TODO\r\n- [ ] Add system test-cases\r\n- [ ] provide documentation to expose this along with disclaimer","created_at":"2017-08-23T23:48:18Z","updated_at":"2017-08-23T23:48:18Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":null,"assignees":[],"requested_reviewers":[],"milestone":null,"commits_url":"https://api.github.com/repos/contiv/netplugin/pulls/958/commits","review_comments_url":"https://api.github.com/repos/contiv/netplugin/pulls/958/comments","review_comment_url":"https://api.github.com/repos/contiv/netplugin/pulls/comments{/number}","comments_url":"https://api.github.com/repos/contiv/netplugin/issues/958/comments","statuses_url":"https://api.github.com/repos/contiv/netplugin/statuses/a0366f2909cc51ff0bd2285df6bd7402b3f0b960","head":{"label":"DivyaVavili:reclaimapi","ref":"reclaimapi","sha":"a0366f2909cc51ff0bd2285df6bd7402b3f0b960","user":{"login":"DivyaVavili","id":406488,"avatar_url":"https://avatars1.githubusercontent.com/u/406488?v=4","gravatar_id":"","url":"https://api.github.com/users/DivyaVavili","html_url":"https://github.com/DivyaVavili","followers_url":"https://api.github.com/users/DivyaVavili/followers","following_url":"https://api.github.com/users/DivyaVavili/following{/other_user}","gists_url":"https://api.github.com/users/DivyaVavili/gists{/gist_id}","starred_url":"https://api.github.com/users/DivyaVavili/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DivyaVavili/subscriptions","organizations_url":"https://api.github.com/users/DivyaVavili/orgs","repos_url":"https://api.github.com/users/DivyaVavili/repos","events_url":"https://api.github.com/users/DivyaVavili/events{/privacy}","received_events_url":"https://api.github.com/users/DivyaVavili/received_events","type":"User","site_admin":false},"repo":{"id":43723904,"name":"netplugin","full_name":"DivyaVavili/netplugin","owner":{"login":"DivyaVavili","id":406488,"avatar_url":"https://avatars1.githubusercontent.com/u/406488?v=4","gravatar_id":"","url":"https://api.github.com/users/DivyaVavili","html_url":"https://github.com/DivyaVavili","followers_url":"https://api.github.com/users/DivyaVavili/followers","following_url":"https://api.github.com/users/DivyaVavili/following{/other_user}","gists_url":"https://api.github.com/users/DivyaVavili/gists{/gist_id}","starred_url":"https://api.github.com/users/DivyaVavili/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DivyaVavili/subscriptions","organizations_url":"https://api.github.com/users/DivyaVavili/orgs","repos_url":"https://api.github.com/users/DivyaVavili/repos","events_url":"https://api.github.com/users/DivyaVavili/events{/privacy}","received_events_url":"https://api.github.com/users/DivyaVavili/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/DivyaVavili/netplugin","description":"Container networking for various use cases","fork":true,"url":"https://api.github.com/repos/DivyaVavili/netplugin","forks_url":"https://api.github.com/repos/DivyaVavili/netplugin/forks","keys_url":"https://api.github.com/repos/DivyaVavili/netplugin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/DivyaVavili/netplugin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/DivyaVavili/netplugin/teams","hooks_url":"https://api.github.com/repos/DivyaVavili/netplugin/hooks","issue_events_url":"https://api.github.com/repos/DivyaVavili/netplugin/issues/events{/number}","events_url":"https://api.github.com/repos/DivyaVavili/netplugin/events","assignees_url":"https://api.github.com/repos/DivyaVavili/netplugin/assignees{/user}","branches_url":"https://api.github.com/repos/DivyaVavili/netplugin/branches{/branch}","tags_url":"https://api.github.com/repos/DivyaVavili/netplugin/tags","blobs_url":"https://api.github.com/repos/DivyaVavili/netplugin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/DivyaVavili/netplugin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/DivyaVavili/netplugin/git/refs{/sha}","trees_url":"https://api.github.com/repos/DivyaVavili/netplugin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/DivyaVavili/netplugin/statuses/{sha}","languages_url":"https://api.github.com/repos/DivyaVavili/netplugin/languages","stargazers_url":"https://api.github.com/repos/DivyaVavili/netplugin/stargazers","contributors_url":"https://api.github.com/repos/DivyaVavili/netplugin/contributors","subscribers_url":"https://api.github.com/repos/DivyaVavili/netplugin/subscribers","subscription_url":"https://api.github.com/repos/DivyaVavili/netplugin/subscription","commits_url":"https://api.github.com/repos/DivyaVavili/netplugin/commits{/sha}","git_commits_url":"https://api.github.com/repos/DivyaVavili/netplugin/git/commits{/sha}","comments_url":"https://api.github.com/repos/DivyaVavili/netplugin/comments{/number}","issue_comment_url":"https://api.github.com/repos/DivyaVavili/netplugin/issues/comments{/number}","contents_url":"https://api.github.com/repos/DivyaVavili/netplugin/contents/{+path}","compare_url":"https://api.github.com/repos/DivyaVavili/netplugin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/DivyaVavili/netplugin/merges","archive_url":"https://api.github.com/repos/DivyaVavili/netplugin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/DivyaVavili/netplugin/downloads","issues_url":"https://api.github.com/repos/DivyaVavili/netplugin/issues{/number}","pulls_url":"https://api.github.com/repos/DivyaVavili/netplugin/pulls{/number}","milestones_url":"https://api.github.com/repos/DivyaVavili/netplugin/milestones{/number}","notifications_url":"https://api.github.com/repos/DivyaVavili/netplugin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/DivyaVavili/netplugin/labels{/name}","releases_url":"https://api.github.com/repos/DivyaVavili/netplugin/releases{/id}","deployments_url":"https://api.github.com/repos/DivyaVavili/netplugin/deployments","created_at":"2015-10-06T01:28:36Z","updated_at":"2016-01-26T22:50:59Z","pushed_at":"2017-08-23T23:29:30Z","git_url":"git://github.com/DivyaVavili/netplugin.git","ssh_url":"git@github.com:DivyaVavili/netplugin.git","clone_url":"https://github.com/DivyaVavili/netplugin.git","svn_url":"https://github.com/DivyaVavili/netplugin","homepage":"","size":50196,"stargazers_count":0,"watchers_count":0,"language":"Go","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"contiv:master","ref":"master","sha":"0bf835c0ed882406d75309ba53fd0928fd37456e","user":{"login":"contiv","id":10272443,"avatar_url":"https://avatars3.githubusercontent.com/u/10272443?v=4","gravatar_id":"","url":"https://api.github.com/users/contiv","html_url":"https://github.com/contiv","followers_url":"https://api.github.com/users/contiv/followers","following_url":"https://api.github.com/users/contiv/following{/other_user}","gists_url":"https://api.github.com/users/contiv/gists{/gist_id}","starred_url":"https://api.github.com/users/contiv/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/contiv/subscriptions","organizations_url":"https://api.github.com/users/contiv/orgs","repos_url":"https://api.github.com/users/contiv/repos","events_url":"https://api.github.com/users/contiv/events{/privacy}","received_events_url":"https://api.github.com/users/contiv/received_events","type":"Organization","site_admin":false},"repo":{"id":28353322,"name":"netplugin","full_name":"contiv/netplugin","owner":{"login":"contiv","id":10272443,"avatar_url":"https://avatars3.githubusercontent.com/u/10272443?v=4","gravatar_id":"","url":"https://api.github.com/users/contiv","html_url":"https://github.com/contiv","followers_url":"https://api.github.com/users/contiv/followers","following_url":"https://api.github.com/users/contiv/following{/other_user}","gists_url":"https://api.github.com/users/contiv/gists{/gist_id}","starred_url":"https://api.github.com/users/contiv/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/contiv/subscriptions","organizations_url":"https://api.github.com/users/contiv/orgs","repos_url":"https://api.github.com/users/contiv/repos","events_url":"https://api.github.com/users/contiv/events{/privacy}","received_events_url":"https://api.github.com/users/contiv/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/contiv/netplugin","description":"Container networking for various use cases","fork":false,"url":"https://api.github.com/repos/contiv/netplugin","forks_url":"https://api.github.com/repos/contiv/netplugin/forks","keys_url":"https://api.github.com/repos/contiv/netplugin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/contiv/netplugin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/contiv/netplugin/teams","hooks_url":"https://api.github.com/repos/contiv/netplugin/hooks","issue_events_url":"https://api.github.com/repos/contiv/netplugin/issues/events{/number}","events_url":"https://api.github.com/repos/contiv/netplugin/events","assignees_url":"https://api.github.com/repos/contiv/netplugin/assignees{/user}","branches_url":"https://api.github.com/repos/contiv/netplugin/branches{/branch}","tags_url":"https://api.github.com/repos/contiv/netplugin/tags","blobs_url":"https://api.github.com/repos/contiv/netplugin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/contiv/netplugin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/contiv/netplugin/git/refs{/sha}","trees_url":"https://api.github.com/repos/contiv/netplugin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/contiv/netplugin/statuses/{sha}","languages_url":"https://api.github.com/repos/contiv/netplugin/languages","stargazers_url":"https://api.github.com/repos/contiv/netplugin/stargazers","contributors_url":"https://api.github.com/repos/contiv/netplugin/contributors","subscribers_url":"https://api.github.com/repos/contiv/netplugin/subscribers","subscription_url":"https://api.github.com/repos/contiv/netplugin/subscription","commits_url":"https://api.github.com/repos/contiv/netplugin/commits{/sha}","git_commits_url":"https://api.github.com/repos/contiv/netplugin/git/commits{/sha}","comments_url":"https://api.github.com/repos/contiv/netplugin/comments{/number}","issue_comment_url":"https://api.github.com/repos/contiv/netplugin/issues/comments{/number}","contents_url":"https://api.github.com/repos/contiv/netplugin/contents/{+path}","compare_url":"https://api.github.com/repos/contiv/netplugin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/contiv/netplugin/merges","archive_url":"https://api.github.com/repos/contiv/netplugin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/contiv/netplugin/downloads","issues_url":"https://api.github.com/repos/contiv/netplugin/issues{/number}","pulls_url":"https://api.github.com/repos/contiv/netplugin/pulls{/number}","milestones_url":"https://api.github.com/repos/contiv/netplugin/milestones{/number}","notifications_url":"https://api.github.com/repos/contiv/netplugin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/contiv/netplugin/labels{/name}","releases_url":"https://api.github.com/repos/contiv/netplugin/releases{/id}","deployments_url":"https://api.github.com/repos/contiv/netplugin/deployments","created_at":"2014-12-22T18:45:21Z","updated_at":"2017-08-18T08:21:11Z","pushed_at":"2017-08-23T21:33:27Z","git_url":"git://github.com/contiv/netplugin.git","ssh_url":"git@github.com:contiv/netplugin.git","clone_url":"https://github.com/contiv/netplugin.git","svn_url":"https://github.com/contiv/netplugin","homepage":"","size":33000,"stargazers_count":295,"watchers_count":295,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":113,"mirror_url":null,"open_issues_count":120,"forks":113,"open_issues":120,"watchers":295,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/contiv/netplugin/pulls/958"},"html":{"href":"https://github.com/contiv/netplugin/pull/958"},"issue":{"href":"https://api.github.com/repos/contiv/netplugin/issues/958"},"comments":{"href":"https://api.github.com/repos/contiv/netplugin/issues/958/comments"},"review_comments":{"href":"https://api.github.com/repos/contiv/netplugin/pulls/958/comments"},"review_comment":{"href":"https://api.github.com/repos/contiv/netplugin/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/contiv/netplugin/pulls/958/commits"},"statuses":{"href":"https://api.github.com/repos/contiv/netplugin/statuses/a0366f2909cc51ff0bd2285df6bd7402b3f0b960"}},"merged":false,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":null,"comments":0,"review_comments":0,"maintainer_can_modify":true,"commits":3,"additions":260,"deletions":33,"changed_files":12}}
{"actor":{"display_login":"DivyaVavili"}}