{ "info": { "author": "NetApp", "author_email": "support@netapp.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python :: 3.5" ], "description": "# NetApp ONTAP\nThe Python client library is a package you can use when writing scripts to access the\nONTAP REST API. It provides support for several underlying services, including connection\nmanagement, asynchronous request processing, and exception handling. By using the Python\nclient library, you can quickly develop robust code to support the automation of your ONTAP\ndeployments.\n\n# Getting started\n\n## Software requirements\nBefore installing the Python client library, you must make sure the following packages are\ninstalled on your system:\n```\n1. python 3.5 or later\n2. requests 2.21.0 or later\n3. marshmallow between 3.0.0rc5 and 3.0.0rc7\n```\n\n## Installing and importing the package\nYou must install the package using the pip utility:\n\n```\npip install netapp-ontap\n```\n\nAfter installing the package, you can import the objects you need into your application:\n\n```python\nfrom netapp_ontap.resources import Volume, Snapshot\n```\n\n## Creating an object\n\nYou can create an object in several different ways. Here are three examples of\ncreating an equivalent `netapp_ontap.resources.volume` object.\n\n```python\nfrom netapp_ontap.resources import Volume\n\n# Example 1 - keyword arguments\nvolume = Volume(name='vol1', svm={'name': 'vs1'}, aggregates=[{'name': 'aggr1'}])\n\n# Example 2 - dict as keyword arguments\ndata = {\n 'name': 'vol1',\n 'svm': {'name': 'vs1'},\n 'aggregates': [{'name': 'aggr1'}],\n}\nvolume = Volume(**data)\n\n# Example 3 - using the from_dict() method\nvolume = Volume.from_dict({\n 'name': 'vol1',\n 'svm': {'name': 'vs1'},\n 'aggregates': [{'name': 'aggr1'}],\n})\n```\n\n## Performing actions on an object\n\nAfter you create an object, you can perform actions on the object based\non the purpose and design of your application. The example below illustrates\nhow to create a new volume and then take a snapshot.\n\nNote that when using the library, in all cases you must first establish a\nconnection to the management LIF of the ONTAP system using the\n`netapp_ontap.host_connection.HostConnection` object. In the example below,\nthe connection is created and then set as the global default.\nThis means that all objects and the associated actions reuse\nthis same connection. See *Host connections* for more information.\n\n```python\nfrom netapp_ontap import config\nfrom netapp_ontap.host_connection import HostConnection\nfrom netapp_ontap.resources import Volume, Snapshot\n\nconfig.CONNECTION = HostConnection('myhost.mycompany.com', 'username', 'password')\n\nvolume = Volume(name='vol1', svm={'name': 'vs1'}, aggregates=[{'name': 'aggr1'}])\nvolume.post()\nsnapshot = Snapshot.from_dict({\n 'name': '%s_snapshot' % volume.name,\n 'comment': 'A snapshot of %s' % volume.name,\n 'volume': volume.to_dict(),\n})\nsnapshot.post()\n```\n\n# Additional considerations\n\nIn most cases, the objects and actions in the library can be mapped directly\nto equivalent cURL commands run against the ONTAP REST interface. However, there are a few\nexceptions you should be aware of.\n\n## Property names\n\nIf a property of a resource is named the same as one of the Python reserved names,\nthe name will be transposed when accessing the member of the resource. For example,\nif there is a resource named \"Foo\" that has a property defined in the API named \"class\",\nthe property name would instead be \"class_\" when using the library. For example:\n\n```python\nfrom netapp_ontap.resources import Foo\n\nfoo = Foo()\nfoo.class_ = \"high\"\n```\n\n# Documentation\nTo view the full documentation, visit https://library.netapp.com/ecmdocs/ECMLP2858435/html/index.html\nor to view an offline copy, see the `/lib//site_packages/netapp_ontap/docs`\nDocumentation of ONTAP's REST APIs and other helpful resources can be found at https://devnet.netapp.com/restapi.\n\n# Compatibility\n\nThe version assigned to the library consists of the major ONTAP release it is generated\nfrom and a minor version for the library within that release. The minor version allows the\nlibrary to be updated within the same ONTAP release. For example, valid versions for\nthe library associated with ONTAP 9.6 include 9.6.1, 9.6.2, and so on.\n\nClient libraries that have the same major version as ONTAP are completely compatible.\nFor example, the libraries netapp-ontap-9.6.1 and netapp-ontap-9.6.4 are fully\ncompatible with both ONTAP 9.6 and ONTAP 9.6P1.\n\nA client library with a major version that does not match the ONTAP release can still be\nused, however it will not be fully compatible with the REST API. For example, the library\nnetapp-ontap-9.6.4 is only partially compatible with ONTAP 9.7. In these cases, the\nlibrary may encounter unknown fields or APIs. When this occurs, the library will ignore\nunknown fields, return an error, or raise a runtime exception.\n\n# Copyright, trademarks, and feedback\n## Copyright information\nCopyright © 2019 NetApp, Inc. All Rights Reserved. Printed in the U.S.\n\nNo part of this document covered by copyright may be reproduced in any form or by any means‐graphic,\nelectronic, or mechanical, including photocopying, recording, taping, or storage in an electronic\nretrieval system‐without prior written permission of the copyright owner.\n\nSoftware derived from copyrighted NetApp material is subject to the following license\nand disclaimer:\n\nTHIS SOFTWARE IS PROVIDED BY NETAPP \"AS IS\" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES,\nINCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A\nPARTICULAR PURPOSE, WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL NETAPP BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\nBUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\nPROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\nWHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)ARISING IN\nANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\nNetApp reserves the right to change any products described herein at any time, and without notice.\nNetApp assumes no responsibility or liability arising from the use of products described herein,\nexcept as expressly agreed to in writing by NetApp. The use or purchase of this product does not\nconvey a license under any patent rights, trademark rights, or any other intellectual property\nrights of NetApp. The product described in this manual may be protected by one or more U.S.\npatents, foreign patents, or pending applications.\n\nRESTRICTED RIGHTS LEGEND: Use, duplication,or disclosure by the government is subject to\nrestrictions as set forth in subparagraph (c)(1)(ii) of the Rights in Technical Data and\nComputer Software clause at DFARS 252.277-7103 (October 1988) and FAR 52-227-19 (June 1987).\n\n## Trademark information\nNETAPP, the NETAPP logo, and the marks listed on the NetApp Trademarks page are trademarks of\nNetApp, Inc. Other company and product names may be trademarks of their respective owners.\nhttp://www.netapp.com/us/legal/netapptmlist.aspx\n\n## Feedback\nYou can help us to improve the quality of our documentation by sending us your feedback.\nIf you have suggestions for improving this document, send us your comments by email.\n\n\n\nTo help us direct your comments to the correct division, include in the subject line\nthe product name, version, and operating system.\n\nIf you want to be notified automatically when production-level documentation is released\nor important changes are made to existing production-level documents,\nfollow Twitter account @NetAppDoc.\n\nYou can also contact us in the following ways:\n\nNetApp, Inc., 1395 Crossman Ave, Sunnyvale, CA 94089 U.S.\n\nTelephone: +1 (408) 822-6000\n\nFax: +1 (408) 822-4501\n\nSupport telephone: +1 (888) 463-8277\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://devnet.netapp.com/restapi", "keywords": "NetApp ONTAP REST API development", "license": "", "maintainer": "", "maintainer_email": "", "name": "netapp-ontap", "package_url": "https://pypi.org/project/netapp-ontap/", "platform": "", "project_url": "https://pypi.org/project/netapp-ontap/", "project_urls": { "Documentation": "https://library.netapp.com/ecmdocs/ECMLP2858435/html/index.html", "Homepage": "https://devnet.netapp.com/restapi" }, "release_url": "https://pypi.org/project/netapp-ontap/9.6.0/", "requires_dist": [ "marshmallow (<=3.0.0rc7,>=3.0.0rc5)", "requests (>=2.21.0)" ], "requires_python": ">=3.5", "summary": "A library for working with ONTAP's REST APIs simply in Python", "version": "9.6.0" }, "last_serial": 5542194, "releases": { "9.6.0": [ { "comment_text": "", "digests": { "md5": "f1d8d091bb09eb4d330f9b047018fed5", "sha256": "73ce72112fdf30f15986c22971906359d35f9f84da48add7f9c2188618687006" }, "downloads": -1, "filename": "netapp_ontap-9.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "f1d8d091bb09eb4d330f9b047018fed5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 8032878, "upload_time": "2019-07-16T19:09:53", "url": "https://files.pythonhosted.org/packages/fd/86/45e14b326e2aa03d9f2f60513855d889b560b424a721561f70003a3d6bf0/netapp_ontap-9.6.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d5084cd0ef4b7d678bac9d4d0b53bb62", "sha256": "5f05da3af40533d6feed8bbbf31f9fe93531637ef24106a142c2d07751fde382" }, "downloads": -1, "filename": "netapp-ontap-9.6.0.tar.gz", "has_sig": false, "md5_digest": "d5084cd0ef4b7d678bac9d4d0b53bb62", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 2639933, "upload_time": "2019-07-16T19:10:41", "url": "https://files.pythonhosted.org/packages/91/b7/dbfa6ab0fa476ca8925224150f796cb2800432972a97e95b220aab07e2e3/netapp-ontap-9.6.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f1d8d091bb09eb4d330f9b047018fed5", "sha256": "73ce72112fdf30f15986c22971906359d35f9f84da48add7f9c2188618687006" }, "downloads": -1, "filename": "netapp_ontap-9.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "f1d8d091bb09eb4d330f9b047018fed5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 8032878, "upload_time": "2019-07-16T19:09:53", "url": "https://files.pythonhosted.org/packages/fd/86/45e14b326e2aa03d9f2f60513855d889b560b424a721561f70003a3d6bf0/netapp_ontap-9.6.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d5084cd0ef4b7d678bac9d4d0b53bb62", "sha256": "5f05da3af40533d6feed8bbbf31f9fe93531637ef24106a142c2d07751fde382" }, "downloads": -1, "filename": "netapp-ontap-9.6.0.tar.gz", "has_sig": false, "md5_digest": "d5084cd0ef4b7d678bac9d4d0b53bb62", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 2639933, "upload_time": "2019-07-16T19:10:41", "url": "https://files.pythonhosted.org/packages/91/b7/dbfa6ab0fa476ca8925224150f796cb2800432972a97e95b220aab07e2e3/netapp-ontap-9.6.0.tar.gz" } ] }