Giter Club home page Giter Club logo

isp's Introduction

isp

ISP Admin Users Management

isp's People

Contributors

ariunbayar avatar qlio avatar

Watchers

 avatar  avatar

isp's Issues

New fieds for Server

The Server currently has following fields:

  • Server name
  • IP address
  • Subnet mask
  • Gateway
  • DNS1
  • DNS2
  • Expire date
  • User limit

Add following fields:

  • Cisco IP Address
  • Cisco Subnet mask
  • Cisco Gateway
  • Cisco IP Range

Edit login info

As an addition to #3, please add edit feature for the part shown in the image.

screenshot from 2013-09-20 14 15 27

Cron job to block server when user limit reached

  1. Task runs
  2. Iterates through all servers and requests to following address for current user count of server:
    • http://<ip_address>/manager/user_count/
  3. Response will be current user count of server. If server doesn't respond in 3 retries admin should be notified with message "Unable to reach to retrieve user count upon user limit check".
  4. After receiving the current user count of the server, check it with user limit.
  5. If it did reach the user limit specified in Server.user_limit, notify admin with message "User limit reached on . User limit: <user_limit>, Current users: <current_user_count>"
  6. If it did reach the user limit, it should block the server requesting to following address:
    • http://<ip_address>/manager/add_user_blocked/
  7. The server should respond with either TRUE or FALSE.
  8. The task checks the response. If it is not blocked ( FALSE) it will retry from step 6.
  9. If the retry fails up to 3 times, it should notify admin with message same as on step 3.
  10. If step 7 returns TRUE, it should notify admin with message "Server add user is restricted to <user_limit>"

Login details for servers

Each server needs to have multiple login information. For example: radius, cisco, snmp.

So what we need here is to add new model called "LoginInfo". See following as sample:

from server.models import Server
class LoginInfo(db.Model):
    url = db.StringProperty()
    username = db.StringProperty()
    password = db.StringProperty()
    server = db.ReferenceProperty(Server)

ReferenceProperty is the field that points to our server. So that we can have multiple login info for each server.

Please allow a user to enter login info on server show page.

New fields for Server

Add following fields to models.Server:

  • Server.blocked - Boolean
    • Determines if the Server should be blocked by user_limit or expire_date
  • Server.token - String
    • Allows the app to talk with other servers defined in models.Server

Cron job to block server upon expiry

  1. Task runs
  2. Iterates through all servers and check if any server is expired
  3. If server is expired, notifies to admin "Server is expired" and requests to following address:
    • http://<ip_address>/manager/expired/
  4. When the request is send to a server it will block itself and respond with the status, TRUE or FALSE.
  5. The task checks the response if it is not blocked ( FALSE) it will retry from step 3.
  6. If the retry fails up to 3 times it should notify admin with message "Unable to reach to block upon expiry, <expire_date>"
  7. If step 4 returns TRUE it should notify admin with message "Server is blocked upon expiry, <expire_date>"

Update sidebar navigation

Change navigation in following order:

  • Home
  • <horizontal bar>
  • Server 1
  • Server 2
  • <horizontal bar>
  • Add New Server
  • Accounts
  • <horizontal bar>
  • Logout

Please remove the gray item "SERVERS".

Additionally the sidebar highlight should follow which page the user is on. For example, if user is on account list page, the item in sidebar must be highlighted.

Designing show server page

Group server details as following:

  • Server name
  • Expire date
  • User limit
  • Radius Config:
    • ip address
    • subnet mask
    • gateway
  • Cisco Config:
    • ip address
    • subnet mask
    • gateway
    • ip range
  • DNS:
    • DNS1
    • DNS2
  • Login details:
    • url1
    • username1
    • password1
    • url2
    • username2
    • password2

Additionally change the flash message design as on twitter bootstrap alert

Dashboard for servers

Add a dashboard page looks like:
dashboard

You need to know followings:

  • Scheduled task to run every 1 minute. It will check all server connections. cron.yaml shows sample implementation.
  • Sample cron function will help you to understand how to iterate through the servers.
  • Track connection status in a model by pinging each of them. You can fetch_server_url("http://1.1.1.1/", retry_count=3) and check the return value if it has content.

Please include jquery sparkline and use bar chart to display the connection chart.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.