{"action":"created","issue":{"url":"https://api.github.com/repos/twosigma/waiter/issues/95","repository_url":"https://api.github.com/repos/twosigma/waiter","labels_url":"https://api.github.com/repos/twosigma/waiter/issues/95/labels{/name}","comments_url":"https://api.github.com/repos/twosigma/waiter/issues/95/comments","events_url":"https://api.github.com/repos/twosigma/waiter/issues/95/events","html_url":"https://github.com/twosigma/waiter/pull/95","id":248064810,"number":95,"title":"token-syncer command-line application","user":{"login":"shamsimam","id":6611249,"avatar_url":"https://avatars0.githubusercontent.com/u/6611249?v=4","gravatar_id":"","url":"https://api.github.com/users/shamsimam","html_url":"https://github.com/shamsimam","followers_url":"https://api.github.com/users/shamsimam/followers","following_url":"https://api.github.com/users/shamsimam/following{/other_user}","gists_url":"https://api.github.com/users/shamsimam/gists{/gist_id}","starred_url":"https://api.github.com/users/shamsimam/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shamsimam/subscriptions","organizations_url":"https://api.github.com/users/shamsimam/orgs","repos_url":"https://api.github.com/users/shamsimam/repos","events_url":"https://api.github.com/users/shamsimam/events{/privacy}","received_events_url":"https://api.github.com/users/shamsimam/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"shamsimam","id":6611249,"avatar_url":"https://avatars0.githubusercontent.com/u/6611249?v=4","gravatar_id":"","url":"https://api.github.com/users/shamsimam","html_url":"https://github.com/shamsimam","followers_url":"https://api.github.com/users/shamsimam/followers","following_url":"https://api.github.com/users/shamsimam/following{/other_user}","gists_url":"https://api.github.com/users/shamsimam/gists{/gist_id}","starred_url":"https://api.github.com/users/shamsimam/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shamsimam/subscriptions","organizations_url":"https://api.github.com/users/shamsimam/orgs","repos_url":"https://api.github.com/users/shamsimam/repos","events_url":"https://api.github.com/users/shamsimam/events{/privacy}","received_events_url":"https://api.github.com/users/shamsimam/received_events","type":"User","site_admin":false},"assignees":[{"login":"shamsimam","id":6611249,"avatar_url":"https://avatars0.githubusercontent.com/u/6611249?v=4","gravatar_id":"","url":"https://api.github.com/users/shamsimam","html_url":"https://github.com/shamsimam","followers_url":"https://api.github.com/users/shamsimam/followers","following_url":"https://api.github.com/users/shamsimam/following{/other_user}","gists_url":"https://api.github.com/users/shamsimam/gists{/gist_id}","starred_url":"https://api.github.com/users/shamsimam/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shamsimam/subscriptions","organizations_url":"https://api.github.com/users/shamsimam/orgs","repos_url":"https://api.github.com/users/shamsimam/repos","events_url":"https://api.github.com/users/shamsimam/events{/privacy}","received_events_url":"https://api.github.com/users/shamsimam/received_events","type":"User","site_admin":false}],"milestone":null,"comments":7,"created_at":"2017-08-04T17:10:48Z","updated_at":"2018-02-20T16:34:36Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/twosigma/waiter/pulls/95","html_url":"https://github.com/twosigma/waiter/pull/95","diff_url":"https://github.com/twosigma/waiter/pull/95.diff","patch_url":"https://github.com/twosigma/waiter/pull/95.patch"},"body":"## Changes proposed in this PR\r\n\r\n### Waiter Changes\r\n- add support for `root` token metadata\r\n- return `deleted` and `etag` during token hard-delete\r\n- allow the process launcher to perform admin operations\r\n- use the entire content of the token description while computing the `etag`\r\n- soft-deletes do not cause removal of token from the index, but do set the deleted flag to `true` in the index\r\n\r\n### Token Syncer - New Component\r\nThe token syncer communicates with Waiter clusters on their respective `/token` endpoints to retrieve and manage individual tokens.\r\n\r\nOutline of steps performed by the syncer:\r\n- Loads all tokens on each cluster.\r\n- Removes any tokens that have matching etags and are not deleted\r\n- Determines the latest version of the tokens using the token last-update-time.\r\n- Perform the sync operations using following cases:\r\n-- Report a conflict in sync if the token `root`s are different.\r\n-- Update all clusters with stale tokens to the latest token.\r\n-- Hard-deletes tokens on all clusters once all clusters agree that a token has been soft-deleted.\r\n\r\n## Why are we making these changes?\r\n\r\nWe want to enable token syncing across Waiter clusters; this facilitates the hosting of highly available services across multiple Waiter clusters.\r\n"},"comment":{"url":"https://api.github.com/repos/twosigma/waiter/issues/comments/367036323","html_url":"https://github.com/twosigma/waiter/pull/95#issuecomment-367036323","issue_url":"https://api.github.com/repos/twosigma/waiter/issues/95","id":367036323,"user":{"login":"shamsimam","id":6611249,"avatar_url":"https://avatars0.githubusercontent.com/u/6611249?v=4","gravatar_id":"","url":"https://api.github.com/users/shamsimam","html_url":"https://github.com/shamsimam","followers_url":"https://api.github.com/users/shamsimam/followers","following_url":"https://api.github.com/users/shamsimam/following{/other_user}","gists_url":"https://api.github.com/users/shamsimam/gists{/gist_id}","starred_url":"https://api.github.com/users/shamsimam/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shamsimam/subscriptions","organizations_url":"https://api.github.com/users/shamsimam/orgs","repos_url":"https://api.github.com/users/shamsimam/repos","events_url":"https://api.github.com/users/shamsimam/events{/privacy}","received_events_url":"https://api.github.com/users/shamsimam/received_events","type":"User","site_admin":false},"created_at":"2018-02-20T16:34:36Z","updated_at":"2018-02-20T16:34:36Z","author_association":"CONTRIBUTOR","body":"> I would still favor separating out the Waiter changes from the token-syncer changes, but if it's a big pain, then maybe it's not worth it\r\n\r\n@dposada here is the Waiter only version, created ahead of time waiting for this review to be approved :)\r\n https://github.com/twosigma/waiter/pull/207"}}
{"actor":{"display_login":"shamsimam"}}