Exemple #1
0
    def _startstorage(self):
        """ start postgresql db and nidus storage manager & connect to db """
        # do we have a password
        if not self._pwd:
            pwd = self._getpwd()
            if pwd is None:
                self.logwrite("Password entry canceled. Cannot continue",
                              gui.LOG_WARN)
                return
            self._pwd = pwd

        # start necessary storage components
        flags = bits.bitmask_list(_STATE_FLAGS_, self._state)
        if not flags['store']:
            self.logwrite("Starting PostgreSQL...", gui.LOG_NOTE)
            if not startpsql(self._pwd):
                self.logwrite("Failed to start PostgreSQL", gui.LOG_ERR)
                return
            else:
                self.logwrite("PostgreSQL started")

        # connect to db
        flags = bits.bitmask_list(_STATE_FLAGS_, self._state)
        if not flags['conn'] and flags['store']:
            self.logwrite("Connected to database...", gui.LOG_NOTE)
            self._conn, msg = cmdline.psqlconnect(self._conf['strore'])
            if self._conn is None:
                self.logwrite(msg, gui.LOG_ERR)
                return
            else:
                self.logwrite("Connected to database")

        self._updatestate()
        self._menuenable()
Exemple #2
0
    def _stopstorage(self):
        """ stop posgresql db, nidus storage manager & disconnect """
        # if DySKT is running, prompt for clearance
        flags = bits.bitmask_list(_STATE_FLAGS_,self._state)
        if flags['dyskt']:
            ans = self.ask('DySKT Running','Quit and lose queued data?')
            if ans == 'no': return

        # return if no storage component is running
        if not (flags['store'] or flags['conn'] or flags['nidus']): return

        # disconnect from db
        if flags['conn']: self._psqldisconnect()

        # before shutting down nidus & postgresql, confirm auto shutdown is enabled
        if not self._conf['policy']['shutdown']: return

        # shutdown nidus
        flags = bits.bitmask_list(_STATE_FLAGS_,self._state)
        if flags['nidus']:
            # do we have a password
            if not self._pwd:
                pwd = self._getpwd()
                if pwd is None:
                    self.logwrite("Password entry canceled. Cannot continue",gui.LOG_WARN)
                    return
                self._pwd = pwd

            self.logwrite("Stopping Nidus...",gui.LOG_NOTE)
            if not stopnidus(self._pwd):
                self.logwrite("Failed to stop Nidus",gui.LOG_WARN)
            else: self.logwrite("Nidus stopped")

        # shutdown postgresql (check first if polite)
        if self._conf['policy']['polite'] and self._bSQL: return
        flags = bits.bitmask_list(_STATE_FLAGS_,self._state)
        if flags['store']:
            # do we have a password
            if not self._pwd:
                pwd = self._getpwd()
                if pwd is None:
                    self.logwrite("Password entry canceled. Cannot continue",gui.LOG_WARN)
                    return
                self._pwd = pwd

            self.logwrite("Stopping PostgreSQL...",gui.LOG_NOTE)
            if not stoppsql(self._pwd):
                self.logwrite("Failed to stop PostgreSQL",gui.LOG_WARN)
            else: self.logwrite("PostgreSQL stopped")

        self._updatestate()
        self._menuenable()
Exemple #3
0
    def _startsensor(self):
        """ starts the Iyri sensor """
        flags = bits.bitmask_list(_STATE_FLAGS_, self._state)
        if flags['store'] and not flags['iyri']:
            # do we have a password
            if not self._pwd:
                pwd = self._getpwd()
                if pwd is None:
                    self.logwrite("Password entry canceled. Cannot continue",
                                  gui.LOG_WARN)
                    return
                self._pwd = pwd

            # start the sensor
            try:
                self.logwrite("Starting Iyri...", gui.LOG_NOTE)
                cmdline.service('iyrid', self._pwd)
                time.sleep(0.5)
                if not cmdline.runningservice(wraith.IYRIPID):
                    raise RuntimeError('unknown')
            except RuntimeError as e:
                self.logwrite("Error starting Iyri: {0}".format(e),
                              gui.LOG_ERR)
            else:
                self.logwrite("Iyri Started")
                self._setstate(_STATE_IYRI_)
