rhn_satellite 0.0.5 → 0.0.6

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.
data/Gemfile CHANGED
@@ -11,4 +11,5 @@ group :development do
11
11
  gem "jeweler", "~> 1.6.4"
12
12
  gem "rcov", ">= 0"
13
13
  gem "mocha", "~> 0.9.10"
14
+ gem "pry"
14
15
  end
data/Gemfile.lock CHANGED
@@ -1,13 +1,19 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
+ coderay (1.0.6)
4
5
  diff-lcs (1.1.3)
5
6
  git (1.2.5)
6
7
  jeweler (1.6.4)
7
8
  bundler (~> 1.0)
8
9
  git (>= 1.2.5)
9
10
  rake
11
+ method_source (0.7.1)
10
12
  mocha (0.9.12)
13
+ pry (0.9.8.4)
14
+ coderay (~> 1.0.5)
15
+ method_source (~> 0.7.1)
16
+ slop (< 3, >= 2.4.4)
11
17
  rake (0.9.2)
12
18
  rcov (0.9.10)
13
19
  rspec (2.3.0)
@@ -18,6 +24,7 @@ GEM
18
24
  rspec-expectations (2.3.0)
19
25
  diff-lcs (~> 1.1.2)
20
26
  rspec-mocks (2.3.0)
27
+ slop (2.4.4)
21
28
 
22
29
  PLATFORMS
23
30
  ruby
@@ -26,5 +33,6 @@ DEPENDENCIES
26
33
  bundler (~> 1.0.0)
27
34
  jeweler (~> 1.6.4)
28
35
  mocha (~> 0.9.10)
36
+ pry
29
37
  rcov
30
38
  rspec (~> 2.3.0)
data/README.rdoc CHANGED
@@ -20,6 +20,7 @@ This file should contain the following options:
20
20
  hostname: satellite.example.com
21
21
  username: foobar
22
22
  password: foobar
23
+ https: true
23
24
 
24
25
  However, you can always set later your own credentials for the whole API:
25
26
 
@@ -63,12 +64,8 @@ This will get all packages that can be upgraded for a system and will schedule t
63
64
  satellite_system = RhnSatellite::System.get('somenode.example.com')
64
65
  packages_to_update = RhnSatellite::System.latest_upgradable_packages(satellite_system['id']).inject({}) { |res,p|
65
66
  # sometimes the satellite lists some weird packages, so we check if they actually exist.
66
- key = "#{p['name']}-#{p['version']}-#{p['release']}"
67
- if res[key]
68
- res[key] = p['to_package_id'] if RhnSatellite::Package.exists?(p['to_package_id'])
69
- else
70
- res[key] = p['to_package_id']
71
- end
67
+ key = "#{p['name']}-#{p['version']}-#{p['release']}.#{p['arch']}"
68
+ res[key] = p['to_package_id'] if RhnSatellite::Packages.exists?(p['to_package_id'])
72
69
  res
73
70
  }.values.compact
74
71
  if packages_to_update.size > 0
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.5
1
+ 0.0.6
@@ -14,6 +14,9 @@ module RhnSatellite
14
14
  def list_children(channel_label)
15
15
  base.default_call('channel.software.listChildren',channel_label)
16
16
  end
17
+ def list_all_packages(channel_label)
18
+ base.default_call('channel.software.listAllPackages',channel_label)
19
+ end
17
20
  end
18
21
 
19
22
  end
@@ -2,7 +2,8 @@ module RhnSatellite
2
2
  module Connection
3
3
  class Base
4
4
  class << self
5
- attr_accessor :hostname, :username, :password, :https
5
+ attr_accessor :hostname, :username, :password
6
+ attr_writer :timeout, :https
6
7
 
7
8
  attr_reader :collection_cmd
8
9
 
@@ -10,11 +11,19 @@ module RhnSatellite
10
11
  RhnSatellite::Connection::Handler.reset_instance(self.name)
11
12
  end
12
13
 
14
+ def timeout
15
+ @timeout ||= 30
16
+ end
17
+
18
+ def https
19
+ @https.nil? ? (@https=true) : @https
20
+ end
21
+
13
22
  private
14
23
  def base
15
- RhnSatellite::Connection::Handler.instance_for(self.name, hostname, username, password, https)
24
+ RhnSatellite::Connection::Handler.instance_for(self.name, hostname, username, password, timeout, https)
16
25
  end
17
-
26
+
18
27
  def collection(cmd)
19
28
  @collection_cmd = cmd
20
29
  extend RhnSatellite::Common::Collection
