Package: infoblox-client
===============================
Infoblox Client.. image::https://travis-ci.org/infobloxopen/infoblox-client.svg?branch=master:target:https://travis-ci.org/infobloxopen/infoblox-client.. image::https://img.shields.io/pypi/v/infoblox-client.svg:target:https://pypi.python.org/pypi/infoblox-client.. image::https://codecov.io/github/infobloxopen/infoblox-client/coverage.svg?branch=master:target:https://codecov.io/github/infobloxopen/infoblox-client?branch=master.. image::https://readthedocs.org/projects/infoblox-client/badge/?version=latest:target:http://infoblox-client.readthedocs.org/en/latest/?badge=latestClient for interacting with Infoblox NIOS over WAPI.Free software: Apache licenseDocumentation:https://infoblox-client.readthedocs.org.InstallationInstall infoblox-client using pip:::pip install infoblox-clientUsageConfigure logger prior to loading infoblox_client to get all debug messages in console:.. code:: pythonimport logging
logging.basicConfig(level=logging.DEBUG)Low level API, using connector moduleRetrieve list of network views from NIOS:

.. code:: python

  from infoblox_client import connector

  opts = {'host': '192.168.1.10', 'username': 'admin', 'password': 'admin'}
  conn = connector.Connector(opts)
  # get all network_views
  network_views = conn.get_object('networkview')
  # search network by cidr in specific network view
  network = conn.get_object('network', {'network': '100.0.0.0/8', 'network_view': 'default'})


For these request data is returned as list of dicts:

.. code:: python

  network_views:
  [{u'_ref': u'networkview/ZG5zLm5ldHdvcmtfdmlldyQw:default/true',
    u'is_default': True,
    u'name': u'default'}]

  network:
  [{u'_ref': u'network/ZG5zLm5ldHdvcmskMTAwLjAuMC4wLzgvMA:100.0.0.0/8/default',
    u'network': u'100.0.0.0/8',
    u'network_view': u'default'}]

High level API, using objects
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Example of creating Network View, Network, DNS View, DNSZone and HostRecord using NIOS objects:

.. code:: python

  from infoblox_client import connector
  from infoblox_client import objects

  opts = {'host': '192.168.1.10', 'username': 'admin', 'password': 'admin'}
  conn = connector.Connector(opts)

Create a network view, and network:

.. code:: python

  nview = objects.NetworkView.create(conn, name='my_view')
  network = objects.Network.create(conn, network_view='my_view', cidr='192.168.1.0/24')

Create a DNS view and zone:

.. code:: python

  view = objects.DNSView.create(conn, network_view='my_view', name='my_dns_view')
  zone = objects.DNSZone.create(conn, view='my_dns_view', fqdn='my_zone.com')

Create a host record:

.. code:: python

  my_ip = objects.IP.create(ip='192.168.1.25', mac='aa:bb:cc:11:22:33')
  hr = objects.HostRecord.create(conn, view='my_dns_view',
                                 name='my_host_record.my_zone.com', ip=my_ip)

Create host record with Extensible Attributes (EA):

.. code:: python

  ea = objects.EA({'Tenant ID': tenantid, 'CMP Type': cmptype,
                   'Cloud API Owned': True})
  host = objects.HostRecord.create(conn, name='new_host', ip=my_ip, extattrs=ea)

Create a host record with inherited Extensible Attributes (EA):

.. code:: python

  my_ip = objects.IP.create(ip='192.168.1.25', mac='aa:bb:cc:11:22:33', use_for_ea_inheritance=True)
  hr = objects.HostRecord.create(conn, view='my_dns_view',
                                 name='my_host_record.my_zone.com', ip=my_ip)

Set the TTL to 30 minutes:

.. code:: python

  hr = objects.HostRecord.create(conn, view='my_dns_view',
                                 name='my_host_record.my_zone.com', ip=my_ip,
                                 ttl = 1800)

