コード例 #1
0
 def GET(self, name):
     d = web.input()
     logging.info("Receiving an alert\n%s" % (d))
     if d.subject:
         d.subject = urllib.unquote_plus(d.subject)
     else:
         return "No subject. -s is required on sending a oncall message"
     if d.message:
         d.message = urllib.unquote_plus(d.message)
     else:
         return "No message. -m is required on sending a oncall message"
     if d.passwd:
         d.passwd = urllib.unquote_plus(d.passwd)
     if d.team:
         d.team = urllib.unquote_plus(d.team)
     else:
         d.team = "default"
     try:
         #check for security password if configured to do so
         goAhead = True
         if "security_passwd" in conf:
             if d.passwd == conf['security_passwd']:
                 goAhead = True
             else:
                 goAhead = False
         if goAhead == True:
             isNewAlert = True
             # check to see if this alert is a new one
             for a in Alert.fresh_alerts():
                 if a.subject == d.subject and a.message == d.message and a.team == d.team:
                     isNewAlert = False
             if isNewAlert == True:
                 # save new alert to the db
                 newalert = Alert.Alert()
                 newalert.subject = d.subject
                 newalert.message = d.message
                 newalert.team = d.team
                 newalert.send_alert()
                 return "OK:\n" + newalert.print_alert()
         else:
             return "Not authorized"
     except Exception, e:
         logging.error(e.__str__())
         return e.__str__()
コード例 #2
0
 def create(self):
     if self.target == "alert" or self.target == "alerts":
         if self.subject:
             self.subject = urllib.unquote_plus(self.subject)
         else:
             self.populate(1201, "No subject in alert creation")
             return
         if self.message:
             self.message = urllib.unquote_plus(self.message)
         else:
             self.populate(1202, "No message in alert creation")
             return
         if self.team:
             self.team = urllib.unquote_plus(self.team)
         else:
             self.team = "default"
         # check to see if this alert is a new one
         isNewAlert = True
         for a in Alert.fresh_alerts():
             if a.subject == self.subject and a.message == self.message and a.team == self.team:
                 isNewAlert = False
         if isNewAlert == True:
             # save new alert to the db
             newalert = Alert.Alert()
             newalert.subject = self.subject
             newalert.message = self.message
             newalert.team = self.team
             newalert.send_alert()
             self.populate(200, "OK")
         else:
             self.populate(200, "OK", json.dumps("Repeat alert"))
     elif self.target == "user" or self.target == "users":
         if self.name == None or len(self.name) <= 0:
             self.populate(1301, "No name parameter given in user creation")
             return
         if self.email == None or len(
                 self.email) <= 0 or "@" not in self.email:
             self.populate(
                 1302,
                 "No or invalid email parameter given in user creation")
             return
         if self.phone == None or len(
                 self.phone) != 12 or self.phone.startswith("+"):
             if self.state != 9:
                 self.populate(
                     1303,
                     "No or invalid phone number parameter given in user creation"
                 )
                 return
         if self.state == None or isinstance(self.state, int):
             self.state = 0
         if self.team == None: self.team = "default"
         newuser = User.User()
         newuser.name = self.name
         newuser.email = self.email
         newuser.phone = self.phone
         newuser.state = self.state
         newuser.team = self.team
         newuser.save_user()
         if newuser.state != 9:
             valid_code = twilio.validate_phone(newuser)
             if valid_code == False:
                 self.populate(
                     1401,
                     "Unable to get a validation code for new phone number")
                 return
             elif valid_code == True:
                 self.populate(
                     1402, "Phone has already been verified with Twilio")
                 return
             else:
                 self.populate(1400, "Validation Code: %s" % (valid_code))
         else:
             self.populate(200, "OK")
             return
     else:
         self.populate(
             1101,
             "Invalid API create call: Missing valid target parameter")
         return
コード例 #3
0
ファイル: api_layer.py プロジェクト: CBarraford/Oncall
	def create(self):
		if self.target == "alert" or self.target == "alerts":
			if self.subject:
				self.subject = urllib.unquote_plus(self.subject)
			else:
				self.populate(1201,"No subject in alert creation")
				return
			if self.message:
				self.message = urllib.unquote_plus(self.message)
			else:
				self.populate(1202,"No message in alert creation")
				return
			if self.team:
				self.team= urllib.unquote_plus(self.team)
			else:
				self.team="default"
			# check to see if this alert is a new one
			isNewAlert = True
			for a in Alert.fresh_alerts():
				if a.subject == self.subject and a.message == self.message and a.team == self.team: isNewAlert = False
			if isNewAlert == True:
				# save new alert to the db
				newalert = Alert.Alert()
				newalert.subject = self.subject
				newalert.message = self.message
				newalert.team = self.team
				newalert.send_alert()
				self.populate(200,"OK")
			else:
				self.populate(200,"OK",json.dumps("Repeat alert"))
		elif self.target == "user" or self.target == "users":
			if self.name == None or len(self.name) <= 0:
				self.populate(1301,"No name parameter given in user creation")
				return
			if self.email == None or len(self.email) <= 0 or "@" not in self.email:
				self.populate(1302,"No or invalid email parameter given in user creation")
				return
			if self.phone == None or len(self.phone) != 12 or self.phone.startswith("+"):
				if self.state != 9:
					self.populate(1303,"No or invalid phone number parameter given in user creation")
					return
			if self.state == None or isinstance(self.state, int):
				self.state = 0
			if self.team == None: self.team = "default"
			newuser = User.User()
			newuser.name = self.name
			newuser.email = self.email
			newuser.phone = self.phone
			newuser.state = self.state
			newuser.team = self.team
			newuser.save_user()
			if newuser.state != 9:
				valid_code = twilio.validate_phone(newuser)
				if valid_code == False:
					self.populate(1401,"Unable to get a validation code for new phone number")
					return
				elif valid_code == True:
					self.populate(1402,"Phone has already been verified with Twilio")
					return
				else:
					self.populate(1400,"Validation Code: %s" % (valid_code))
			else:
				self.populate(200,"OK")
				return
		else:
			self.populate(1101,"Invalid API create call: Missing valid target parameter")
			return