@@ -5,18 +5,27 @@ module RhnSatellite
5
5
  include RhnSatellite::Common::Debug
6
6
 
7
7
  class << self
8
- attr_accessor :default_hostname,:default_username, :default_password, :default_timeout
8
+ attr_accessor :default_hostname,:default_username, :default_password
9
+ attr_writer :default_timeout, :default_https
9
10
 
10
- def instance_for(identifier,hostname=nil,username=nil,password=nil,timeout=nil,https=true)
11
+ def instance_for(identifier,hostname=nil,username=nil,password=nil,timeout=nil,https=nil)
11
12
  instances[identifier] ||= Handler.new(
12
13
  hostname||default_hostname,
13
14
  username||default_username,
14
15
  password||default_password,
15
- timeout||default_timeout,
16
- https
16
+ timeout || default_timeout,
17
+ https.nil? ? default_https : https
17
18
  )
18
19
  end
19
-
20
+
21
+ def default_timeout
22
+ @default_timeout ||= 30
23
+ end
24
+
25
+ def default_https
26
+ @default_https.nil? ? (@default_https=true) : @default_https
27
+ end
28
+
20
29
  def reset_instance(identifier)
21
30
  instances.delete(identifier)
22
31
  end
data/lib/rhn_satellite.rb CHANGED
@@ -22,4 +22,6 @@ if File.exists?(file=File.expand_path('~/.satellite.yaml')) || File.exists?(file
22
22
  RhnSatellite::Connection::Handler.default_hostname = global_options['hostname']
23
23
  RhnSatellite::Connection::Handler.default_username = global_options['username']
24
24
  RhnSatellite::Connection::Handler.default_password = global_options['password']
25
+ RhnSatellite::Connection::Handler.default_timeout = global_options['timeout']
26
+ RhnSatellite::Connection::Handler.default_https = global_options['https']
25
27
  end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{rhn_satellite}
8
- s.version = "0.0.5"
8
+ s.version = "0.0.6"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["duritong"]
12
- s.date = %q{2012-03-09}
12
+ s.date = %q{2012-10-03}
13
13
  s.description = %q{It provides an easy way to interact with a RedHat Satellite API.}
14
14
  s.email = %q{peter.meier@immerda.ch}
15
15
  s.extra_rdoc_files = [
@@ -57,7 +57,7 @@ Gem::Specification.new do |s|
57
57
  s.homepage = %q{http://github.com/duritong/ruby-rhn_satellite}
58
58
  s.licenses = ["MIT"]
59
59
  s.require_paths = ["lib"]
60
- s.rubygems_version = %q{1.5.0}
60
+ s.rubygems_version = %q{1.6.2}
61
61
  s.summary = %q{RhnSatellite is a ruby api to the RedHat Satellite}
62
62
 
63
63
  if s.respond_to? :specification_version then
@@ -69,12 +69,14 @@ Gem::Specification.new do |s|
69
69
  s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
70
70
  s.add_development_dependency(%q<rcov>, [">= 0"])
71
71
  s.add_development_dependency(%q<mocha>, ["~> 0.9.10"])
72
+ s.add_development_dependency(%q<pry>, [">= 0"])
72
73
  else
73
74
  s.add_dependency(%q<rspec>, ["~> 2.3.0"])
74
75
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
75
76
  s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
76
77
  s.add_dependency(%q<rcov>, [">= 0"])
77
78
  s.add_dependency(%q<mocha>, ["~> 0.9.10"])
79
+ s.add_dependency(%q<pry>, [">= 0"])
78
80
  end
79
81
  else
80
82
  s.add_dependency(%q<rspec>, ["~> 2.3.0"])
@@ -82,6 +84,7 @@ Gem::Specification.new do |s|
82
84
  s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
83
85
  s.add_dependency(%q<rcov>, [">= 0"])
84
86
  s.add_dependency(%q<mocha>, ["~> 0.9.10"])
87
+ s.add_dependency(%q<pry>, [">= 0"])
85
88
  end
86
89
  end
87
90
 
@@ -62,4 +62,25 @@ describe RhnSatellite::ChannelSoftware do
62
62
  RhnSatellite::ChannelSoftware.list_children('channel_label')
63
63
  end
64
64
  end
65
+
66
+ describe '.list_all_packages' do
67
+ it "lists all packages in a software channel" do
68
+ RhnSatellite::Connection::Handler.any_instance.expects(:make_call).with(
69
+ "channel.software.listAllPackages",
70
+ "token",
71
+ 'channel_label').returns([
72
+ {
73
+ "name" => "yum",
74
+ "version" => "3.2.8",
75
+ "release" => "9.el5_2.1",
76
+ "epoch" => "",
77
+ "id" => 5337,
78
+ "arch_label" => "noarch",
79
+ "last_modified_date" => "2008-05-21 17:34:21",
80
+ "last_modified" => "2008-05-21 17:34:21"
81
+ }])
82
+
83
+ RhnSatellite::ChannelSoftware.list_all_packages('channel_label').first['name'].should eql('yum')
84
+ end
85
+ end
65
86
  end
@@ -26,7 +26,7 @@ describe RhnSatellite::Connection::Base do
26
26
  end
27
27
  end
28
28
 
29
- [:hostname,:username, :password].each do |field|
29
+ [ :hostname,:username, :password, :timeout, :https ].each do |field|
30
30
  describe "##{field}" do
31
31
  it "provides a way to set and read a #{field}" do
32
32
  RhnSatellite::Test.should respond_to("#{field}=")
@@ -40,5 +40,5 @@ describe RhnSatellite::Connection::Base do
40
40
  end
41
41
  end
42
42
  end
43
-
43
+
44
44
  end
@@ -3,13 +3,29 @@ require File.dirname(__FILE__) + '/../../../spec_helper'
3
3
 
4
4
  describe RhnSatellite::Connection::Handler do
5
5
 
6
- [:hostname,:username, :password].each do |field|
6
+ [:hostname,:username, :password, :timeout, :https ].each do |field|
7
7
  it "provides a way to set and read a default #{field}" do
8
8
  RhnSatellite::Connection::Handler.should respond_to("default_#{field}=")
9
9
  RhnSatellite::Connection::Handler.should respond_to("default_#{field}")
10
10
  end
11
11
  end
12
-
12
+
13
+ describe 'sane defaults' do
14
+ describe 'timeout' do
15
+ it "should default to 30" do
16
+ RhnSatellite::Test.reset
17
+ RhnSatellite::Test.timeout.should eql(30)
18
+ end
19
+ end
20
+
21
+ describe 'https' do
22
+ it "should default to true" do
23
+ RhnSatellite::Test.reset
24
+ RhnSatellite::Test.https.should be_true
25
+ end
26
+ end
27
+ end
28
+
13
29
  describe ".instance_for" do
14
30
  it "returns an instance of RhnSatellite::Connection::Handler" do
15
31
  RhnSatellite::Connection::Handler.instance_for(:foo).should be_a(RhnSatellite::Connection::Handler)
metadata CHANGED
@@ -1,80 +1,125 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: rhn_satellite
3
- version: !ruby/object:Gem::Version
4
- version: 0.0.5
5
- prerelease: !!null
3
+ version: !ruby/object:Gem::Version
4
+ hash: 19
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 6
10
+ version: 0.0.6
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - duritong
9
- autorequire: !!null
14
+ autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
- date: 2012-03-09 00:00:00.000000000 +01:00
13
- default_executable: !!null
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
16
- name: rspec
17
- requirement: &6922660 !ruby/object:Gem::Requirement
17
+
18
+ date: 2012-10-03 00:00:00 +02:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ type: :development
23
+ version_requirements: &id001 !ruby/object:Gem::Requirement
18
24
  none: false
19
- requirements:
25
+ requirements:
20
26
  - - ~>
21
- - !ruby/object:Gem::Version
27
+ - !ruby/object:Gem::Version
28
+ hash: 3
29
+ segments:
30
+ - 2
31
+ - 3
32
+ - 0
22
33
  version: 2.3.0
23
- type: :development
34
+ requirement: *id001
24
35
  prerelease: false
25
- version_requirements: *6922660
26
- - !ruby/object:Gem::Dependency
27
- name: bundler
28
- requirement: &6906240 !ruby/object:Gem::Requirement
36
+ name: rspec
37
+ - !ruby/object:Gem::Dependency
38
+ type: :development
39
+ version_requirements: &id002 !ruby/object:Gem::Requirement
29
40
  none: false
30
- requirements:
41
+ requirements:
31
42
  - - ~>
32
- - !ruby/object:Gem::Version
43
+ - !ruby/object:Gem::Version
44
+ hash: 23
45
+ segments:
46
+ - 1
47
+ - 0
48
+ - 0
33
49
  version: 1.0.0
34
- type: :development
50
+ requirement: *id002
35
51
  prerelease: false
36
- version_requirements: *6906240
37
- - !ruby/object:Gem::Dependency
38
- name: jeweler
39
- requirement: &6903900 !ruby/object:Gem::Requirement
52
+ name: bundler
53
+ - !ruby/object:Gem::Dependency
54
+ type: :development
55
+ version_requirements: &id003 !ruby/object:Gem::Requirement
40
56
  none: false
41
- requirements:
57
+ requirements:
42
58
  - - ~>
43
- - !ruby/object:Gem::Version
59
+ - !ruby/object:Gem::Version
60
+ hash: 7
61
+ segments:
62
+ - 1
63
+ - 6
64
+ - 4
44
65
  version: 1.6.4
66
+ requirement: *id003
67
+ prerelease: false
68
+ name: jeweler
69
+ - !ruby/object:Gem::Dependency
45
70
  type: :development
71
+ version_requirements: &id004 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ hash: 3
77
+ segments:
78
+ - 0
79
+ version: "0"
80
+ requirement: *id004
46
81
  prerelease: false
47
- version_requirements: *6903900
48
- - !ruby/object:Gem::Dependency
49
82
  name: rcov
50
- requirement: &6902060 !ruby/object:Gem::Requirement
51
- none: false
52
- requirements:
53
- - - ! '>='
54
- - !ruby/object:Gem::Version
55
- version: '0'
83
+ - !ruby/object:Gem::Dependency
56
84
  type: :development
57
- prerelease: false
58
- version_requirements: *6902060
59
- - !ruby/object:Gem::Dependency
60
- name: mocha
61
- requirement: &6899400 !ruby/object:Gem::Requirement
85
+ version_requirements: &id005 !ruby/object:Gem::Requirement
62
86
  none: false
63
- requirements:
87
+ requirements:
64
88
  - - ~>
65
- - !ruby/object:Gem::Version
89
+ - !ruby/object:Gem::Version
90
+ hash: 47
91
+ segments:
92
+ - 0
93
+ - 9
94
+ - 10
66
95
  version: 0.9.10
96
+ requirement: *id005
97
+ prerelease: false
98
+ name: mocha
99
+ - !ruby/object:Gem::Dependency
67
100
  type: :development
101
+ version_requirements: &id006 !ruby/object:Gem::Requirement
102
+ none: false
103
+ requirements:
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ hash: 3
107
+ segments:
108
+ - 0
109
+ version: "0"
110
+ requirement: *id006
68
111
  prerelease: false
69
- version_requirements: *6899400
112
+ name: pry
70
113
  description: It provides an easy way to interact with a RedHat Satellite API.
71
114
  email: peter.meier@immerda.ch
72
115
  executables: []
116
+
73
117
  extensions: []
74
- extra_rdoc_files:
118
+
119
+ extra_rdoc_files:
75
120
  - LICENSE.txt
76
121
  - README.rdoc
77
- files:
122
+ files:
78
123
  - .rspec
79
124
  - Gemfile
80
125
  - Gemfile.lock
@@ -113,31 +158,37 @@ files:
113
158
  - spec/unit/rhn_satellite/systemgroup_spec.rb
114
159
  has_rdoc: true
115
160
  homepage: http://github.com/duritong/ruby-rhn_satellite
116
- licenses:
161
+ licenses:
117
162
  - MIT
118
- post_install_message: !!null
163
+ post_install_message:
119
164
  rdoc_options: []
120
- require_paths:
165
+
166
+ require_paths:
121
167
  - lib
122
- required_ruby_version: !ruby/object:Gem::Requirement
168
+ required_ruby_version: !ruby/object:Gem::Requirement
123
169
  none: false
124
- requirements:
125
- - - ! '>='
126
- - !ruby/object:Gem::Version
127
- version: '0'
128
- segments:
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ hash: 3
174
+ segments:
129
175
  - 0
130
- hash: 732024450435592684
131
- required_rubygems_version: !ruby/object:Gem::Requirement
176
+ version: "0"
177
+ required_rubygems_version: !ruby/object:Gem::Requirement
132
178
  none: false
133
- requirements:
134
- - - ! '>='
135
- - !ruby/object:Gem::Version
136
- version: '0'
179
+ requirements:
180
+ - - ">="
181
+ - !ruby/object:Gem::Version
182
+ hash: 3
183
+ segments:
184
+ - 0
185
+ version: "0"
137
186
  requirements: []
138
- rubyforge_project: !!null
139
- rubygems_version: 1.5.0
140
- signing_key: !!null
187
+
188
+ rubyforge_project:
189
+ rubygems_version: 1.6.2
190
+ signing_key:
141
191
  specification_version: 3
142
192
  summary: RhnSatellite is a ruby api to the RedHat Satellite
143
193
  test_files: []
194
+