Create a new host record, from the next available IP in a CIDR, with a MAC address, and DHCP enabled:

.. code:: python

    next = objects.IPAllocation.next_available_ip_from_cidr('default', '10.0.0.0/24')
    my_ip = objects.IP.create(ip=next, mac='aa:bb:cc:11:22:33', configure_for_dhcp=True)
    host = objects.HostRecord.create(conn, name='some.valid.fqdn', view='Internal', ip=my_ip)

Reply from NIOS is parsed back into objects and contains next data:

.. code:: python

  In [22]: hr
  Out[22]: HostRecordV4: _ref=record:host/ZG5zLmhvc3QkLjQuY29tLm15X3pvbmUubXlfaG9zdF9yZWNvcmQ:my_host_record.my_zone.com/my_dns_view, name=my_host_record.my_zone.com, ipv4addrs=[<infoblox_client.objects.IPv4 object at 0x7f7d6b0fe9d0>], view=my_dns_view


Create a new fixed address, with a MS server DHCP reservation:

.. code:: python

  obj, created = objects.FixedAddress.create_check_exists(connector=conn,
                                                          ip='192.168.100.100',
                                                          mac='aa:bb:cc:11:22:33',
                                                          comment='My DHCP reservation',
                                                          name='My hostname',
                                                          network_view='default',
                                                          ms_server={'_struct': 'msdhcpserver',
                                                                     'ipv4addr': '192.168.0.0'})