Exemple #4
0
 def psqldelall(self):
     """ delete all data in nidus database """
     # should not be enabled unless postgres is running, we are connected
     # and a sensor is not running, but check anyway
     flags = bits.bitmask_list(_STATE_FLAGS_, self._state)
     if flags['store'] and flags['conn'] and not flags['iyri']:
         ans = self.ask('Delete Records', 'Delete all DB records?')
         self.update()
         if ans == 'no': return
         curs = None
         try:
             # get a cursor and execute the delete_all procedure
             self.logwrite("Deleting all records in database...",
                           gui.LOG_NOTE)
             curs = self._conn.cursor()
             curs.callproc('delete_all')
             self._conn.commit()
             self.logwrite("Deleted all records")
         except psql.Error as e:
             self._conn.rollback()
             self.logwrite(
                 "Delete Failed<{0}: {1}>".format(e.pgcode, e.pgerror),
                 gui.LOG_ERR)
         finally:
             if curs: curs.close()
Exemple #5
0
 def psqlfix(self):
     """
      fix any open-ended periods left over by errors. An error or kill -9
      may leave periods in certain tables as NULL-ended which will throw an
      error during insert of new records
     """
     # should not be enabled unless postgres is running, we are connected
     # and no sensors are running
     flags = bits.bitmask_list(_STATE_FLAGS_, self._state)
     if flags['store'] and flags['conn'] and not flags['iyri']:
         curs = None
         try:
             self.logwrite("Fixing null-ended records in database...",
                           gui.LOG_NOTE)
             curs = self._conn.cursor()
             curs.callproc("fix_nullperiod")
             self._conn.commit()
             self.logwrite("Fixed all null-ended records")
         except psql.Error as e:
             self._conn.rollback()
             self.logwrite(
                 "Error fixing records <{0}:{1}>".format(
                     e.pgcode, e.pgerror), gui.LOG_ERR)
         finally:
             if curs: curs.close()
Exemple #6
0
    def _startsensor(self):
        """ starts the DySKT sensor """
        flags = bits.bitmask_list(_STATE_FLAGS_, self._state)
        if flags['store'] and flags['nidus'] and not flags['dyskt']:
            # do we have a password
            if not self._pwd:
                pwd = self._getpwd()
                if pwd is None:
                    self.logwrite("Password entry canceled. Cannot continue",
                                  gui.LOG_WARN)
                    return
                self._pwd = pwd

            # start the sensor
            try:
                self.logwrite("Starting DySKT...", gui.LOG_NOTE)
                cmdline.service('dysktd', self._pwd)
                time.sleep(0.5)
                if not cmdline.dysktrunning(wraith.DYSKTPID):
                    raise RuntimeError('unknown')
            except RuntimeError as e:
                self.logwrite("Error starting DySKT: %s" % e, gui.LOG_ERR)
            else:
                self.logwrite("DySKT Started")
                self._setstate(_STATE_DYSKT_)
Exemple #7
0
 def disconnect(self):
     """ connects to postgresql """
     # NOTE: should not be enabled if already disconnected but check anyway
     # TODO: what to do once we have data being pulled?
     flags = bits.bitmask_list(_STATE_FLAGS_,self._state)
     if flags['conn']:
         self._psqldisconnect()
         self._updatestate()
         self._menuenable()
Exemple #8
0
 def connect(self):
     """ connects to postgresql """
     # NOTE: this should not be enabled unless psql is running and we are
     # not connected, but check anyway
     flags = bits.bitmask_list(_STATE_FLAGS_,self._state)
     if not flags['conn']:
         psqlconnect(self._conf['store'])
         self._updatestate()
         self._menuenable()
