def check_server_expire_date(): today = current_datetime().date() first_min = datetime.datetime.combine(today, datetime.time(0, 0)) last_min = datetime.datetime.combine(today, datetime.time(23, 59)) servers = Server.query().filter(Server.expire_date<=last_min)\ .filter(Server.expire_date>=first_min) for server in servers: expired_url = url_for('server.server_expired') run_task_at(expired_url, server.expire_date, server=server.key.urlsafe()) return make_response('')
def check_server_user_limit(): sender = 'no-reply@' + get_application_id() + '.appspotmail.com' site_url = 'http://' + get_application_id() + '.appspot.com' servers = Server.query() accounts = Account.query() for server in servers: if server.user_limit: for account in accounts: message = mail.EmailMessage(sender=sender, to=account.email) message_body = '' show_url = url_for('server.show', server_key=server.key.urlsafe()) url = 'http://%s/manager/user_count/%s'\ % (server.ip_address, server.token) result = fetch_server_url(url=url, retry_count=3) if result.status_code == 200: user_count = result.content if user_count > server.user_limit: message.subject = "Server expire notification: %s" % server.server_name message_body += "User limit reached on %s." \ "User limit: %s, Current users: %s\n %s%s" \ % (server.server_name, server.user_limit, user_count, site_url, show_url) if server.blocked: url = 'http://%s/manager/add_user_blocked/%s'\ % (server.ip_address, server.token) result = fetch_server_url(url=url, retry_count=3) user_blocked = result.content if user_blocked == 'TRUE': message_body += "Server %s add user is restricted to %s" \ % (server.server_name, server.user_limit) else: message_body += '\n %s' % user_blocked else: message_body += 'Unable to reach %s to retrieve user count \ upon user limit check' % server.server_name message.body = message_body message.send() return make_response('hello')
def check_connection(): def fetch_and_populate_connectivity(ip, connectivity): result = fetch_server_url('http://%s/' % ip, retry_count=3) connectivity = connectivity or [0] * 30 connectivity.append(1 if result and result.status_code == 200 else 0) del connectivity[:1] return connectivity for server in Server.query(): # check radius server connection connectivity = fetch_and_populate_connectivity(server.ip_address, server.radius_response) server.radius_response = connectivity # check cisco server connection connectivity = fetch_and_populate_connectivity(server.cisco_ip_address, server.cisco_response) server.cisco_response = connectivity server.put() return make_response('')
def inject_servers(): context = {} context['servers'] = Server.query() context['logout_url'] = users.create_logout_url("/") #template_values['is_admin'] = (account.role == "admin") return context
def index(account): return render_template('index.html', account=account, servers=Server.query())