High level API, using InfobloxObjectManagerCreate a new fixed address, selecting it from the next available IP in a CIDR:.. code:: pythonfrom infoblox_client.object_manager import InfobloxObjectManagernew_address = InfobloxObjectManager(conn).create_fixed_address_from_cidr(netview='default', mac='aa:bb:cc:11:22:33', cidr='10.0.0.0/24', extattrs=[])What you get back is aFixedAddressV4object.Objects InterfaceAll top level objects support interface for CRUD operations. List of supported objects is defined in next section.create(cls, connector, check_if_exists=True, update_if_exists=False, **kwargs)Creates object on NIOS side.
Requires connector passed as the first argument,check_if_existsandupdate_if_existsare optional.
Object related fields are passed in as kwargs:field=value,field2=value2.search(cls, connector, return_fields=None, search_extattrs=None, force_proxy=False, **kwargs)Search single object on NIOS side, returns first object that match search criteria.
Requires connector passed as the first argument.return_fieldscan be set to retrieve particular fields from NIOS,
for examplereturn_fields=['view', 'name'].
Ifreturn_fieldsis[]defaultreturn_fieldsare returned by NIOS side for currentwapi_version.search_extattrsis used to filter out results by extensible attributes.force_proxyforces search request to be processed on Grid Master (applies only in cloud environment)search_all(cls, connector, return_fields=None, search_extattrs=None, force_proxy=False, **kwargs)Search all objects on NIOS side that match search criteria. Returns a list of objects.
All other options are equal tosearch().update(self)Update the object on NIOS side by pushing changes done in the local object.delete(self)Deletes the object from NIOS side.Supported NIOS objectsAll NIOS Objects are supported in the 0.6.0 verison release. check infoblox_client/objects.py for description of the objects.
Newly supported objectsAAAADtcRecordAAAARecordAAAASharedRecordADtcRecordADtcRecordBaseARecordARecordBaseASharedRecordASharedRecordBaseAdAuthServerAdAuthServiceAddressacAdmingroupAdminroleAdminuserAliasRecordAllendpointsAllnsgroupAllrecordsAllrpzrecordsAnyMemberApprovalworkflowAuthpolicyAwsrte53TaskAwsrte53TaskgroupAwsuserBaseObjectBfdtemplateBgpasBulkhostBulkhostnametemplateCNAMEDtcRecordCNAMERecordCNAMESharedRecordCaaRecordCacertificateCapacityreportCapacityreportObjectcountCaptiveportalCaptiveportalFileCertificateAuthserviceChangedobjectCiscoiseEndpointClientsubnetdomainCsvimporttaskDHCPLeaseDHCPRoamingHostDNSViewDNSZoneDNSZoneDelegatedDNSZoneForwardDbObjectsDbsnapshotDdnsPrincipalclusterDdnsPrincipalclusterGroupDeletedObjectsDhcidRecordDhcpOptionDefinitionDhcpOptionDefinitionV4DhcpOptionDefinitionV6DhcpOptionSpaceDhcpOptionSpaceV4DhcpOptionSpaceV6DhcpStatisticsDhcpddnsDhcpfailoverDhcpmemberDhcpoptionDiscoveryDiscoveryAutoconversionsettingDiscoveryCiscoapicconfigurationDiscoveryClicredentialDiscoveryDeviceDiscoveryDevicecomponentDiscoveryDeviceinterfaceDiscoveryDeviceneighborDiscoveryDevicesupportbundleDiscoveryDiagnostictaskDiscoveryGridpropertiesDiscoveryIfaddrinfoDiscoveryMemberpropertiesDiscoveryNetworkinfoDiscoveryPortDiscoveryScaninterfaceDiscoverySeedrouterDiscoverySnmp3CredentialDiscoverySnmpcredentialDiscoveryStatusDiscoveryVlaninfoDiscoveryVrfDiscoveryVrfmappingruleDiscoverytaskDiscoverytaskportDiscoverytaskvserverDistributionscheduleDnameRecordDns64GroupDnskeyRecordDnsseckeyDnssectrustedkeyDsRecordDtcDtcAllrecordsDtcCertificateDtcLbdnDtcMonitorDtcMonitorHttpDtcMonitorIcmpDtcMonitorPdpDtcMonitorSipDtcMonitorSnmpDtcMonitorSnmpOidDtcMonitorTcpDtcObjectDtcPoolDtcPoolConsolidatedMonitorHealthDtcPoolLinkDtcServerDtcServerLinkDtcServerMonitorDtcTopologyDtcTopologyLabelDtcTopologyRuleDtcTopologyRuleSourceDtclbdnRecordDxlEndpointDxlEndpointBrokerEAEADefinitionExclusionrangeExclusionrangetemplateExtensibleattributedefListvaluesExtserverExtsyslogbackupserverFileopFilterfingerprintFiltermacFilternacFilteroptionFilterrelayagentFilterruleFingerprintFixedAddressFixedAddressTemplateFixedAddressTemplateV4FixedAddressTemplateV6FixedAddressV4FixedAddressV6ForwardingmemberserverFtpuserGridGridCloudapiGridCloudapiCloudstatisticsGridCloudapiUserGridCloudapiVmGridCloudapiVmaddressGridDashboardGridDhcppropertiesGridDnsGridDnsFixedrrsetorderfqdnGridFiledistributionGridLicensePoolGridLicensePoolContainerGridLicensesubpoolGridMaxminddbinfoGridMemberCloudapiGridServicerestartGroupGridServicerestartGroupOrderGridServicerestartRequestGridServicerestartRequestChangedobjectGridServicerestartStatusGridThreatanalyticsGridThreatprotectionGridX509CertificateGridmemberSoamnameGridmemberSoaserialHostRecordHostRecordV4HostRecordV6HostnamerewritepolicyHotfixHsmAllgroupsHsmSafenetHsmSafenetgroupHsmThalesHsmThalesgroupIPIPAddressIPAllocationIPRangeIPRangeV4IPRangeV6IPv4IPv4AddressIPv4HostAddressIPv6IPv6AddressIPv6HostAddressInfobloxObjectInterfaceIpamStatisticsIpv6NetworksettingKerberoskeyLdapAuthServiceLdapEamappingLdapServerLicenseGridwideLocaluserAuthserviceLogicfilterruleLomnetworkconfigLomuserMXRecordMXSharedRecordMacfilteraddressMastergridMemberMemberDhcppropertiesMemberDnsMemberDnsgluerecordaddrMemberDnsipMemberFiledistributionMemberLicenseMemberParentalcontrolMemberThreatanalyticsMemberThreatprotectionMemberserverMemberservicecommunicationMemberservicestatusMsdhcpoptionMsdhcpserverMsdnsserverMsserverMsserverAdsitesDomainMsserverAdsitesSiteMsserverDcnsrecordcreationMsserverDhcpMsserverDnsMssuperscopeNamedaclNaptrDtcRecordNaptrRecordNatgroupNetworkNetworkContainerNetworkContainerV4NetworkContainerV6NetworkDiscoveryNetworkTemplateNetworkTemplateV4NetworkTemplateV6NetworkV4NetworkV6NetworkViewNetworkuserNetworkviewAssocmemberNodeinfoNotificationRestEndpointNotificationRestTemplateNotificationRestTemplateparameterNotificationRuleNotificationRuleexpressionopNsRecordNsec3ParamRecordNsec3RecordNsecRecordNsgroupNsgroupDelegationNsgroupForwardingmemberNsgroupForwardstubserverNsgroupStubmemberNxdomainruleOcspResponderOption60MatchruleOrderedrangesOrderedresponsepolicyzonesOspfOutboundCloudclientOutboundCloudclientEventParentalcontrolAbsParentalcontrolAvpParentalcontrolBlockingpolicyParentalcontrolIpspacediscriminatorParentalcontrolMspParentalcontrolNasgatewayParentalcontrolSitememberParentalcontrolSpmParentalcontrolSubscriberParentalcontrolSubscribersitePermissionPtrRecordPtrRecordV4PtrRecordV6RadiusAuthserviceRadiusServerRangeTemplateRangeTemplateV4RangeTemplateV6RdatasubfieldRecordnamepolicyRemoteddnszoneRestartservicestatusRirRirOrganizationRpzAIpaddressRecordRpzARecordRpzAaaaIpaddressRecordRpzAaaaRecordRpzCnameClientipaddressRecordRpzCnameClientipaddressdnRecordRpzCnameIpaddressRecordRpzCnameIpaddressdnRecordRpzCnameRecordRpzMxRecordRpzNaptrRecordRpzPtrRecordRpzPtrRecordV4RpzPtrRecordV6RpzSrvRecordRpzTxtRecordRrsigRecordRulesetSRVDtcRecordSRVRecordSRVSharedRecordSamlAuthserviceScavengingtaskScheduledtaskSearchSettingNetworkSettingViewaddressSharedNetworkSharedNetworkV4SharedNetworkV6SharedrecordgroupSmartfolderChildrenSmartfolderGlobalSmartfolderGroupbySmartfolderPersonalSmartfolderQueryitemSnmpuserSortlistSubObjectsSuperhostSuperhostchildSyslogEndpointSyslogEndpointServersSyslogserverTXTRecordTXTSharedRecordTacacsplusAuthserviceTacacsplusServerTaxiiTaxiiRpzconfigTenantTftpfiledirThreatanalyticsModulesetThreatanalyticsWhitelistThreatinsightCloudclientThreatprotectionGridRuleThreatprotectionNatruleThreatprotectionProfileThreatprotectionProfileRuleThreatprotectionRuleThreatprotectionRulecategoryThreatprotectionRulesetThreatprotectionRuletemplateThreatprotectionStatinfoThreatprotectionStatisticsThresholdtrapTlsaRecordTrapnotificationUnknownRecordUpdatesdownloadmemberconfigUpgradegroupUpgradegroupMemberUpgradegroupScheduleUpgradescheduleUpgradestatusUpgradestepUserprofileVdiscoverytaskVlanVlanlinkVlanrangeVlanviewVtftpdirmemberZoneAuthDiscrepancyZoneRpZoneStubZoneassociationZonenameserverUntil 0.4.25 this project supportedNetworkViewfor 'networkview'DNSViewfor 'view'DNSZonefor 'zone_auth'Memberfor 'member'Network(V4 and V6)NetworkV4for 'network'NetworkV6for 'ipv6network'IPRange(V4 and V6)IPRangeV4for 'range'IPRangeV6for 'ipv6range'HostRecord(V4 and V6)HostRecordV4for 'record:host'HostRecordV6for 'record:host'FixedAddress(V4 and V6)FixedAddressV4for 'fixedaddress'FixedAddressV6for 'ipv6fixedaddress'IPAddress(V4 and V6)IPv4Addressfor 'ipv4address'IPv6Addressfor 'ipv6address'ARecordBaseARecordfor 'record:a'AAAARecordfor 'record:aaaa'PtrRecord(V4 and V6)PtrRecordV4for 'record:ptr'PtrRecordV6for 'record:ptr'EADefinitionfor 'extensibleattributedef'CNAMERecordfor 'record:cname'MXRecordfor 'record:mx'Search by regular expressionSearch for partial match is supported only by low-level API for now.
Use '~' with field name to search by regular expressions. Not all
fields support search by regular expression. Refer to wapidoc to find
out complete list of fields that can be searched this way. Examples:Find all networks that starts with '10.10.':.. code:: pythonconn = connector.Connector(opts)
nw = conn.get_object('network', {'network~': '10.10.'})Find all host records that starts with '10.10.':.. code:: pythonconn = connector.Connector(opts)
hr = conn.get_object('record:host', {'ipv4addr~': '10.10.'})More examplesUtilizing extensible attributes and searching on them can easily be done with theget_objectfunction.
Thedefaultfield inreturn_fieldsacts like the+does in WAPI._return_fields+Specified list of fields (comma separated) will be returned in addition
to the basic fields of the object (documented for each object).This enables you to always get the default values in return, in addition to what you specify whether
you search for anetworkor anetworkcontainer,
defined asplace_to_checkin the code below... code:: pythonfrom infoblox_client.connector import Connector