Exemple #9
0
    def _startstorage(self):
        """ start postgresql db and nidus storage manager & connect to db """
        # do we have a password
        if not self._pwd:
            pwd = self._getpwd()
            if pwd is None:
                self.logwrite("Password entry canceled. Cannot continue",gui.LOG_WARN)
                return
            self._pwd = pwd

        # start necessary storage components
        flags = bits.bitmask_list(_STATE_FLAGS_,self._state)
        if not flags['store']:
            self.logwrite("Starting PostgreSQL...",gui.LOG_NOTE)
            if not startpsql(self._pwd):
                self.logwrite("Failed to start PostgreSQL",gui.LOG_ERR)
                return
            else:
                self.logwrite("PostgreSQL started")

        # start nidus
        flags = bits.bitmask_list(_STATE_FLAGS_,self._state)
        if not flags['nidus'] and flags['store']:
            self.logwrite("Starting Nidus...",gui.LOG_NOTE)
            if not startnidus(self._pwd):
                self.logwrite("Failed to start Nidus",gui.LOG_ERR)
                return
            else:
                self.logwrite("Nidus started")

        # connect to db
        flags = bits.bitmask_list(_STATE_FLAGS_,self._state)
        if not flags['conn'] and flags['store']:
            self.logwrite("Connected to database...",gui.LOG_NOTE)
            self._conn,msg = psqlconnect(self._conf['strore'])
            if self._conn is None:
                self.logwrite(msg,gui.LOG_ERR)
                return
            else:
                self.logwrite("Connected to database")

        self._updatestate()
        self._menuenable()
Exemple #10
0
    def _startstorage(self):
        """ start postgresql db and nidus storage manager & connect to db """
        # do we have a password
        if not self._pwd:
            pwd = self._getpwd()
            if pwd is None:
                self.logwrite("Password entry canceled. Cannot continue",gui.LOG_WARN)
                return
            self._pwd = pwd

        # start necessary storage components
        flags = bits.bitmask_list(_STATE_FLAGS_,self._state)
        if not flags['store']: self._startpsql()

        # start nidus
        flags = bits.bitmask_list(_STATE_FLAGS_,self._state)
        if not flags['nidus'] and flags['store']: self._startnidus()

        # connect to db
        flags = bits.bitmask_list(_STATE_FLAGS_,self._state)
        if not flags['conn'] and flags['store']: self._psqlconnect()
Exemple #11
0
    def _startstorage(self):
        """ start postgresql db and nidus storage manager & connect to db """
        # do we have a password
        if not self._pwd:
            pwd = self._getpwd()
            if pwd is None:
                self.logwrite("Password entry canceled. Cannot continue",
                              gui.LOG_WARN)
                return
            self._pwd = pwd

        # start necessary storage components
        flags = bits.bitmask_list(_STATE_FLAGS_, self._state)
        if not flags['store']: self._startpsql()

        # start nidus
        flags = bits.bitmask_list(_STATE_FLAGS_, self._state)
        if not flags['nidus'] and flags['store']: self._startnidus()

        # connect to db
        flags = bits.bitmask_list(_STATE_FLAGS_, self._state)
        if not flags['conn'] and flags['store']: self._psqlconnect()
Exemple #12
0
 def nidusstop(self):
     """ stops nidus storage manager """
     # should not be enabled if nidus is not running, but check anyway
     flags = bits.bitmask_list(_STATE_FLAGS_, self._state)
     if flags['nidus']:
         # do we have a password
         if not self._pwd:
             pwd = self._getpwd()
             if pwd is None:
                 self.logwrite("Password entry canceled. Cannot continue",
                               gui.LOG_WARN)
                 return
             self._pwd = pwd
         self._stopnidus()
         self._updatestate()
         self._menuenable()
Exemple #13
0
 def nidusstop(self):
     """ stops nidus storage manager """
     # should not be enabled if nidus is not running, but check anyway
     flags = bits.bitmask_list(_STATE_FLAGS_,self._state)
     if flags['nidus']:
         # do we have a password
         if not self._pwd:
             pwd = self._getpwd()
             if pwd is None:
                 self.logwrite("Password entry canceled. Cannot continue",
                               gui.LOG_WARN)
                 return
             self._pwd = pwd
         self._stopnidus()
         self._updatestate()
         self._menuenable()
Exemple #14
0
 def psqlstop(self):
     """ starts postgresql """
     # should not be enabled if postgresql is not running, but check anyway
     flags = bits.bitmask_list(_STATE_FLAGS_,self._state)
     if flags['store'] and not flags['dyskt']:
         # do we have a password
         if not self._pwd:
             pwd = self._getpwd()
             if pwd is None:
                 self.logwrite("Password entry canceled. Cannot continue",
                               gui.LOG_WARN)
                 return
             self._pwd = pwd
         self._stoppsql()
         self._updatestate()
         self._menuenable()
Exemple #15
0
 def psqlstop(self):
     """ starts postgresql """
     # should not be enabled if postgresql is not running, but check anyway
     flags = bits.bitmask_list(_STATE_FLAGS_, self._state)
     if flags['store'] and not flags['dyskt']:
         # do we have a password
         if not self._pwd:
             pwd = self._getpwd()
             if pwd is None:
                 self.logwrite("Password entry canceled. Cannot continue",
                               gui.LOG_WARN)
                 return
             self._pwd = pwd
         self._stoppsql()
         self._updatestate()
         self._menuenable()
Exemple #16
0
 def nidusstart(self):
     """ starts nidus storage manager """
     # NOTE: should not be enabled if postgresql is not running but check anyway
     flags = bits.bitmask_list(_STATE_FLAGS_,self._state)
     if not flags['nidus']:
         # do we have a password
         if not self._pwd:
             pwd = self._getpwd()
             if pwd is None:
                 self.logwrite("Password entry canceled. Cannot continue",
                               gui.LOG_WARN)
                 return
             self._pwd = pwd
         if startnidus(self._pwd):
             self._updatestate()
             self._menuenable()
         else:
             self.logwrite("Failed to start Nidus",gui.LOG_ERR)
Exemple #17
0
 def psqlstart(self):
     """ starts postgresql """
     # NOTE: should not be enabled if postgresql is already running but check anyway
     flags = bits.bitmask_list(_STATE_FLAGS_,self._state)
     if not flags['store']:
         # do we have a password
         if not self._pwd:
             pwd = self._getpwd()
             if pwd is None:
                 self.logwrite("Password entry canceled. Cannot continue",
                               gui.LOG_WARN)
                 return
             self._pwd = pwd
         self.logwrite("Starting Postgresql...",gui.LOG_NOTE)
         if startpsql(self._pwd):
             self.logwrite('Postgresql started')
             self._updatestate()
             self._menuenable()
         else:
             self.logwrite("Postgresql failed to start")
Exemple #18
0
 def psqldelall(self):
     """ delete all data in nidus database """
     # should not be enabled unless postgres is running, we are connected
     # and a sensor is not running, but check anyway
     flags = bits.bitmask_list(_STATE_FLAGS_,self._state)
     if flags['store'] and flags['conn'] and not flags['dyskt']:
         ans = self.ask('Delete Records','Delete all DB records?')
         if ans == 'no': return
         curs = None
         try:
             # get a cursor and execute the delete_all procedure
             self.logwrite("Deleting all records in database...",gui.LOG_NOTE)
             curs = self._conn.cursor()
             curs.callproc('delete_all')
             self._conn.commit()
             self.logwrite("Deleted all records")
         except psql.Error as e:
             self._conn.rollback()
             self.logwrite("Delete Failed<%s: %s>" % (e.pgcode,e.pgerror),gui.LOG_ERR)
         finally:
             if curs: curs.close()
Exemple #19
0
    def _stopsensor(self):
        """ stops the DySKT sensor """
        flags = bits.bitmask_list(_STATE_FLAGS_,self._state)
        if flags['dyskt']:
            # do we have a password
            if not self._pwd:
                pwd = self._getpwd()
                if pwd is None:
                    self.logwrite("Password entry canceled. Cannot continue",
                                  gui.LOG_WARN)
                    return
                self._pwd = pwd

            # stop the sensor
            try:
                self.logwrite("Shutting down DySKT...",gui.LOG_NOTE)
                cmdline.service('dysktd',self._pwd,False)
            except RuntimeError as e:
                self.logwrite("Error shutting down DySKT: %s" % e,gui.LOG_ERR)
            else:
                self._setstate(_STATE_DYSKT_,False)
                self.logwrite("DySKT shut down")
