# # (c) 2016, Sumit Kumar # # This file is part of Ansible # # Ansible is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # Ansible is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Ansible. If not, see . HAS_NETAPP_LIB = False try: from netapp_lib.api.zapi import zapi from netapp_lib.api.zapi import errors as zapi_errors HAS_NETAPP_LIB = True except: HAS_NETAPP_LIB = False HAS_SF_SDK = False try: from solidfire.factory import ElementFactory from solidfire.custom.models import TimeIntervalFrequency from solidfire.models import Schedule, ScheduleInfo HAS_SF_SDK = True except: HAS_SF_SDK = False def has_netapp_lib(): return HAS_NETAPP_LIB def has_sf_sdk(): return HAS_SF_SDK def ontap_sf_host_argument_spec(): return dict( 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), ) def create_sf_connection(module, port=None): hostname = module.params['hostname'] username = module.params['username'] password = module.params['password'] if HAS_SF_SDK and hostname and username and password: try: return_val = ElementFactory.create(hostname, username, password, port=port) return return_val except: raise Exception("Unable to create SF connection") else: module.fail_json(msg="the python SolidFire SDK module is required") def setup_ontap_zapi(module, vserver=None): hostname = module.params['hostname'] username = module.params['username'] password = module.params['password'] 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) server.set_port(80) server.set_server_type('FILER') server.set_transport_type('HTTP') return server else: module.fail_json(msg="the python NetApp-Lib module is required")