def default_infoblox_connection():
    opts = {'host': '192.168.1.10', 'username': 'admin', 'password': 'admin'}
    conn = Connector(opts)
    return conn

def search_extensible_attribute(connection, place_to_check: str, extensible_attribute: str, value: str):
    """
    Find extensible attributes.
    :param connection: Infoblox connection
    :param place_to_check: Can be `network`, `networkcontainer` or `record:host` and so on.
    :param extensible_attribute: Which extensible attribute to search for. Can be `CustomerCode`, `Location`
    and so on.
    :param value: The value you want to search for.
    :return: result
    """
    extensible_args = [
        place_to_check,
        {
            f"*{extensible_attribute}:~": value,
        }
    ]
    kwargs = {
        'return_fields': [
            'default',
            'extattrs',
        ]
    }
    result = {"type": f"{place_to_check}", "objects": connection.get_object(*extensible_args, **kwargs)}
    return result

connection = default_infoblox_connection()

search_network = search_extensible_attribute(connection, "network", "CustomerCode", "Infoblox")
# Print the output:
print(search_network)
{
  "type": "network",
  "objects": [
    {
      "_ref": "network/ZG5zLmhvc3QkLjQuY29tLm15X3pvbmUubXlfaG9zdF9yZWNvcmQ:192.168.1.1/28/default",
      "comment": "Infoblox Network",
      "extattrs": {
        "CustomerCode": {
          "value": "Infoblox"
        }
      },
      "network": "192.168.1.0/28",
      "network_view": "default"
    }
  ]
}

