{"action":"created","comment":{"url":"https://api.github.com/repos/intelsdi-x/snap/pulls/comments/75333133","id":75333133,"diff_hunk":"@@ -88,28 +88,24 @@ type managesMetrics interface {\n \tcollectsMetrics\n \tpublishesMetrics\n \tprocessesMetrics\n-\tmanagesPluginContentTypes\n \tGetAutodiscoverPaths() []string\n \tValidateDeps([]core.RequestedMetric, []core.SubscribedPlugin, *cdata.ConfigDataTree) []serror.SnapError\n \tSubscribeDeps(string, []core.RequestedMetric, []core.SubscribedPlugin, *cdata.ConfigDataTree) []serror.SnapError\n \tUnsubscribeDeps(string) []serror.SnapError\n }\n \n-// ManagesPluginContentTypes is an interface to a plugin manager that can tell us what content accept and returns are supported.\n-type managesPluginContentTypes interface {\n-\tGetPluginContentTypes(n string, t core.PluginType, v int) ([]string, []string, error)\n-}\n-\n type collectsMetrics interface {\n \tCollectMetrics(string, map[string]map[string]string) ([]core.Metric, []error)\n }\n \n type publishesMetrics interface {\n-\tPublishMetrics(contentType string, content []byte, pluginName string, pluginVersion int, config map[string]ctypes.ConfigValue, taskID string) []error\n+\tPublishMetrics([]core.Metric, map[string]ctypes.ConfigValue, string, string, int) []error\n+\t//PublishMetrics(contentType string, content []byte, pluginName string, pluginVersion int, config map[string]ctypes.ConfigValue, taskID string) []error\n }\n \n type processesMetrics interface {\n-\tProcessMetrics(contentType string, content []byte, pluginName string, pluginVersion int, config map[string]ctypes.ConfigValue, taskID string) (string, []byte, []error)\n+\tProcessMetrics([]core.Metric, map[string]ctypes.ConfigValue, string, string, int) ([]core.Metric, []error)\n+\t//ProcessMetrics(contentType string, content []byte, pluginName string, pluginVersion int, config map[string]ctypes.ConfigValue, taskID string) (string, []byte, []error)\n }","path":"scheduler/scheduler.go","position":30,"original_position":30,"commit_id":"168d8427968d740e1a567f463d078b6182fe719f","original_commit_id":"168d8427968d740e1a567f463d078b6182fe719f","user":{"login":"jcooklin","id":862968,"avatar_url":"https://avatars.githubusercontent.com/u/862968?v=3","gravatar_id":"","url":"https://api.github.com/users/jcooklin","html_url":"https://github.com/jcooklin","followers_url":"https://api.github.com/users/jcooklin/followers","following_url":"https://api.github.com/users/jcooklin/following{/other_user}","gists_url":"https://api.github.com/users/jcooklin/gists{/gist_id}","starred_url":"https://api.github.com/users/jcooklin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jcooklin/subscriptions","organizations_url":"https://api.github.com/users/jcooklin/orgs","repos_url":"https://api.github.com/users/jcooklin/repos","events_url":"https://api.github.com/users/jcooklin/events{/privacy}","received_events_url":"https://api.github.com/users/jcooklin/received_events","type":"User","site_admin":false},"body":"Same as above","created_at":"2016-08-18T15:41:39Z","updated_at":"2016-08-18T15:41:39Z","html_url":"https://github.com/intelsdi-x/snap/pull/1150#discussion_r75333133","pull_request_url":"https://api.github.com/repos/intelsdi-x/snap/pulls/1150","_links":{"self":{"href":"https://api.github.com/repos/intelsdi-x/snap/pulls/comments/75333133"},"html":{"href":"https://github.com/intelsdi-x/snap/pull/1150#discussion_r75333133"},"pull_request":{"href":"https://api.github.com/repos/intelsdi-x/snap/pulls/1150"}}},"pull_request":{"url":"https://api.github.com/repos/intelsdi-x/snap/pulls/1150","id":81736275,"html_url":"https://github.com/intelsdi-x/snap/pull/1150","diff_url":"https://github.com/intelsdi-x/snap/pull/1150.diff","patch_url":"https://github.com/intelsdi-x/snap/pull/1150.patch","issue_url":"https://api.github.com/repos/intelsdi-x/snap/issues/1150","number":1150,"state":"open","locked":false,"title":"Client libs to enable non-go language plugins","user":{"login":"IRCody","id":4969568,"avatar_url":"https://avatars.githubusercontent.com/u/4969568?v=3","gravatar_id":"","url":"https://api.github.com/users/IRCody","html_url":"https://github.com/IRCody","followers_url":"https://api.github.com/users/IRCody/followers","following_url":"https://api.github.com/users/IRCody/following{/other_user}","gists_url":"https://api.github.com/users/IRCody/gists{/gist_id}","starred_url":"https://api.github.com/users/IRCody/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/IRCody/subscriptions","organizations_url":"https://api.github.com/users/IRCody/orgs","repos_url":"https://api.github.com/users/IRCody/repos","events_url":"https://api.github.com/users/IRCody/events{/privacy}","received_events_url":"https://api.github.com/users/IRCody/received_events","type":"User","site_admin":false},"body":"Partially addresses #965 \r\n\r\nSummary of changes:\r\nThese changes are geared around enabling non-go plugins to be written by using grpc. It moves some of the go specific code to the clients (where we differentiate between the native/go client and grpc client) so that native clients and grpc clients can co-exist in the same workflow (and outside of the clients, they follow the same code path through snapd).\r\n\r\nFor a more specific summary see the commit messages.\r\n\r\nThings to note:\r\n* All existing plugins should continue to work and can be used in conjunction with grpc plugins with no special action from the user.\r\n* The concept of content-types is removed. Content-types were never functional and would require decently significant breaking changes to the plugin API to support. Removing them simplifies the representation of metrics inside snapd.\r\n\r\nThings not included in this PR:\r\n* Security features can be integrated into gRPC but are not included inside these changes.\r\n* gRPC plugin libs -- Since we are going to have multiple plugin libs that live in there own repos, these changes don't include any of those changes. There is a [c++](https://github.com/intelsdi-x/snap-plugin-lib-cpp) currently being worked on with plans for more in the future. The goal is that writing a plugin-lib for any language that supports gRPC should be relatively straight forward utilizing the same proto definitions to generate the service interface that snap requires.\r\n\r\nTesting done:\r\n- make test-{small, medium, legacy}\r\n- Manual testing with existing plugins and some prototype plugins that utilize grpc.\r\n\r\n@intelsdi-x/snap-maintainers\r\n","created_at":"2016-08-17T23:47:24Z","updated_at":"2016-08-18T15:41:39Z","closed_at":null,"merged_at":null,"merge_commit_sha":"bd235a2fd110f379ecb3f0201781965309d0f81e","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/intelsdi-x/snap/pulls/1150/commits","review_comments_url":"https://api.github.com/repos/intelsdi-x/snap/pulls/1150/comments","review_comment_url":"https://api.github.com/repos/intelsdi-x/snap/pulls/comments{/number}","comments_url":"https://api.github.com/repos/intelsdi-x/snap/issues/1150/comments","statuses_url":"https://api.github.com/repos/intelsdi-x/snap/statuses/168d8427968d740e1a567f463d078b6182fe719f","head":{"label":"IRCody:client-libs","ref":"client-libs","sha":"168d8427968d740e1a567f463d078b6182fe719f","user":{"login":"IRCody","id":4969568,"avatar_url":"https://avatars.githubusercontent.com/u/4969568?v=3","gravatar_id":"","url":"https://api.github.com/users/IRCody","html_url":"https://github.com/IRCody","followers_url":"https://api.github.com/users/IRCody/followers","following_url":"https://api.github.com/users/IRCody/following{/other_user}","gists_url":"https://api.github.com/users/IRCody/gists{/gist_id}","starred_url":"https://api.github.com/users/IRCody/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/IRCody/subscriptions","organizations_url":"https://api.github.com/users/IRCody/orgs","repos_url":"https://api.github.com/users/IRCody/repos","events_url":"https://api.github.com/users/IRCody/events{/privacy}","received_events_url":"https://api.github.com/users/IRCody/received_events","type":"User","site_admin":false},"repo":{"id":50876964,"name":"snap","full_name":"IRCody/snap","owner":{"login":"IRCody","id":4969568,"avatar_url":"https://avatars.githubusercontent.com/u/4969568?v=3","gravatar_id":"","url":"https://api.github.com/users/IRCody","html_url":"https://github.com/IRCody","followers_url":"https://api.github.com/users/IRCody/followers","following_url":"https://api.github.com/users/IRCody/following{/other_user}","gists_url":"https://api.github.com/users/IRCody/gists{/gist_id}","starred_url":"https://api.github.com/users/IRCody/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/IRCody/subscriptions","organizations_url":"https://api.github.com/users/IRCody/orgs","repos_url":"https://api.github.com/users/IRCody/repos","events_url":"https://api.github.com/users/IRCody/events{/privacy}","received_events_url":"https://api.github.com/users/IRCody/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/IRCody/snap","description":"A powerful telemetry framework","fork":true,"url":"https://api.github.com/repos/IRCody/snap","forks_url":"https://api.github.com/repos/IRCody/snap/forks","keys_url":"https://api.github.com/repos/IRCody/snap/keys{/key_id}","collaborators_url":"https://api.github.com/repos/IRCody/snap/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/IRCody/snap/teams","hooks_url":"https://api.github.com/repos/IRCody/snap/hooks","issue_events_url":"https://api.github.com/repos/IRCody/snap/issues/events{/number}","events_url":"https://api.github.com/repos/IRCody/snap/events","assignees_url":"https://api.github.com/repos/IRCody/snap/assignees{/user}","branches_url":"https://api.github.com/repos/IRCody/snap/branches{/branch}","tags_url":"https://api.github.com/repos/IRCody/snap/tags","blobs_url":"https://api.github.com/repos/IRCody/snap/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/IRCody/snap/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/IRCody/snap/git/refs{/sha}","trees_url":"https://api.github.com/repos/IRCody/snap/git/trees{/sha}","statuses_url":"https://api.github.com/repos/IRCody/snap/statuses/{sha}","languages_url":"https://api.github.com/repos/IRCody/snap/languages","stargazers_url":"https://api.github.com/repos/IRCody/snap/stargazers","contributors_url":"https://api.github.com/repos/IRCody/snap/contributors","subscribers_url":"https://api.github.com/repos/IRCody/snap/subscribers","subscription_url":"https://api.github.com/repos/IRCody/snap/subscription","commits_url":"https://api.github.com/repos/IRCody/snap/commits{/sha}","git_commits_url":"https://api.github.com/repos/IRCody/snap/git/commits{/sha}","comments_url":"https://api.github.com/repos/IRCody/snap/comments{/number}","issue_comment_url":"https://api.github.com/repos/IRCody/snap/issues/comments{/number}","contents_url":"https://api.github.com/repos/IRCody/snap/contents/{+path}","compare_url":"https://api.github.com/repos/IRCody/snap/compare/{base}...{head}","merges_url":"https://api.github.com/repos/IRCody/snap/merges","archive_url":"https://api.github.com/repos/IRCody/snap/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/IRCody/snap/downloads","issues_url":"https://api.github.com/repos/IRCody/snap/issues{/number}","pulls_url":"https://api.github.com/repos/IRCody/snap/pulls{/number}","milestones_url":"https://api.github.com/repos/IRCody/snap/milestones{/number}","notifications_url":"https://api.github.com/repos/IRCody/snap/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/IRCody/snap/labels{/name}","releases_url":"https://api.github.com/repos/IRCody/snap/releases{/id}","deployments_url":"https://api.github.com/repos/IRCody/snap/deployments","created_at":"2016-02-01T22:43:48Z","updated_at":"2016-02-01T22:43:49Z","pushed_at":"2016-08-17T22:29:55Z","git_url":"git://github.com/IRCody/snap.git","ssh_url":"git@github.com:IRCody/snap.git","clone_url":"https://github.com/IRCody/snap.git","svn_url":"https://github.com/IRCody/snap","homepage":"http://github.com/intelsdi-x/snap","size":10980,"stargazers_count":0,"watchers_count":0,"language":"Go","has_issues":false,"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":"intelsdi-x:master","ref":"master","sha":"4e6b19df7b7b7d4300429ba22b766c2ac70d2e29","user":{"login":"intelsdi-x","id":8398747,"avatar_url":"https://avatars.githubusercontent.com/u/8398747?v=3","gravatar_id":"","url":"https://api.github.com/users/intelsdi-x","html_url":"https://github.com/intelsdi-x","followers_url":"https://api.github.com/users/intelsdi-x/followers","following_url":"https://api.github.com/users/intelsdi-x/following{/other_user}","gists_url":"https://api.github.com/users/intelsdi-x/gists{/gist_id}","starred_url":"https://api.github.com/users/intelsdi-x/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/intelsdi-x/subscriptions","organizations_url":"https://api.github.com/users/intelsdi-x/orgs","repos_url":"https://api.github.com/users/intelsdi-x/repos","events_url":"https://api.github.com/users/intelsdi-x/events{/privacy}","received_events_url":"https://api.github.com/users/intelsdi-x/received_events","type":"Organization","site_admin":false},"repo":{"id":22931257,"name":"snap","full_name":"intelsdi-x/snap","owner":{"login":"intelsdi-x","id":8398747,"avatar_url":"https://avatars.githubusercontent.com/u/8398747?v=3","gravatar_id":"","url":"https://api.github.com/users/intelsdi-x","html_url":"https://github.com/intelsdi-x","followers_url":"https://api.github.com/users/intelsdi-x/followers","following_url":"https://api.github.com/users/intelsdi-x/following{/other_user}","gists_url":"https://api.github.com/users/intelsdi-x/gists{/gist_id}","starred_url":"https://api.github.com/users/intelsdi-x/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/intelsdi-x/subscriptions","organizations_url":"https://api.github.com/users/intelsdi-x/orgs","repos_url":"https://api.github.com/users/intelsdi-x/repos","events_url":"https://api.github.com/users/intelsdi-x/events{/privacy}","received_events_url":"https://api.github.com/users/intelsdi-x/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/intelsdi-x/snap","description":"The open telemetry framework","fork":false,"url":"https://api.github.com/repos/intelsdi-x/snap","forks_url":"https://api.github.com/repos/intelsdi-x/snap/forks","keys_url":"https://api.github.com/repos/intelsdi-x/snap/keys{/key_id}","collaborators_url":"https://api.github.com/repos/intelsdi-x/snap/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/intelsdi-x/snap/teams","hooks_url":"https://api.github.com/repos/intelsdi-x/snap/hooks","issue_events_url":"https://api.github.com/repos/intelsdi-x/snap/issues/events{/number}","events_url":"https://api.github.com/repos/intelsdi-x/snap/events","assignees_url":"https://api.github.com/repos/intelsdi-x/snap/assignees{/user}","branches_url":"https://api.github.com/repos/intelsdi-x/snap/branches{/branch}","tags_url":"https://api.github.com/repos/intelsdi-x/snap/tags","blobs_url":"https://api.github.com/repos/intelsdi-x/snap/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/intelsdi-x/snap/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/intelsdi-x/snap/git/refs{/sha}","trees_url":"https://api.github.com/repos/intelsdi-x/snap/git/trees{/sha}","statuses_url":"https://api.github.com/repos/intelsdi-x/snap/statuses/{sha}","languages_url":"https://api.github.com/repos/intelsdi-x/snap/languages","stargazers_url":"https://api.github.com/repos/intelsdi-x/snap/stargazers","contributors_url":"https://api.github.com/repos/intelsdi-x/snap/contributors","subscribers_url":"https://api.github.com/repos/intelsdi-x/snap/subscribers","subscription_url":"https://api.github.com/repos/intelsdi-x/snap/subscription","commits_url":"https://api.github.com/repos/intelsdi-x/snap/commits{/sha}","git_commits_url":"https://api.github.com/repos/intelsdi-x/snap/git/commits{/sha}","comments_url":"https://api.github.com/repos/intelsdi-x/snap/comments{/number}","issue_comment_url":"https://api.github.com/repos/intelsdi-x/snap/issues/comments{/number}","contents_url":"https://api.github.com/repos/intelsdi-x/snap/contents/{+path}","compare_url":"https://api.github.com/repos/intelsdi-x/snap/compare/{base}...{head}","merges_url":"https://api.github.com/repos/intelsdi-x/snap/merges","archive_url":"https://api.github.com/repos/intelsdi-x/snap/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/intelsdi-x/snap/downloads","issues_url":"https://api.github.com/repos/intelsdi-x/snap/issues{/number}","pulls_url":"https://api.github.com/repos/intelsdi-x/snap/pulls{/number}","milestones_url":"https://api.github.com/repos/intelsdi-x/snap/milestones{/number}","notifications_url":"https://api.github.com/repos/intelsdi-x/snap/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/intelsdi-x/snap/labels{/name}","releases_url":"https://api.github.com/repos/intelsdi-x/snap/releases{/id}","deployments_url":"https://api.github.com/repos/intelsdi-x/snap/deployments","created_at":"2014-08-13T21:04:51Z","updated_at":"2016-08-18T15:30:22Z","pushed_at":"2016-08-17T23:47:24Z","git_url":"git://github.com/intelsdi-x/snap.git","ssh_url":"git@github.com:intelsdi-x/snap.git","clone_url":"https://github.com/intelsdi-x/snap.git","svn_url":"https://github.com/intelsdi-x/snap","homepage":"http://snap-telemetry.io","size":25238,"stargazers_count":898,"watchers_count":898,"language":"Go","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":130,"mirror_url":null,"open_issues_count":115,"forks":130,"open_issues":115,"watchers":898,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/intelsdi-x/snap/pulls/1150"},"html":{"href":"https://github.com/intelsdi-x/snap/pull/1150"},"issue":{"href":"https://api.github.com/repos/intelsdi-x/snap/issues/1150"},"comments":{"href":"https://api.github.com/repos/intelsdi-x/snap/issues/1150/comments"},"review_comments":{"href":"https://api.github.com/repos/intelsdi-x/snap/pulls/1150/comments"},"review_comment":{"href":"https://api.github.com/repos/intelsdi-x/snap/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/intelsdi-x/snap/pulls/1150/commits"},"statuses":{"href":"https://api.github.com/repos/intelsdi-x/snap/statuses/168d8427968d740e1a567f463d078b6182fe719f"}}}}
{"actor":{"display_login":"jcooklin"}}