occi 3.0.0 → 3.1.0.beta.1

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -11,5 +11,4 @@ tmp
11
11
  log
12
12
  coverage
13
13
  vendor
14
- doc
15
14
  collection
data/.travis.yml CHANGED
@@ -1,11 +1,35 @@
1
1
  language: ruby
2
2
  rvm:
3
3
  - 1.8.7
4
- - 1.9.2
5
4
  - 1.9.3
5
+ - ruby-head
6
6
  - jruby-18mode
7
7
  - jruby-19mode
8
+ - jruby-head
9
+
10
+ jdk:
11
+ - openjdk7
12
+ - oraclejdk7
13
+ - openjdk6
14
+
15
+ matrix:
16
+ allow_failures:
17
+ - rvm: ruby-head
18
+ - rvm: jruby-head
19
+ exclude:
20
+ - rvm: 1.8.7
21
+ jdk: openjdk7
22
+ - rvm: 1.8.7
23
+ jdk: oraclejdk7
24
+ - rvm: 1.9.3
25
+ jdk: openjdk7
26
+ - rvm: 1.9.3
27
+ jdk: oraclejdk7
28
+ - rvm: ruby-head
29
+ jdk: openjdk7
30
+ - rvm: ruby-head
31
+ jdk: oraclejdk7
8
32
 
9
33
  branches:
10
34
  only:
11
- - master
35
+ - master
data/Gemfile CHANGED
@@ -1,8 +1,11 @@
1
- source :rubygems
1
+ source "https://rubygems.org/"
2
2
 
3
3
  gemspec
4
4
 
5
- gem 'vcr', :git => 'git://github.com/arax/vcr.git', :branch => 'test_framework_patches'
5
+ group :development do
6
+ gem 'vcr', :git => 'git://github.com/arax/vcr.git', :branch => 'test_framework_patches'
7
+ gem 'warbler', :git => 'git://github.com/jruby/warbler.git'
8
+ end
6
9
 
7
10
  platforms :jruby do
8
11
  gem 'jruby-openssl' if ((defined? JRUBY_VERSION) && (JRUBY_VERSION.split('.')[1].to_i < 7))
data/Gemfile.lock CHANGED
@@ -5,10 +5,20 @@ GIT
5
5
  specs:
6
6
  vcr (2.4.0)
7
7
 
8
+ GIT
9
+ remote: git://github.com/jruby/warbler.git
10
+ revision: ce3ce4df137504822e4cbb9399dee7e7dd767c44
11
+ specs:
12
+ warbler (1.3.7.dev)
13
+ jruby-jars (>= 1.5.6)
14
+ jruby-rack (>= 1.0.0)
15
+ rake (>= 0.9.6)
16
+ rubyzip (>= 0.9.8)
17
+
8
18
  PATH
9
19
  remote: .
10
20
  specs:
11
- occi (3.0.0.beta.1)
21
+ occi (3.1.0.beta.1)
12
22
  activesupport
13
23
  amqp
14
24
  antlr3
@@ -21,19 +31,19 @@ PATH
21
31
  uuidtools (>= 2.1.3)
22
32
 
23
33
  GEM
24
- remote: http://rubygems.org/
34
+ remote: https://rubygems.org/
25
35
  specs:
26
- activesupport (3.2.11)
36
+ activesupport (3.2.12)
27
37
  i18n (~> 0.6)
28
38
  multi_json (~> 1.0)
29
- addressable (2.3.2)
30
- amq-client (0.9.10)
31
- amq-protocol (>= 0.9.4)
39
+ addressable (2.3.3)
40
+ amq-client (0.9.12)
41
+ amq-protocol (>= 1.2.0)
32
42
  eventmachine
33
- amq-protocol (1.0.1)
34
- amqp (0.9.8)
35
- amq-client (~> 0.9.5)
36
- amq-protocol (>= 0.9.4)
43
+ amq-protocol (1.2.0)
44
+ amqp (0.9.9)
45
+ amq-client (~> 0.9.12)
46
+ amq-protocol (~> 1.2.0)
37
47
  eventmachine
38
48
  antlr3 (1.8.12)
39
49
  builder (3.1.4)
