Files modified by: verkout Date: 2019-03-25 07:59:04 (UTC)

Comments:
HV: * Save "clock_set=" parameter and restore after transfer

Files modified by: verkout Date: 2018-08-22 07:21:15 (UTC)

Comments:
HV: * Surprise! There exist:
      Linux'en with Python's that don't have no collections.Counter?!!

Files modified by: verkout Date: 2018-07-12 14:51:59 (UTC)

Comments:
HV: * Q (SimoneB): "Why does m5copy on SRC machine need a filelist in some cases?"
         (attempting to use local wildcards on mk6:// but failing)
      A: Uhhhh ... turns out local wildcard support for mk6:// and vbs://, whilst
         advertised, apparently does not work AT ALL! *ouch*

      Is now fixed; when using m5copy on Mark6 or FlexBuff, wildcards can
      now be used for selecting scan(s) to push outward.

      Whilst at it, it now actually honours an optional "/DISKS/" override
      which can be given on the m5copy command line (see m5copy help);
      "DISKS" may contain anything the "set_disks=" command swallows (see
      jive5ab manual for details).

    * Q (MartinL): "Getting scan list from very remote Mark5 (e.g. China)
                    is VERY slow, so startup overhead is large"
      A: m5copy first pulls the scan list over and /then/ filters
         out the ones the user actually wants. Eeks.

      Changed such that if non-numerical scan selection is used, the remote
      jive5ab is asked to do the crude filtering first, such that only scan
      details are requested for potentially matching scans.

      The problem is that "scan_set=<pattern>;" + "scan_set=next;" do not
      have full-blown regex support - see "scan_set=" documentation in the
      jive5ab manual.
      In this version the list of returned scans is post processed to make
      it work for most cases. Perhaps in a future jive5ab release
      "scan_set=<regex>" + "scan_set=next;" could be implemented.

    * Q (MartinL): "On long, slow, link, many scans are short by several MBs?!"
      A: The heuristic which m5copy uses to determine if a transfer is done
         is a bit crap and it could happen that the transfer is cancelled
         before all buffered/still-in-flight data is flushed to disk

      m5copy does not know how many bytes need to be transferred. when the
      sender indicates "all data sent", m5copy turns it attention to the
      receiver, every second asking it "how many bytes have you flushed
      since I last asked?".
      If the answer is the same twice in a row, m5copy decides: ah, no more
      data is flowing, so the transfer must be done ...

      If a system is heavily loaded, or the bandwidth x delay product of the
      data link is large, it may well be that within two seconds no data is
      flushed, making m5copy erroneously think all bytes have been received.

      m5copy gained a "-e <num>" command line option: the number of times
      it must see an identical byte count from the receiver before deciding
      all data has arrived. (Default is 2 - the current heuristic).

      Not a proper fix but maybe a good enough one to circumvent most
      occurrences of this issue as it seems to be mostly linked to particular
      site(s) or link(s).

Files modified by: verkout Date: 2018-06-05 07:36:11 (UTC)

Comments:
HV: * longer timeout on scan_set for FlexBuff/Mk6
    * transfer to VBS or MK6 should not be resumable because
      they are /recordings/ and you cannot resume a /recording/
    * MK6 => VBS transfer was not actually supported yet!

Files modified by: verkout Date: 2018-04-17 11:32:43 (UTC)

Comments:
HV: * Apply JonQ patch for even more beautiful progress display

Tag: jive5ab-2_8_2-zus Date: 2017-09-06 14:11:49 (UTC)

Tag: jive5ab-2_9_0 Date: 2017-09-06 14:11:49 (UTC)

Files modified by: jive_cc Date: 2017-09-06 14:11:49 (UTC)

Comments:
HV: * JonQ sais: for long copy actions, at the end the destination does not
      respond anymore; maybe network equipment has dropped the tcp
      connection. So add "keepalive" polling requests to the destination
      (the source was already polled, waiting for it to complete).
    * FranzK: trying to cornerturn VDIF data using m5copy+jive5ab =>
      VDIF not supported as *input* format. Now fixed.

Tag: jive5ab-2_8_1 Date: 2017-05-16 07:17:18 (UTC)

Files modified by: jive_cc Date: 2017-05-16 07:17:18 (UTC)

Comments:
HV: * UweB found an edgecase/due to typo in m5copy disk destination (missing
      second slash in "mk5://.../A") the bank label (or VSN, had it been that)
      was interpreted as destination scan name. m5copy now errors out if the
      destination scan looks like bank label or VSN

Files modified by: jive_cc Date: 2017-03-17 14:37:18 (UTC)

Comments:
HV: * wildcard processing on VBSSource was geborked - with "*" pattern
      nothing would match? Should be better now
    * FileSource is now much more forgiving; can use wildcards in directory
      name as well ...

Files modified by: jive_cc Date: 2017-02-13 10:22:38 (UTC)

Comments:
HV: * vbs_{fs,ls,rm} were already patched to support dots/plusses in
      recording names. Missing from the toolchain were m5copy/jive5ab themselves

Files modified by: jive_cc Date: 2017-01-11 15:02:48 (UTC)

Comments:
HV: * Ys operators report that the (changed) "record?" reply from 2.8.0 on
      FlexBuff breaks the FS - it was not at all according to documentation
      and the documentation was not according to Mark5 "record?" reply
      format. Now documentation and implementation are all consistent.

Files modified by: jive_cc Date: 2016-12-20 08:37:22 (UTC)

Comments:
HV: * Bugger. jive5ab 2.8.0 "record?" reply on FlexBuff is now different

Tag: jive5ab-2_8_0 Date: 2016-12-19 08:47:24 (UTC)

Files modified by: jive_cc Date: 2016-12-19 08:47:24 (UTC)

Comments:
BE/HV: * BE reports that duplicate scan names mess up the copying, even if
         copying by scan number [there was a "scan_set=<scan name>" buried
         in there]

Files modified by: jive_cc Date: 2016-11-22 11:24:28 (UTC)

Comments:
HV: * changes to provide working support for non-bank mode operation
      - protect=off now returns success but includes a warning if
        XLRClearWriteProtect() fails. This is necessary so next command can
        still execute (e.g. "vsn=" or "reset=erase")
      - added interface functions to query/store own+companion VSNs in UserDirectories
      - erase automatically stores both VSNs in user directory (enforced)
      - reset=erase now chooses an appropriate user directory layout
        depending on mode in stead of one fixed compiled-in type
      - personality = : [non]bank; available on 5A, 5B and 5C now
      - bank_info, bank_set, dir_info now work correctly in both bank/non-bank mode
    * net2disk updates current scan pointers and scan number as per docs

Files modified by: jive_cc Date: 2016-10-14 22:22:23 (UTC)

Comments:
JQ: - ">>>Waiting for ... to connect" now properly progress_printed (ie erased)

Files modified by: jive_cc Date: 2016-10-07 13:05:54 (UTC)

Comments:
HV: * BE report file->vbs misses bytes; rcv_bytecount was not implemented

Files modified by: jive_cc Date: 2016-10-03 18:44:04 (UTC)

Comments:
JQ: - fix up broken progress display

Tag: jive5ab-2_7_3-dev-before-timestamp Date: 2016-04-15 11:56:35 (UTC)

Tag: jive5ab-2_7_4-highrestime Date: 2016-04-15 11:56:35 (UTC)

Files modified by: jive_cc Date: 2016-04-15 11:56:35 (UTC)

Comments:
HV: * Simone Bernhardt reports that "m5copy vbs://../ file://.. --resume"
      will wait indefinitely ">>> waiting for disk2net to start".
      This happens if the file is already complete, then the "disk2net=on"
      terminates immediately. m5copy was waiting for the transfer to
      become "active" but it never would.
    * Also needed to fix up "net2file?" reply parsing for future
      "did everything arrive correctly?"

Tag: jive5ab-python-utils-1_1 Date: 2016-01-12 13:58:44 (UTC)

Files modified by: jive_cc Date: 2016-01-12 13:58:44 (UTC)

Comments:
HV: * bumped version to 2.7.3 in order to be able to detect the new feature:
      transient runtimes. A transiently created runtime will be
      automatically destroyed if the owning control connection closes.
      This will prevent a lot of dangling m5copy runtimes.

Files modified by: jive_cc Date: 2016-01-12 08:36:41 (UTC)

Comments:
HV: * BE found some race conditions in starting transfers. Fix them neatly.

Files modified by: jive_cc Date: 2015-11-13 14:23:10 (UTC)

Comments:
HV: * BE reported issue where automatic mode detection for VDIF did not
      take into account that file_check? and scan_check? return the
      _total_ VDIF frame length, ie including the VDIF header.

Tag: jive5ab-2_7_1 Date: 2015-11-10 11:16:48 (UTC)

Tag: jive5ab-2_7_1-ack Date: 2015-11-10 11:16:48 (UTC)

Tag: jive5ab-2_7_1-ack-udfix Date: 2015-11-10 11:16:48 (UTC)

Files modified by: jive_cc Date: 2015-11-10 11:16:48 (UTC)

Comments:
HV: * Helge R. and Walter A. brought to attention that Mark6 recordings
      these days appear in a "../data/.." subdirectory on the disks. To
      provide full compatibility we updated internal aliases for "1", "2"
      &cet. to incorporate the extra "/data/" directory.
      Also when scanning for eMSN's the extra "/data/" is automatically
      added to the directory name
    * opening Mark6 recording is not parallelized with one thread per
      disk, to speed up indexing
    * for specific mk6/vbs commands in m5copy allow for a larger timeout,
      as some of these commands actually might take longer than the default
      m5copy timeout value of 10 seconds
    * fixed problem in m5copy which (erroneously) detected a local->local copy as
      remote->local and then started to ask for external IP address
    * fixed percentage computation when opening FlexBuff/Mark6 recording

Tag: jive5ab-2_7_0 Date: 2015-09-17 21:58:07 (UTC)

Files modified by: jive_cc Date: 2015-09-17 21:58:07 (UTC)

Comments:
HV: * fix broken "::+<amount>" start/end byte processing
    * 'mk6' could have been a SRC uri since 2.6.1 ... (was prohibited until this fix)

Files modified by: jive_cc Date: 2015-09-17 21:03:46 (UTC)

Comments:
HV: * better automatic mode detection for VDIF on Mark5B/FlexBuff
    * fix missing array indexing on array:
         "mode=[..., ...]" and then doing "if mode=='?'" don't work dat well
    * fix missing variable and AttributeErrors in 'vbs2net()'

Tag: jive5ab-2_6_3-dev Date: 2015-09-02 10:08:01 (UTC)

Tag: jive5ab-python-utils-1_0 Date: 2015-09-02 10:08:01 (UTC)

Files modified by: jive_cc Date: 2015-09-02 10:08:01 (UTC)

Comments:
HV: * m5copy scan_check? result parsing recognizes '-' as Mark55B format (req Jon Q)
    * add support for VBS/MK6 -> DISK, inexplicably it wasn't there yet

Files modified by: jive_cc Date: 2015-08-18 10:14:35 (UTC)

Comments:
HV: * Add documentation for new command line arguments to jive5ab and m5copy

Files modified by: jive_cc Date: 2015-07-06 15:39:30 (UTC)

Comments:
HV: * Added Mark5 functions 'disk2net=', 'reset' on FlexBuff
    * Reading back MIT Haystack Mark6 recordings turned out to be
      very simple to implement in libvbs, so now we can do that too.
    * In order to support resuming a previously started transfer
      using m5copy [with file as destination]
        - "net2file=open" now returns the file size, i.e. how
          many bytes already present.
        - all transfers taking start/end byte numbers/time stamps were
          revisited and modified to Do The Right Thing (not all of them
          always did ...), e.g. "disk2net=on:..." but also "scan_set="
          had a couple of incorrectly handled corner cases
        - m5copy needs to correctly deal with amount of bytes already
          transferred, even in the face of e.g. time-range start/end byte
    * because "scan_set=", "disk2file" and "disk2net" are available on
      FlexBuff, m5copy could be enriched with transfers _from_
      FlexBuff/Mark6 (was: only FlexBuff/Mark6 as destination)
    * Implemented automatic data format detection in m5copy, needed when
      data is recorded on FlexBuff or Mark6. User can still override format
      on command line with "-mode ...."
    * jive5ab got extra command line arguments:
        "-6" to set default Mark6 disk mountpoints
        "-f mk6|flexbuff" set default recording format
    * jive5ab now also supports long command line options '--help', '--echo'
      '--message-level ...', '--[no-]buffering', '--card=..', '--port=..'
      '--mark6', '--format=mk6|flexbuff'
    * added new built-in group definition for Mark6 disks in "set_disks="
        "mk6" => "/mnt/disks/[1234]/[0-7]"
    * fix divide-by-zero floating exception in FIFOreader
    * "record=off" on FlexBuff/Mark6 sets scan to last recorded
    * "scan_check?" and "file_check?", when detecting VDIF, return the
      detected VDIF data array length in extra parameter, if possible

Tag: jive5ab-2_6_0 Date: 2015-04-01 08:16:24 (UTC)

Files modified by: jive_cc Date: 2015-04-01 08:16:24 (UTC)

Comments:
HV: * Built in support for silencing jive5ab terminal output when talking
      to jive5ab 2.6.0 and up
    * Support Mark6. Use mk6:// DST URIs to record in native Mark6 format.
      Now we can record on either FlexBuf or Mark6 in either FlexBuf or
      Mark6 format.

Files modified by: jive_cc Date: 2015-03-25 11:17:04 (UTC)

Comments:
HV: * give UDT more time to hang up between transfers
    * turn off command/reply echoing whilst polling sender for status.
      Works best with 2.6.0 and up; with jive5ab < 2.6.0 will switch
      off 'Command/Reply' echoing globally ...

Files modified by: jive_cc Date: 2015-03-25 10:51:59 (UTC)

Comments:
HV: * Proper usage of 'is not None' everywhere
    * Force specifying of '-mode ...' when writing to VBS from
      not another VBS or not doing cornerturning; VBS *must*
      know its frame size orelse ...

Files modified by: jive_cc Date: 2015-03-18 13:33:10 (UTC)

Comments:
HV: * Aard Keimpema found out that our VDIF cornerturning did not swap
      sign/mag for Mark5B data. Turned out we were doing it *twice*.
      The "8Ch2bit_hv" cornerturner has sign/mag swapping built in so
      the explicit sign/mag swapping can be deleted from the Mark5B=>VDIF
      cornerturning recipes.

Files modified by: jive_cc Date: 2015-03-11 07:40:54 (UTC)

Comments:
HV: * Fix for a > two-year-old problem: the cornerturning would produce
      invalid data if a frame is lost. Now there is a filtering step which
      drops sequences of frames if it suspects a frame was lost, after which
      it will re-sync the data stream to the output VDIF frame rate.
      (The latter was the _real_ problem. Dropping the sequence with a lost
      frame in doesn't fix that but makes sure no decorrelation of data is
      incurred.)
    * Changed some of the cornerturning recipes to make them accumulate
      the _minimum_ number of frames, not the default [which was twice as
      big]. This has no functional effect but mimimizes the amount of data
      which is dropped in case a dropped frame is detected.

Files modified by: jive_cc Date: 2015-03-11 07:35:08 (UTC)

Comments:
HV: * m5copy can act as interpreter of text files using the shebang/hashbang
      trick, allowing for transforming a 'text file with items to copy'
      to an executable script. The first line becomes a template command
      line; subsequent lines are broken up into fields and the appropriate
      fields are substituted in the template command:
         #!./m5copy -udt file://1.2.3.4{0} file://io11.bonn.mpg.de/path/
         /data/rk4011/rk4011*
         /data/on/eg087a_on_*

Files modified by: jive_cc Date: 2015-02-10 11:14:53 (UTC)

Comments:
HV: * Added '--ignore_existing' command line option. This option instructs
      m5copy to NOT fail if a file already exists on the destination, but
      skips the copy for that file instead.
      This allows for restarting a "wildcarded" transfer and skip over files
      that have already been succesfully transferred.
      Note that _only_ existence is checked, not if there is any content at
      all, let alone verification of that content.

Files modified by: jive_cc Date: 2015-02-04 13:46:14 (UTC)

Comments:
BE/HV: * "set_ipd()" on a TCP vbs->vbs transfer resulted in a thrown
         exception. "parallel_writer()" now only does the set_ipd() in
         case of non-TCP based protocols
       * m5copy was changed to prevent ratelimiting in combination with
         TCP protocol - that is unsupported

Files modified by: jive_cc Date: 2015-01-27 11:19:34 (UTC)

Comments:
HV: * D. Sichev/E.P. Boven in their tests report MD5 problems in file=>file
      transfers. Turns out the "net2file?" does not report a bytecount at
      all; it returns a constant "0", which breaks m5copy's "waiting for
      remote end to flush ..." to do what it is supposed to do.
    * m5copy "net2file" implementation needed to be changed to take into
      account that "net2file?" reply is different from what was implemented.

Files modified by: jive_cc Date: 2015-01-14 09:14:08 (UTC)

Comments:
HV: * get_local_ext_ip() was a bit too dumb:
        - 'ifconfig' => '/sbin/ifconfig'; not everyone has '/sbin/' in their
           PATH
        - now parses output of different flavours of ifconfig(8). On Mac OSX
          the output differs from that on Linux.
        - commandline "-a inet" to list only IPv4 addresses is not supported
          by all flavours of ifconfig so now 'manually' look for IPv4
          addresses in the output of ifconfig(8)
    * if m5copy detects copying into the local machine but it cannot infer
      the external IPv4 address, inform the user on how to fix it and which
      addresses were detected
    * minor edits in help text for readability (new sentence, comma, layout)

Files modified by: jive_cc Date: 2014-12-11 15:25:19 (UTC)

Comments:
HV: * "disk2net=on" can take a long time - so we must wait for the state to
      change to "active" (it remains in "connected", which breaks the
      ".progress() method)

Files modified by: jive_cc Date: 2014-12-11 09:02:44 (UTC)

Comments:
HV: * Of course, it's "time.sleep()", not "timer.sleep()" ...
      Thanks for not compile time checking guys!

Files modified by: jive_cc Date: 2014-12-09 11:12:49 (UTC)

Comments:
HV: * m5copy should accept a return value of "1" from
      "disk2net=connect:...", which jive5ab eventually will start to yield

Files modified by: jive_cc Date: 2014-12-09 11:01:48 (UTC)

Comments:
HV: * Sometimes "disk2net=connect" takes longer than the time it takes
      m5copy to move on to sending "disk2net=on". Fixed by waiting for
      "disk2net?" to return "connected" as state after an initial
      "disk2net=connect:..."

Files modified by: jive_cc Date: 2014-12-05 11:26:55 (UTC)

Comments:
HV: * Step one of Mark6-ification!
      - the flexbuf mountpoints are not hardcoded in multisend.cc anymore,
        they're just the default mountpointlist in runtime.mk6info
      - "set_disks=" command allows for changing the list of mountpoints
        that jive5ab stripes data over
      - "group_def=" command allows for defining aliases of groups of
        disks. There are built-in group definitions for:
           1.) flexbuf  (^/mnt/disk[0-9]+$)
           2.) Mark6 disk pack mountpoints:  ^/mnt/disk/[1234]/[0-7]$

