]> git.rkrishnan.org Git - tahoe-lafs/tahoe-lafs.git/blobdiff - src/allmydata/scripts/magic_folder_cli.py
Fix pyflakes warnings.
[tahoe-lafs/tahoe-lafs.git] / src / allmydata / scripts / magic_folder_cli.py
index 4c9a469beff980523c9e6e406a6af358cdc74a9f..97bdcd7bd988965c055aa10eac296d4df8de9991 100644 (file)
@@ -6,7 +6,6 @@ from types import NoneType
 from cStringIO import StringIO
 from datetime import datetime
 
-import humanize
 import simplejson
 
 from twisted.python import usage
@@ -18,11 +17,11 @@ from .cli import MakeDirectoryOptions, LnOptions, CreateAliasOptions
 import tahoe_mv
 from allmydata.util.encodingutil import argv_to_abspath, argv_to_unicode, to_str, \
     quote_local_unicode_path
-from allmydata.scripts.common_http import do_http, format_http_success, \
-    format_http_error, BadResponse
+from allmydata.scripts.common_http import do_http, BadResponse
 from allmydata.util import fileutil
 from allmydata.util import configutil
 from allmydata import uri
+from allmydata.util.abbreviate import abbreviate_space, abbreviate_time
 
 
 INVITE_SEPARATOR = "+"
@@ -204,6 +203,8 @@ def leave(options):
         except Exception as e:
             print >>options.stderr, ("Warning: unable to remove %s due to %s: %s"
                 % (quote_local_unicode_path(f), e.__class__.__name__, str(e)))
+    # if this doesn't return 0, then the CLI stuff fails
+    return 0
 
 class StatusOptions(BasedirOptions):
     nickname = None
@@ -217,7 +218,7 @@ class StatusOptions(BasedirOptions):
             self['node-url'] = f.read().strip()
 
 
-def _get_json_for_fragment(options, fragment):
+def _get_json_for_fragment(options, fragment, method='GET'):
     nodeurl = options['node-url']
     if nodeurl.endswith('/'):
         nodeurl = nodeurl[:-1]
@@ -248,7 +249,7 @@ def _print_item_status(item, now, longest):
     paddedname = (' ' * (longest - len(item['path']))) + item['path']
     if 'failure_at' in item:
         ts = datetime.fromtimestamp(item['started_at'])
-        prog = 'Failed %s (%s)' % (humanize.naturaltime(now - ts), ts)
+        prog = 'Failed %s (%s)' % (abbreviate_time(now - ts), ts)
     elif item['percent_done'] < 100.0:
         if 'started_at' not in item:
             prog = 'not yet started'
@@ -260,7 +261,7 @@ def _print_item_status(item, now, longest):
                     time_left = (100.0 - item['percent_done']) / rate
                     prog = '%2.1f%% done, around %s left' % (
                         item['percent_done'],
-                        humanize.naturaldelta(time_left),
+                        abbreviate_time(time_left),
                     )
                 else:
                     time_left = None
@@ -273,7 +274,7 @@ def _print_item_status(item, now, longest):
             keyname = verb + '_at'
             if keyname in item:
                 when = datetime.fromtimestamp(item[keyname])
-                prog = '%s %s' % (verb, humanize.naturaltime(now - when))
+                prog = '%s %s' % (verb, abbreviate_time(now - when))
                 break
 
     print "  %s: %s" % (paddedname, prog)
@@ -303,8 +304,8 @@ def status(options):
         size = meta['size']
         created = datetime.fromtimestamp(meta['metadata']['tahoe']['linkcrtime'])
         version = meta['metadata']['version']
-        nice_size = humanize.naturalsize(size)
-        nice_created = humanize.naturaltime(now - created)
+        nice_size = abbreviate_space(size)
+        nice_created = abbreviate_time(now - created)
         if captype != 'filenode':
             print "%20s: error, should be a filecap" % name
             continue
@@ -330,11 +331,17 @@ def status(options):
             size = meta['size']
             created = datetime.fromtimestamp(meta['metadata']['tahoe']['linkcrtime'])
             version = meta['metadata']['version']
-            nice_size = humanize.naturalsize(size)
-            nice_created = humanize.naturaltime(now - created)
+            nice_size = abbreviate_space(size)
+            nice_created = abbreviate_time(now - created)
             print "    %s (%s): %s, version=%s, created %s" % (n, nice_size, status, version, nice_created)
 
-    magicdata = _get_json_for_fragment(options, 'magic_folder?t=json')
+    with open(os.path.join(nodedir, u'private', u'api_auth_token'), 'rb') as f:
+        token = f.read()
+    magicdata = _get_json_for_fragment(
+        options,
+        'magic_folder?t=json&token=' + token,
+        method='POST',
+    )
     if len(magicdata):
         uploads = [item for item in magicdata if item['kind'] == 'upload']
         downloads = [item for item in magicdata if item['kind'] == 'download']