search_host = search_extensible_attribute(connection, "record:host", "CustomerCode", "Infoblox")
# Print the output:
print(search_host)
{
  "type": "record:host",
  "objects": [
    {
      "_ref": "record:host/ZG5zLm5ldHdvcmtfdmlldyQw:InfobloxHost",
      "extattrs": {
        "CustomerCode": {
          "value": "Infoblox"
        }
      },
      "ipv4addrs": [
        {
          "_ref": "record:host_ipv4addr/ZG5zLm5ldHdvcmtfdmlldyQwdvcmtfdmlldyQw:192.168.1.1/InfobloxHost",
          "configure_for_dhcp": false,
          "host": "InfobloxHost",
          "ipv4addr": "192.168.1.1"
        }
      ],
      "name": "InfobloxHost",
      "view": " "
    }
  ]
}FeaturesTODOHistory0.6.0 (2022-11-18)Added support for Python version 3.9 #352;Removed support for Python version below 3.0 #352;0.5.2 (2022-10-12)Added Certificate based authentication logic #330;Fixed use of EA inheritance in IP Objects #318;Fixed missing fields ('ipv4addr', 'ipv6addr') for 'class Member()' #345;0.5.1 (2022-03-14)Updated connector's urlencoding logic for proper array encoding #287;Updated InfobloxObject's fetch method to raiseInfobloxFetchGotMultipleObjectsexception #288;Fix a bug when calling abstracted class from_dict with V4 & V6 subclass #282;Fix a bug when updating DNSZone object exception was raised and field not allowed to update #331;Fix a bug when ARecord and AAAARecord object skips updating the updatable fields #334, #328;Raised an exception while searching with non searchable fields #339;Fix errors generated for the client using sphinx with make docs #343;0.5.0 (2020-05-14)Majorly Updated objects with around 380+ NIOS object calls supported now.(Find the infoblox_client/objects.py file to list the supported objects and its descriptions)Bug Fixespython-six dependency set to >=1.11.00.4.25 (2020-03-12)Bug Fixes0.4.24 (2020-02-25)Added some extra fields(ms_server) for Fixed AddressSupporting MX recordBug Fixes - PTR records now return an IP0.4.23 (2019-09-10)Added some extra fields for network classFixed update option for A RecordAdding fields for fixed address0.4.22 (2019-02-21)Supported returning default fileds plus user required fields reflecting WAPISupporting 'aliases' parameter of HOST record for DNS0.4.21 (2019-01-18)Supporting wapi version 2.10 or above0.4.20 (2018-03-27)Updated default WAPI version from 1.4 to 2.10.4.19 (2018-02-06)Changed logging of failure on object search from Error to Warning0.4.18 (2017-11-20)Fix bug related to temporary unavailable status code0.4.17 (2017-11-09)Added pagination support for wapi calls0.4.15 (2017-07-18)Changed logic of generate duid using only mac address0.4.14 (2017-05-18)Add function to check object is created or reused0.4.13 (2017-03-01)Add TTL field to HostRecordV*Add CNAME record supportSpecify return fields for an SRV record0.4.12 (2016-12-08)Allow search all fieldsRemove ptrdname from PTR record search attributes0.4.11 (2016-10-31)Add search HostRecords by MAC0.4.10 (2016-10-24)Updated history and author0.4.9 (2016-10-24)Add function to get fixed addresses by mac0.4.8 (2016-10-10)Add ptrdname search option to PtrRecord objects0.4.7 (2016-07-14)Add zones extensible attribute update support0.4.6 (2016-07-01)Add network_view support for host records0.4.5 (2016-06-13)Allow raising exception in create_ea_definitionAdd pep8 check to toxAdd pep8 check to Travis CIAdd examples of searching by regular expression0.4.4 (2016-05-11)Pass only_ref option to update_from_dictDo not fail on processing unknown fieldsFetch only object reference for service restartUpdate README with example of using EA0.4.3 (2016-03-28)Add default fields for MemberUpdate docstring for create_networkAdd  fields to FixedAddressV4 and IPAddress0.4.2 (2016-03-04)Add max_retries option to connectorLog failure on get with Error log level0.4.1 (2016-02-26)Add 'max_results' as connector option0.4.0 (2016-02-19)Add max_results option to connector and objectsAdd Tenant objectUpdate README.rst with more examples0.3.9 (2016-02-18)Add 'configure_for_dns' field for HostRecord0.3.8 (2016-02-17)Add 'extattrs' to DNSZone/DNSView return_fields0.3.7 (2016-02-12)Add return_fields to NetworkView0.3.6 (2016-01-28)Add support for list and tuple values to EA objectRemove _value_to_bool0.3.5 (2016-01-22)No changes0.3.4 (2016-01-21)Do not override verify flag on request level0.3.3 (2016-01-20)create_required_ea_definitions return created listAdd 'start_addr', 'end_addr' to ip detection listAdd request type to connector loggerFlake8 fixes0.3.2 (2016-01-19)Convert strings into booleans for ssl_verifyUpdate AUTHORS.rst, add contributorsRemove unused methods from utils.py0.3.1 (2016-01-14)Add 'zone' to search fields of Host Record0.3.0 (2016-01-14)Update development status from Pre-Alpha to AlphaFeature/tox testing (huge changes in testing env)Add 'network' to search fields of FixedAddressAllow domain-name-servers for ipv6Update existent EA for network instead of replace0.2.3 (2016-01-06)Return None if search failed instead of exceptionAdd ip_version as a public property for objects0.2.2 (2015-12-23)Fix updating object from create methodRework delete_all_associated_objects logicFix error handling in create_objectDo not catch exception on create_dns_zone levelUpdate feature version for member_ipv6_setting0.2.1 (2015-12-18)Add InfobloxMemberAlreadyAssigned exceptionUpdate dns record if already existsAdd 'log_api_calls_as_info' option for connectorCheck for empty values in EA0.2.0 (2015-12-17)Deprecate network_exists method in object_managerAdd _global_field_processing for objectsAdd parsing 'extattrs' into EA objects for all InfobloxObject childsAdd docs badge to README.rstReworked get_network in object_managerMoveeqto BaseObjectCheck if fixed address is found before delete0.1.4 (2015-12-08)Field updates for Member objectLog all api calls in connector on debug level0.1.3 (2015-12-04)Add 'network' field to ip versioned fieldsSkip adding DHCP options for IPv6 networkDo not search IPRange before creating0.1.2 (2015-12-02)Do not fail if object is not found on deleteRaise exception with details if reply is not jsonAdd 'silent_ssl_warnings' option to connector0.1.1 (2015-12-01)Fix unbind_name_from_record_a0.1.0 (2015-12-01)Add new field type '_updateable_search_field' to objects and fix HostRecord searchFix 'make docs'Update README.rst (fixed formatting)0.0.11 (2015-11-25)Fix adding second ip to HostRecordFix failing in pdbConvert EA values into boolean if possibleAdded 'ips' allias for ip field in HostRecord0.0.10 (2015-11-19)Add utility to determine supported featureUpdate README.rst with objects interface0.0.9 (2015-11-13)Add allowed_object_types field for EA DefinitionAllow to return default fields for objectUpdate README.rst with list of supported objects0.0.8 (2015-11-12)Add Extensible Attributes Definition supportFixed options processing for create_network in object_managerFixed missed DNSZone object in create_dns_zone0.0.7 (2015-10-27)Added 'network' to IPRange search fieldsModifiedgetmethod of the EA class to allow return default values0.0.6 (2015-10-26)Added initial support of Extensible Attributes as sub objectsAdded search by Extensible AttributesImproved validation in connectorAdded delete_object_by_ref to object manager0.0.5 (2015-10-12)Fixed issues in working with objectsAdded missed _get_object_type_from_refAdded code coverageUpdated links to point to infobloxopen repository0.0.4 (2015-09-23)Added object abstraction for interacting with NIOS objectsAdded object_manager to simplify some operations on objects0.0.3 (2015-09-15)Added dependencies to package.0.0.2 (2015-09-11)Fixed using dashes in package directory names that prevented package import after install.0.0.1 (2015-09-11)Added connector to send wapi requests to NIOS, does not includes NIOS object model at this point.First release on PyPI.