record_store 8.0.0 → 8.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +3 -0
- data/lib/record_store/provider/cloudflare/response.rb +8 -0
- data/lib/record_store/provider/cloudflare.rb +38 -7
- data/lib/record_store/version.rb +1 -1
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 7680653d3944e3a5c8de1a31055e38266a379d4caed36f7eb30bb5ae27217d71
         | 
| 4 | 
            +
              data.tar.gz: 5487a8cbcd8079815fbe3e0276e99360a16d954b02b6ed819639bd73e016bc5e
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 0ba282fe4046bf7169648d3eecb0137fefd8882dc4c7dbf3c5af0f17cf0ef56ba948d0235668057656c53c709f9372ee155e6aa3aab211c265fdc322e1d9c4ba
         | 
| 7 | 
            +
              data.tar.gz: f4e9646af425cdbe7a6827f0fd88e8c24717c6ea21921228ab72164a7e1b019071533f2576ba25b77bf02e3477a22e2d00d0a4df0d1cbfb985e6137c562dd1f1
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    
| @@ -27,6 +27,14 @@ module Cloudflare | |
| 27 27 | 
             
                  result
         | 
| 28 28 | 
             
                end
         | 
| 29 29 |  | 
| 30 | 
            +
                def result_info_raw
         | 
| 31 | 
            +
                  result_info_raw = json['result_info']
         | 
| 32 | 
            +
             | 
| 33 | 
            +
                  return if result_info_raw.nil? || result_info_raw.empty? || !success
         | 
| 34 | 
            +
             | 
| 35 | 
            +
                  result_info_raw
         | 
| 36 | 
            +
                end
         | 
| 37 | 
            +
             | 
| 30 38 | 
             
                def success
         | 
| 31 39 | 
             
                  json['success']
         | 
| 32 40 | 
             
                end
         | 
| @@ -20,20 +20,50 @@ module RecordStore | |
| 20 20 | 
             
                  def retrieve_current_records(zone:, stdout: $stdout)
         | 
| 21 21 | 
             
                    zone_id = zone_name_to_id(zone)
         | 
| 22 22 |  | 
| 23 | 
            -
                     | 
| 24 | 
            -
             | 
| 25 | 
            -
             | 
| 23 | 
            +
                    all_records = []
         | 
| 24 | 
            +
                    page = 1
         | 
| 25 | 
            +
                    per_page = 1000
         | 
| 26 | 
            +
             | 
| 27 | 
            +
                    loop do
         | 
| 28 | 
            +
                      response = nil
         | 
| 29 | 
            +
                      retry_on_connection_errors do
         | 
| 30 | 
            +
                        response = client.get("/client/v4/zones/#{zone_id}/dns_records", page: page, per_page: per_page)
         | 
| 31 | 
            +
                      end
         | 
| 32 | 
            +
             | 
| 33 | 
            +
                      records = response.result_raw || []
         | 
| 34 | 
            +
                      all_records.concat(records)
         | 
| 35 | 
            +
             | 
| 36 | 
            +
                      break if page * per_page >= response.result_info_raw['total_count']
         | 
| 37 | 
            +
             | 
| 38 | 
            +
                      page += 1
         | 
| 26 39 | 
             
                    end
         | 
| 40 | 
            +
             | 
| 41 | 
            +
                    all_records.map { |api_body| build_from_api(api_body) }
         | 
| 27 42 | 
             
                  end
         | 
| 28 43 |  | 
| 29 44 | 
             
                  # Returns an array of the zones managed by provider as strings
         | 
| 30 45 | 
             
                  # Cloudflare returns zones across all accounts accessible by the API token
         | 
| 31 46 | 
             
                  # Can implement filtering in request if needed
         | 
| 32 47 | 
             
                  def zones
         | 
| 33 | 
            -
                     | 
| 34 | 
            -
             | 
| 35 | 
            -
             | 
| 48 | 
            +
                    all_zones = []
         | 
| 49 | 
            +
                    page = 1
         | 
| 50 | 
            +
                    per_page = 50
         | 
| 51 | 
            +
             | 
| 52 | 
            +
                    loop do
         | 
| 53 | 
            +
                      response = nil
         | 
| 54 | 
            +
                      retry_on_connection_errors do
         | 
| 55 | 
            +
                        response = client.get('/client/v4/zones', page: page, per_page: per_page)
         | 
| 56 | 
            +
                      end
         | 
| 57 | 
            +
             | 
| 58 | 
            +
                      zones = response.result_raw || []
         | 
| 59 | 
            +
                      all_zones.concat(zones)
         | 
| 60 | 
            +
             | 
| 61 | 
            +
                      break if page * per_page >= response.result_info_raw['total_count']
         | 
| 62 | 
            +
             | 
| 63 | 
            +
                      page += 1
         | 
| 36 64 | 
             
                    end
         | 
| 65 | 
            +
             | 
| 66 | 
            +
                    all_zones.map { |zone| zone['name'] }
         | 
| 37 67 | 
             
                  end
         | 
| 38 68 |  | 
| 39 69 | 
             
                  def apply_changeset(changeset, stdout = $stdout)
         | 
| @@ -173,7 +203,8 @@ module RecordStore | |
| 173 203 |  | 
| 174 204 | 
             
                  def zone_name_to_id(zone_name)
         | 
| 175 205 | 
             
                    retry_on_connection_errors do
         | 
| 176 | 
            -
                       | 
| 206 | 
            +
                      params = { name: zone_name }
         | 
| 207 | 
            +
                      matching_zones = client.get("/client/v4/zones", params).result_raw
         | 
| 177 208 |  | 
| 178 209 | 
             
                      case matching_zones.size
         | 
| 179 210 | 
             
                      when 0
         | 
    
        data/lib/record_store/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: record_store
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 8.0. | 
| 4 | 
            +
              version: 8.0.1
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Willem van Bergen
         | 
| @@ -9,7 +9,7 @@ authors: | |
| 9 9 | 
             
            autorequire:
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2024-10- | 
| 12 | 
            +
            date: 2024-10-29 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: activemodel
         |