1. 05 Apr, 2017 1 commit
    • Kirill Smelkov's avatar
      zodbinfo + zodb tool + open storages by URL · db3b84ec
      Kirill Smelkov authored
      Hello up there.
      
      Recently with Ivan we needed a way to obtain last transaction ID of a ZODB storage for resiliency checking. For this `zodb info` utility to print general information about a ZODB database is introduced. Along the way, as it was already planned, all zodbtools utilities are now covered by only one `zodb` command which can invoke other subcommands and show help topics. I also used the occassion to switch how storages are specified from being  ZConfig-file-always to be specified by URL e.g.
      
           neo://neo1@127.0.0.1:24573
           zeo://...
           file://...
      
      without loosing generality because zconfig:// scheme is also supported.
      
      Please find more details about all changes in individal commit messages.
      
      Thanks for feedback,  
      Kirill
      
      /cc @kazuhiko, @jm, @vpelletier, @jerome, @Tyagov, @klaus, @alain.takoudjou, @rafael
      /reviewed-on nexedi/zodbtools!2
      db3b84ec
  2. 04 Apr, 2017 4 commits
    • Kirill Smelkov's avatar
      Zodbinfo - Tool to print general information about a ZODB database · 37b9fbde
      Kirill Smelkov authored
      Either all general parameters at once:
      
          $ zodb info neo://neo1@127.0.0.1:24573
          name=NEOStorage(neo1)
          size=0
          last_tid=03be7484ddc7f6ee
      
      or one particular parameter:
      
          $ zodb info neo://neo1@127.0.0.1:24573 last_tid
          03be7484ddc7f6ee
      37b9fbde
    • Kirill Smelkov's avatar
      Allow internal clients to specify intended access mode - read-only or read-write · bfeb1690
      Kirill Smelkov authored
      Most of our tools need only read access for working. However e.g.
      FileStorage, when opened in read-write mode, automatically creates
      database file and index.
      
      This way if database is opened in read-write mode a simple typo in path,
      e.g. to `zodb dump path` would lead to:
      
      - new database at path will be created
      - the dump will print nothing (empty database)
      - exit status will be 0 (ok) and no error will be reported.
      
      For this reason it is better tools declare access level they need so for
      read-only access request we can catch it with an error from storage.
      
      This, however, requires quite recent ZODB to work:
      
      https://github.com/zopefoundation/ZODB/pull/153
      
      P.S.
      
      We don't want to force users to always specify read-only in URLs or
      zconf files because:
      
      - this is error prone
      - URL or zconf can be though as of file
      - when a program opens a file the program, not file, declares which type
        of access it wants.
      
      That's why access mode declaration has to be internal.
      bfeb1690
    • Kirill Smelkov's avatar
      Switch to opening storages by URL · 82b06413
      Kirill Smelkov authored
      Previously for specifying a storage we were requiring users to create
      zconfig file and put information about storage there. This is not always
      convenient e.g. for quickly inspecting a file storage or a NEO instance
      here and there for which address and name is already at hand.
      
      So thanks to zodburi we can switch to specifying storages by URL without
      loosing generality as there is still zconfig:// schema which allows to
      configure storages zconfig way.
      
      P.S. for convenience we allow paths without schema to be treated as
          FileStorage (i.e. file:// schema is implicitly used).
      
      P.P.S. zodbanalyze is not affected (for now ?) as it currently
          works with FileStorage only.
      
      [1] http://docs.pylonsproject.org/projects/zodburi/
      82b06413
    • Kirill Smelkov's avatar
      zodb - Tool to drive them all · 984cfe22
      Kirill Smelkov authored
      We already have 3 commands in zodbtools suite (zodbanalyze, zodbdump &
      zodbcmp) and this is going to grow. And it was already noted some time
      ago with TODO (in 66946b8d) that we need only one command driver to
      invoke everything.
      
      So do it: introduce `zodb` command which can invoke other subcommands
      and show general help or help for subcommand or a topic.
      
      The structure is modelled after `git` and `go` commands. Help topics
      are for now empty but we'll add one help topic in the next patch.
      984cfe22
  3. 30 Mar, 2017 1 commit
    • Kirill Smelkov's avatar
      Clarify licensing · 9e4305b8
      Kirill Smelkov authored
      - Nexedi adheres to GPLv3+ with wide exception for Free/Open-source
        software. Use this for our original work.
      
      - Zodbanalyze was initially developed by Zope corp & co. See
      
        d86d04dc	(initial copy of ZODB3-3.9.7's ZODB/scripts/analyze.py.)
        ab17cf2d	(Hook in Nexedi's zodbanalyze)
      
        So follow original Zope's licensing terms for zodbanalyze.
      9e4305b8
  4. 14 Mar, 2017 1 commit
  5. 17 Nov, 2016 16 commits
  6. 16 Nov, 2016 5 commits