def post(self): logging.debug("In CreateUserHandler") self.response.headers['Content-Type'] = 'application/json' # Verify the gameid is valid: gameid = self.request.get('gameid') if gameid not in GAMES: write_response(self.response, "4", None, "gameid is invalid: %s" % gameid) return # Verify that this user name is unique name = self.request.get('name') game = GAMES[gameid]['name'] logging.debug("Email is: " + self.request.get('email')) if not GameUser.name_is_available(name, game): write_response(self.response, "2", None, "User name %s already exists for this game." % name) return # Verify that this email is unique if GAMES[gameid]['emailVerification']: email = self.request.get('email') if email == None or email == '': write_response(self.response, "1", None, "Required fields are missing: %s." % email) game = GAMES[gameid]['name'] email = encrypt(email.lower()) if not GameUser.email_is_available(email, game): write_response( self.response, "13", None, "Email address %s already exists for this game." % email) return else: email = encrypt(self.request.get('email').lower()) user = GameUser() user.password, user.salt = saltedhash_hex(self.request.get('password')) user.name = name.lower() user.game = game logging.debug("Email NOW is: " + email) user.email = email user.phone = encrypt(self.request.get('phone')) user.blob = self.request.get('blob') # Perform email verification for those games that require it. # Otherwise, just mark the user as verified. if GAMES[gameid]['emailVerification']: user.status = USER_UNVERIFIED send_email(user, GAMES[gameid]['name']) else: user.status = USER_VERIFIED user.put() write_response(self.response, "0", {})
def post(self): logging.debug("In CreateUserHandler") self.response.headers['Content-Type'] = 'application/json' # Verify the gameid is valid: gameid = self.request.get('gameid') if gameid not in GAMES: write_response(self.response, "4", None, "gameid is invalid: %s" % gameid) return # Verify that this user name is unique name = self.request.get('name') game = GAMES[gameid]['name'] logging.debug("Email is: " + self.request.get('email')) if not GameUser.name_is_available(name, game): write_response(self.response, "2", None, "User name %s already exists for this game." % name) return # Verify that this email is unique if GAMES[gameid]['emailVerification']: email = self.request.get('email') if email == None or email == '': write_response(self.response, "1", None, "Required fields are missing: %s." % email) game = GAMES[gameid]['name'] email = encrypt(email.lower()) if not GameUser.email_is_available(email, game): write_response(self.response, "13", None, "Email address %s already exists for this game." % email) return else: email = encrypt(self.request.get('email').lower()) user = GameUser() user.password, user.salt = saltedhash_hex(self.request.get('password')) user.name = name.lower() user.game = game logging.debug("Email NOW is: " + email) user.email = email user.phone = encrypt(self.request.get('phone')) user.blob = self.request.get('blob') # Perform email verification for those games that require it. # Otherwise, just mark the user as verified. if GAMES[gameid]['emailVerification']: user.status = USER_UNVERIFIED send_email(user, GAMES[gameid]['name']) else: user.status = USER_VERIFIED user.put() write_response(self.response, "0", {})
def post(self): logging.debug("In UpdateUserHandler") self.response.headers['Content-Type'] = 'application/json' # Do basic update validation user = get_user_for_update(self.request, self.response) if user == None: return request_args = set(self.request.arguments()) # Update encrypted fields for property in ('email', 'phone'): if property in request_args: user.set_value(property, encrypt(self.request.get(property))) # Update rest of fields for property in ('wins', 'losses', 'credits', 'level', 'experience', 'blob'): if property in request_args: user.set_value(property, self.request.get(property)) user.modify_date = datetime.now() user.put() write_response(self.response, "0", {})
def handler(self): info = get_server_info(self) print(info["mem"]) if not os.path.exists(settings.CERT_FILE_PATH): info['type'] = 'create' else: with open(settings.CERT_FILE_PATH, 'r') as f: cert = f.read() if cert == info['basic']['data']['hostname']: info['type'] = 'update' else: info['cert'] = cert info['type'] = 'host_update' ctime = int(time.time() * 1000) r1 = requests.post(url=self.asset_api, params={ "sign": gen_sign(ctime), "ctime": ctime }, data=encrypt(json.dumps(info).encode("utf-8")), headers={'Content-Type': 'application/json'}) response = r1.json() print("text", response['data']) if response['status']: with open(settings.CERT_FILE_PATH, 'w') as f: f.write(response['data'])
def handler(self): # agent 下采集信息 info = get_server_info(handler=self) # 根据主机名 判断 具体的操作 if not os.path.exists(settings.CERT_PATH): # 文件不存在 新增 info['type'] = 'create' else: # 更新 with open(settings.CERT_PATH, 'r', encoding='utf-8') as f: old_hostname = f.read() hostname = info['basic']['data']['hostname'] # 最新主机名 if old_hostname == hostname: # 更新资产 info['type'] = 'update' else: info['type'] = 'update_hostname' info['old_hostname'] = old_hostname # 汇报 api now = time.time() response = requests.post( url=self.url, params={ 'key': gen_key(now), 'ctime': now }, data=encrypt(json.dumps(info)), headers={'content-type': 'application/json'}, ) ret = response.json() if ret['status'] is True: with open(settings.CERT_PATH, 'w', encoding='utf-8') as f1: f1.write(ret['hostname'])
def handler(self): ''' 处理 Agent 模式下资产采集: 网卡 内存 硬盘 ... :return: ''' # 调度 plugins.disk / plugins.network # 1. 通过调用 get_server_info 网卡 内存 硬盘 ... info = get_server_info(self) # 2. 获取本地文件唯一标示 if not Path(settings.CERT_FILE_PATH).exists(): # 新服务器 应该在数据库增加数据。 info["type"] = "create" else: with open(settings.CERT_FILE_PATH, "r", encoding='utf-8') as f: cert = f.read() if cert == info["basic"]['data']['hostname']: # 主机名未更新,汇报给 API ,API 做更新。 info["type"] = "update" else: info["cert"] = cert info["type"] = "host_update" # 3. 发送到 API ctime = int(time.time() * 1000) r1 = requests.post( url=self.asset_api, params={ 'sign': gen_sign(ctime), 'ctime': ctime }, # 可以加头,类型 data=encrypt(json.dumps(info).encode('utf-8')), headers={'Content-Type': 'application/json'}) print(info) print(r1)
def handler(self): """ 处理Agent模式下的资产采集:网卡、内存、硬盘 :return: """ # 1. 通过调用get_server_info获取所有的资产信息:网卡、内存、硬盘 info = get_server_info(self) print('采集到服务器资产信息:', info) # 2 获取本地文件中的唯一标识 if not os.path.exists(settings.CERT_FILE_PATH): # 新服务器,给API之后,应该在数据库中增加数据 info['type'] = 'create' else: with open(settings.CERT_FILE_PATH, 'r', encoding='utf-8') as f: cert = f.read() if cert == info['basic']['data']['hostname']: # 主机名未做变更 汇报给API,API做更新 info['type'] = 'update' else: info['cert'] = cert info['type'] = 'host_update' # 3. 发送到api ctime = int(time.time() * 1000) r1 = requests.post(url=self.asset_api, params={ 'sign': gen_sign(ctime), 'ctime': ctime }, data=encrypt(json.dumps(info).encode('utf-8')), headers={'Content-Type': 'application/json'}) response = r1.json() if response['status']: with open(settings.CERT_FILE_PATH, 'w', encoding='utf-8') as f: f.write(response['data'])