From f8a828494467cd3c88adb8f756f7ece772abb8ed Mon Sep 17 00:00:00 2001 From: Senad Uka Date: Wed, 8 Jun 2016 09:16:44 +0200 Subject: [PATCH] added dweet and reboot --- controller/dweet.py | 5 +++++ controller/state/__init__.py | 3 +++ controller/state/dweet_server.py | 33 ++++++++++++++++++++++++++++++++ controller/state/server.py | 2 -- 4 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 controller/dweet.py create mode 100644 controller/state/dweet_server.py diff --git a/controller/dweet.py b/controller/dweet.py new file mode 100644 index 0000000..ed5451d --- /dev/null +++ b/controller/dweet.py @@ -0,0 +1,5 @@ +from state.dweet_server import DweetServer +import config + +server = DweetServer(config.CONTROLLER_ID) +server.send_message("I am aliveeee (again)!"); diff --git a/controller/state/__init__.py b/controller/state/__init__.py index 677af5a..727ef7e 100644 --- a/controller/state/__init__.py +++ b/controller/state/__init__.py @@ -2,6 +2,7 @@ import config from state.server import Server from state.changer import Changer from state.file import File +import commands def safely_panic(): safe_state = {} @@ -32,3 +33,5 @@ def sync(): except: print " panicking safely ! " safely_panic() + print " rebooting " + commands.getoutput('/sbin/shutdown -r now') diff --git a/controller/state/dweet_server.py b/controller/state/dweet_server.py new file mode 100644 index 0000000..95c78d7 --- /dev/null +++ b/controller/state/dweet_server.py @@ -0,0 +1,33 @@ +import json +import requests + + +DWEET_UID = "5410ab1e-319c-4f14-a2e4-04725df69121" + +class DweetServer(object): + "Gets state from server and sends it to the server after change" + def __init__(self, controller_id=None): + self.url_base = "https://dweet.io:443/dweet/quietly/for/%s" % DWEET_UID + self.controller_id = controller_id + + def send_message(self, message): + result = requests.post(self.full_url(), + { + 'controller_id': self.controller_id, + 'message': message + }) + return handle_response(result) + + def full_url(self): + if self.controller_id is None: + raise ClassNotReadyException("Controller id not set!") + if self.url_base is None: + raise ClassNotReadyException("URL base not set!") + return self.url_base + + +def handle_response(response): + if response.status_code != 200: + raise ErrorCommunicatingWithServerException("Response not 200!") + else: + return response.json() diff --git a/controller/state/server.py b/controller/state/server.py index 092300a..bc7981b 100644 --- a/controller/state/server.py +++ b/controller/state/server.py @@ -16,8 +16,6 @@ class Server(object): result = requests.post(self.full_url('state/%s') % self.controller_id, local_state) return handle_response(result) - - def full_url(self, action): if self.controller_id is None: raise ClassNotReadyException("Controller id not set!")