{"action":"created","issue":{"url":"https://api.github.com/repos/docker/infrakit/issues/304","repository_url":"https://api.github.com/repos/docker/infrakit","labels_url":"https://api.github.com/repos/docker/infrakit/issues/304/labels{/name}","comments_url":"https://api.github.com/repos/docker/infrakit/issues/304/comments","events_url":"https://api.github.com/repos/docker/infrakit/issues/304/events","html_url":"https://github.com/docker/infrakit/issues/304","id":189884360,"number":304,"title":"Make `Group.CommitGroup()` plural","user":{"login":"wfarner","id":422563,"avatar_url":"https://avatars.githubusercontent.com/u/422563?v=3","gravatar_id":"","url":"https://api.github.com/users/wfarner","html_url":"https://github.com/wfarner","followers_url":"https://api.github.com/users/wfarner/followers","following_url":"https://api.github.com/users/wfarner/following{/other_user}","gists_url":"https://api.github.com/users/wfarner/gists{/gist_id}","starred_url":"https://api.github.com/users/wfarner/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wfarner/subscriptions","organizations_url":"https://api.github.com/users/wfarner/orgs","repos_url":"https://api.github.com/users/wfarner/repos","events_url":"https://api.github.com/users/wfarner/events{/privacy}","received_events_url":"https://api.github.com/users/wfarner/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/docker/infrakit/milestones/1","html_url":"https://github.com/docker/infrakit/milestones/v0.1.0","labels_url":"https://api.github.com/repos/docker/infrakit/milestones/1/labels","id":2140671,"number":1,"title":"v0.1.0","description":"The first release of InfraKit.  Initial APIs are defined and documented, basic entities (e.g. Instances, Groups, Flavors) are defined and documented.","creator":{"login":"wfarner","id":422563,"avatar_url":"https://avatars.githubusercontent.com/u/422563?v=3","gravatar_id":"","url":"https://api.github.com/users/wfarner","html_url":"https://github.com/wfarner","followers_url":"https://api.github.com/users/wfarner/followers","following_url":"https://api.github.com/users/wfarner/following{/other_user}","gists_url":"https://api.github.com/users/wfarner/gists{/gist_id}","starred_url":"https://api.github.com/users/wfarner/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wfarner/subscriptions","organizations_url":"https://api.github.com/users/wfarner/orgs","repos_url":"https://api.github.com/users/wfarner/repos","events_url":"https://api.github.com/users/wfarner/events{/privacy}","received_events_url":"https://api.github.com/users/wfarner/received_events","type":"User","site_admin":false},"open_issues":5,"closed_issues":1,"state":"open","created_at":"2016-11-16T23:30:45Z","updated_at":"2016-11-25T17:13:27Z","due_on":"2016-11-30T00:00:00Z","closed_at":null},"comments":2,"created_at":"2016-11-16T23:34:43Z","updated_at":"2016-11-30T18:00:06Z","closed_at":null,"body":"Change this:\r\n```go\r\ntype Plugin interface {\r\n\tCommitGroup(grp Spec, pretend bool) (string, error)\r\n}\r\n```\r\n\r\nto\r\n```go\r\ntype Plugin interface {\r\n\tCommitGroups(groups []Spec, pretend bool) (string, error)\r\n}\r\n```\r\n\r\nThis will make it natural to expose tools that interact with multiple groups."},"comment":{"url":"https://api.github.com/repos/docker/infrakit/issues/comments/263946321","html_url":"https://github.com/docker/infrakit/issues/304#issuecomment-263946321","issue_url":"https://api.github.com/repos/docker/infrakit/issues/304","id":263946321,"user":{"login":"chungers","id":299504,"avatar_url":"https://avatars.githubusercontent.com/u/299504?v=3","gravatar_id":"","url":"https://api.github.com/users/chungers","html_url":"https://github.com/chungers","followers_url":"https://api.github.com/users/chungers/followers","following_url":"https://api.github.com/users/chungers/following{/other_user}","gists_url":"https://api.github.com/users/chungers/gists{/gist_id}","starred_url":"https://api.github.com/users/chungers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chungers/subscriptions","organizations_url":"https://api.github.com/users/chungers/orgs","repos_url":"https://api.github.com/users/chungers/repos","events_url":"https://api.github.com/users/chungers/events{/privacy}","received_events_url":"https://api.github.com/users/chungers/received_events","type":"User","site_admin":false},"created_at":"2016-11-30T18:00:06Z","updated_at":"2016-11-30T18:00:06Z","body":"I've been going back and forth on this one.   On one hand, we need to support multiple groups, one the other, I am starting to think we should just leave the group api as-is to keep the api at this level simple and avoid the issues you've described.  Right now the group plugin api makes good sense on a per-group basis.  Making `commit` accept a list of groups also makes `free` look strange -- per the point you just raised about destroy.\r\n\r\nI think it's better to let another layer do the proper orchestration of multiple groups across different drivers and different resource types.  This layer (think of it as the CFN-like orchestrator) will have a better idea of the entire landscape of resources and groups that depend on them.  It can better compute the changes and can make commit / destroy decisions. \r\n\r\nBecause this higher global orchestration layer has to work with groups and other resource types / plugin types, it can come out after v0.1.0 along with other resource/plugin types.   What do you think?\r\n\r\n"}}
{"actor":{"display_login":"chungers"}}