@@ -46,20 +56,22 @@ GEM
46
56
  diff-lcs (1.1.3)
47
57
  eventmachine (1.0.0)
48
58
  eventmachine (1.0.0-java)
49
- gherkin (2.11.5)
50
- json (>= 1.4.6)
51
- gherkin (2.11.5-java)
52
- json (>= 1.4.6)
53
- hashie (1.2.0)
59
+ gherkin (2.11.6)
60
+ json (>= 1.7.6)
61
+ gherkin (2.11.6-java)
62
+ json (>= 1.7.6)
63
+ hashie (2.0.2)
54
64
  highline (1.6.15)
55
- httparty (0.9.0)
65
+ httparty (0.10.2)
56
66
  multi_json (~> 1.0)
57
- multi_xml
67
+ multi_xml (>= 0.5.2)
58
68
  i18n (0.6.1)
59
- json (1.7.6)
60
- json (1.7.6-java)
61
- multi_json (1.5.0)
62
- multi_xml (0.5.1)
69
+ jruby-jars (1.7.3)
70
+ jruby-rack (1.1.13.1)
71
+ json (1.7.7)
72
+ json (1.7.7-java)
73
+ multi_json (1.6.1)
74
+ multi_xml (0.5.3)
63
75
  nokogiri (1.5.6)
64
76
  nokogiri (1.5.6-java)
65
77
  rake (10.0.3)
@@ -72,17 +84,19 @@ GEM
72
84
  diff-lcs (~> 1.1.3)
73
85
  rspec-http (0.10.0)
74
86
  rspec (~> 2.0)
75
- rspec-mocks (2.12.1)
87
+ rspec-mocks (2.12.2)
88
+ rubygems-tasks (0.2.3)
89
+ rubyzip (0.9.9)
76
90
  simplecov (0.7.1)
77
91
  multi_json (~> 1.0)
78
92
  simplecov-html (~> 0.7.1)
79
93
  simplecov-html (0.7.1)
80
94
  uuidtools (2.1.3)
81
- webmock (1.9.0)
95
+ webmock (1.9.3)
82
96
  addressable (>= 2.2.7)
83
- crack (>= 0.1.7)
84
- yard (0.8.3)
85
- yard-cucumber (2.2.2)
97
+ crack (>= 0.3.2)
98
+ yard (0.8.4.1)
99
+ yard-cucumber (2.2.3)
86
100
  cucumber (>= 0.7.5)
87
101
  gherkin (>= 2.2.9)
88
102
  yard (>= 0.8.1)
@@ -101,8 +115,10 @@ DEPENDENCIES
101
115
  rake
102
116
  rspec
103
117
  rspec-http
118
+ rubygems-tasks
104
119
  simplecov
105
120
  vcr!
121
+ warbler!
106
122
  webmock
107
123
  yard
108
124
  yard-cucumber
data/README.md CHANGED
@@ -14,8 +14,19 @@ The following setup is recommended
14
14
  * Ruby 1.9.3
15
15
  * RubyGems installed
16
16
 
17
+ The following libraries / packages may be required to use rOCCI
18
+
19
+ * libxslt-dev
20
+ * libxml2-dev
21
+
22
+ To use rOCCI with Java, you need JRE 6 or 7. To build rOCCI for Java, you need JDK 6 or 7.
23
+
17
24
  Installation
18
25
  ------------
26
+
27
+ **[Mac OS X has some special requirements for the installation. Detailed information can be found in
28
+ doc/macosx.md.](doc/macosx.md)**
29
+
19
30
  To install the most recent stable version
20
31
 
21
32
  gem install occi
@@ -24,12 +35,39 @@ To install the most recent beta version
24
35
 
25
36
  gem install occi --pre
26
37
 