Exemple #20
0
 def psqlfix(self):
     """
      fix any open-ended periods left over by errors. An error or kill -9
      may leave periods in certain tables as NULL-ended which will throw an
      error during insert of new records
     """
     # should not be enabled unless postgres is running, we are connected
     # and a sensor is not running, but check anyway
     flags = bits.bitmask_list(_STATE_FLAGS_,self._state)
     if flags['store'] and flags['conn'] and not flags['dyskt']:
         curs = None
         try:
             self.logwrite("Fixing null-ended records in database...",gui.LOG_NOTE)
             curs = self._conn.cursor()
             curs.callproc("fix_nullperiod")
             self._conn.commit()
             self.logwrite("Fixed all null-ended records")
         except psql.Error as e:
             self._conn.rollback()
             self.logwrite("Error fixing records <%s: %s>" % (e.pgcode,e.pgerror),
                           gui.LOG_ERR)
         finally:
             if curs: curs.close()
Exemple #21
0
    def _stopsensor(self):
        """ stops the Iyri sensor """
        flags = bits.bitmask_list(_STATE_FLAGS_, self._state)
        if flags['iyri']:
            # do we have a password
            if not self._pwd:
                pwd = self._getpwd()
                if pwd is None:
                    self.logwrite("Password entry canceled. Cannot continue",
                                  gui.LOG_WARN)
                    return
                self._pwd = pwd

            # stop the sensor
            try:
                self.logwrite("Shutting down Iyri...", gui.LOG_NOTE)
                cmdline.service('iyrid', self._pwd, False)
            except RuntimeError as e:
                self.logwrite("Error shutting down Iyri: {0}".format(e),
                              gui.LOG_ERR)
            else:
                self._setstate(_STATE_IYRI_, False)
                self.logwrite("Iyri shut down")
Exemple #22
0
    def _startsensor(self):
        """ starts the DySKT sensor """
        flags = bits.bitmask_list(_STATE_FLAGS_,self._state)
        if flags['store'] and flags['nidus'] and not flags['dyskt']:
            # do we have a password
            if not self._pwd:
                pwd = self._getpwd()
                if pwd is None:
                    self.logwrite("Password entry canceled. Cannot continue",
                                  gui.LOG_WARN)
                    return
                self._pwd = pwd

            # start the sensor
            try:
                self.logwrite("Starting DySKT...",gui.LOG_NOTE)
                cmdline.service('dysktd',self._pwd)
                time.sleep(0.5)
                if not cmdline.dysktrunning(wraith.DYSKTPID): raise RuntimeError('unknown')
            except RuntimeError as e:
                self.logwrite("Error starting DySKT: %s" % e,gui.LOG_ERR)
            else:
                self.logwrite("DySKT Started")
                self._setstate(_STATE_DYSKT_)
Exemple #23
0
 def psqlisrunning(self):
     return bits.bitmask_list(_STATE_FLAGS_, self._state)['store']
Exemple #24
0
 def isconnected(self):
     return bits.bitmask_list(_STATE_FLAGS_, self._state)['conn']
Exemple #25
0
    def _menuenable(self):
        """ enable/disable menus as necessary """
        # get all flags
        flags = bits.bitmask_list(_STATE_FLAGS_,self._state)

        # adjust storage menu
        # easiest for storage is to disable all and then only enable relevant
        # always allow Nidus->config, Nidus->View Log
        self.mnuStorage.entryconfig(0,state=tk.DISABLED)      # all start
        self.mnuStorage.entryconfig(1,state=tk.DISABLED)      # all stop
        self.mnuStoragePSQL.entryconfig(0,state=tk.DISABLED)  # psql start
        self.mnuStoragePSQL.entryconfig(1,state=tk.DISABLED)  # psql stop
        self.mnuStoragePSQL.entryconfig(3,state=tk.DISABLED)  # connect 2 psql
        self.mnuStoragePSQL.entryconfig(4,state=tk.DISABLED)  # disconnect from psql
        self.mnuStoragePSQL.entryconfig(6,state=tk.DISABLED)  # psql fix
        self.mnuStoragePSQL.entryconfig(7,state=tk.DISABLED)  # psql delete all
        self.mnuStorageNidus.entryconfig(0,state=tk.DISABLED) # nidus start
        self.mnuStorageNidus.entryconfig(1,state=tk.DISABLED) # nidus stop
        self.mnuNidusLog.entryconfig(1,state=tk.DISABLED)     # nidus log clear

        if flags['store']:
            # storage is running enable stop all, stop postgresql (if dyskt is
            # not running)
            self.mnuStorage.entryconfig(1,state=tk.NORMAL)
            if not flags['dyskt']: self.mnuStoragePSQL.entryconfig(1,state=tk.NORMAL)
        else:
            # storage is not running, enable start all, start postgresql
            self.mnuStorage.entryconfig(0,state=tk.NORMAL)
            self.mnuStoragePSQL.entryconfig(0,state=tk.NORMAL)

        if flags['nidus']:
            # nidus is running, enable stop all, stop nidus
            self.mnuStorage.entryconfig(1,state=tk.NORMAL)
            self.mnuStorageNidus.entryconfig(1,state=tk.NORMAL)
        else:
            # nidus is not running, enable start all & clear nidus log
            # enable start nidus only if postgres is running
            self.mnuStorage.entryconfig(0,state=tk.NORMAL)
            self.mnuStorageNidus.entryconfig(0,state=tk.NORMAL)
            self.mnuNidusLog.entryconfig(1,state=tk.NORMAL)

        if flags['conn']:
            # connected to psql, enable stop all and disconnect
            # if no DysKT is running, enable fix psql and delete all
            self.mnuStorage.entryconfig(1,state=tk.NORMAL)
            self.mnuStoragePSQL.entryconfig(4,state=tk.NORMAL)
            if not flags['dyskt']:
                self.mnuStoragePSQL.entryconfig(6,state=tk.NORMAL)  # psql fix
                self.mnuStoragePSQL.entryconfig(7,state=tk.NORMAL)  # psql delete all
        else:
            # disconnected, enable start all, enable connect if postgres is running
            self.mnuStorage.entryconfig(0,state=tk.NORMAL)
            if flags['store']: self.mnuStoragePSQL.entryconfig(3,state=tk.NORMAL)

        # adjust dyskt menu
        if not flags['store'] and not flags['nidus']:
            # cannot start/stop/control dyskt unless nidus & postgres is running
            self.mnuDySKT.entryconfig(0,state=tk.DISABLED)  # start
            self.mnuDySKT.entryconfig(1,state=tk.DISABLED)  # stop
            self.mnuDySKT.entryconfig(3,state=tk.DISABLED)  # ctrl panel
            self.mnuDySKTLog.entryconfig(1,state=tk.NORMAL) # clear log
            self.mnuDySKT.entryconfig(7,state=tk.NORMAL)    # configure
        else:
            if flags['dyskt']:
                # DySKT sensor is running
                self.mnuDySKT.entryconfig(0,state=tk.DISABLED)    # start
                self.mnuDySKT.entryconfig(1,state=tk.NORMAL)      # stop
                self.mnuDySKT.entryconfig(3,state=tk.NORMAL)      # ctrl panel
                self.mnuDySKTLog.entryconfig(1,state=tk.DISABLED) # clear log
                self.mnuDySKT.entryconfig(7,state=tk.NORMAL)      # configure
            else:
                # DySKT sensor is not running
                self.mnuDySKT.entryconfig(0,state=tk.NORMAL)    # start
                self.mnuDySKT.entryconfig(1,state=tk.DISABLED)  # stop
                self.mnuDySKT.entryconfig(3,state=tk.DISABLED)  # ctrl panel
                self.mnuDySKTLog.entryconfig(1,state=tk.NORMAL) # clear log
                self.mnuDySKT.entryconfig(7,state=tk.NORMAL)    # configure
Exemple #26
0
 def iyriisrunning(self):
     return bits.bitmask_list(_STATE_FLAGS_, self._state)['iyri']
Exemple #27
0
 def isexiting(self):
     return bits.bitmask_list(_STATE_FLAGS_, self._state)['exit']
Exemple #28
0
def mcsknown_list(mn): return bitmask_list(_MCS_KNOWN_,mn)
def mcsknown_get(mn,f):
Exemple #29
0
def present_list(mn): return bitmask_list(_PRESENT_,mn)
def present_get(mn,f):
Exemple #30
0
    def getstateflags(self): return bits.bitmask_list(_STATE_FLAGS_,self._state)

#### OVERRIDES

    def _initialize(self):
