docs: def update_ip(self, ip, record_type='A', domains=None, subdomains=None):
          """Update the IP address in all records, specified by type, to the value of ip.  Returns True if no
          exceptions occurred during the update.  If no domains are provided, all domains returned from
          self.get_domains() will be updated.  By default, only A records are updated.
  
          :param record_type: The type of records to update (eg. 'A')
          :param ip: The new IP address (eg. '123.1.2.255')
          :param domains: A list of the domains you want to update (eg. ['123.com','abc.net'])
          :param subdomains: A list of the subdomains you want to update (eg. ['www','dev'])
  
          :type record_type: str or unicode
          :type ip: str or unicode
          :type domains: str, list of str
          :type subdomains: str, list of str
  
          :return: True if no exceptions occurred
          """
  
          if domains is None:
              domains = self.get_domains()
          elif sys.version_info < (3, 0):
              if isinstance(domains, (str, unicode)):
                  domains = [domains]
          elif sys.version_info >= (3, 0):
              if isinstance(domains, str):
                  domains = [domains]
          else:
              # we have a tuple, set, or something else, try to convert it to a list
              domains = list(domains)
  
          for domain in domains:
              a_records = self.get_records(domain, record_type=record_type)
              for record in a_records:
                  r_name = str(record['name'])
                  r_ip = str(record['data'])
  
                  if not r_ip == ip:
                      if (subdomains is None or
                              (isinstance(subdomains, (unicode, str)) and r_name == subdomains) or
                              r_name in subdomains):
                          record.update(data=str(ip))
                          self.update_record(domain, record)
  
          # If we didn't get any exceptions, return True to let the user know
          return True