Adding Common files for NetApp ElementSW release (#43727)

* MVP2 Post ElementSW OSRB sync

* Revert "MVP2 Post ElementSW OSRB sync"

This reverts commit c13db2ad962cd56bffce052c2891c558a2240c72.
This commit is contained in:
Chris Archibald 2018-08-10 09:33:08 -07:00 committed by John R Barker
commit 479408330e
5 changed files with 349 additions and 18 deletions

View file

@ -33,6 +33,9 @@ from ansible.module_utils.six.moves.urllib.error import HTTPError
from ansible.module_utils.urls import open_url
from ansible.module_utils.api import basic_auth_argument_spec
import os
import ssl
HAS_NETAPP_LIB = False
try:
from netapp_lib.api.zapi import zapi
@ -81,7 +84,9 @@ def na_ontap_host_argument_spec():
hostname=dict(required=True, type='str'),
username=dict(required=True, type='str', aliases=['user']),
password=dict(required=True, type='str', aliases=['pass'], no_log=True),
https=dict(required=False, type='bool', default=False)
https=dict(required=False, type='bool', default=False),
validate_certs=dict(required=False, type='bool', default=True),
http_port=dict(required=False, type='int')
)
@ -114,6 +119,8 @@ def setup_na_ontap_zapi(module, vserver=None):
username = module.params['username']
password = module.params['password']
https = module.params['https']
validate_certs = module.params['validate_certs']
port = module.params['http_port']
if HAS_NETAPP_LIB:
# set up zapi
@ -123,14 +130,22 @@ def setup_na_ontap_zapi(module, vserver=None):
if vserver:
server.set_vserver(vserver)
# Todo : Replace hard-coded values with configurable parameters.
server.set_api_version(major=1, minor=21)
server.set_api_version(major=1, minor=110)
# default is HTTP
if https is True:
server.set_port(443)
server.set_transport_type('HTTPS')
if https:
if port is None:
port = 443
transport_type = 'HTTPS'
# HACK to bypass certificate verification
if validate_certs is True:
if not os.environ.get('PYTHONHTTPSVERIFY', '') and getattr(ssl, '_create_unverified_context', None):
ssl._create_default_https_context = ssl._create_unverified_context
else:
server.set_port(80)
server.set_transport_type('HTTP')
if port is None:
port = 80
transport_type = 'HTTP'
server.set_transport_type(transport_type)
server.set_port(port)
server.set_server_type('FILER')
return server
else:
@ -150,7 +165,7 @@ def setup_ontap_zapi(module, vserver=None):
if vserver:
server.set_vserver(vserver)
# Todo : Replace hard-coded values with configurable parameters.
server.set_api_version(major=1, minor=21)
server.set_api_version(major=1, minor=110)
server.set_port(80)
server.set_server_type('FILER')
server.set_transport_type('HTTP')