{ "info": { "author": "Rudolph Pienaar", "author_email": "rudolph.pienaar@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "###################\npfstorage v1.1.2.4\n###################\n\n.. image:: https://badge.fury.io/py/pfstorage.svg\n :target: https://badge.fury.io/py/pfstorage\n\n.. image:: https://travis-ci.org/FNNDSC/pfstorage.svg?branch=master\n :target: https://travis-ci.org/FNNDSC/pfstorage\n\n.. image:: https://img.shields.io/badge/python-3.5%2B-blue.svg\n :target: https://badge.fury.io/py/pfcon\n\n.. contents:: Table of Contents\n\n********\nOverview\n********\n\nThis repository provides ``pfstorage`` -- a library / module that speaks to an object storage backend (such as *swift*) and also provides logic for handling input/output data locations for the ChRIS system.\n\npfstorage\n=========\n\nMost simply, ``pfstorage`` is a module that offers a regularized interface to some other backend object storage. While currently supporting ``swift``, the long term idea is to support a multitude of backends. By providing its own interface to several storage backends, this module removes the need for client code to change when a different object storage backend is used.\n\nWhile at its core a module/library, ``pfstorage`` also provides two modes of stand-alone access: (1) a command line script interface mode to the library, and (2) a persistent http server mode. In the command line mode, the main module functions are exposed to appropriate CLI. In the http server mode, a client can use curl-type http calls to call the underlying library functions.\n\n************\nInstallation\n************\n\nInstallation is relatively straightforward, and we recommend using either python virtual environments or docker.\n\nPython Virtual Environment\n==========================\n\nOn Ubuntu, install the Python virtual environment creator\n\n.. code-block:: bash\n\n sudo apt install virtualenv\n\nThen, create a directory for your virtual environments e.g.:\n\n.. code-block:: bash\n\n mkdir ~/python-envs\n\nYou might want to add to your .bashrc file these two lines:\n\n.. code-block:: bash\n\n export WORKON_HOME=~/python-envs\n source /usr/local/bin/virtualenvwrapper.sh\n\nNote that depending on distro, the virtualenvwrapper.sh path might be\n\n.. code-block:: bash\n\n /usr/share/virtualenvwrapper/virtualenvwrapper.sh\n\nSubsequently, you can source your ``.bashrc`` and create a new Python3 virtual environment:\n\n.. code-block:: bash\n\n source .bashrc\n mkvirtualenv --python=python3 python_env\n\nTo activate or \"enter\" the virtual env:\n\n.. code-block:: bash\n\n workon python_env\n\nTo deactivate virtual env:\n\n.. code-block:: bash\n\n deactivate\n\nUsing the ``fnndsc/pfstorage`` docker container\n================================================\n\nThe easiest option however, is to just use the ``fnndsc/pfstorage`` dock.\n\n.. code-block:: bash\n\n docker pull fnndsc/pfstorage\n \nand then run (for example in http server mode access to the library):\n\n.. code-block:: bash\n\n docker run --name pfstorage -v /home:/Users --rm -ti \\\n fnndsc/pfstorage \\\n --ipSwift localhost \\\n --portSwift 8080 \\\n --forever \\\n --httpResponse \\\n --server\n\nor in CLI mode:\n\n.. code-block:: bash\n\n docker run --name pfstorage -v /home:/Users --rm -ti \\\n fnndsc/pfstorage \\\n --ipSwift localhost \\\n --portSwift 8080 \\\n --msg '\n { \"action\": \"ls\",\n \"meta\": {\n \"path\": \"\", \n \"retSpec\": [\"name\", \"bytes\"]\n } \n }'\n \n\n*****\nUsage\n*****\n\nFor usage of ``pfstorage``, consult the relevant wiki pages `.\n\nCommand line arguments\n======================\n\n.. code-block:: html\n\n --msg ''\n The action to perform. This can be one of:\n\n * objPull -- pull data from storage to file system\n * objPush -- push data from file system to storage\n * ls -- listing of data within storage\n\n with a JSON formatted string similar to:\n\n * ls:\n { \"action\": \"ls\",\n \"meta\": {\n \"path\": \"\", \n \"retSpec\": [\"name\", \"bytes\"]\n } \n }\n\n * objPut:\n { \"action\": \"objPut\",\n \"meta\": {\n \"putSpec\": \"./data\",\n \"inLocation\": \"storage\",\n \"mapLocationOver\": \"./data\"\n }\n } \n\n * objPull:\n { \"action\": \"objPull\",\n \"meta\": {\n \"path\": \"chris\",\n \"substr\": \"/018\",\n \"fromLocation\": \"chris/uploads/DICOM\",\n \"mapLocationOver\": \"./data\"\n }\n } \n\n [--type ]\n The type of object storage. Currently this is 'swift'.\n\n [--ipSwift ] \n The IP interface of the object storage service. Default %s.\n\n [--portSwift ]\n The port of the object storage service. Defaults to '8080'.\n\n [--ipSelf ] \n The IP interface of the pfstorage service for server mode. Default %s.\n\n [--portSelf ]\n The port of the pfstorage service for server mode. Defaults to '4055'.\n\n [--httpResponse]\n In servier mode, send return strings as HTTP formatted replies \n with content-type html.\n\n [--configFileLoad ]\n Load configuration information from the JSON formatted .\n\n [--configFileSave ]\n Save configuration information to the JSON formatted .\n\n [-x|--desc] \n Provide an overview help page.\n\n [-y|--synopsis]\n Provide a synopsis help summary.\n\n [--version]\n Print internal version number and exit.\n\n [--debugToDir ]\n A directory to contain various debugging output -- these are typically\n JSON object strings capturing internal state. If empty string (default)\n then no debugging outputs are captured/generated. If specified, then\n ``pfcon`` will check for dir existence and attempt to create if\n needed.\n\n [-v|--verbosity ]\n Set the verbosity level. \"0\" typically means no/minimal output. Allows for\n more fine tuned output control as opposed to '--quiet' that effectively\n silences everything.\n\n\n********\nEXAMPLES\n********\n\nscript mode\n===========\n\n.. code-block:: bash\n\n pfstorage \\\n --ipSwift localhost \\\n --portSwift 8080 \\\n --verbosity 1 \\\n --debugToDir /tmp \\\n --type swift \\\n --msg ' \n {\n \"action\": \"ls\",\n \"meta\": {\n \"path\": \"\", \n \"retSpec\": [\"name\", \"bytes\"]\n }\n }\n '\n\nserver mode\n===========\n\n*start server*:\n\n.. code-block:: bash\n\n pfstorage \\\n --ipSwift localhost \\\n --portSwift 8080 \\\n --ipSelf localhost \\\n --portSelf 4055 \\\n --httpResponse \\\n --verbosity 1 \\\n --debugToDir /tmp \\\n --type swift \\\n --server \\\n --forever \n\n*query server*:\n\n.. code-block:: bash\n\n pfurl --verb POST --raw \\\n --http localhost:4055/api/v1/cmd \\\n --httpResponseBodyParse \\\n --jsonwrapper 'payload' \\\n --msg '\n {\n \"action\": \"ls\",\n \"meta\": {\n \"path\": \"\",\n \"retSpec\": [\"name\", \"bytes\"]\n }\n }\n '", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/FNNDSC/pfstorage", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "pfstorage", "package_url": "https://pypi.org/project/pfstorage/", "platform": "", "project_url": "https://pypi.org/project/pfstorage/", "project_urls": { "Homepage": "https://github.com/FNNDSC/pfstorage" }, "release_url": "https://pypi.org/project/pfstorage/1.1.2.4/", "requires_dist": null, "requires_python": "", "summary": "object storage interface", "version": "1.1.2.4" }, "last_serial": 5788444, "releases": { "1.0.0.0": [ { "comment_text": "", "digests": { "md5": "b50b358de79c9c5afd86836970f5264b", "sha256": "9514c6b721cee0bc973835113c44a0ef6e2fc869da1e626f5a7569571dc11916" }, "downloads": -1, "filename": "pfstorage-1.0.0.0.tar.gz", "has_sig": false, "md5_digest": "b50b358de79c9c5afd86836970f5264b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19382, "upload_time": "2019-08-15T20:36:43", "url": "https://files.pythonhosted.org/packages/3f/45/75c33102675a07def08d434c1529e57c7f1433e1c87a8a8abe20efa3b9f1/pfstorage-1.0.0.0.tar.gz" } ], "1.0.0.2": [ { "comment_text": "", "digests": { "md5": "e29a04e6d4fe2ad2e6671944f19bfef0", "sha256": "51b40fc76c9fda5d4fd1fe28b41e5d4e9237cd80cb084b4a6584fe2634c390f7" }, "downloads": -1, "filename": "pfstorage-1.0.0.2.tar.gz", "has_sig": false, "md5_digest": "e29a04e6d4fe2ad2e6671944f19bfef0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19366, "upload_time": "2019-08-15T20:40:00", "url": "https://files.pythonhosted.org/packages/99/61/b196da521c8aaa6814d694e66b0fb2054a4a2bc2fe98642a517d4b026cfb/pfstorage-1.0.0.2.tar.gz" } ], "1.0.0.4": [ { "comment_text": "", "digests": { "md5": "6f2b357b2f964de2d2f6de6a91f84b06", "sha256": "24d7662e9b136b4c9e9cf616461ef7aa569690b4c098ec6c4763471677b8c255" }, "downloads": -1, "filename": "pfstorage-1.0.0.4.tar.gz", "has_sig": false, "md5_digest": "6f2b357b2f964de2d2f6de6a91f84b06", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19365, "upload_time": "2019-08-15T20:49:53", "url": "https://files.pythonhosted.org/packages/a9/04/cb0041b738692c1f0aa8f4012783b9b56707c39cc0f6e711bc48476b5353/pfstorage-1.0.0.4.tar.gz" } ], "1.0.0.6": [ { "comment_text": "", "digests": { "md5": "670e8a3721ff3508697af8c5ad1c1d6a", "sha256": "d040d5632956298a8c60fc3ffef2c56f4a851296a8519c647122a88016a83314" }, "downloads": -1, "filename": "pfstorage-1.0.0.6.tar.gz", "has_sig": false, "md5_digest": "670e8a3721ff3508697af8c5ad1c1d6a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19301, "upload_time": "2019-08-15T22:17:40", "url": "https://files.pythonhosted.org/packages/0a/1c/3670de761696f869825a772d1040864c96d36f71a3e141b9d9a76d7510c7/pfstorage-1.0.0.6.tar.gz" } ], "1.1.0.0": [ { "comment_text": "", "digests": { "md5": "92352d91ea818e00f2f989e3553100bf", "sha256": "916aa012fd586b3ae625dd3d81dd234b0a013c79b9ffced8cdce6bd9b0c20d21" }, "downloads": -1, "filename": "pfstorage-1.1.0.0.tar.gz", "has_sig": false, "md5_digest": "92352d91ea818e00f2f989e3553100bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17564, "upload_time": "2019-08-27T21:21:57", "url": "https://files.pythonhosted.org/packages/a0/ca/edaa18b25fa10dcf18b7819fa86d363d1b4519da49adbd7c6bf65e2feaa7/pfstorage-1.1.0.0.tar.gz" } ], "1.1.0.2": [ { "comment_text": "", "digests": { "md5": "8afcbb0f356a3113cb2f657943ba77b7", "sha256": "5862c3579324ec7aebcd8082c9ae4e105f4d50a98569485b8ddf2bb79c43424e" }, "downloads": -1, "filename": "pfstorage-1.1.0.2.tar.gz", "has_sig": false, "md5_digest": "8afcbb0f356a3113cb2f657943ba77b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19857, "upload_time": "2019-08-27T21:45:35", "url": "https://files.pythonhosted.org/packages/64/88/fb67246c78409d514711a7b9070b8d57afc19763aef0dc10b5a6780febb5/pfstorage-1.1.0.2.tar.gz" } ], "1.1.1.2": [ { "comment_text": "", "digests": { "md5": "c5332d5827307614e735a93c98b66c6b", "sha256": "239b7238dbf0470b09cf5aa1309507359b20167c3d240ea0afbdecce35730af5" }, "downloads": -1, "filename": "pfstorage-1.1.1.2.tar.gz", "has_sig": false, "md5_digest": "c5332d5827307614e735a93c98b66c6b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19967, "upload_time": "2019-09-03T18:20:18", "url": "https://files.pythonhosted.org/packages/5d/d1/65d0373926930b2ab4ce99c8601af1df4ed7390fcc9bf12941328555d607/pfstorage-1.1.1.2.tar.gz" } ], "1.1.2.2": [ { "comment_text": "", "digests": { "md5": "7b63d3300d77824bf54ba0fae2e24c02", "sha256": "a8112bc4a9d62d8feeb48ab5f72f3082288557b5e95e73d6155d782a5bcb8198" }, "downloads": -1, "filename": "pfstorage-1.1.2.2.tar.gz", "has_sig": false, "md5_digest": "7b63d3300d77824bf54ba0fae2e24c02", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20009, "upload_time": "2019-09-04T22:05:02", "url": "https://files.pythonhosted.org/packages/16/c0/57df1620c3a14fa7a73c33fe730de989de16eab1585eb795e6c6e8bec0bc/pfstorage-1.1.2.2.tar.gz" } ], "1.1.2.4": [ { "comment_text": "", "digests": { "md5": "230b8e7cb943d50de55bc56976c77b15", "sha256": "d8ead8496bd3a4b18525dd015c9fd1bf27632c4604715359a66d0d778a882c23" }, "downloads": -1, "filename": "pfstorage-1.1.2.4.tar.gz", "has_sig": false, "md5_digest": "230b8e7cb943d50de55bc56976c77b15", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20025, "upload_time": "2019-09-05T21:01:33", "url": "https://files.pythonhosted.org/packages/92/94/a3758974205d0ed574876fa9c1b652981330ec7dc4a580299127f2bb9141/pfstorage-1.1.2.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "230b8e7cb943d50de55bc56976c77b15", "sha256": "d8ead8496bd3a4b18525dd015c9fd1bf27632c4604715359a66d0d778a882c23" }, "downloads": -1, "filename": "pfstorage-1.1.2.4.tar.gz", "has_sig": false, "md5_digest": "230b8e7cb943d50de55bc56976c77b15", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20025, "upload_time": "2019-09-05T21:01:33", "url": "https://files.pythonhosted.org/packages/92/94/a3758974205d0ed574876fa9c1b652981330ec7dc4a580299127f2bb9141/pfstorage-1.1.2.4.tar.gz" } ] }