38
+ ### Installation from source
39
+
40
+ To use rOCCI from source it is very much recommended to use RVM. [Install RVM](https://rvm.io/rvm/install/) with
41
+
42
+ curl -L https://get.rvm.io | bash -s stable --ruby
43
+
44
+ #### Ruby
45
+
27
46
  To build and install the bleeding edge version from master
28
47
 
29
48
  git clone git://github.com/gwdg/rOCCI.git
30
49
  cd rOCCI
50
+ rvm install ruby-1.9.3
51
+ rvm --create --ruby-version use 1.9.3@rOCCI
52
+ bundle install --deployment
31
53
  rake install
32
54
 
55
+ #### Java
56
+
57
+ To build a Java jar file from master use
58
+
59
+ git clone git://github.com/gwdg/rOCCI.git
60
+ cd rOCCI
61
+ rvm install jruby-1.7.1
62
+ rvm --create --ruby-version use jruby-1.7.1@rOCCI
63
+ gem install bundler
64
+ bundle install
65
+ warble
66
+
67
+ For Linux / Mac OS X you can create a OCCI Java executable from the jar file using
68
+
69
+ sudo echo '#!/usr/bin/java -jar' | cat - occi.jar > occi ; sudo chmod +x occi
70
+
33
71
  Usage
34
72
  -----
35
73
  ### Client
@@ -116,13 +154,26 @@ For keystone auth use
116
154
  #### DSL
117
155
  In your scripts, you can use the OCCI client DSL.
118
156
 
119
- To include the DSL definitions in your script use
157
+ To include the DSL definitions in a script use
120
158
 
121
159
  extend Occi::Api::Dsl
122
160
 
161
+ To include the DSL definitions in a class use
162
+
163
+ include Occi::Api:Dsl
164
+
123
165
  To connect to an OCCI endpoint/server (e.g. running on http://localhost:3300/ )
124
166
 
125
- connect(:http, 'http://localhost:3300',auth||=nil)
167
+ # defaults
168
+ options = {
169
+ :endpoint => "http://localhost:3300/",
170
+ :auth => {:type => "none"},
171
+ :log => {:out => STDERR, :level => Occi::Log::WARN, :logger => nil},
172
+ :auto_connect => "value", auto_connect => true,
173
+ :media_type => nil
174
+ }
175
+
176
+ connect(:http, options ||= {})
126
177
 
127
178
  To get the list of available resource, mixin, entity or link types use
128
179
 
@@ -190,7 +241,16 @@ at a time, you should use the OCCI client API directly.
190
241
 
191
242
  To connect to an OCCI endpoint/server (e.g. running on http://localhost:3300/ )
192
243
 
193
- client = Occi::Api::Client::ClientHttp.new('http://localhost:3300',auth||=nil)
244
+ # defaults
245
+ options = {
246
+ :endpoint => "http://localhost:3300/",
247
+ :auth => {:type => "none"},
248
+ :log => {:out => STDERR, :level => Occi::Log::WARN, :logger => nil},
249
+ :auto_connect => "value", auto_connect => true,
250
+ :media_type => nil
251
+ }
252
+
253
+ client = Occi::Api::Client::ClientHttp.new(options ||= {})
194
254
 
195
255
  All available categories are automatically registered to the OCCI model during client initialization. You can get them via
196
256
 
@@ -385,7 +445,7 @@ Change to rOCCI folder
385
445
 
386
446
  Install dependencies for deployment
387
447
 
388
- bundle install --deployment
448
+ bundle install
389
449
 
390
450
  ### Code Documentation
391
451
 
data/Rakefile CHANGED
@@ -1,7 +1,11 @@
1
- require 'bundler'
2
- Bundler::GemHelper.install_tasks
1
+ require 'rubygems/tasks'
3
2
 
4
- task :default => 'rcov:all'
3
+ task :default => 'test'
4
+
5
+ desc "Run all tests; includes rspec, cucumber and coverage reports"
6
+ task :test => 'rcov:all'
7
+
8
+ Gem::Tasks.new(:build => {:tar => true, :zip => true}, :sign => {:checksum => true, :pgp => true})
5
9
 
6
10
  namespace :rcov do
7
11
 
data/bin/occi CHANGED
@@ -41,28 +41,6 @@ output = Occi::Bin::ResourceOutputFactory.new options.output_format
41
41
  Occi::Log.info "Starting OCCI client ..."
42
42
  Occi::Log.debug "Options: #{options}"
43
43
 
44
- # TODO: this part isn't necessary, just annoying
45
- # to make the interactive mode completely self-sufficient
46
- # ask for endpoint and auth method (provide defaults)
47
- #if options.interactive
48
- # Occi::Log.debug "Checking for endpoint and auth changes ..."
49
- #
50
- # options.endpoint = ask("What endpoint should I use? ") {
51
- # |q| q.default = options.endpoint
52
- # }
53
- #
54
- # # separate menus
55
- # say "\n"
56
- #
57
- # choose do |menu|
58
- # menu.prompt = "Which auth method should I use? "
59
- #
60
- # Occi::Bin::OcciOpts::AUTH_METHODS.each do |auth_m|
61
- # menu.choice(auth_m) { options.auth[:type] = auth_m.to_s }
62
- # end
63
- # end
64
- #end
65
-
66
44
  # running with an empty password, we should ask the user for one
67
45
  # if auth method is not "none"
68
46
  if options.auth[:password].nil? || options.auth[:user_cert_password].nil? || options.auth[:token].nil?
@@ -82,7 +60,9 @@ end
82
60
  # no effect on the non-interactive one
83
61
  begin
84
62
  Occi::Log.info "Establishing a connection to #{options.endpoint} ..."
85
- connect :http, options.endpoint, options.auth, options.log, true, options.media_type
63
+
64
+ options.auto_connect = true
65
+ connect :http, options
86
66
  rescue OpenSSL::SSL::SSLError => ssl_ex
87
67
  # generic SSL error raised whilst establishing a connection
88
68
  # possibly an untrusted server cert or invalid user credentials
@@ -118,7 +98,7 @@ end
118
98
  if options.dump_model
119
99
 
120
100
  if !model.respond_to? :instance_variables
121
- puts "Your Ruby doesn't support 'instance_variables' calls!"
101
+ Occi::Log.error "Your Ruby doesn't support 'instance_variables' calls!"
122
102
  exit!
123
103
  end
124
104
 
@@ -261,17 +241,19 @@ begin
261
241
  # if the user didn't choose "Back", ask for details
262
242
  # TODO: currently only COMPUTE is supported
263
243
  if options.action == :create
264
- options.resource_title = ask("What name should I give to the new resource? ")
244
+ options.attributes = {} if options.attributes.nil?
245
+
246
+ options.attributes[:title] = ask("What name should I give to the new resource? ")
265
247
  number_of_mixins = ask("How many mixins do you wish me to mix into this resource? ",
266
248
  Integer) { |q| q.in = 0..2 }
267
249
 
268
- options.mixin = {}
250
+ options.mixins = {}
269
251
  (1..number_of_mixins).each do |mixin_number|
270
252
  mixin = ask("What mixin should I mix in? ") { |q| q.validate = /\A\w+#\w+\Z/ }
271
253
  parts = mixin.split("#")
272
254
 
273
- options.mixin[parts[0]] = [] if options.mixin[parts[0]].nil?
274
- options.mixin[parts[0]] << parts[1]
255
+ options.mixins[parts[0]] = [] if options.mixins[parts[0]].nil?
256
+ options.mixins[parts[0]] << parts[1]
275
257
  end
276
258
  end
277
259
  }
@@ -340,40 +322,15 @@ begin
340
322
  # call the appropriate helper and then format its output
341
323
  case options.action
342
324
  when :list
343
- found = helper_list options
344
-
345
- valid = Occi::Bin::ResourceOutputFactory.allowed_resource_types.include? options.resource.to_sym
346
- Occi::Log.error "Not printing, the resource type is not supported!" unless valid
347
-
348
- puts output.format(found, :locations, options.resource.to_sym) if valid
325
+ helper_list options, output
349
326
  when :describe
350
- found = helper_describe options
351
-
352
- if options.resource.start_with? options.endpoint
353
- resource_type = options.resource.split("/")[3].to_sym
354
- elsif mixin_types.include? options.resource.split('#').first
355
- resource_type = options.resource.split('#').first.to_sym
356
- else
357
- resource_type = options.resource.to_sym
358
- end
359
-
360
- valid = Occi::Bin::ResourceOutputFactory.allowed_resource_types.include? resource_type
361
- Occi::Log.error "Not printing, the resource type is not supported!" unless valid
362
-
363
- puts output.format(found, :resources, resource_type) if valid
327
+ helper_describe options, output
364
328
  when :create
365
- location = helper_create options
366
- puts location
329
+ helper_create options, output
367
330
  when :delete
368
- result = helper_delete options
369
-
370
- if result
371
- puts "Resource #{options.resource} successfully removed!"
372
- else
373
- puts "Failed to remove resource #{options.resource}!"
374
- end
331
+ helper_delete options, output
375
332
  when :trigger
376
- helper_trigger options
333
+ helper_trigger options, output
377
334
  when :refresh
378
335
  refresh
379
336
  when :skip
data/config/warble.rb ADDED
@@ -0,0 +1,151 @@
1
+ # Disable Rake-environment-task framework detection by uncommenting/setting to false
2
+ # Warbler.framework_detection = false
3
+
4
+ # Warbler web application assembly configuration file
5
+ Warbler::Config.new do |config|
6
+ # Features: additional options controlling how the jar is built.
7
+ # Currently the following features are supported:
8
+ # - gemjar: package the gem repository in a jar file in WEB-INF/lib
9
+ # - executable: embed a web server and make the war executable
10
+ # - compiled: compile .rb files to .class files
11
+ config.features = %w(compiled)
12
+
13
+ # Application directories to be included in the webapp.
14
+ config.dirs = %w(config lib)
15
+
16
+ # Additional files/directories to include, above those in config.dirs
17
+ # config.includes = FileList["db"]
18
+
19
+ # Additional files/directories to exclude
20
+ # config.excludes = FileList["lib/tasks/*"]
21
+
22
+ # Additional Java .jar files to include. Note that if .jar files are placed
23
+ # in lib (and not otherwise excluded) then they need not be mentioned here.
24
+ # JRuby and JRuby-Rack are pre-loaded in this list. Be sure to include your
25
+ # own versions if you directly set the value
26
+ # config.java_libs += FileList["lib/java/*.jar"]
27
+
28
+ # Loose Java classes and miscellaneous files to be included.
29
+ # config.java_classes = FileList["target/classes/**.*"]
30
+
31
+ # One or more pathmaps defining how the java classes should be copied into
32
+ # the archive. The example pathmap below accompanies the java_classes
33
+ # configuration above. See http://rake.rubyforge.org/classes/String.html#M000017
34
+ # for details of how to specify a pathmap.
35
+ # config.pathmaps.java_classes << "%{target/classes/,}p"
36
+
37
+ # Bundler support is built-in. If Warbler finds a Gemfile in the
38
+ # project directory, it will be used to collect the gems to bundle
39
+ # in your application. If you wish to explicitly disable this
40
+ # functionality, uncomment here.
41
+ # config.bundler = false
42
+
43
+ # An array of Bundler groups to avoid including in the war file.
44
+ # Defaults to ["development", "test", "assets"].
45
+ # config.bundle_without = []
46
+
47
+ # Other gems to be included. If you don't use Bundler or a gemspec
48
+ # file, you need to tell Warbler which gems your application needs
49
+ # so that they can be packaged in the archive.
50
+ # For Rails applications, the Rails gems are included by default
51
+ # unless the vendor/rails directory is present.
52
+ # config.gems += ["activerecord-jdbcmysql-adapter", "jruby-openssl"]
53
+ # config.gems << "tzinfo"
54
+
55
+ # Uncomment this if you don't want to package rails gem.
56
+ # config.gems -= ["rails"]
57
+
58
+ # The most recent versions of gems are used.
59
+ # You can specify versions of gems by using a hash assignment:
60
+ # config.gems["rails"] = "2.3.10"
61
+
62
+ # You can also use regexps or Gem::Dependency objects for flexibility or
63
+ # finer-grained control.
64
+ # config.gems << /^merb-/
65
+ # config.gems << Gem::Dependency.new("merb-core", "= 0.9.3")
66
+
67
+ # Include gem dependencies not mentioned specifically. Default is
68
+ # true, uncomment to turn off.
69
+ # config.gem_dependencies = false
70
+
71
+ # Array of regular expressions matching relative paths in gems to be
72
+ # excluded from the war. Defaults to empty, but you can set it like
73
+ # below, which excludes test files.
74
+ # config.gem_excludes = [/^(test|spec)\//]
75
+
76
+ # Pathmaps for controlling how application files are copied into the archive
77
+ # config.pathmaps.application = ["WEB-INF/%p"]
78
+
79
+ # Name of the archive (without the extension). Defaults to the basename
80
+ # of the project directory.
81
+ config.jar_name = "occi"
82
+
83
+ # Name of the MANIFEST.MF template for the war file. Defaults to a simple
84
+ # MANIFEST.MF that contains the version of Warbler used to create the war file.
85
+ # config.manifest_file = "config/MANIFEST.MF"
86
+
87
+ # When using the 'compiled' feature and specified, only these Ruby
88
+ # files will be compiled. Default is to compile all \.rb files in
89
+ # the application.
90
+ # config.compiled_ruby_files = FileList['app/**/*.rb']
91
+
92
+ # === War files only below here ===
93
+
94
+ # Path to the pre-bundled gem directory inside the war file. Default
95
+ # is 'WEB-INF/gems'. Specify path if gems are already bundled
96
+ # before running Warbler. This also sets 'gem.path' inside web.xml.
97
+ # config.gem_path = "WEB-INF/vendor/bundler_gems"
98
+
99
+ # Files for WEB-INF directory (next to web.xml). This contains
100
+ # web.xml by default. If there is an .erb-File it will be processed
101
+ # with webxml-config. You may want to exclude this file via
102
+ # config.excludes.
103
+ # config.webinf_files += FileList["jboss-web.xml"]
104
+
105
+ # Files to be included in the root of the webapp. Note that files in public
106
+ # will have the leading 'public/' part of the path stripped during staging.
107
+ # config.public_html = FileList["public/**/*", "doc/**/*"]
108
+
109
+ # Pathmaps for controlling how public HTML files are copied into the .war
110
+ # config.pathmaps.public_html = ["%{public/,}p"]
111
+
112
+ # Embedded webserver to use with the 'executable' feature. Currently supported
113
+ # webservers are:
114
+ # * <tt>winstone</tt> (default) - Winstone 0.9.10 from sourceforge
115
+ # * <tt>jenkins-ci.winstone</tt> - Improved Winstone from Jenkins CI
116
+ # * <tt>jetty</tt> - Embedded Jetty from Eclipse
117
+ # config.webserver = 'jetty'
118
+
119
+ # Value of RAILS_ENV for the webapp -- default as shown below
120
+ # config.webxml.rails.env = ENV['RAILS_ENV'] || 'production'
121
+
122
+ # Application booter to use, one of :rack, :rails, or :merb (autodetected by default)
123
+ # config.webxml.booter = :rails
124
+
125
+ # Set JRuby to run in 1.9 mode.
126
+ # config.webxml.jruby.compat.version = "1.9"
127
+
128
+ # When using the :rack booter, "Rackup" script to use.
129
+ # - For 'rackup.path', the value points to the location of the rackup
130
+ # script in the web archive file. You need to make sure this file
131
+ # gets included in the war, possibly by adding it to config.includes
132
+ # or config.webinf_files above.
133
+ # - For 'rackup', the rackup script you provide as an inline string
134
+ # is simply embedded in web.xml.
135
+ # The script is evaluated in a Rack::Builder to load the application.
136
+ # Examples:
137
+ # config.webxml.rackup.path = 'WEB-INF/hello.ru'
138
+ # config.webxml.rackup = %{require './lib/demo'; run Rack::Adapter::Camping.new(Demo)}
139
+ # config.webxml.rackup = require 'cgi' && CGI::escapeHTML(File.read("config.ru"))
140
+
141
+ # Control the pool of Rails runtimes. Leaving unspecified means
142
+ # the pool will grow as needed to service requests. It is recommended
143
+ # that you fix these values when running a production server!
144
+ # If you're using threadsafe! mode, you probably don't want to set these values,
145
+ # since 1 runtime(default for threadsafe mode) will be enough.
146
+ # config.webxml.jruby.min.runtimes = 2
147
+ # config.webxml.jruby.max.runtimes = 4
148
+
149
+ # JNDI data source name
150
+ # config.webxml.jndi = 'jdbc/rails'
151
+ end
data/doc/macosx.md ADDED
@@ -0,0 +1,27 @@
1
+ # rOCCI on Mac OS X
2
+
3
+ ## Installation
4
+
5
+ To use a recent version of Ruby on Mac OS X, a few preparations are needed. Installing Ruby on Apple Mac OS X is not as
6
+ straightforward as it is on other platforms, hence following detailed instructions.
7
+
8
+ 1. Install the latest version of Xcode either
9
+ [from the Mac OS X App Store](itms://itunes.apple.com/de/app/xcode/id497799835?mt=12#) or by downloading it from
10
+ [[http://developer.apple.com]] and then installing the package.
11
+ 2. Open Xcode, then download and install the Xcode command line tools (Menu->Xcode->Preferences->Downloads)
12
+ 3. In the Terminal, install RVM with `curl -L https://get.rvm.io | bash -s stable`
13
+ 4. Read the plattform requirements for your specific setup by running `rvm requirements` in the Terminal. Execute any
14
+ tasks mentioned there for installing Ruby 1.9.3 (you can ignore hints for Ruby 1.8.7). If you need to install additional
15
+ packages it is recommended to use Homebew for it (unless you already use MacPorts). To install Homebrew paste the
16
+ following in your Terminal `ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"`
17
+ 5. Install Ruby 1.9.3 with `rvm install ruby-1.9.3`
18
+
19
+ Now that you have Ruby 1.9.3 installed, you can intall rOCCI.
20
+
21
+ To install the most recent stable version
22
+
23
+ gem install occi
24
+
25
+ To install the most recent beta version
26
+
27
+ gem install occi --pre
@@ -17,13 +17,22 @@ CA_PATH = '/etc/grid-security/certificates'
17
17
  ENDPOINT = 'https://localhost:3300'
18
18
 
19
19
  ## establish a connection
20
- connect(:http, ENDPOINT,
21
- { :type => "x509",
22
- :user_cert => USER_CERT,
23
- :user_cert_password => USER_CERT_PASSWORD,
24
- :ca_path => CA_PATH },
25
- { :out => STDERR,
26
- :level => Occi::Log::DEBUG })
20
+ connect(
21
+ :http,
22
+ {
23
+ :endpoint => ENDPOINT,
24
+ :auth => {
25
+ :type => "x509",
26
+ :user_cert => USER_CERT,
27
+ :user_cert_password => USER_CERT_PASSWORD,
28
+ :ca_path => CA_PATH
29
+ },
30
+ :log => {
31
+ :out => STDERR,
32
+ :level => Occi::Log::DEBUG
33
+ }
34
+ }
35
+ )
27
36
 
28
37
  puts "\n\nListing all available resource types:"
29
38
  resource_types.each do |type|
@@ -14,13 +14,19 @@ CA_PATH = '/etc/grid-security/certificates'
14
14
  ENDPOINT = 'https://localhost:3300'
15
15
 
16
16
  ## get an OCCI::Api::Client::ClientHttp instance
17
- client = Occi::Api::Client::ClientHttp.new(ENDPOINT,
18
- { :type => "x509",
19
- :user_cert => USER_CERT,
20
- :user_cert_password => USER_CERT_PASSWORD,
21
- :ca_path => CA_PATH },
22
- { :out => STDERR,
23
- :level => Occi::Log::DEBUG })
17
+ client = Occi::Api::Client::ClientHttp.new({
18
+ :endpoint => ENDPOINT,
19
+ :auth => {
20
+ :type => "x509",
21
+ :user_cert => USER_CERT,
22
+ :user_cert_password => USER_CERT_PASSWORD,
23
+ :ca_path => CA_PATH
24
+ },
25
+ :log => {
26
+ :out => STDERR,
27
+ :level => Occi::Log::DEBUG
28
+ }
29
+ })
24
30
 
25
31
  puts "\n\nListing all available resource types:"
26
32
  client.get_resource_types.each do |type|