smart_proxy_omaha 0.0.5 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,7 @@
1
1
  require 'test_helper'
2
2
  require 'smart_proxy_omaha/configuration_loader'
3
3
  require 'smart_proxy_omaha/omaha_plugin'
4
+ require 'smart_proxy_omaha/distribution'
4
5
 
5
6
  ENV['RACK_ENV'] = 'test'
6
7
 
@@ -30,6 +31,7 @@ class TestReleaseRepository
30
31
  def releases(track, architecture)
31
32
  ['1068.9.0', '1122.2.0'].map do |release|
32
33
  Proxy::Omaha::Release.new(
34
+ :distribution => ::Proxy::Omaha::Distribution::Coreos.new,
33
35
  :track => 'alpha',
34
36
  :architecture => 'amd64-usr',
35
37
  :version => release
@@ -73,6 +75,9 @@ module Proxy::Omaha
73
75
  c.singleton_dependency :foreman_client_impl, TestForemanClient
74
76
  c.singleton_dependency :release_repository_impl, TestReleaseRepository
75
77
  c.singleton_dependency :metadata_provider_impl, TestMetadataProvider
78
+ c.singleton_dependency :distribution_impl, (lambda do
79
+ ::Proxy::Omaha::Distribution::Coreos.new
80
+ end)
76
81
  end
77
82
  end
78
83
  end
@@ -151,4 +156,18 @@ class OmahaApiTest < Test::Unit::TestCase
151
156
  assert_kind_of Array, parsed
152
157
  assert_equal ['1068.9.0', '1122.2.0'], parsed.map { |track| track['name'] }
153
158
  end
159
+
160
+ def test_ca
161
+ Proxy::SETTINGS.stubs(:ssl_ca_file).returns(File.expand_path('../../fixtures/ca.crt', __FILE__))
162
+ get '/ca'
163
+ assert last_response.ok?, "Last response was not ok: #{last_response.status} #{last_response.body}"
164
+ body = last_response.body
165
+ assert_includes body, 'CERTIFICATE'
166
+ end
167
+
168
+ def test_ca_not_found
169
+ Proxy::SETTINGS.stubs(:ssl_ca_file).returns(File.expand_path('../../fixtures/noca.crt', __FILE__))
170
+ get '/ca'
171
+ assert_equal 404, last_response.status
172
+ end
154
173
  end
@@ -8,7 +8,8 @@ class RequestTest < Test::Unit::TestCase
8
8
  @request = Proxy::Omaha::OmahaProtocol::Request.new(
9
9
  xml_fixture('request_update_complete_update'),
10
10
  :ip => '1.1.1.1',
11
- :base_url => 'http://www.example.org/'
11
+ :base_url => 'http://www.example.org/',
12
+ :distribution => 'coreos'
12
13
  )
13
14
  end
14
15
 
@@ -44,6 +45,7 @@ class RequestTest < Test::Unit::TestCase
44
45
  :alephversion => '1010.5.0',
45
46
  :appid => 'e96281a6-d1af-4bde-9a0a-97b76e56dc57',
46
47
  :board => 'amd64-usr',
48
+ :distribution => 'coreos',
47
49
  :hostname => 'omaha.example.com',
48
50
  :ipaddress => '1.1.1.1',
49
51
  :ipaddress6 => nil,
@@ -74,7 +76,8 @@ class RequestTest < Test::Unit::TestCase
74
76
  request6 = Proxy::Omaha::OmahaProtocol::Request.new(
75
77
  xml_fixture('request_update_complete_update'),
76
78
  :ip => '2001:db8::1',
77
- :base_url => 'http://www.example.org/'
79
+ :base_url => 'http://www.example.org/',
80
+ :distribution => 'coreos'
78
81
  )
79
82
 
80
83
  assert_nil request6.ipaddress
@@ -83,7 +86,8 @@ class RequestTest < Test::Unit::TestCase
83
86
  request64 = Proxy::Omaha::OmahaProtocol::Request.new(
84
87
  xml_fixture('request_update_complete_update'),
85
88
  :ip => '::ffff:1.1.1.1',
86
- :base_url => 'http://www.example.org/'
89
+ :base_url => 'http://www.example.org/',
90
+ :distribution => 'coreos'
87
91
  )
88
92
 
89
93
  assert_equal '1.1.1.1', request64.ipaddress
@@ -1,15 +1,19 @@
1
1
  require 'test_helper'
2
2
  require 'smart_proxy_omaha/release'
3
3
  require 'smart_proxy_omaha/release_provider'
4
+ require 'smart_proxy_omaha/distribution'
4
5
 
5
6
  class ReleaseProviderTest < Test::Unit::TestCase
6
- def setup
7
- @provider = Proxy::Omaha::ReleaseProvider.new(:track => :stable, :architecture => 'amd64-usr')
8
- end
7
+ def test_releases_coreos
8
+ distribution = ::Proxy::Omaha::Distribution::Coreos.new
9
+ provider = Proxy::Omaha::ReleaseProvider.new(
10
+ distribution: distribution,
11
+ track: :stable,
12
+ architecture: 'amd64-usr'
13
+ )
9
14
 
10
- def test_releases
11
- stub_request(:get, 'https://stable.release.core-os.net/amd64-usr/').
12
- to_return(:status => [200, 'OK'], :body => fixture('stable.html'))
15
+ stub_request(:get, 'https://stable.release.core-os.net/amd64-usr/')
16
+ .to_return(status: [200, 'OK'], body: fixture('stable.html'))
13
17
 
14
18
  expected = ['367.1.0',
15
19
  '410.0.0',
@@ -54,6 +58,22 @@ class ReleaseProviderTest < Test::Unit::TestCase
54
58
  '1068.10.0',
55
59
  '1122.2.0']
56
60
 
57
- assert_equal expected.map {|v| Proxy::Omaha::Release.new(:track => @provider.track, :version => v, :architecture => 'amd64-usr') }, @provider.releases
61
+ assert_equal expected.map { |v| Proxy::Omaha::Release.new(distribution: distribution, track: provider.track, version: v, architecture: 'amd64-usr') }, provider.releases
62
+ end
63
+
64
+ def test_releases_flatcar
65
+ distribution = ::Proxy::Omaha::Distribution::Flatcar.new
66
+ provider = Proxy::Omaha::ReleaseProvider.new(
67
+ track: :stable,
68
+ architecture: 'amd64-usr',
69
+ distribution: distribution
70
+ )
71
+
72
+ stub_request(:get, 'https://www.flatcar-linux.org/releases-json/releases-stable.json')
73
+ .to_return(status: [200, 'OK'], body: fixture('flatcar_releases-stable.json'))
74
+
75
+ expected = ['1688.5.3', '1745.3.1', '1745.4.0', '1745.5.0', '1745.6.0', '1745.7.0', '1800.4.0', '1800.5.0', '1800.6.0', '1800.7.0', '1855.4.0', '1855.4.2', '1855.5.0', '1911.3.0', '1911.4.0', '1911.5.0', '1967.3.0', '1967.3.1', '1967.4.0', '1967.5.0', '1967.6.0', '2023.4.0', '2023.5.0', '2079.3.0', '2079.3.1', '2079.3.2', '2079.4.0', '2079.5.0', '2079.6.0', '2135.4.0', '2135.5.0', '2135.6.0', '2191.4.0', '2191.4.1', '2191.5.0', '2247.5.0', '2247.6.0', '2247.7.0', '2303.3.0', '2303.3.1', '2303.4.0', '2345.3.0']
76
+
77
+ assert_equal expected.map { |v| Proxy::Omaha::Release.new(distribution: distribution, track: provider.track, version: v, architecture: 'amd64-usr') }, provider.releases
58
78
  end
59
79
  end
@@ -5,12 +5,10 @@ require 'smart_proxy_omaha/release_repository'
5
5
  class ReleaseRepositoryTest < Test::Unit::TestCase
6
6
  def setup
7
7
  @contentpath = Dir.mktmpdir
8
- Proxy::Omaha::Plugin.load_test_settings(
9
- {
10
- :contentpath => @contentpath
11
- }
8
+ @repository = Proxy::Omaha::ReleaseRepository.new(
9
+ :contentpath => @contentpath,
10
+ :distribution => ::Proxy::Omaha::Distribution::Coreos.new
12
11
  )
13
- @repository = Proxy::Omaha::ReleaseRepository.new
14
12
  end
15
13
 
16
14
  def teardown
@@ -2,6 +2,7 @@ require 'test_helper'
2
2
  require 'fileutils'
3
3
  require 'tmpdir'
4
4
  require 'smart_proxy_omaha/release'
5
+ require 'smart_proxy_omaha/distribution'
5
6
 
6
7
  class ReleaseTest < Test::Unit::TestCase
7
8
 
@@ -13,6 +14,7 @@ class ReleaseTest < Test::Unit::TestCase
13
14
  }
14
15
  )
