{"action":"created","issue":{"url":"https://api.github.com/repos/google/trillian/issues/970","repository_url":"https://api.github.com/repos/google/trillian","labels_url":"https://api.github.com/repos/google/trillian/issues/970/labels{/name}","comments_url":"https://api.github.com/repos/google/trillian/issues/970/comments","events_url":"https://api.github.com/repos/google/trillian/issues/970/events","html_url":"https://github.com/google/trillian/pull/970","id":293835632,"number":970,"title":"Add DRAINING state for trees. Add table driven operation type / state / tree type checks.","user":{"login":"Martin2112","id":13366863,"avatar_url":"https://avatars2.githubusercontent.com/u/13366863?v=4","gravatar_id":"","url":"https://api.github.com/users/Martin2112","html_url":"https://github.com/Martin2112","followers_url":"https://api.github.com/users/Martin2112/followers","following_url":"https://api.github.com/users/Martin2112/following{/other_user}","gists_url":"https://api.github.com/users/Martin2112/gists{/gist_id}","starred_url":"https://api.github.com/users/Martin2112/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Martin2112/subscriptions","organizations_url":"https://api.github.com/users/Martin2112/orgs","repos_url":"https://api.github.com/users/Martin2112/repos","events_url":"https://api.github.com/users/Martin2112/events{/privacy}","received_events_url":"https://api.github.com/users/Martin2112/received_events","type":"User","site_admin":false},"labels":[{"id":389540533,"url":"https://api.github.com/repos/google/trillian/labels/cla:%20yes","name":"cla: yes","color":"0e8a16","default":false}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":7,"created_at":"2018-02-02T10:08:47Z","updated_at":"2018-03-08T11:00:25Z","closed_at":"2018-03-08T09:57:29Z","author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/google/trillian/pulls/970","html_url":"https://github.com/google/trillian/pull/970","diff_url":"https://github.com/google/trillian/pull/970.diff","patch_url":"https://github.com/google/trillian/pull/970.patch"},"body":"Reject queue leaves in draining state but allow signing to continue. Add table driven validation rules to check operation type access by tree state and type. Update tests."},"comment":{"url":"https://api.github.com/repos/google/trillian/issues/comments/371454779","html_url":"https://github.com/google/trillian/pull/970#issuecomment-371454779","issue_url":"https://api.github.com/repos/google/trillian/issues/970","id":371454779,"user":{"login":"Martin2112","id":13366863,"avatar_url":"https://avatars2.githubusercontent.com/u/13366863?v=4","gravatar_id":"","url":"https://api.github.com/users/Martin2112","html_url":"https://github.com/Martin2112","followers_url":"https://api.github.com/users/Martin2112/followers","following_url":"https://api.github.com/users/Martin2112/following{/other_user}","gists_url":"https://api.github.com/users/Martin2112/gists{/gist_id}","starred_url":"https://api.github.com/users/Martin2112/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Martin2112/subscriptions","organizations_url":"https://api.github.com/users/Martin2112/orgs","repos_url":"https://api.github.com/users/Martin2112/repos","events_url":"https://api.github.com/users/Martin2112/events{/privacy}","received_events_url":"https://api.github.com/users/Martin2112/received_events","type":"User","site_admin":false},"created_at":"2018-03-08T11:00:24Z","updated_at":"2018-03-08T11:00:24Z","author_association":"CONTRIBUTOR","body":"I wasn't sure exactly how preordered logs would end up so left these in\nplace for the moment. Could have called QueueLog something like SubmitWork\nor AddLeaves but the internal APIs are all Queue<Something>.\n\nIf someone wants to TODO them that's fine.\n\nMartin\n\nOn 8 March 2018 at 10:33, Pavel Kalinnikov <notifications@github.com> wrote:\n\n> *@pavelkalinnikov* commented on this pull request.\n> ------------------------------\n>\n> In trees/trees.go\n> <https://github.com/google/trillian/pull/970#discussion_r173120243>:\n>\n> > +\t\tokStates: map[trillian.TreeState]bool{\n> +\t\t\ttrillian.TreeState_ACTIVE: true,\n> +\t\t},\n> +\t\trejectCodes: map[trillian.TreeState]codes.Code{\n> +\t\t\ttrillian.TreeState_DRAINING: codes.PermissionDenied,\n> +\t\t},\n> +\t\tokTypes: map[trillian.TreeType]bool{\n> +\t\t\ttrillian.TreeType_LOG:            true,\n> +\t\t\ttrillian.TreeType_PREORDERED_LOG: true,\n> +\t\t},\n> +\t\tokWrite: true,\n> +\t},\n> +\tSequenceLog: {\n> +\t\tokStates: map[trillian.TreeState]bool{\n> +\t\t\ttrillian.TreeState_ACTIVE:   true,\n> +\t\t\ttrillian.TreeState_DRAINING: true,\n>\n> Does DRAINING make sense for PREORDERED_LOG? There is no queue in that\n> mode.\n>\n> However, I can imagine DRAINING mean \"still has sequenced entries not\n> integrated into the tree, hence the sequencer is still working\". The caveat\n> though is that there might be gaps in sequenced entries, so in this sense\n> the DRAINING state will last forever.\n>\n> —\n> You are receiving this because you modified the open/close state.\n> Reply to this email directly, view it on GitHub\n> <https://github.com/google/trillian/pull/970#pullrequestreview-102253478>,\n> or mute the thread\n> <https://github.com/notifications/unsubscribe-auth/AMv2T4YgpFjVLVHeHUz17n1khOvvyivhks5tcQj2gaJpZM4R28-H>\n> .\n>\n"}}
{"actor":{"display_login":"Martin2112"}}