Files modified by: jive_cc Date: 2014-10-28 12:40:09 (UTC)

Comments:
HV: * [m5copy] add sleep between two successive transfers to allow for UDT
      properly closing the listening socket.
    * [threadfns.cc] TCP socket reader did not always honour shutdown protocol
      correctly, making sending code hang in waiting for the reader to
      close the connection properly.

Tag: jive5ab-2_5_1 Date: 2014-09-19 07:34:20 (UTC)

Files modified by: jive_cc Date: 2014-09-19 07:34:20 (UTC)

Comments:
HV: * support for smart data-ip inferring; if sending data to local machine
      m5copy defaults to external IPv4 address, if the machine has only one
      external IPv4 address.

Files modified by: jive_cc Date: 2014-09-12 09:22:12 (UTC)

Comments:
HV: * typo in error; something was NOT supported ...

Files modified by: jive_cc Date: 2014-09-04 10:10:59 (UTC)

Comments:
HV: * by popular demand: add option to allow overwriting of remote data
      files (Guifré's demand)
    * add '-t <timeout>' option to influence socket time outs, e.g. on
      (very long) distance transfers.
    * when doing cornerturning, the (possible remote) destination gets
      configured with the actual cornerturned data format, rather than
      with the (erroneous) source data format

Files modified by: jive_cc Date: 2014-05-20 12:50:46 (UTC)

Comments:
HV: * fix problem with 'fanout' for Mark5B, which doesn't have fan-out ...
    * Added couple of more standard recording modes to the built-in table
      of recording mode => cornerturning setup

Files modified by: jive_cc Date: 2014-05-19 13:33:36 (UTC)

Comments:
HV: * support for cornerturning! with "-mode ..." and "-vdif ..." you can
      transform *and* move data; e.g. read MkIV data from disk pack and store on
      FlexBuff the cornerturned VDIF data.

Files modified by: jive_cc Date: 2014-05-15 12:03:34 (UTC)

Comments:
HV: * Now you get a descriptive error message when trying to do an
      unsupported transfer

Files modified by: jive_cc Date: 2014-03-31 14:14:01 (UTC)

Comments:
HV: * Added 'in://' and 'mem://' as sources for m5copy

Tag: jive5ab-2_5_0 Date: 2014-02-20 11:12:18 (UTC)

Tag: jive5ab-2_5_0_beta Date: 2014-02-20 11:12:18 (UTC)

Files modified by: jive_cc Date: 2014-02-20 11:12:18 (UTC)

Comments:
HV: * fixed error in string formatting in one of the commands
    * dict update code is simpler now
    * net2file::recv_bytecount() crashed when talking to an older
      version of jive5ab

Files modified by: jive_cc Date: 2014-02-14 13:55:01 (UTC)

Comments:
HV: * progress printer a bit smarter
    * handle duplicate scan names on disk pack - each scan whose name is
      duplicated gets renamed to ".scan.<num>" where <num> is the original
      scan number on the disk pack (not the "No0001" scan label from the vex
      file)
    * error handling nicer
        - no traceback by default
        - for failing queries the reply is put verbatim into the message
    * the newly created runtimes didn't get deleted (now they are)

Files modified by: jive_cc Date: 2014-02-12 20:15:03 (UTC)

Comments:
HV: * Not all datetime.timedelta objects have the ".total_seconds()" method
    * also, sometimes it's possible to get "total_seconds( ... )" to be 0
      and dividing by zero is not a good idea!
      Both issues thx @ PdV of Yebes

Files modified by: jive_cc Date: 2014-02-04 13:47:59 (UTC)

Comments:
HV: Lots of internal changes in m5copy, some external
    External changes
    * the [:dataip] option is now only supported on the DST location because
      it makes more sense (thanks eBob). Default is to send data to the
      DST control IPv4 address, with override on the DST you can make it
      send to a different IPv4 address on the same host (hopefully ...)
    * Default is now to be verbose, use "-q" (quiet) to NOT show progress
    * The "-v" command line flag (used to be "verbose") is now
      "show version and exit"
    * Added "-r <rate>" command line option to control UDT sending rate in
      units of bits per second. Can use "kMG" (base 10) for scaling
    Internal changes
    * Added abstraction layer(s) such that transfers can now be patched
      together using a source transfer and destination transfer. There
      now exist e.g. "disk2net" objects and "net2file" objects.
      The actual scan copy loop is now a single loop, for all supported
      transfers. Used to be that all of the supported transfers were
      implemented by individual functions with a lot of repeated code.
    * The simplified loop now first waits for the sender to finish, then
      for the receiver to have completed flushing the data
    * Added context manager(s) to enable automatic transfer cleanup

Files modified by: jive_cc Date: 2014-01-28 12:58:52 (UTC)

Comments:
HV: * Fixed bug in getting value from commandline (in case it was wrong type)
    * Removed some superfluous calls to termination functions

Files modified by: jive_cc Date: 2014-01-15 15:26:28 (UTC)

Comments:
HV: * Prevent division-by-zero exception in progress metering
    * DataSource + DataSink must provide a ".location()" method for
      indicating their location
    * DataSink must provide methods:
        - ".multiple_outputs()" to indicate wether the destination is up
          to accepting >1 output name (e.g. in the case of FileDest the
          destination must be a directory to support that)
        - ".compute_outputname()" to transform a given input name (scan,
         file or recording name) into a name/path applicable to their
         destination. E.g. for FileDest it means stripping the (optional)
         path and prepending its own directory. For DiskDest it means
         stripping path *and* stripping an (optional) file extension.
    * Added a bit more documentation
    * With the ".location()" and ".compute_outpuname()" the printing of
      source => dest could be consistentified

Files modified by: jive_cc Date: 2014-01-13 13:23:40 (UTC)

Comments:
HV: * Added support for specifying VSN or BANK for Mark5 disk packs
    * Progress meter reduced to 45 characters width to prevent displaying
      multiple lines
    * Updated documentation for VSN, added examples

Files modified by: jive_cc Date: 2014-01-07 13:02:12 (UTC)

Comments:
HV: * added support for FlexBuff (vbs://... )
    * function to parse "-o <val>" command line options
    * error messages sanitized and consistentified

Files modified by: jive_cc Date: 2013-12-18 15:35:40 (UTC)

Comments:
HV: * Progress update now nicely aggregated into a class of its own
    * Progress update now also does speed metering
    * Because python exceptions in case of name resolution failure or
      socket connection failure do not specifiy in their errors
      which host/port they were trying to resolve or contact ... had to
      catch the exceptions and print/raise own exceptions FFS
    * bankswitching code is now instance method of Mark5 object
    * When sending to "/dev/null", the file-creation mask is 'w' (default 'n')
      such that you will never overwrite existing files but can write to
      /dev/null for speed tests
    * usage is displayed if '-h' specified on the commandline or no args passed

Files modified by: jive_cc Date: 2013-12-17 17:16:48 (UTC)

Comments:
HV: * Initial revision of python script to allow flexible copying of
      data between systems running jive5ab. Currently allowed data sources
      and sinks are mk5 disk packs or file/directories