{"action":"created","issue":{"url":"https://api.github.com/repos/project8/dripline/issues/107","labels_url":"https://api.github.com/repos/project8/dripline/issues/107/labels{/name}","comments_url":"https://api.github.com/repos/project8/dripline/issues/107/comments","events_url":"https://api.github.com/repos/project8/dripline/issues/107/events","html_url":"https://github.com/project8/dripline/issues/107","id":97831460,"number":107,"title":"Add an interface class that wraps Service with an easier API","user":{"login":"laroque","id":830135,"avatar_url":"https://avatars.githubusercontent.com/u/830135?v=3","gravatar_id":"","url":"https://api.github.com/users/laroque","html_url":"https://github.com/laroque","followers_url":"https://api.github.com/users/laroque/followers","following_url":"https://api.github.com/users/laroque/following{/other_user}","gists_url":"https://api.github.com/users/laroque/gists{/gist_id}","starred_url":"https://api.github.com/users/laroque/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/laroque/subscriptions","organizations_url":"https://api.github.com/users/laroque/orgs","repos_url":"https://api.github.com/users/laroque/repos","events_url":"https://api.github.com/users/laroque/events{/privacy}","received_events_url":"https://api.github.com/users/laroque/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/project8/dripline/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/project8/dripline/milestones/5","html_url":"https://github.com/project8/dripline/milestones/Release%201.7","labels_url":"https://api.github.com/repos/project8/dripline/milestones/5/labels","id":1230647,"number":5,"title":"Release 1.7","description":"","creator":{"login":"laroque","id":830135,"avatar_url":"https://avatars.githubusercontent.com/u/830135?v=3","gravatar_id":"","url":"https://api.github.com/users/laroque","html_url":"https://github.com/laroque","followers_url":"https://api.github.com/users/laroque/followers","following_url":"https://api.github.com/users/laroque/following{/other_user}","gists_url":"https://api.github.com/users/laroque/gists{/gist_id}","starred_url":"https://api.github.com/users/laroque/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/laroque/subscriptions","organizations_url":"https://api.github.com/users/laroque/orgs","repos_url":"https://api.github.com/users/laroque/repos","events_url":"https://api.github.com/users/laroque/events{/privacy}","received_events_url":"https://api.github.com/users/laroque/received_events","type":"User","site_admin":false},"open_issues":1,"closed_issues":7,"state":"open","created_at":"2015-07-29T00:44:48Z","updated_at":"2015-08-12T20:13:47Z","due_on":null,"closed_at":null},"comments":1,"created_at":"2015-07-29T00:50:27Z","updated_at":"2015-08-13T17:22:48Z","closed_at":null,"body":"That is, Service already does the things that are needed, but it isn't easy for a user to script. In particular, the user has to construct message objects to pass to send_request, send_alert, etc. and then deal with a returned message object after.\r\n\r\nThe wrapping scrip interface should support the following (basically be an API to dripline_agent, which could be modified to be based on this class).\r\n\r\ndef get(channel_name)\r\ndef set(channel_name, value)\r\ndef config(channel_name, property, value=None)\r\ndef cmd(channel_name, method_name, *args, **kwargs)\r\ndef send(channel_name, *list_of_commands) # I'm not certain about this one\r\n\r\nThis may not provide the nicest run scripting interface (it would maybe be nicer to have a standard config file and an executable?), but it is a much better start than one what have now (nothing) as bash scripts."},"comment":{"url":"https://api.github.com/repos/project8/dripline/issues/comments/130768772","html_url":"https://github.com/project8/dripline/issues/107#issuecomment-130768772","issue_url":"https://api.github.com/repos/project8/dripline/issues/107","id":130768772,"user":{"login":"laroque","id":830135,"avatar_url":"https://avatars.githubusercontent.com/u/830135?v=3","gravatar_id":"","url":"https://api.github.com/users/laroque","html_url":"https://github.com/laroque","followers_url":"https://api.github.com/users/laroque/followers","following_url":"https://api.github.com/users/laroque/following{/other_user}","gists_url":"https://api.github.com/users/laroque/gists{/gist_id}","starred_url":"https://api.github.com/users/laroque/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/laroque/subscriptions","organizations_url":"https://api.github.com/users/laroque/orgs","repos_url":"https://api.github.com/users/laroque/repos","events_url":"https://api.github.com/users/laroque/events{/privacy}","received_events_url":"https://api.github.com/users/laroque/received_events","type":"User","site_admin":false},"created_at":"2015-08-13T17:22:48Z","updated_at":"2015-08-13T17:22:48Z","body":"Okay, the Interface and _InternalInterface classes now exist for this. The abstract the creation of Message instances away from the user somewhat, more still needs to be done."}}