1 Eylül 2014 Pazartesi

cesi (Centralized Supervisor Interface)

    Supervisor had an interface but there were some shortcomings in the existing interface. Some shortcomings in the existing interface :

    -- Interface allows process management where supervisor's installed on computers but API allows management remote computers's process.

    -- No authorization. Anyone who can see the interface can do what you want.

    -- Process management were made without filters.

    I did my internship this summer with Kaan at Gamegos. We wrote an interface that complement these deficiencies. We use Python Flask and Jquery. I did not pack for now. I've described how to install at README. I'll explain the use of the interface on this blog.

    You can find the project here

  DASHBOARD
--------------------------

    This page is the first page you will see when the program runs. We can see that the total number of nodes , number of connected nodes and number of not connected nodes. Also we can see total number of process , number of running process, number of stopped process and the last 12 lines of activity log.













    NODE
----------------
 
    Node is a feature that provides be central of this interface. Each node corresponds to a different supervisor that we contacted. We should write into /etc/cesi.conf host port username and passwors information of every supervisor that we want to connect. (Node names must be unique.):

  [node:gulsah]
 username = gulsah
 password = ***
 host = gulsah.xyz.com
 port = 9001
    
     A list opens when we click on the node. This list is a list of nodes in the configuration file. If connected node node name must be the beginning of a checkbox. If there is a problem with the connection at the beginning of the node name will be an "x". We can manage the processes of selecting the node we want.


   ENVİRONMENT
----------------------------

    Environments are communities of nodes. It is a filtering option.This option provides stop start or restart process that environment name x and node name y. We can define the environment as much as we want. Environment names must be unique.

  [environment:market]
  members = gulsah, kaan

     A list opens when we click on the environmet. This list is a list of environments in the configuration file. When clicked an environment opens a list that include nodes that connected and members of that environment . We can manage the processes of choosen nodes.











  GROUP
---------------


   Group is a feature that already exists in the program. We don't need write in /etc/cesi.conf  . It is a filtering option provides stop start or restart process that group name x and environment name y.

    When clicked group option, opens a list that groups. When clicked a group opens a list of environment which include that group name.

  *The same process must not belong to more than one group.










 



 SHOW ALL
---------------------

    Show all option provides manage all node's processes.




















     We can subselection on tables. We can checked begin of process. By clicking the button above the table, action runs for checked process.


    We must write database and activity log path into /etc/cesi.conf before programs running.

    [cesi]
    database = /x/y/userinfo.db
    activity_log = /x/y/cesi_activity.log


   USER LEVEL
-------------------------

   Admin:
   -- Only admin can add or delete a user. They can do everything related to all process.

  Standart User:
   -- Standart users can't delete or add user but can everything else.

  Only Log
  -- Only log users can view process and read processes logs.

  Read Only
  -- Read only users only can view processes.




    When program run first time default username and password are "admin". Admin change own password using by change password option. If necessarily admin can add a user what type you want. when new users logged in,  they can change own password by change password options.


User addition panel:    
















User deletion panel:



Thanks to Kaan Özdinçer for support.