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 +1 -0
- data/Gemfile.lock +8 -0
- data/README.rdoc +3 -6
- data/VERSION +1 -1
- data/lib/rhn_satellite/channel_software.rb +3 -0
- data/lib/rhn_satellite/connection/base.rb +12 -3
- data/lib/rhn_satellite/connection/handler.rb +14 -5
- data/lib/rhn_satellite.rb +2 -0
- data/rhn_satellite.gemspec +6 -3
- data/spec/unit/rhn_satellite/channel_software_spec.rb +21 -0
- data/spec/unit/rhn_satellite/connection/base_spec.rb +2 -2
- data/spec/unit/rhn_satellite/connection/handler_spec.rb +18 -2
- metadata +115 -64
data/Gemfile
CHANGED
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
|
-
|
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.
|
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
|
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
|
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=
|
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
|
data/rhn_satellite.gemspec
CHANGED
@@ -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.
|
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
|
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.
|
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
|
-
|
5
|
-
prerelease:
|
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:
|
14
|
+
autorequire:
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
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
|
-
|
34
|
+
requirement: *id001
|
24
35
|
prerelease: false
|
25
|
-
|
26
|
-
- !ruby/object:Gem::Dependency
|
27
|
-
|
28
|
-
|
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
|
-
|
50
|
+
requirement: *id002
|
35
51
|
prerelease: false
|
36
|
-
|
37
|
-
- !ruby/object:Gem::Dependency
|
38
|
-
|
39
|
-
|
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
|
-
|
51
|
-
none: false
|
52
|
-
requirements:
|
53
|
-
- - ! '>='
|
54
|
-
- !ruby/object:Gem::Version
|
55
|
-
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
56
84
|
type: :development
|
57
|
-
|
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
|
-
|
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
|
-
|
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:
|
163
|
+
post_install_message:
|
119
164
|
rdoc_options: []
|
120
|
-
|
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
|
-
|
128
|
-
segments:
|
170
|
+
requirements:
|
171
|
+
- - ">="
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
hash: 3
|
174
|
+
segments:
|
129
175
|
- 0
|
130
|
-
|
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
|
-
|
179
|
+
requirements:
|
180
|
+
- - ">="
|
181
|
+
- !ruby/object:Gem::Version
|
182
|
+
hash: 3
|
183
|
+
segments:
|
184
|
+
- 0
|
185
|
+
version: "0"
|
137
186
|
requirements: []
|
138
|
-
|
139
|
-
|
140
|
-
|
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
|
+
|