pulp 0.0.8 → 0.0.9

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.
@@ -5,7 +5,7 @@ A ruby gem to talk to a pulp server using its REST-api.
5
5
  Pulp is juicy software repository managment and so we want to talk to it in a juicy language.
6
6
 
7
7
  The library provides easy to use, `activerecord`-like objects for the different resources you can manage
8
- via Pulp's REST-Api. So that if you for example like to create a new repository you need to do only the
8
+ via Pulp's REST-Api. So if you for example like to create a new repository, you need to do only the
9
9
  following:
10
10
 
11
11
  repo = Pulp::Repository.create(
@@ -13,39 +13,52 @@ following:
13
13
  :name => 'Example Repository for pulp on RHEL 6 x86_64',
14
14
  :arch => 'x86_64',
15
15
  :feed => "http://repos.fedorapeople.org/repos/pulp/pulp/6Server/x86_64/",
16
- :relative_path => "pulp_test/#{random_id}",
16
+ :relative_path => "pulp_test/pulp-rhel6-x86_64",
17
17
  :sync_schedule => ''
18
18
  )
19
19
 
20
20
  You can then search by any field that is allowed as search field for that repository:
21
21
 
22
- Pulp::Repository.find_by_arch('x86_64').find{{|r| r.name == 'pulp-rhel6-x86_64' }
22
+ repo = Pulp::Repository.find_by_arch('x86_64').find{|r| r.name == 'pulp-rhel6-x86_64' }
23
23
  puts repo.name
24
+ => 'Example Repository for pulp on RHEL 6 x86_64',
24
25
 
25
- Or simply get it by its id:
26
+ Or simply fetch the repo by its id:
26
27
 
27
28
  repo = Pulp::Repository.get('pulp-rhel6-x86_64')
28
29
  puts repo.name
30
+ => 'Example Repository for pulp on RHEL 6 x86_64',
29
31
 
30
- If you don't like it anymore, you can simply delete it:
32
+ You can then edit some of its fields:
33
+
34
+ repo.name => 'Example Repository for pulp on RHEL 6 x86_64 - Extended NAME'
35
+ repo.save
36
+ repo = Pulp::Repository.get('pulp-rhel6-x86_64')
37
+ puts repo.name
38
+ => 'Example Repository for pulp on RHEL 6 x86_64 - Extended NAME'
39
+
40
+ If you don't like it anymore, you can also delete it:
31
41
 
32
42
  repo.delete
33
43
 
34
- As you would know things from working with activerecord.
44
+ As you see, it behaves as you know things from working with activerecord.
35
45
 
36
46
  == Disclaimer
37
47
 
38
48
  Not all parts have already been used and tested against a real pulp server. Pulp is still a piece of software
39
- that is moving very quickly forward. So use it only with the latest pulp version, and it might be that things
40
- are broken.
49
+ that is moving very quickly forward. So use it only with the latest pulp version and you might find various things
50
+ that are broken.
41
51
 
42
52
  Bug reports / Pull requests (including tests) are welcome! See below.
43
53
 
44
54
  == Configuration
45
55
 
46
- When requiring the gem, it is looking for the environment variable PULP_YML, if it points to an existing yaml file,
47
- or whether a yaml file exist at `~/.pulp.yaml` or `/etc/pulp/pulp.yaml`. It then tries to configure itself with
48
- the options from that file.
56
+ When requiring the gem, it is looking for the following config resources:
57
+
58
+ * an existing path in the environment variable PULP_YML
59
+ * does a yaml file exist at `~/.pulp.yaml` or `/etc/pulp/pulp.yaml`.
60
+
61
+ The pulp gem then tries to configure itself with the options from that file.
49
62
 
50
63
  However, you can also later configure the access credentils with:
51
64
 
@@ -55,22 +68,23 @@ However, you can also later configure the access credentils with:
55
68
 
56
69
  == Examples
57
70
 
58
- A few examples can be found in `examples/`. The main one `repositories.rb` can easily be run agains a local
59
- pulp server, that does have internet connection.
60
- It will generate a new repository, clone from it, and will cleanup at the end. Give it a shot, otherwise even
61
- reading the code, might give you already an idea of how to use this gem.
71
+ A few examples can be found in `examples/`. The main one `repositories.rb` can easily be run against a local
72
+ pulp server, that is connected to the internet.
73
+ It will generate a new repository, clone from it, and will cleanup everything at the end. Give it a shot and see
74
+ how things can be used. Otherwise even reading the code, might give you an idea of how to use this gem.
62
75
 
63
76
  == Defining resources
64
77
 
65
78
  This gem comes with a little framework behind that provides various methods to create the classes for the
66
79
  resources in a very declarative manner. The main idea is that a Pulp resource inherits from `Pulp::Connection::Base`
67
80
  and then declares its field and their behavior with the various class methods. These fields and actions are mainly
68
- take from the existing PULP-Api documentation: https://fedorahosted.org/pulp/wiki/UGRESTAPI
81
+ taken from the existing PULP-Api documentation: https://fedorahosted.org/pulp/wiki/UGRESTAPI
69
82
 
70
83
  The idea is to make it very easy to declare the fields and actions of resources and to not let you rewrite a lot
71
- of common code to just interact with the REST-API. What follows is a short description of the most important fields.
84
+ of common code to interact with the REST-API. What follows is a short description of the most important fields.
72
85
 
73
- By default we assume that the objects have an `id` field that is their unique identifier.
86
+ By default we assume that the objects have an `id` field that is their unique identifier. As pulp uses a mongo db as
87
+ backend, this is very likely.
74
88
 
75
89
  We can then define further fields of the resource, with the `pulp_field(s)` method. For example for a
76
90
  `Pulp::Repository` we can define the fields `arch`, `name`, `release`.
@@ -85,7 +99,7 @@ We can then define further fields of the resource, with the `pulp_field(s)` meth
85
99
 
86
100
  puts repo.name
87
101
  repo.name = 'some other name'
88
- repo.save # will to an UPDATE including the new name
102
+ repo.save # will do an UPDATE including the new name
89
103
 
90
104
  You can also execute various actions on the different pulp resources. These actions can be declared using `pulp_action`:
91
105
 
data/Rakefile CHANGED
@@ -15,10 +15,10 @@ require 'jeweler'
15
15
  Jeweler::Tasks.new do |gem|
16
16
  # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
17
17
  gem.name = "pulp"
18
- gem.homepage = "https://github.com/duritong"
18
+ gem.homepage = "https://github.com/duritong/ruby-pulp"
19
19
  gem.license = "MIT"
20
- gem.summary = %Q{A little ruby wrapper around th pulp API}
21
- gem.description = %Q{A little ruby wrapper around th pulp (http://pulpproject.org) API}
20
+ gem.summary = %Q{A little ruby wrapper around the pulp API}
21
+ gem.description = %Q{A little ruby wrapper around the pulp (http://pulpproject.org) API}
22
22
  gem.email = "mh@immerda.ch"
23
23
  gem.authors = ["mh"]
24
24
  # dependencies defined in Gemfile
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.8
1
+ 0.0.9
@@ -25,42 +25,49 @@ module Pulp
25
25
  end
26
26
 
27
27
  def plain_unparsed_get(cmd, params=nil)
28
- plain_base.connection[cmd.sub(/^#{Regexp.escape(plain_base.api_path)}\//,'')].get(merge_params(params)).body
28
+ plain_base.connection[s(cmd.sub(/^#{Regexp.escape(plain_base.api_path)}\//,''))].get(merge_params(params)).body
29
29
  end
30
30
 
31
31
  def base_unparsed_get(cmd,item=nil,params=nil)
32
- base.connection[parse_item_cmd(item,cmd)].get(merge_params(params)).body
32
+ base.connection[s(parse_item_cmd(item,cmd))].get(merge_params(params)).body
33
33
  end
34
34
 
35
35
  def base_unparsed_delete(cmd,item=nil,params=nil)
36
- base.connection[parse_item_cmd(item,cmd)].delete(merge_params(params)).body
36
+ base.connection[s(parse_item_cmd(item,cmd))].delete(merge_params(params)).body
37
37
  end
38
38
 
39
39
  def base_unparsed_post(cmd,item=nil,params=nil)
40
- base.connection[parse_item_cmd(item,cmd)].post(params.nil? ? nil : params.to_json, :content_type => :json ).body
40
+ base.connection[s(parse_item_cmd(item,cmd))].post(params.nil? ? nil : params.to_json, :content_type => :json ).body
41
41
  end
42
42
 
43
- def base_unparsed_put(cmd,item=nil,params=nil)
44
- base.connection[parse_item_cmd(item,cmd)].put(params.nil? ? nil : params.to_json, :content_type => :json ).body
43
+ def base_unparsed_put(cmd,item=nil,params=nil,binary_data=false)
44
+ if binary_data
45
+ p = params
46
+ ct = 'application/stream'
47
+ else
48
+ p = params.nil? ? nil : params.to_json
49
+ ct = :json
50
+ end
51
+ base.connection[s(parse_item_cmd(item,cmd))].put(p, :content_type => ct).body
45
52
  end
46
53
 
47
54
  def plain_get(cmd, params=nil)
48
- plain_base.parsed{|conn| conn[cmd.sub(/^#{Regexp.escape(plain_base.api_path)}\//,'')].get(merge_params(params)) }
55
+ plain_base.parsed{|conn| conn[s(cmd.sub(/^#{Regexp.escape(plain_base.api_path)}\//,''))].get(merge_params(params)) }
49
56
  end
50
57
 
51
58
  def base_get(cmd,item=nil,params=nil)
52
- base.parsed{|conn| conn[parse_item_cmd(item,cmd)].get(merge_params(params)) }
59
+ base.parsed{|conn| conn[s(parse_item_cmd(item,cmd))].get(merge_params(params)) }
53
60
  end
54
61
 
55
62
  def base_delete(cmd,item=nil,params=nil)
56
- base.parsed{|conn| conn[parse_item_cmd(item,cmd)].delete(merge_params(params)) }
63
+ base.parsed{|conn| conn[s(parse_item_cmd(item,cmd))].delete(merge_params(params)) }
57
64
  end
58
65
 
59
66
  def base_post(cmd,item=nil,params=nil)
60
- base.parsed{|conn| conn[parse_item_cmd(item,cmd)].post(params.nil? ? nil : params.to_json, :content_type => :json ) }
67
+ base.parsed{|conn| conn[s(parse_item_cmd(item,cmd))].post(params.nil? ? nil : params.to_json, :content_type => :json ) }
61
68
  end
62
69
  def base_put(cmd,item=nil,params=nil)
63
- base.parsed{|conn| conn[parse_item_cmd(item,cmd)].put(params.nil? ? nil : params.to_json, :content_type => :json ) }
70
+ base.parsed{|conn| conn[s(parse_item_cmd(item,cmd))].put(params.nil? ? nil : params.to_json, :content_type => :json ) }
64
71
  end
65
72
 
66
73
  def base
@@ -78,6 +85,12 @@ module Pulp
78
85
  def merge_params(params)
79
86
  params.nil? ? {} : { :params => params }
80
87
  end
88
+
89
+ # sanitize uri
90
+ # if uri is already escaped, we don't do anything, otherwise we escape it.
91
+ def s(uri)
92
+ (URI.decode(uri) != uri) ? uri : URI.escape(uri)
93
+ end
81
94
  end
82
95
  end
83
96
  end
@@ -6,12 +6,12 @@ module Pulp
6
6
 
7
7
  class << self
8
8
  attr_accessor :hostname,:username, :password
9
-
9
+
10
10
  def instance_for(identifier,h=nil,u=nil,p=nil,https=true)
11
11
  instances[identifier] ||= Handler.new(identifier,
12
- h||hostname,
13
- u||username,
14
- p||password,
12
+ h||hostname||'localhost',
13
+ u||username||'admin',
14
+ p||password||'admin',
15
15
  https
16
16
  )
17
17
  end
@@ -10,11 +10,11 @@ module Pulp
10
10
  pulp_field :_ns, :locked => true
11
11
  pulp_fields :arch, :buildhost, :checksum, :description,
12
12
  :download_url, :epoch, :filename, :group,
13
- :license, :name, :provides, :release,
13
+ :license, :name, :provides, :release, :repoids,
14
14
  :repo_defined, :requires, :size, :vendor, :version
15
15
 
16
16
  def self.by_nvrea(name,version,release,epoch,arch)
17
17
  self.new(base_get("#{name}/#{version}/#{release}/#{epoch}/#{arch}"))
18
18
  end
19
19
  end
20
- end
20
+ end
@@ -19,13 +19,12 @@ module Pulp
19
19
  base_post('','upload',params)
20
20
  end
21
21
 
22
- # TODO: won't work yet probably
23
22
  def self.append_file_content(id,data)
24
- base_post('',"upload/#{id}/append",data)
23
+ base_unparsed_put('',"upload/append/#{id}",data,true)
25
24
  end
26
25
 
27
26
  def self.import_file(uploadid, metadata)
28
- base_put('','upload/import',{:uploadid => uploadid, :metadata => metadata})
27
+ base_post('','upload/import',{:uploadid => uploadid, :metadata => metadata})
29
28
  end
30
29
 
31
30
  def self.package_checksum(pkglist)
@@ -48,4 +47,4 @@ module Pulp
48
47
  Pulp::Task.new(base_get('',"discovery/repo/#{taskid}"))
49
48
  end
50
49
  end
51
- end
50
+ end
@@ -0,0 +1,116 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{pulp}
8
+ s.version = "0.0.9"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["mh"]
12
+ s.date = %q{2012-06-20}
13
+ s.description = %q{A little ruby wrapper around the pulp (http://pulpproject.org) API}
14
+ s.email = %q{mh@immerda.ch}
15
+ s.extra_rdoc_files = [
16
+ "LICENSE.txt",
17
+ "README.rdoc"
18
+ ]
19
+ s.files = [
20
+ ".document",
21
+ ".rspec",
22
+ "Gemfile",
23
+ "Gemfile.lock",
24
+ "LICENSE.txt",
25
+ "README.rdoc",
26
+ "Rakefile",
27
+ "VERSION",
28
+ "examples/repositories.rb",
29
+ "examples/test_pulp.yml",
30
+ "lib/pulp.rb",
31
+ "lib/pulp/cds.rb",
32
+ "lib/pulp/common/debug.rb",
33
+ "lib/pulp/common/lifecycle.rb",
34
+ "lib/pulp/common/lifecycle/create.rb",
35
+ "lib/pulp/common/lifecycle/delete.rb",
36
+ "lib/pulp/common/lifecycle/get.rb",
37
+ "lib/pulp/common/lifecycle/update.rb",
38
+ "lib/pulp/connection/base.rb",
39
+ "lib/pulp/connection/handler.rb",
40
+ "lib/pulp/consumer.rb",
41
+ "lib/pulp/consumergroup.rb",
42
+ "lib/pulp/content.rb",
43
+ "lib/pulp/distribution.rb",
44
+ "lib/pulp/errata.rb",
45
+ "lib/pulp/event.rb",
46
+ "lib/pulp/filter.rb",
47
+ "lib/pulp/package.rb",
48
+ "lib/pulp/package_group.rb",
49
+ "lib/pulp/package_group_category.rb",
50
+ "lib/pulp/repository.rb",
51
+ "lib/pulp/service.rb",
52
+ "lib/pulp/task.rb",
53
+ "lib/pulp/task_history.rb",
54
+ "lib/pulp/task_snapshot.rb",
55
+ "lib/pulp/user.rb",
56
+ "pulp.gemspec",
57
+ "spec/pulp/common/debug_spec.rb",
58
+ "spec/pulp/common/lifecycle/create_spec.rb",
59
+ "spec/pulp/common/lifecycle/delete_spec.rb",
60
+ "spec/pulp/common/lifecycle/get_spec.rb",
61
+ "spec/pulp/common/lifecycle/update_spec.rb",
62
+ "spec/pulp/common/lifecycle_spec.rb",
63
+ "spec/pulp/connection/base_spec.rb",
64
+ "spec/pulp/connection/handler_spec.rb",
65
+ "spec/pulp/content_spec.rb",
66
+ "spec/pulp/package_spec.rb",
67
+ "spec/pulp/repository_spec.rb",
68
+ "spec/pulp/service_spec.rb",
69
+ "spec/pulp/task_spec.rb",
70
+ "spec/pulp_spec.rb",
71
+ "spec/spec.opts",
72
+ "spec/spec_helper.rb"
73
+ ]
74
+ s.homepage = %q{https://github.com/duritong/ruby-pulp}
75
+ s.licenses = ["MIT"]
76
+ s.require_paths = ["lib"]
77
+ s.rubygems_version = %q{1.5.0}
78
+ s.summary = %q{A little ruby wrapper around the pulp API}
79
+
80
+ if s.respond_to? :specification_version then
81
+ s.specification_version = 3
82
+
83
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
84
+ s.add_runtime_dependency(%q<rest-client>, ["~> 1.6.7"])
85
+ s.add_runtime_dependency(%q<activesupport>, [">= 0"])
86
+ s.add_runtime_dependency(%q<json>, [">= 0"])
87
+ s.add_runtime_dependency(%q<i18n>, [">= 0"])
88
+ s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
89
+ s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
90
+ s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
91
+ s.add_development_dependency(%q<rcov>, [">= 0"])
92
+ s.add_development_dependency(%q<mocha>, [">= 0"])
93
+ else
94
+ s.add_dependency(%q<rest-client>, ["~> 1.6.7"])
95
+ s.add_dependency(%q<activesupport>, [">= 0"])
96
+ s.add_dependency(%q<json>, [">= 0"])
97
+ s.add_dependency(%q<i18n>, [">= 0"])
98
+ s.add_dependency(%q<rspec>, ["~> 2.3.0"])
99
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
100
+ s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
101
+ s.add_dependency(%q<rcov>, [">= 0"])
102
+ s.add_dependency(%q<mocha>, [">= 0"])
103
+ end
104
+ else
105
+ s.add_dependency(%q<rest-client>, ["~> 1.6.7"])
106
+ s.add_dependency(%q<activesupport>, [">= 0"])
107
+ s.add_dependency(%q<json>, [">= 0"])
108
+ s.add_dependency(%q<i18n>, [">= 0"])
109
+ s.add_dependency(%q<rspec>, ["~> 2.3.0"])
110
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
111
+ s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
112
+ s.add_dependency(%q<rcov>, [">= 0"])
113
+ s.add_dependency(%q<mocha>, [">= 0"])
114
+ end
115
+ end
116
+
@@ -321,7 +321,7 @@ describe Pulp::Common::Lifecycle do
321
321
 
322
322
  context "with a task lists" do
323
323
  it "gets a get method for tasks" do
324
- Pulp::ActionLifecycle.expects(:base_get).with('action7/','foo',nil).returns("foo")
324
+ Pulp::ActionLifecycle.expects(:base_get).with('action7/','foo',nil).returns(["foo"])
325
325
  (a=Pulp::ActionLifecycle.new('ffo').action7_tasks).should be_kind_of(Array)
326
326
  a.first.should be_kind_of(Pulp::Task)
327
327
  end
@@ -390,4 +390,4 @@ describe Pulp::Common::Lifecycle do
390
390
  end
391
391
  end
392
392
 
393
- end
393
+ end
@@ -93,9 +93,49 @@ describe Pulp::Connection::Base do
93
93
  end
94
94
  end
95
95
  end
96
+ describe ".plain_unparsed_get" do
97
+ context "with special urls" do
98
+ it "should escape the url" do
99
+ Pulp::Test.plain_base.connection.expects(:[]).with('fo%20o').returns(@context)
100
+ @context.expects(:get).with({}).returns(UnparsedDummyResult)
101
+ Pulp::Test.plain_unparsed_get('fo o').should eql(UnparsedDummyResult.real_body)
102
+ end
103
+ end
104
+ context "with normal urls" do
105
+ before(:each) do
106
+ Pulp::Test.plain_base.connection.expects(:[]).with('foo').returns(@context)
107
+ end
108
+ context "without params" do
109
+ before(:each) do
110
+ @context.expects(:get).with({}).returns(UnparsedDummyResult)
111
+ end
112
+ it "should return a parsed get" do
113
+ Pulp::Test.plain_unparsed_get('foo').should eql(UnparsedDummyResult.real_body)
114
+ end
115
+ it "should strip the api url prefix" do
116
+ Pulp::Test.plain_unparsed_get('/pulp/api/foo').should eql(UnparsedDummyResult.real_body)
117
+ end
118
+ end
119
+ context "with params" do
120
+ before(:each) do
121
+ @context.expects(:get).with(:params => { :b => 2}).returns(UnparsedDummyResult)
122
+ end
123
+ it "should add the params" do
124
+ Pulp::Test.plain_unparsed_get('/pulp/api/foo',:b => 2).should eql(UnparsedDummyResult.real_body)
125
+ end
126
+ end
127
+ end
128
+ end
96
129
  context "parsed" do
97
130
  [:get, :delete ].each do |method|
98
131
  describe ".base_#{method}" do
132
+ context "with a special url" do
133
+ it "should escape the url for base_#{method}" do
134
+ Pulp::Test.base.connection.expects(:[]).with('/blub/fo%20o').returns(@context)
135
+ @context.expects(method).with({ :params => {:b => 2 }}).returns(DummyResult)
136
+ Pulp::Test.send(:"base_#{method}",'fo o','blub',:b => 2).should eql(DummyResult.real_body)
137
+ end
138
+ end
99
139
  context "with an item" do
100
140
  before(:each) do
101
141
  Pulp::Test.base.connection.expects(:[]).with('/blub/foo').returns(@context)
@@ -142,6 +182,13 @@ describe Pulp::Connection::Base do
142
182
  end
143
183
  [:post,:put].each do |method|
144
184
  describe ".base_#{method}" do
185
+ context "with a special url" do
186
+ it "should escape the url for base_#{method}" do
187
+ Pulp::Test.base.connection.expects(:[]).with('/blub/fo%20o').returns(@context)
188
+ @context.expects(method).with(nil,{:content_type => :json}).returns(DummyResult)
189
+ Pulp::Test.send(:"base_#{method}",'fo o','blub').should eql(DummyResult.real_body)
190
+ end
191
+ end
145
192
  context "with an item" do
146
193
  before(:each) do
147
194
  Pulp::Test.base.connection.expects(:[]).with('/blub/foo').returns(@context)
@@ -190,6 +237,13 @@ describe Pulp::Connection::Base do
190
237
  context "unparsed" do
191
238
  [:get, :delete ].each do |method|
192
239
  describe ".base_unparsed_#{method}" do
240
+ context "with a special url" do
241
+ it "should escape the url for base_#{method}" do
242
+ Pulp::Test.base.connection.expects(:[]).with('/blub/fo%20o').returns(@context)
243
+ @context.expects(method).with({}).returns(UnparsedDummyResult)
244
+ Pulp::Test.send(:"base_unparsed_#{method}",'fo o','blub').should eql(UnparsedDummyResult.real_body)
245
+ end
246
+ end
193
247
  context "with an item" do
194
248
  before(:each) do
195
249
  Pulp::Test.base.connection.expects(:[]).with('/blub/foo').returns(@context)
@@ -236,6 +290,13 @@ describe Pulp::Connection::Base do
236
290
  end
237
291
  [:post,:put].each do |method|
238
292
  describe ".base_#{method}" do
293
+ context "with a special url" do
294
+ it "should escape the url for base_#{method}" do
295
+ Pulp::Test.base.connection.expects(:[]).with('/blub/fo%20o').returns(@context)
296
+ @context.expects(method).with(nil,{:content_type => :json}).returns(UnparsedDummyResult)
297
+ Pulp::Test.send(:"base_unparsed_#{method}",'fo o','blub').should eql(UnparsedDummyResult.real_body)
298
+ end
299
+ end
239
300
  context "with an item" do
240
301
  before(:each) do
241
302
  Pulp::Test.base.connection.expects(:[]).with('/blub/foo').returns(@context)
@@ -309,4 +370,4 @@ describe Pulp::Connection::Base do
309
370
  Pulp::Test.new(:a => 1).fields[:a].should eql(1)
310
371
  end
311
372
  end
312
- end
373
+ end
@@ -36,14 +36,14 @@ describe Pulp::Service do
36
36
 
37
37
  describe ".append_file_content" do
38
38
  it "should append file content to the specific id" do
39
- Pulp::Service.expects(:base_post).with('','upload/1/append',"content").returns(1)
39
+ Pulp::Service.expects(:base_unparsed_put).with('','upload/append/1',"content",true).returns(1)
40
40
  Pulp::Service.append_file_content(1,'content').should eql(1)
41
41
  end
42
42
  end
43
43
 
44
44
  describe ".import_file" do
45
45
  it "should import an uploaded file" do
46
- Pulp::Service.expects(:base_put).with('','upload/import',{:uploadid => 1, :metadata => {:a => 1}}).returns(1)
46
+ Pulp::Service.expects(:base_post).with('','upload/import',{:uploadid => 1, :metadata => {:a => 1}}).returns(1)
47
47
  Pulp::Service.import_file(1,:a => 1).should eql(1)
48
48
  end
49
49
  end
metadata CHANGED
@@ -1,167 +1,124 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: pulp
3
- version: !ruby/object:Gem::Version
4
- hash: 15
5
- prerelease:
6
- segments:
7
- - 0
8
- - 0
9
- - 8
10
- version: 0.0.8
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.9
5
+ prerelease: !!null
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - mh
14
- autorequire:
9
+ autorequire: !!null
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-01-05 00:00:00 +01:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
22
- type: :runtime
23
- requirement: &id001 !ruby/object:Gem::Requirement
12
+ date: 2012-06-20 00:00:00.000000000 -03:00
13
+ default_executable: !!null
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rest-client
17
+ requirement: &7079240 !ruby/object:Gem::Requirement
24
18
  none: false
25
- requirements:
19
+ requirements:
26
20
  - - ~>
27
- - !ruby/object:Gem::Version
28
- hash: 1
29
- segments:
30
- - 1
31
- - 6
32
- - 7
21
+ - !ruby/object:Gem::Version
33
22
  version: 1.6.7
34
- version_requirements: *id001
35
- name: rest-client
36
- prerelease: false
37
- - !ruby/object:Gem::Dependency
38
23
  type: :runtime
39
- requirement: &id002 !ruby/object:Gem::Requirement
40
- none: false
41
- requirements:
42
- - - ">="
43
- - !ruby/object:Gem::Version
44
- hash: 3
45
- segments:
46
- - 0
47
- version: "0"
48
- version_requirements: *id002
49
- name: activesupport
50
24
  prerelease: false
51
- - !ruby/object:Gem::Dependency
52
- type: :runtime
53
- requirement: &id003 !ruby/object:Gem::Requirement
25
+ version_requirements: *7079240
26
+ - !ruby/object:Gem::Dependency
27
+ name: activesupport
28
+ requirement: &7076940 !ruby/object:Gem::Requirement
54
29
  none: false
55
- requirements:
56
- - - ">="
57
- - !ruby/object:Gem::Version
58
- hash: 3
59
- segments:
60
- - 0
61
- version: "0"
62
- version_requirements: *id003
63
- name: json
64
- prerelease: false
65
- - !ruby/object:Gem::Dependency
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
66
34
  type: :runtime
67
- requirement: &id004 !ruby/object:Gem::Requirement
35
+ prerelease: false
36
+ version_requirements: *7076940
37
+ - !ruby/object:Gem::Dependency
38
+ name: json
39
+ requirement: &7074460 !ruby/object:Gem::Requirement
68
40
  none: false
69
- requirements:
70
- - - ">="
71
- - !ruby/object:Gem::Version
72
- hash: 3
73
- segments:
74
- - 0
75
- version: "0"
76
- version_requirements: *id004
41
+ requirements:
42
+ - - ! '>='
43
+ - !ruby/object:Gem::Version
44
+ version: '0'
45
+ type: :runtime
46
+ prerelease: false
47
+ version_requirements: *7074460
48
+ - !ruby/object:Gem::Dependency
77
49
  name: i18n
50
+ requirement: &7064360 !ruby/object:Gem::Requirement
51
+ none: false
52
+ requirements:
53
+ - - ! '>='
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ type: :runtime
78
57
  prerelease: false
79
- - !ruby/object:Gem::Dependency
80
- type: :development
81
- requirement: &id005 !ruby/object:Gem::Requirement
58
+ version_requirements: *7064360
59
+ - !ruby/object:Gem::Dependency
60
+ name: rspec
61
+ requirement: &7059300 !ruby/object:Gem::Requirement
82
62
  none: false
83
- requirements:
63
+ requirements:
84
64
  - - ~>
85
- - !ruby/object:Gem::Version
86
- hash: 3
87
- segments:
88
- - 2
89
- - 3
90
- - 0
65
+ - !ruby/object:Gem::Version
91
66
  version: 2.3.0
92
- version_requirements: *id005
93
- name: rspec
94
- prerelease: false
95
- - !ruby/object:Gem::Dependency
96
67
  type: :development
97
- requirement: &id006 !ruby/object:Gem::Requirement
68
+ prerelease: false
69
+ version_requirements: *7059300
70
+ - !ruby/object:Gem::Dependency
71
+ name: bundler
72
+ requirement: &7047260 !ruby/object:Gem::Requirement
98
73
  none: false
99
- requirements:
74
+ requirements:
100
75
  - - ~>
101
- - !ruby/object:Gem::Version
102
- hash: 23
103
- segments:
104
- - 1
105
- - 0
106
- - 0
76
+ - !ruby/object:Gem::Version
107
77
  version: 1.0.0
108
- version_requirements: *id006
109
- name: bundler
110
- prerelease: false
111
- - !ruby/object:Gem::Dependency
112
78
  type: :development
113
- requirement: &id007 !ruby/object:Gem::Requirement
79
+ prerelease: false
80
+ version_requirements: *7047260
81
+ - !ruby/object:Gem::Dependency
82
+ name: jeweler
83
+ requirement: &7043720 !ruby/object:Gem::Requirement
114
84
  none: false
115
- requirements:
85
+ requirements:
116
86
  - - ~>
117
- - !ruby/object:Gem::Version
118
- hash: 7
119
- segments:
120
- - 1
121
- - 6
122
- - 4
87
+ - !ruby/object:Gem::Version
123
88
  version: 1.6.4
124
- version_requirements: *id007
125
- name: jeweler
126
- prerelease: false
127
- - !ruby/object:Gem::Dependency
128
89
  type: :development
129
- requirement: &id008 !ruby/object:Gem::Requirement
130
- none: false
131
- requirements:
132
- - - ">="
133
- - !ruby/object:Gem::Version
134
- hash: 3
135
- segments:
136
- - 0
137
- version: "0"
138
- version_requirements: *id008
139
- name: rcov
140
90
  prerelease: false
141
- - !ruby/object:Gem::Dependency
142
- type: :development
143
- requirement: &id009 !ruby/object:Gem::Requirement
91
+ version_requirements: *7043720
92
+ - !ruby/object:Gem::Dependency
93
+ name: rcov
94
+ requirement: &7037620 !ruby/object:Gem::Requirement
144
95
  none: false
145
- requirements:
146
- - - ">="
147
- - !ruby/object:Gem::Version
148
- hash: 3
149
- segments:
150
- - 0
151
- version: "0"
152
- version_requirements: *id009
96
+ requirements:
97
+ - - ! '>='
98
+ - !ruby/object:Gem::Version
99
+ version: '0'
100
+ type: :development
101
+ prerelease: false
102
+ version_requirements: *7037620
103
+ - !ruby/object:Gem::Dependency
153
104
  name: mocha
105
+ requirement: &7034340 !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ type: :development
154
112
  prerelease: false
155
- description: A little ruby wrapper around th pulp (http://pulpproject.org) API
113
+ version_requirements: *7034340
114
+ description: A little ruby wrapper around the pulp (http://pulpproject.org) API
156
115
  email: mh@immerda.ch
157
116
  executables: []
158
-
159
117
  extensions: []
160
-
161
- extra_rdoc_files:
118
+ extra_rdoc_files:
162
119
  - LICENSE.txt
163
120
  - README.rdoc
164
- files:
121
+ files:
165
122
  - .document
166
123
  - .rspec
167
124
  - Gemfile
@@ -198,6 +155,7 @@ files:
198
155
  - lib/pulp/task_history.rb
199
156
  - lib/pulp/task_snapshot.rb
200
157
  - lib/pulp/user.rb
158
+ - pulp.gemspec
201
159
  - spec/pulp/common/debug_spec.rb
202
160
  - spec/pulp/common/lifecycle/create_spec.rb
203
161
  - spec/pulp/common/lifecycle/delete_spec.rb
@@ -215,38 +173,32 @@ files:
215
173
  - spec/spec.opts
216
174
  - spec/spec_helper.rb
217
175
  has_rdoc: true
218
- homepage: https://github.com/duritong
219
- licenses:
176
+ homepage: https://github.com/duritong/ruby-pulp
177
+ licenses:
220
178
  - MIT
221
- post_install_message:
179
+ post_install_message: !!null
222
180
  rdoc_options: []
223
-
224
- require_paths:
181
+ require_paths:
225
182
  - lib
226
- required_ruby_version: !ruby/object:Gem::Requirement
183
+ required_ruby_version: !ruby/object:Gem::Requirement
227
184
  none: false
228
- requirements:
229
- - - ">="
230
- - !ruby/object:Gem::Version
231
- hash: 3
232
- segments:
185
+ requirements:
186
+ - - ! '>='
187
+ - !ruby/object:Gem::Version
188
+ version: '0'
189
+ segments:
233
190
  - 0
234
- version: "0"
235
- required_rubygems_version: !ruby/object:Gem::Requirement
191
+ hash: 1813687171607222206
192
+ required_rubygems_version: !ruby/object:Gem::Requirement
236
193
  none: false
237
- requirements:
238
- - - ">="
239
- - !ruby/object:Gem::Version
240
- hash: 3
241
- segments:
242
- - 0
243
- version: "0"
194
+ requirements:
195
+ - - ! '>='
196
+ - !ruby/object:Gem::Version
197
+ version: '0'
244
198
  requirements: []
245
-
246
- rubyforge_project:
247
- rubygems_version: 1.6.2
248
- signing_key:
199
+ rubyforge_project: !!null
200
+ rubygems_version: 1.5.0
201
+ signing_key: !!null
249
202
  specification_version: 3
250
- summary: A little ruby wrapper around th pulp API
203
+ summary: A little ruby wrapper around the pulp API
251
204
  test_files: []
252
-