def __init__(self, **kwargs): self.connection = netapp_api.NaServer( host=kwargs['hostname'], transport_type=kwargs['transport_type'], port=kwargs['port'], username=kwargs['username'], password=kwargs['password'])
def setup_na_ontap_zapi(module, vserver=None): hostname = module.params['hostname'] username = module.params['username'] password = module.params['password'] https = module.params['https'] if HAS_NETAPP_LIB: # set up zapi server = zapi.NaServer(hostname) server.set_username(username) server.set_password(password) if vserver: server.set_vserver(vserver) # Todo : Replace hard-coded values with configurable parameters. server.set_api_version(major=1, minor=21) # default is HTTP if https is True: server.set_port(443) server.set_transport_type('HTTPS') else: server.set_port(80) server.set_transport_type('HTTP') server.set_server_type('FILER') return server else: module.fail_json(msg="the python NetApp-Lib module is required")
def setup_na_ontap_zapi(module, vserver=None, wrap_zapi=False): hostname = module.params['hostname'] username = module.params['username'] password = module.params['password'] https = module.params['https'] validate_certs = module.params['validate_certs'] port = module.params['http_port'] version = module.params['ontapi'] cert_filepath = module.params['cert_filepath'] key_filepath = module.params['key_filepath'] auth_method = set_auth_method(module, username, password, cert_filepath, key_filepath) if HAS_NETAPP_LIB: # set up zapi if auth_method in ('single_cert', 'cert_key'): # override NaServer in netapp-lib to enable certificate authentication server = OntapZAPICx(hostname, module=module, username=username, password=password, validate_certs=validate_certs, cert_filepath=cert_filepath, key_filepath=key_filepath, style=zapi.NaServer.STYLE_CERTIFICATE, auth_method=auth_method) # SSL certificate authentication requires SSL https = True elif auth_method == 'speedy_basic_auth' or wrap_zapi: # override NaServer in netapp-lib to add Authorization header preemptively # use wrapper to handle parse error (mostly for na_ontap_command) server = OntapZAPICx(hostname, module=module, username=username, password=password, validate_certs=validate_certs, auth_method=auth_method) else: # legacy netapp-lib server = zapi.NaServer(hostname) server.set_username(username) server.set_password(password) if vserver: server.set_vserver(vserver) if version: minor = version else: minor = 110 server.set_api_version(major=1, minor=minor) # default is HTTP if https: if port is None: port = 443 transport_type = 'HTTPS' # HACK to bypass certificate verification if validate_certs is False: if not os.environ.get('PYTHONHTTPSVERIFY', '') and getattr(ssl, '_create_unverified_context', None): ssl._create_default_https_context = ssl._create_unverified_context else: 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: module.fail_json(msg="the python NetApp-Lib module is required")
def setup_ontap_zapi(module, vserver=None): username = module.params['username'] password = module.params['password'] api_version = module.params['api_version'].split('.') hostregex = "((\w+):/{,2}){,1}([\w\d\.-]+)(:(\d+)){,1}" r = re.compile(hostregex) m = r.search(module.params['hostname']) transport_type = m.group(2) hostname = m.group(3) port = m.group(5) if HAS_NETAPP_LIB: # set up zapi server = zapi.NaServer(hostname) server.set_username(username) server.set_password(password) if vserver: server.set_vserver(vserver) server.set_api_version(*api_version) if transport_type: server.set_transport_type(transport_type.upper()) else: server.set_transport_type('HTTP') # If port is set we have to override it after setting transport_type # (TODO: this is a logical error that has to be fixed in the zapi.py) if port: server.set_port(int(port)) else: server.set_port(80) # Leaving it hard-coded server.set_server_type('FILER') # PyPI netapp_lib 2015.9.25, 2016.10.14, 2017.10.30 can't handle ssl verification and # certificate based authentication if get_distribution('netapp_lib').version not in [ '2015.9.25', '2016.10.14', '2017.10.30' ]: server.set_ssl_verification(module.params['verify_ssl']) server.set_style(module.params['style']) server.set_cert_file(module.params['cert_file']) server.set_key_file(module.params['key_file']) return server else: module.fail_json(msg="the python NetApp-Lib module is required")
def setup_na_ontap_zapi(module, vserver=None): hostname = module.params['hostname'] username = module.params['username'] password = module.params['password'] https = module.params['https'] validate_certs = module.params['validate_certs'] port = module.params['http_port'] version = module.params['ontapi'] if HAS_NETAPP_LIB: # set up zapi server = zapi.NaServer(hostname) server.set_username(username) server.set_password(password) if vserver: server.set_vserver(vserver) if version: minor = version else: minor = 110 server.set_api_version(major=1, minor=minor) # default is HTTP if https: if port is None: port = 443 transport_type = 'HTTPS' # HACK to bypass certificate verification if validate_certs is False: if not os.environ.get('PYTHONHTTPSVERIFY', '') and getattr( ssl, '_create_unverified_context', None): ssl._create_default_https_context = ssl._create_unverified_context else: 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: module.fail_json(msg="the python NetApp-Lib module is required")