rhn_satellite 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
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
+