Пример #1
0
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('')
Пример #2
0
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')
Пример #3
0
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('')
Пример #4
0
def inject_servers():
    context = {}
    context['servers'] = Server.query()
    context['logout_url'] = users.create_logout_url("/")
    #template_values['is_admin'] = (account.role == "admin")
    return context
Пример #5
0
def index(account):
    return render_template('index.html', account=account, servers=Server.query())