def post(self): """Notify subscribers that a service changed status.""" address = self.request.get('address') service = Service.get(self.request.get('service')) oldstatus = Status.get(self.request.get('oldstatus')) number = self.request.get('number') logging.info("Service: %s" % service) logging.info("Service name: %s" % service.name) msg = "%s changed state from %s to %s (%s)" % ( service.name, oldstatus.name, service.current_event().status.name, service.current_event().message) user = Subscription.get_by_email(address) if user.status == "available" or not number: status_code = xmpp.send_message(address, msg) chat_message_sent = (status_code == xmpp.NO_ERROR) logging.info("Notified: %s\nmessage: %s code: %d" % (address, msg, status_code)) elif user.status == "unavailable" and number: sms = smsgw(to = number, msg = msg) sms.send() logging.info("Offline SMS: %s\nmessage: %s" % (number, msg))
def test_post_update_desc(self): response = self.post("/admin/api/v1/services/foo", data={"description": "hello"}) self.assertEquals(response.headers["Content-Type"], "application/json") self.assertEquals(response.status_code, 200) service = Service.get(self.service.key()) self.assertEquals(service.description, "hello")
def test_post_update(self): response = self.post("/admin/api/v1/services/foo", data={"name": "bar"}) self.assertEquals(response.headers["Content-Type"], "application/json") self.assertEquals(response.status_code, 200) service = Service.get(self.service.key()) self.assertEquals(service.name, "bar")
def test_post_update_list(self): response = self.post("/admin/api/v1/services/foo", data={"list": "foo"}) print response.content self.assertEquals(response.headers["Content-Type"], "application/json") self.assertEquals(response.status_code, 200) service = Service.get(self.service.key()) self.assertEquals(service.list.name, "Foo")
def services_edit(request): id = int(request.GET.get('id')) service = Service.get(db.Key.from_path('Service', id)) if request.method != 'POST': form = ServiceForm(instance=service) return respond(request, 'service_edit.html', {'form': form, 'id': id }) form = ServiceForm(request.POST,instance=service) if form.is_valid(): entity = form.save() entity.put() return HttpResponseRedirect(reverse(services)) else: return respond(request, 'service_edit.html', {'form': form })
def get_service_or_404(host, port): try: service = Service.get(host, port) except ServiceDoesNotExist: restful.abort(404, message="Service {}:{} doesn't exist".format(host, port)) return service
def services_delete(request): id = int(request.GET.get('id')) service = Service.get(db.Key.from_path('Service', id)) service.active = False service.put() return HttpResponseRedirect(reverse(services))