{"action":"created","issue":{"url":"https://api.github.com/repos/GPII/universal/issues/246","labels_url":"https://api.github.com/repos/GPII/universal/issues/246/labels{/name}","comments_url":"https://api.github.com/repos/GPII/universal/issues/246/comments","events_url":"https://api.github.com/repos/GPII/universal/issues/246/events","html_url":"https://github.com/GPII/universal/pull/246","id":32848472,"number":246,"title":"GPII-413: Add a dynamic Device Reporter ","user":{"login":"javihernandez","id":821790,"avatar_url":"https://avatars.githubusercontent.com/u/821790?v=3","gravatar_id":"","url":"https://api.github.com/users/javihernandez","html_url":"https://github.com/javihernandez","followers_url":"https://api.github.com/users/javihernandez/followers","following_url":"https://api.github.com/users/javihernandez/following{/other_user}","gists_url":"https://api.github.com/users/javihernandez/gists{/gist_id}","starred_url":"https://api.github.com/users/javihernandez/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/javihernandez/subscriptions","organizations_url":"https://api.github.com/users/javihernandez/orgs","repos_url":"https://api.github.com/users/javihernandez/repos","events_url":"https://api.github.com/users/javihernandez/events{/privacy}","received_events_url":"https://api.github.com/users/javihernandez/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/GPII/universal/labels/question","name":"question","color":"cc317c"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":8,"created_at":"2014-05-05T21:39:46Z","updated_at":"2015-01-27T13:47:31Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/GPII/universal/pulls/246","html_url":"https://github.com/GPII/universal/pull/246","diff_url":"https://github.com/GPII/universal/pull/246.diff","patch_url":"https://github.com/GPII/universal/pull/246.patch"},"body":"Related literature about this can be found [here], and can be tested with [this pull request to GPII/linux].\r\n\r\nThe implementation follows a similar approach to how the settingsHandlers work.\r\nHere you can see how a solution entry should be written in order to call to a deviceReporter plugin.\r\n\r\n<pre>\r\n{  \r\n    \"name\": \"ORCA Screen Reader\",\r\n    \"id\": \"org.gnome.orca\",\r\n    \"contexts\": {\r\n    \"OS\": [{\r\n        \"id\": \"linux\",\r\n        \"version\": \">=2.6.26\"\r\n    }],\r\n    \"deviceReporters\": [\r\n        { \r\n            \"type\": \"gpii.packageKit.find\",\r\n            \"name\": \"orca\"\r\n        }\r\n    ]\r\n}\r\n</pre>\r\n\r\nFor this first example I have used the packageKit module for GNU/Linux  but we could create a few common deviceReporter plugins such as:\r\n* A DR plugin that could look for a file in the filesystem, ie, look for /usr/opt/bin/google-chrome\r\n* A DR plugin that could check if a process is running on the system, ie: firefox\r\n\r\nInspired by [this], and as a replacement for the Linux' packageKit module in Windows, a node module can be built in order to poke the Windows registry for installed solutions.\r\n\r\nAny testing/feedback will be awesome :)\r\nCheers!\r\n\r\n  [here]: http://issues.gpii.net/browse/GPII-413\r\n  [this pull request to GPII/linux]: https://github.com/GPII/linux/pull/49\r\n  [this]: http://stackoverflow.com/a/1458550"},"comment":{"url":"https://api.github.com/repos/GPII/universal/issues/comments/71649626","html_url":"https://github.com/GPII/universal/pull/246#issuecomment-71649626","issue_url":"https://api.github.com/repos/GPII/universal/issues/246","id":71649626,"user":{"login":"kaspermarkus","id":167427,"avatar_url":"https://avatars.githubusercontent.com/u/167427?v=3","gravatar_id":"","url":"https://api.github.com/users/kaspermarkus","html_url":"https://github.com/kaspermarkus","followers_url":"https://api.github.com/users/kaspermarkus/followers","following_url":"https://api.github.com/users/kaspermarkus/following{/other_user}","gists_url":"https://api.github.com/users/kaspermarkus/gists{/gist_id}","starred_url":"https://api.github.com/users/kaspermarkus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kaspermarkus/subscriptions","organizations_url":"https://api.github.com/users/kaspermarkus/orgs","repos_url":"https://api.github.com/users/kaspermarkus/repos","events_url":"https://api.github.com/users/kaspermarkus/events{/privacy}","received_events_url":"https://api.github.com/users/kaspermarkus/received_events","type":"User","site_admin":false},"created_at":"2015-01-27T13:47:31Z","updated_at":"2015-01-27T13:47:31Z","body":"Should this go in now, or should we wait for the updated solutionsregistry/lifecycle manager work?"}}