{ "info": { "author": "UIS Infrastructure Servers and Storage, University of Cambridge", "author_email": "wh330@cam.ac.uk", "bugtrack_url": null, "classifiers": [], "description": "# Dell SC\n\n## Introduction\n\nInteracting with Dell SCs via REST API.\n\nThe project provides a command line interface (CLI) to connect to Dell Storage Manager and run basic operations, e.g., get list of volumes, servers, snapshots. It is a reimplementation of the developed functions in Shell to clone and recycle volumes, and handle filesystem devices (mount, unmount, update multipah, update fstab), etc. The original Shell implementation is on the Git repository https://git.uis.cam.ac.uk/i/uis/infra/dellsc.git.\n\n## Running the Application\n### Prerequisites\n- [requests 2.22.0](https://pypi.org/project/requests/2.22.0/)\n- [Python 3.6](https://www.python.org/downloads/release/python-360/)\n\n### Installation\nAs a `root` user, run:\n```bash\npip3 install ucamdsm\n```\n### CLI\nFor example, to show command help:\n```bash\n$ ucamdsm -h\nusage: ucamdsm [-h] [--dsm_host DSM_HOST] [--dsm_port DSM_PORT]\n [--dsm_user DSM_USER] [--dsm_password DSM_PASSWORD]\n [--is_secure IS_SECURE] [--record_config RECORD_CONFIG]\n [--file FILE]\n {list,delete_volume,replace_volume,clone_volume,create_snapshot,delete_recycled_vols}\n ...\n\nManage Dell Storage Manager objects via REST API.\n\npositional arguments:\n {list,delete_volume,replace_volume,clone_volume,create_snapshot,delete_recycled_vols}\n list List Dell SC objects. Example: ucamdsm --dsm_user user\n --dsm_password abc123 list --object scs\n delete_volume Delete Dell SC Volume. Example: ucamdsm --dsm_user\n user --dsm_password abc123 delete_volume --vol_wwn\n 12345\n replace_volume Clone the volume mounted on source mountpoint and\n mount it on destination mountpoint. Then, delete the\n volume was initially mounted on destination\n mountpoint. Example: ucamdsm --dsm_user user\n --dsm_password abc123 replace_volume --src_mp /src\n --dst_mp /dst\n clone_volume Create a snapshot with label of a volume with WWN,\n create a view volume from the snapshot, then, map the\n view volume to local server and mount it on target\n mountpoint. Example: ucamdsm --dsm_user user\n --dsm_password abc123 clone_volume --vol_wwn 12345\n --replay_label test1 --target_mp /target\n create_snapshot Create a snapshot of the volume mounted on a given\n mountpoint. Example: ucamdsm --dsm_user user\n --dsm_password abc123 create_snapshot --mp /mp\n --replay_label test1 --retention 5\n delete_recycled_vols\n Delete recycled volumes whose WWNs are listed in a\n file. Example: ucamdsm --dsm_user user --dsm_password\n abc123 delete_recycled_vols --wwns_file\n /tmp/recycled_vols_wwns.txt\n\noptional arguments:\n -h, --help show this help message and exit\n --dsm_host DSM_HOST DSM hostname. Default: sc-data-ma.admin.cam.ac.uk\n --dsm_port DSM_PORT DSM port. Default: 3033\n --dsm_user DSM_USER DSM Data Collector username\n --dsm_password DSM_PASSWORD\n DSM Data Collector password\n --is_secure IS_SECURE\n Secure connection. Default: False\n --record_config RECORD_CONFIG\n Record multipath and file system config details.\n Default: False (do not record system config details)\n --file FILE Read arguments from json file\n```\n\nOr, to get the list of Storage Centers:\n```bash\n$ ucamdsm --dsm_host host --dsm_user user --dsm_password password list --object scs --output json\n07/10/2019 04:24:32 PM INFO Connected to DSM. API Version: 3.5, Connection ID: 0\n07/10/2019 04:24:32 PM INFO API call ApiConnection/ApiConnection/0/StorageCenterList succeeded.\n07/10/2019 04:24:32 PM INFO List of scs:\n{\n \"SB Storage Center\": {\n \"instanceId\": \"000\",\n \"hostOrIP\": \"x.x.x.x\"\n },\n \"WCDC Storage Center\": {\n \"instanceId\": \"000\",\n \"hostOrIP\": \"y.y.y.y\"\n }\n}\n07/10/2019 04:24:32 PM INFO Logout of DSM: True.\n```\nYou can get prompted for `user` and `password` if they are not specified in the command.\n```bash\n$ ucamdsm --dsm_host host list --object scs --output json\nUsername: user\nPassword: \n07/16/2019 04:59:53 PM INFO Connected to DSM. API Version: 3.5, Connection ID: 0\n07/16/2019 04:59:53 PM INFO API call ApiConnection/ApiConnection/0/StorageCenterList succeeded.\n07/16/2019 04:59:53 PM INFO List of scs:\n{\n \"SB Storage Center\": {\n \"instanceId\": \"000\",\n \"hostOrIP\": \"x.x.x.x\"\n },\n \"WCDC Storage Center\": {\n \"instanceId\": \"000\",\n \"hostOrIP\": \"y.y.y.y\"\n }\n}\n07/16/2019 04:59:53 PM INFO Logout of DSM: True.\n```\nThe command can also read arguments from a `json` file.\n\nExample of a `json` file, `args.json`:\n```bash\n{\n \"dsm_host\": \"abc\",\n \"dsm_port\": 3033,\n \"dsm_user\": \"user\",\n \"dsm_password\": \"password\",\n \"is_secure\": false,\n \"record_config\": false,\n \"subparser\": \"list\",\n \"object\": \"scs\",\n \"output\": \"json\"\n}\n```\nTo read arguments from `args.json`:\n```bash\n$ ucamdsm --file args.json\n07/16/2019 05:05:57 PM INFO Connected to DSM. API Version: 3.5, Connection ID: 0\n07/16/2019 05:05:58 PM INFO API call ApiConnection/ApiConnection/0/StorageCenterList succeeded.\n07/16/2019 05:05:58 PM INFO List of scs:\n{\n \"SB Storage Center\": {\n \"instanceId\": \"000\",\n \"hostOrIP\": \"x.x.x.x\"\n },\n \"WCDC Storage Center\": {\n \"instanceId\": \"000\",\n \"hostOrIP\": \"y.y.y.y\"\n }\n}\n07/16/2019 05:05:58 PM INFO Logout of DSM: True.\n```\n### Application logging\nAll the log files related to the tasks executed with the CLI are stored in `/var/log/ucamdsm/`.\n\n## Acknowledgments\n\n- Project structure is mainly based on https://github.com/mrako/python-example-project \n- Some functions implementation was inspired from https://github.com/openstack/cinder", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://gitlab.developers.cam.ac.uk/uis/infra/dell-sc", "keywords": "", "license": "MIT License (MIT)", "maintainer": "", "maintainer_email": "", "name": "ucamdsm", "package_url": "https://pypi.org/project/ucamdsm/", "platform": "", "project_url": "https://pypi.org/project/ucamdsm/", "project_urls": { "Homepage": "https://gitlab.developers.cam.ac.uk/uis/infra/dell-sc" }, "release_url": "https://pypi.org/project/ucamdsm/1.2.10/", "requires_dist": null, "requires_python": "", "summary": "A Dell SC tasks automation using REST API", "version": "1.2.10" }, "last_serial": 5994890, "releases": { "1.1.1": [ { "comment_text": "", "digests": { "md5": "4c9781485762e0195f12f818b637824f", "sha256": "3eeae96fcdfae3f8449f39b7e3a816522aaffaa366b12f953cf2d944fbab67ad" }, "downloads": -1, "filename": "ucamdsm-1.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "4c9781485762e0195f12f818b637824f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19547, "upload_time": "2019-09-19T14:35:56", "url": "https://files.pythonhosted.org/packages/06/24/f838f8ec0145a0eb8e316e86605cc88b9a33f6b81c91e7851d312a479089/ucamdsm-1.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "450e8c606b124bb7a45da315cf052538", "sha256": "fb0a25073a2c740769be1034a993f5743dd7885a9793a716d3e8fda4148a3667" }, "downloads": -1, "filename": "ucamdsm-1.1.1.tar.gz", "has_sig": false, "md5_digest": "450e8c606b124bb7a45da315cf052538", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18378, "upload_time": "2019-09-19T14:35:58", "url": "https://files.pythonhosted.org/packages/d4/70/9ec4e96559d70b7070746661e80714067029a939453a1cf1210732ccc614/ucamdsm-1.1.1.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "d6f8c7583102b72384a193ebafb18945", "sha256": "8a53653cc4e856a89a63403d20d7a7b19468e626d316c6565d8e4234d359843c" }, "downloads": -1, "filename": "ucamdsm-1.2.0.tar.gz", "has_sig": false, "md5_digest": "d6f8c7583102b72384a193ebafb18945", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19171, "upload_time": "2019-09-20T16:01:05", "url": "https://files.pythonhosted.org/packages/e3/a5/5a109b06ff72145c8dce77badab3db1edfd8c67062109782afde7eedf529/ucamdsm-1.2.0.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "ad5de2784e316c5220a6ffde276a50ec", "sha256": "c43a3ade5de113741f503a8fd535daff327f747c320fb56f61bf228e7ba3291e" }, "downloads": -1, "filename": "ucamdsm-1.2.1.tar.gz", "has_sig": false, "md5_digest": "ad5de2784e316c5220a6ffde276a50ec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19495, "upload_time": "2019-09-27T14:21:04", "url": "https://files.pythonhosted.org/packages/17/b7/dd015698683da6d52dc0bb581fe5347f125ec3f030c2966cca056b0574c9/ucamdsm-1.2.1.tar.gz" } ], "1.2.10": [ { "comment_text": "", "digests": { "md5": "47db7c4fa4067b2b9911b9a1daaa21b6", "sha256": "7b3b27e3cec241b465af987b8776abd0050c7b0609e6fec212db2704c7d96ad5" }, "downloads": -1, "filename": "ucamdsm-1.2.10.tar.gz", "has_sig": false, "md5_digest": "47db7c4fa4067b2b9911b9a1daaa21b6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23877, "upload_time": "2019-10-18T10:24:56", "url": "https://files.pythonhosted.org/packages/d5/68/df9d0c166bfc83fa1c6e4a301119f5e9f09843431365c161d624e5ca5b03/ucamdsm-1.2.10.tar.gz" } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "69e35c103cfb48705ba486ccf24e31bb", "sha256": "5744f8b4cb286c75bbf62693f0f1cd464f92528f7657576c427d6fc8b49eae94" }, "downloads": -1, "filename": "ucamdsm-1.2.2.tar.gz", "has_sig": false, "md5_digest": "69e35c103cfb48705ba486ccf24e31bb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19496, "upload_time": "2019-09-27T14:45:59", "url": "https://files.pythonhosted.org/packages/67/7a/ceb735abcecc0511c07b8b189b0ecc40e0443394b5d64afbb2542ab5efff/ucamdsm-1.2.2.tar.gz" } ], "1.2.3": [ { "comment_text": "", "digests": { "md5": "2baeccc4abc95f572696a4f6a5ce2007", "sha256": "6b006346118d02fb58c817d471afe1e2449a892c5d592729649726246909dcc8" }, "downloads": -1, "filename": "ucamdsm-1.2.3.tar.gz", "has_sig": false, "md5_digest": "2baeccc4abc95f572696a4f6a5ce2007", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22891, "upload_time": "2019-09-27T15:44:21", "url": "https://files.pythonhosted.org/packages/4f/86/dae6f7f307742c4e266a3b30f13730a7240eb6e25e2896654d3ef76fdaab/ucamdsm-1.2.3.tar.gz" } ], "1.2.4": [ { "comment_text": "", "digests": { "md5": "1ff138ed6447b542abb3baa129a6b43c", "sha256": "6216345873c6db19a739f9a76dc7d888ca8f2ae130def480b3afa5784a039ef4" }, "downloads": -1, "filename": "ucamdsm-1.2.4.tar.gz", "has_sig": false, "md5_digest": "1ff138ed6447b542abb3baa129a6b43c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23761, "upload_time": "2019-10-01T14:40:35", "url": "https://files.pythonhosted.org/packages/d2/93/2af80141c27e1dc7e2fb632717a42462ff47184b63f7faacf76c6b3a0e4b/ucamdsm-1.2.4.tar.gz" } ], "1.2.5": [ { "comment_text": "", "digests": { "md5": "3db0ddef9c72a7ab5a89562a149adc9e", "sha256": "77fc39f11015b92c659d8b41dfd53e700be741df314f1689e5566a5bee3d60cc" }, "downloads": -1, "filename": "ucamdsm-1.2.5.tar.gz", "has_sig": false, "md5_digest": "3db0ddef9c72a7ab5a89562a149adc9e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23767, "upload_time": "2019-10-01T14:47:54", "url": "https://files.pythonhosted.org/packages/65/b7/54a17b4932d042939d53f11f9953c9bc3b1ecf019f202cf01bf7c3219454/ucamdsm-1.2.5.tar.gz" } ], "1.2.6": [ { "comment_text": "", "digests": { "md5": "4e30900398ef852c74c0382950825bd7", "sha256": "ea431eb8edf894fc2ec42a6b591add44abe0ee0d573dd40cb58d69b970d68adc" }, "downloads": -1, "filename": "ucamdsm-1.2.6.tar.gz", "has_sig": false, "md5_digest": "4e30900398ef852c74c0382950825bd7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23730, "upload_time": "2019-10-02T10:33:27", "url": "https://files.pythonhosted.org/packages/36/a0/b154be1c26cca185a411b2ac009b584b7049955d64046ab72ae6a3be73b2/ucamdsm-1.2.6.tar.gz" } ], "1.2.7": [ { "comment_text": "", "digests": { "md5": "730f6f202da9edb685e14c7b69b0e6db", "sha256": "81b3110043cc8b960f5e603ae1cab21257aa1efcd3034cc80bbaa7b474bda016" }, "downloads": -1, "filename": "ucamdsm-1.2.7.tar.gz", "has_sig": false, "md5_digest": "730f6f202da9edb685e14c7b69b0e6db", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23820, "upload_time": "2019-10-17T18:45:07", "url": "https://files.pythonhosted.org/packages/8f/b3/f9d22457932bacdec84560d545b8dd8b7d68acdfd3a2f744d7ef6b1282a9/ucamdsm-1.2.7.tar.gz" } ], "1.2.8": [ { "comment_text": "", "digests": { "md5": "9c9837c50197fe4f5a841736c1796516", "sha256": "613d076ee83f3a44178f40b745e1f01887f23a8e44d46a94af5dabb7c3b6fb00" }, "downloads": -1, "filename": "ucamdsm-1.2.8.tar.gz", "has_sig": false, "md5_digest": "9c9837c50197fe4f5a841736c1796516", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23849, "upload_time": "2019-10-17T18:49:31", "url": "https://files.pythonhosted.org/packages/f1/17/6fe1daf2b7a3d0248c6b7cb36b70734903720077572b0adc246f339542a0/ucamdsm-1.2.8.tar.gz" } ], "1.2.9": [ { "comment_text": "", "digests": { "md5": "74711b357782745841983d3dadb3d851", "sha256": "38eb8078f5ed03eef68e0644685c1654f7b543f8c7610f13ab56202ff879ac33" }, "downloads": -1, "filename": "ucamdsm-1.2.9.tar.gz", "has_sig": false, "md5_digest": "74711b357782745841983d3dadb3d851", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23872, "upload_time": "2019-10-18T10:22:46", "url": "https://files.pythonhosted.org/packages/bb/53/4160c5b91fe5d2d555eb8e25f3e7a42fcb69da9d3f3baa2c3a18e25003f9/ucamdsm-1.2.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "47db7c4fa4067b2b9911b9a1daaa21b6", "sha256": "7b3b27e3cec241b465af987b8776abd0050c7b0609e6fec212db2704c7d96ad5" }, "downloads": -1, "filename": "ucamdsm-1.2.10.tar.gz", "has_sig": false, "md5_digest": "47db7c4fa4067b2b9911b9a1daaa21b6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23877, "upload_time": "2019-10-18T10:24:56", "url": "https://files.pythonhosted.org/packages/d5/68/df9d0c166bfc83fa1c6e4a301119f5e9f09843431365c161d624e5ca5b03/ucamdsm-1.2.10.tar.gz" } ] }