15
16
  @release = Proxy::Omaha::Release.new(
17
+ :distribution => ::Proxy::Omaha::Distribution::Coreos.new,
16
18
  :track => :stable,
17
19
  :architecture => 'amd64-usr',
18
20
  :version => '1068.9.0'
@@ -56,11 +58,13 @@ class ReleaseTest < Test::Unit::TestCase
56
58
 
57
59
  def test_compare
58
60
  older = Proxy::Omaha::Release.new(
61
+ :distribution => ::Proxy::Omaha::Distribution::Coreos.new,
59
62
  :track => :stable,
60
63
  :architecture => 'amd64-usr',
61
64
  :version => '100.0.0'
62
65
  )
63
66
  newer = Proxy::Omaha::Release.new(
67
+ :distribution => ::Proxy::Omaha::Distribution::Coreos.new,
64
68
  :track => :stable,
65
69
  :architecture => 'amd64-usr',
66
70
  :version => '2000.0.0'
@@ -72,6 +76,7 @@ class ReleaseTest < Test::Unit::TestCase
72
76
 
73
77
  def test_equality
74
78
  other = Proxy::Omaha::Release.new(
79
+ :distribution => ::Proxy::Omaha::Distribution::Coreos.new,
75
80
  :track => :stable,
76
81
  :architecture => 'amd64-usr',
77
82
  :version => '100.0.0'
@@ -152,6 +157,7 @@ class ReleaseTest < Test::Unit::TestCase
152
157
  def test_current_release_update
153
158
  FileUtils.mkdir_p(@release.path)
154
159
  older = Proxy::Omaha::Release.new(
160
+ :distribution => ::Proxy::Omaha::Distribution::Coreos.new,
155
161
  :track => :stable,
156
162
  :architecture => 'amd64-usr',
157
163
  :version => '100.0.0'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smart_proxy_omaha
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Timo Goebel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-08-24 00:00:00.000000000 Z
11
+ date: 2020-04-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -127,6 +127,7 @@ files:
127
127
  - lib/smart_proxy_omaha.rb
128
128
  - lib/smart_proxy_omaha/configuration_loader.rb
129
129
  - lib/smart_proxy_omaha/dependency_injection.rb
130
+ - lib/smart_proxy_omaha/distribution.rb
130
131
  - lib/smart_proxy_omaha/foreman_client.rb
131
132
  - lib/smart_proxy_omaha/http_download.rb
132
133
  - lib/smart_proxy_omaha/http_request.rb
@@ -146,6 +147,7 @@ files:
146
147
  - lib/smart_proxy_omaha/omaha_protocol/request.rb
147
148
  - lib/smart_proxy_omaha/omaha_protocol/response.rb
148
149
  - lib/smart_proxy_omaha/omaha_protocol/updateresponse.rb
150
+ - lib/smart_proxy_omaha/plugin_validators.rb
149
151
  - lib/smart_proxy_omaha/release.rb
150
152
  - lib/smart_proxy_omaha/release_provider.rb
151
153
  - lib/smart_proxy_omaha/release_repository.rb
@@ -154,6 +156,8 @@ files:
154
156
  - lib/smart_proxy_omaha/version.rb
155
157
  - settings.d/omaha.yml.example
156
158
  - smart_proxy_omaha.gemspec
159
+ - test/fixtures/ca.crt
160
+ - test/fixtures/flatcar_releases-stable.json
157
161
  - test/fixtures/request_ping.xml
158
162
  - test/fixtures/request_update_complete_error.xml
159
163
  - test/fixtures/request_update_complete_noupdate.xml
@@ -176,9 +180,9 @@ files:
176
180
  - test/omaha/syncer_test.rb
177
181
  - test/omaha/track_test.rb
178
182
  - test/test_helper.rb
179
- homepage: http://github.com/theforeman/smart_proxy_omaha
183
+ homepage: https://github.com/theforeman/smart_proxy_omaha
180
184
  licenses:
181
- - GPLv3
185
+ - GPL-3.0
182
186
  metadata: {}
183
187
  post_install_message:
184
188
  rdoc_options: []
@@ -196,7 +200,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
196
200
  version: '0'
197
201
  requirements: []
198
202
  rubyforge_project:
199
- rubygems_version: 2.7.3
203
+ rubygems_version: 2.7.6.2
200
204
  signing_key:
201
205
  specification_version: 4
202
206
  summary: Omaha protocol support for smart-proxy