1. 15 Sep, 2015 1 commit
    • Julien Muchembled's avatar
      WIP: Make admin node a web-app · 10d8f0ce
      Julien Muchembled authored
      The goal is to get rid off the neoctl command-line tool, and to manage the
      cluster via a web browser, or tools like 'wget'. Then, it will be possible to
      provide an web user interface to connect to the underlying DB of any storage
      node, usually a SQL client.
      The design of admin app is finished:
      - it's threaded like client's
      - it's a WSGI app
      I also hacked a HTTP API as quickly as possible to make all tests pass.
      - define a better HTTP API
      - there's no UI at all yet
      - remove all unused packets from the protocol (those that were only used
        between neoctl and admin node)
      There's currently no UI implemented.
      There are a few dead files (not deleted yet) in case that they contain a few
      pieces of useful code:
  2. 21 May, 2015 1 commit
  3. 07 Jan, 2014 1 commit
  4. 20 Aug, 2012 2 commits
  5. 16 Aug, 2012 1 commit
  6. 01 Aug, 2012 1 commit
  7. 13 Jul, 2012 1 commit
  8. 20 Mar, 2012 1 commit
  9. 16 Mar, 2012 1 commit
  10. 13 Mar, 2012 1 commit
  11. 12 Mar, 2012 1 commit
    • Julien Muchembled's avatar
      New feature to check that partitions are replicated properly · 04f72a4c
      Julien Muchembled authored
      This includes an API change of Node.isIdentified, which now tells whether
      identification packets have been exchanged or not.
      All handlers must be updated to implement '_acceptIdentification' instead of
      overriding EventHandler.acceptIdentification: this patch only does it for
  12. 15 Feb, 2012 1 commit
  13. 17 Jan, 2012 1 commit
  14. 06 Jan, 2012 1 commit
  15. 14 Sep, 2011 1 commit
  16. 08 Sep, 2011 1 commit
  17. 05 Sep, 2011 1 commit
  18. 27 Apr, 2011 1 commit
    • Julien Muchembled's avatar
      connection: make close always call handler (connectionClosed or connectionFailed) · 4b6c1387
      Julien Muchembled authored
      Main reason is that it's difficult to know in advance which side really closes
      the connection. Network events can be chaotic and this could lead to many race
      Thus, handler can be used to update any database that is somewhat redundant
      to the connection status, i.e. node status usually. Safely and less duplicated
      This change is motivated by recurrent random failures during election.
      An example of race condition was that 2 fully connected master could close the
      extra connection (the primary -> secondary one) at the same time.
      In order to stabilize lower-level code and start with reliable election process,
      code has also been simplified to not care about node states. All connections
      without exception are closed at the end of the election and states are then
      updated 1 by 1 by identification handler.
      Note that during election, there may be 2 connection per node, which makes
      difficult to update node states by connectionFailed/connectionClosed events.
      timeoutExpired & peerBroken are dropped as they are unused for the moment.
      A new API should be designed so that connectionClosed know the reason of the
      BROKEN state becomes unused.
      git-svn-id: https://svn.erp5.org/repos/neo/trunk@2732 71dcc9de-d417-0410-9af5-da40c76e7ee4
  19. 23 Mar, 2011 1 commit
  20. 22 Mar, 2011 2 commits
    • Julien Muchembled's avatar
      admin: use 'boostrap' flag to discard partition changes received too early · a54aada5
      Julien Muchembled authored
      This should fix the following random failure:
      Traceback (most recent call last):
        File "neo/tests/functional/__init__.py", line 140, in start
          execfile(command, {"__name__": "__main__"})
        File "./neoadmin", line 22, in <module>
        File "neo/scripts/neoadmin.py", line 66, in main
        File "neo/admin/app.py", line 103, in run
        File "neo/lib/event.py", line 100, in poll
        File "neo/lib/connection.py", line 532, in process
          self._handlers.handle(self, packet)
        File "neo/lib/connection.py", line 158, in handle
          self._handle(connection, packet)
        File "neo/lib/connection.py", line 174, in _handle
          handler.packetReceived(connection, packet)
        File "neo/lib/handler.py", line 93, in packetReceived
          self.dispatch(conn, packet)
        File "neo/admin/handler.py", line 142, in dispatch
          super(MasterEventHandler, self).dispatch(conn, packet)
        File "neo/lib/handler.py", line 57, in dispatch
          method(conn, *args)
        File "neo/admin/handler.py", line 156, in sendPartitionTable
          self.app.pt.load(ptid, row_list, self.app.nm)
        File "neo/lib/pt.py", line 219, in load
          assert node is not None
      git-svn-id: https://svn.erp5.org/repos/neo/trunk@2680 71dcc9de-d417-0410-9af5-da40c76e7ee4
    • Julien Muchembled's avatar
      admin: factorize code (re)initializing application · 5917e6e8
      Julien Muchembled authored
      git-svn-id: https://svn.erp5.org/repos/neo/trunk@2679 71dcc9de-d417-0410-9af5-da40c76e7ee4
  21. 17 Jan, 2011 1 commit
  22. 05 Nov, 2010 1 commit
  23. 29 Oct, 2010 1 commit
  24. 27 Aug, 2010 1 commit
  25. 15 May, 2010 1 commit
    • Grégory Wisniewski's avatar
      Answer the partition table in one packet. · 39465fec
      Grégory Wisniewski authored
      SendPartitionTable packet was sent between Ask and Answer PartitionTable
      packets, as notifications. In this case, the only purpose of the 'Answer'
      was to check that the partition table was filled. The 'Ask' allowed also
      to request a part of the partitions but was not used and redundant with
      AskPartitionList for neoctl.
      This commit include the following work:
      - The partition table is always send in one packet.
      - The full partition table is always requested with AskPartitionTable
      - The full partition table is notified with SendPartitionTable
      - Client node process the answer in the bootstrap handler.
      - Admin can receive answer *and* notifications for the partition table.
      - Move the log calls to the pt.py module
      - Add pt.getRowList() to factorise the code.
      - Build partition table packets out of the loop when possible
      - Always load inconditionnaly the partition table in generic pt.py
      git-svn-id: https://svn.erp5.org/repos/neo/trunk@2114 71dcc9de-d417-0410-9af5-da40c76e7ee4
  26. 01 Apr, 2010 1 commit
  27. 26 Mar, 2010 2 commits
  28. 08 Mar, 2010 1 commit
  29. 19 Feb, 2010 1 commit
  30. 01 Feb, 2010 2 commits
  31. 28 Jan, 2010 1 commit
  32. 13 Jan, 2010 1 commit
  33. 02 Nov, 2009 1 commit
  34. 07 Oct, 2009 1 commit
  35. 05 Oct, 2009 1 commit
  36. 01 Oct, 2009 1 commit