Exemple #31
0
def vhtcoding_list(mn): return bitmask_list(_VHT_CODING_,mn)
def vhtcoding_get(mn,f):
Exemple #32
0
def vhtknown_list(mn): return bitmask_list(_VHT_KNOWN_,mn)
def vhtknown_get(mn,f):
Exemple #33
0
def ampduflags_list(mn): return bitmask_list(_AMPDU_FLAGS_,mn)
def ampduflags_get(mn,f):
Exemple #34
0
    def _menuenable(self):
        """ enable/disable menus as determined by the current state """
        # get all flags
        flags = bits.bitmask_list(_STATE_FLAGS_, self._state)

        # view sessions
        if flags['conn']: self._mnuData.entryconfig(4, state=tk.NORMAL)
        else: self._mnuData.entryconfig(4, state=tk.DISABLED)

        # start/stop postgres
        if flags['store']:
            # disable start, enable stop (if Iyri is not running)
            self._mnuStorage.entryconfig(0, state=tk.DISABLED)
            if not flags['iyri']:
                self._mnuStorage.entryconfig(1, state=tk.NORMAL)
        else:
            # enable start and disable stop
            self._mnuStorage.entryconfig(0, state=tk.NORMAL)
            self._mnuStorage.entryconfig(1, state=tk.DISABLED)

        # connect/disconnect 2 postgres
        if flags['conn']:
            # disable connect and enable disconnect
            self._mnuStorage.entryconfig(3, state=tk.DISABLED)
            self._mnuStorage.entryconfig(4, state=tk.NORMAL)
        else:
            # enable connect and disable disconnect
            self._mnuStorage.entryconfig(3, state=tk.NORMAL)
            self._mnuStorage.entryconfig(4, state=tk.DISABLED)

        # fix db and delete all (only allowed if connected and Iyri is not running)
        if flags['conn']:
            if flags['iyri']:
                self._mnuStorage.entryconfig(6, state=tk.DISABLED)
                self._mnuStorage.entryconfig(7, state=tk.DISABLED)
            else:
                self._mnuStorage.entryconfig(6, state=tk.NORMAL)
                self._mnuStorage.entryconfig(7, state=tk.NORMAL)
        else:
            self._mnuStorage.entryconfig(6, state=tk.DISABLED)
            self._mnuStorage.entryconfig(7, state=tk.DISABLED)

        # Iyri
        if not flags['store']:
            # cannot start/stop/control Iyri unless postgres is running
            self._mnuIyri.entryconfig(0, state=tk.DISABLED)  # start
            self._mnuIyri.entryconfig(1, state=tk.DISABLED)  # stop
            #### TODO: uncomment below after test ctrl panel
            #self._mnuIyri.entryconfig(3,state=tk.DISABLED)  # ctrl panel
            self._mnuIyriLog.entryconfig(1, state=tk.NORMAL)  # clear log
            self._mnuIyri.entryconfig(7, state=tk.NORMAL)  # configure
        else:
            if flags['iyri']:
                # Iyri sensor is running
                self._mnuIyri.entryconfig(0, state=tk.DISABLED)  # start
                self._mnuIyri.entryconfig(1, state=tk.NORMAL)  # stop
                self._mnuIyri.entryconfig(3, state=tk.NORMAL)  # ctrl panel
                self._mnuIyriLog.entryconfig(1, state=tk.DISABLED)  # clear log
                self._mnuIyri.entryconfig(7, state=tk.NORMAL)  # configure
            else:
                # Iyri sensor is not running
                self._mnuIyri.entryconfig(0, state=tk.NORMAL)  # start
                self._mnuIyri.entryconfig(1, state=tk.DISABLED)  # stop
                #### TODO: uncomment below after test ctrl panel
                #self._mnuIyri.entryconfig(3,state=tk.DISABLED)  # ctrl panel
                self._mnuIyriLog.entryconfig(1, state=tk.NORMAL)  # clear log
                self._mnuIyri.entryconfig(7, state=tk.NORMAL)  # configure
Exemple #35
0
def chflags_list(mn): return bitmask_list(_CHANNEL_FLAGS_,mn)
def chflags_get(mn,f):
Exemple #36
0
def rxflags_list(mn): return bitmask_list(_RX_FLAGS_,mn)
def rxflags_get(mn,f):