docker-registry-sync 0.2.4 → 0.2.5

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 CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NWUwMGMxODNmMTc2ODJhNWMyYzJhMTljNmIyOGJhOTA1NTZkYzkwZA==
4
+ YjY2MmVkODljYzQzMWNmZDRjNmM3MWY5MTVkN2M1YjE4YjU5MDVlMw==
5
5
  data.tar.gz: !binary |-
6
- MGU1ZWRjYjU2N2M2YzdjYmZjMjVlMGVhY2E0YTZhNjhmN2M3NjAzOQ==
6
+ YmU4NjBiMDUwZDc4NWZhMDc1NTc2ZjgzODMzYzExMTM5MmIzZDhlYQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ZWMxNzdmNTM2MmQzNTYwZGVmYjE0MGI2ZjU3NzZjNDNmOThkYjg0MjE1ZTc3
10
- Mzg4YjRhMTYxM2JlZDc2NjMxMTNmODViZTg4ZGQyZmY0MjA3NDgyNjg4Mzhh
11
- YTg0NGYwNTJlYWMzNTE4YWZmNWFkMTU1Y2ZkNjY4MTY4OTRmN2U=
9
+ YTk1NmVkYzUwY2YxZDJlZDUzMjIyMWExMDcyM2I0MjhiYzJkYzM2YjhkM2U4
10
+ YWM3NGViZDk5MWNlOWYxZmRjYWVmYjQ4N2RlZjJjY2E5YjU0YWMyYjIzYjkz
11
+ YzZjY2MyZjhkODVhNzcwNjcyYWRjOGIwZGNmZmU0NjcyODU1N2E=
12
12
  data.tar.gz: !binary |-
13
- NDNjZTcyNjZhM2QwNTlkNGNlNzU5NWE2MDFiNGUzY2Q3OTVkZGY3ZDMwODFj
14
- OGZjYzYwMmQxZTY4NDAyNjY2M2U1YWY4N2ZkYmE5MTlmYjA0OGIxZGFiNzBh
15
- ZmM3ZWE3Y2NlN2I0NWE0Mjg3OWFmODkyODBhNDgwYzc3YWYwZjA=
13
+ ZGMyZDI5YmE4YTZiNTc1NzliYThjOWNjYTYxMDJmMGYyNjA1YWZmYzM0M2Y1
14
+ MjdhZDQ3MGI1ODRlODM3OTkwNTdhZjFkMWM3ZmU4NjRjYWZjNWE1MTM0ZGRh
15
+ YzA1NTJkN2Y1ZTViZDRlN2MyNzZkMjA5MzNhYjFjZmJkNjdkNzg=
@@ -12,6 +12,26 @@ module Docker
12
12
  self.config ||= Docker::Registry::Sync::Configuration.new
13
13
  yield self.config
14
14
  end
15
+
16
+ class RingBuffer < Array
17
+ attr_reader :max_size
18
+
19
+ def initialize(max_size, enum = nil)
20
+ @max_size = max_size
21
+ enum.each { |e| self << e } if enum
22
+ end
23
+
24
+ def <<(el)
25
+ if self.size < @max_size || @max_size.nil?
26
+ super
27
+ else
28
+ self.shift
29
+ self.push(el)
30
+ end
31
+ end
32
+
33
+ alias :push :<<
34
+ end
15
35
  end
16
36
  end
17
37
  end
@@ -30,6 +30,8 @@ module Docker
30
30
  sqs_region, sqs_uri = nil, nil
31
31
  end
32
32
 
33
+ @synced_images = RingBuffer.new 5000
34
+
33
35
  Docker::Registry::Sync.configure do |config|
34
36
  config.source_bucket = source_bucket
35
37
  config.source_region = source_region
@@ -135,8 +137,7 @@ module Docker
135
137
  resp = sqs.receive_message(
136
138
  queue_url: @config.sqs_url,
137
139
  max_number_of_messages: 1,
138
- #visibility_timeout: 900, # Give ourselves 15min to sync the image
139
- visibility_timeout: 30, # Give ourselves 15min to sync the image
140
+ visibility_timeout: 900, # Give ourselves 15min to sync the image
140
141
  wait_time_seconds: 10, # Wait a maximum of 10s for a new message
141
142
  )
142
143
  @config.logger.info "SQS returned #{resp.messages.length} new images to sync..."
@@ -75,7 +75,10 @@ module Docker
75
75
  ancestry_resp = s3_source.get_object(bucket: source_bucket, key: "registry/images/#{image_id}/ancestry")
76
76
  # Ancestry includes self
77
77
  JSON.load(ancestry_resp.body.read).each do |image|
78
- sync_prefix(s3_source, s3_target, bucket, sse, "registry/images/#{image}/", source_bucket)
78
+ unless @synced_images.include? image
79
+ sync_prefix(s3_source, s3_target, bucket, sse, "registry/images/#{image}/", source_bucket)
80
+ @synced_images << image
81
+ end
79
82
  end
80
83
  end
81
84
 
@@ -1,7 +1,7 @@
1
1
  module Docker
2
2
  module Registry
3
3
  module Sync
4
- VERSION = '0.2.4'
4
+ VERSION = '0.2.5'
5
5
  end
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: docker-registry-sync
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Oldfield
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-08 00:00:00.000000000 Z
11
+ date: 2015-09-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler