occi-cli 4.2.0.beta.8 → 4.2.0.beta.10

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- ZGEwNjllMjkwNjhmZWM1N2RmNjNkNzRjYWZmM2FmODZlMTg2N2FjMA==
5
- data.tar.gz: !binary |-
6
- ZDNjOTJjMjNmZjU1NTE3NjhiNmNkMDgzYzZkNWIwZTZjOTFlNWI5OA==
2
+ SHA1:
3
+ metadata.gz: 07c20aa7d78d97f71d38b5864e8171f87518cd28
4
+ data.tar.gz: 6d71a666b9d39ccd5bc5c83777131743c723bf9c
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- NjdkNmI5MWM1ZGIwMTI3ZjJjYjM1NWJiN2ZmYTEzYTA4MDZhM2I1MTE2ZGYw
10
- ZGJiMDU5ODE3MjlkNzAzOWI3Njg1OTk2NWZkYWJlODMwNTg1N2FiYmViODAx
11
- Zjg2NDRjMDM0MDBjYzhlZTliZjJiYzZkYjY0MzRhNjljNDU2ZTg=
12
- data.tar.gz: !binary |-
13
- NTFjZTUyZTU1NWMzMjljMzE0NTk4NzIzMWY3MzM1MGRlNTlkOGJkNjQyNmE0
14
- OTNiNGFhNzIyZGU0NDBkZTdjMzEwMjU3NTlkNWY5Yzc3Nzg4MzJkZjM5ZGM3
15
- ZjgwY2E3ZDgyNWNmOTA5ZTk3YmI2NTZiNWE0YTFlYTFjNmQwOWE=
6
+ metadata.gz: ac651f1a84eb8a2266ad2f49398a95b683016b0a5610f75f168165784ec660d1a7c2b76f60295f5e1ec01e29d3feae0c54554fb23e1c60e240b9f1ffd7116e73
7
+ data.tar.gz: 03eb7bd97cb212d3f289f4806a78f0a4286bd6a04ecb71a2681afb9b1cbf9923d7e10ee45f263c8b4e17b1e5107dec9a22da06bcb4b4eccc25239dbfa2e0ccbe
data/.travis.yml CHANGED
@@ -3,6 +3,7 @@ language: ruby
3
3
  rvm:
4
4
  - 1.9.3
5
5
  - 2.0.0
6
+ - 2.1.0
6
7
  - ruby-head
7
8
  - jruby-19mode
8
9
  - jruby-head
@@ -25,10 +26,15 @@ matrix:
25
26
  jdk: openjdk7
26
27
  - rvm: 2.0.0
27
28
  jdk: oraclejdk7
29
+ - rvm: 2.1.0
30
+ jdk: openjdk7
31
+ - rvm: 2.1.0
32
+ jdk: oraclejdk7
28
33
  - rvm: ruby-head
29
34
  jdk: openjdk7
30
35
  - rvm: ruby-head
31
36
  jdk: oraclejdk7
37
+ fast_finish: true
32
38
 
33
39
  branches:
34
40
  only:
@@ -1,7 +1,44 @@
1
1
  module Occi::Cli::Helpers::TriggerHelper
2
2
 
3
3
  def helper_trigger(options, output = nil)
4
- raise "Not yet implemented!"
4
+ unless resource_types.include?(options.resource) || resource_type_identifiers.include?(options.resource) \
5
+ || \
6
+ options.resource.start_with?(options.endpoint) || options.resource.start_with?('/')
7
+ Occi::Log.error "I have no idea what #{options.resource.inspect} is ..."
8
+ raise "Unknown resource #{options.resource.inspect}, there is nothing to trigger here!"
9
+ end
10
+
11
+ action_instance = Occi::Core::ActionInstance.new
12
+ action_instance.action = helper_trigger_normalize_action(options.trigger_action)
13
+ action_instance.attributes = options.attributes
14
+
15
+ if trigger(options.resource, action_instance)
16
+ Occi::Log.info "Action #{options.trigger_action.action.type_identifier.inspect} " \
17
+ "triggered on #{options.resource.inspect}!"
18
+ else
19
+ message = "Failed to trigger an action on #{options.resource.inspect}!"
20
+ Occi::Log.error message
21
+ raise message
22
+ end
23
+
24
+ true
25
+ end
26
+
27
+ def helper_trigger_normalize_action(action)
28
+ return action if action_type_identifiers.include?(action.type_identifier)
29
+
30
+ ti = action_type_identifier(action.term)
31
+ if ti.blank?
32
+ message = "Failed to identify action #{action.type_identifier.inspect} in the model!"
33
+ Occi::Log.error message
34
+ raise message
35
+ end
36
+
37
+ splt = ti.split '#'
38
+ action.term = splt.last
39
+ action.scheme = "#{splt.first}#"
40
+
41
+ action
5
42
  end
6
43
 
7
44
  end
@@ -6,7 +6,7 @@ module Occi::Cli
6
6
 
7
7
  ALLOWED_CONTEXT_VARS = [:public_key, :user_data].freeze
8
8
 
9
- MIXIN_REGEXP = ACTION_REGEXP = /^(\S+?)#(\S+)$/
9
+ MIXIN_REGEXP = /^(\S+?)#(\S+)$/
10
10
  CONTEXT_REGEXP = ATTR_REGEXP = /^(\S+?)=(.+)$/
11
11
 
12
12
  ATTR_NUM_EXP = /num\((?<number>\d+)\)/
@@ -27,7 +27,7 @@ module Occi::Cli
27
27
 
28
28
  context_data = ary[1]
29
29
  if context_data.gsub!(/^file:\/\//,'')
30
- raise 'File does not exist! #{context_data}' unless File.exist? context_data
30
+ raise "File does not exist! #{context_data.inspect}" unless File.exist? context_data
31
31
  context_data = File.read(context_data)
32
32
  end
33
33
 
@@ -42,7 +42,7 @@ module Occi::Cli
42
42
  ary = ATTR_REGEXP.match(attribute).to_a.drop 1
43
43
  raise ArgumentError, "Attribute must always contain ATTR=VALUE pairs!" unless ary.length == 2
44
44
 
45
- ary[0] = "occi.core.#{ary[0]}" unless ary[0].include?('.')
45
+ # type-cast the value, if necessary
46
46
  ary[1] = parse_attribute_value(ary[1])
47
47
 
48
48
  ary
@@ -50,16 +50,20 @@ module Occi::Cli
50
50
 
51
51
  def self.parse_mixin(mixin)
52
52
  parts = MIXIN_REGEXP.match(mixin).to_a.drop(1)
53
- raise "Unknown mixin format '#{mixin.inspect}'! Use SCHEME#TERM or SHORT_SCHEME#TERM!" unless parts.length == 2
53
+ raise "Unknown mixin format #{mixin.inspect}! Use SCHEME#TERM or SHORT_SCHEME#TERM!" unless parts.length == 2
54
54
 
55
55
  Occi::Core::Mixin.new("#{parts[0]}#", parts[1])
56
56
  end
57
57
 
58
58
  def self.parse_action(action)
59
- parts = ACTION_REGEXP.match(action).to_a.drop(1)
60
- raise "Unknown action format '#{action.inspect}'! Use SCHEME#TERM or SHORT_SCHEME#TERM!" unless parts.length == 2
59
+ raise "Unknown action format #{action.inspect}! Use SCHEME#TERM or TERM!" if action.blank?
60
+ parts = action.split('#')
61
61
 
62
- Occi::Core::Action.new("#{parts[0]}#", parts[1])
62
+ if parts.size == 2
63
+ Occi::Core::Action.new("#{parts[0]}#", parts[1])
64
+ else
65
+ Occi::Core::Action.new("action#", parts.last)
66
+ end
63
67
  end
64
68
 
65
69
  def self.parse_attribute_value(value)
@@ -33,7 +33,7 @@ module Occi::Cli
33
33
  opts.on("-e",
34
34
  "--endpoint URI",
35
35
  String,
36
- "OCCI server URI, defaults to '#{options.endpoint}'") do |endpoint|
36
+ "OCCI server URI, defaults to #{options.endpoint.inspect}") do |endpoint|
37
37
  options.endpoint = URI(endpoint).to_s
38
38
  end
39
39
 
@@ -41,7 +41,7 @@ module Occi::Cli
41
41
  "--auth METHOD",
42
42
  AUTH_METHODS,
43
43
  "Authentication method, only: [#{AUTH_METHODS.join('|')}], defaults " \
44
- "to '#{options.auth.type}'") do |auth|
44
+ "to #{options.auth.type.inspect}") do |auth|
45
45
  options.auth.type = auth.to_s
46
46
  end
47
47
 
@@ -49,7 +49,7 @@ module Occi::Cli
49
49
  "--username USER",
50
50
  String,
51
51
  "Username for basic or digest authentication, defaults to " \
52
- "'#{options.auth.username}'") do |username|
52
+ "#{options.auth.username.inspect}") do |username|
53
53
  options.auth.username = username
54
54
  end
55
55
 
@@ -64,7 +64,7 @@ module Occi::Cli
64
64
  opts.on("-c",
65
65
  "--ca-path PATH",
66
66
  String,
67
- "Path to CA certificates directory, defaults to '#{options.auth.ca_path}'") do |ca_path|
67
+ "Path to CA certificates directory, defaults to #{options.auth.ca_path.inspect}") do |ca_path|
68
68
  raise ArgumentError, "Path specified in --ca-path is not a directory!" unless File.directory? ca_path
69
69
  raise ArgumentError, "Path specified in --ca-path is not readable!" unless File.readable? ca_path
70
70
 
@@ -92,7 +92,7 @@ module Occi::Cli
92
92
  opts.on("-x",
93
93
  "--user-cred FILE",
94
94
  String,
95
- "Path to user's x509 credentials, defaults to '#{options.auth.user_cert}'") do |user_cred|
95
+ "Path to user's x509 credentials, defaults to #{options.auth.user_cert.inspect}") do |user_cred|
96
96
  raise ArgumentError, "File specified in --user-cred is not a file!" unless File.file? user_cred
97
97
  raise ArgumentError, "File specified in --user-cred is not readable!" unless File.readable? user_cred
98
98
 
@@ -110,7 +110,7 @@ module Occi::Cli
110
110
  "--media-type MEDIA_TYPE",
111
111
  MEDIA_TYPES,
112
112
  "Media type for client <-> server communication, only: [#{MEDIA_TYPES.join('|')}], " \
113
- "defaults to '#{options.media_type}'") do |media_type|
113
+ "defaults to #{options.media_type.inspect}") do |media_type|
114
114
  options.media_type = media_type
115
115
  end
116
116
 
@@ -122,9 +122,9 @@ module Occi::Cli
122
122
  end
123
123
 
124
124
  opts.on("-t",
125
- "--attribute ATTRS",
125
+ "--attribute ATTR",
126
126
  Array,
127
- "Comma separated attributes for new resource instances, mandatory: " \
127
+ "An \"attribute='value'\" pair, mandatory attrs for creating new resource instances: " \
128
128
  "[#{REQ_CREATE_ATTRS.join(', ')}]") do |attributes|
129
129
  options.attributes ||= Occi::Core::Attributes.new
130
130
 
@@ -135,9 +135,9 @@ module Occi::Cli
135
135
  end
136
136
 
137
137
  opts.on("-T",
138
- "--context CTX_VARS",
138
+ "--context CTX_VAR",
139
139
  Array,
140
- "Comma separated context variables for new 'compute' resource instances, " \
140
+ "A \"context_variable='value'\" pair for new 'compute' resource instances, " \
141
141
  "only: [#{Occi::Cli::OcciOpts::Helper::ALLOWED_CONTEXT_VARS.join(', ')}]") do |context|
142
142
  options.context_vars ||= {}
143
143
 
@@ -181,7 +181,7 @@ module Occi::Cli
181
181
  opts.on("-g",
182
182
  "--trigger-action ACTION",
183
183
  String,
184
- "Action to be triggered on the resource, formatted as SCHEME#TERM or SHORT_SCHEME#TERM") do |trigger_action|
184
+ "Action to be triggered on the resource, formatted as SCHEME#TERM or TERM") do |trigger_action|
185
185
  options.trigger_action = Occi::Cli::OcciOpts::Helper.parse_action(trigger_action)
186
186
  end
187
187
 
@@ -196,7 +196,7 @@ module Occi::Cli
196
196
  "--output-format FORMAT",
197
197
  Occi::Cli::ResourceOutputFactory.allowed_formats,
198
198
  "Output format, only: [#{Occi::Cli::ResourceOutputFactory.allowed_formats.join('|')}], " \
199
- "defaults to '#{options.output_format}'") do |output_format|
199
+ "defaults to #{options.output_format.to_s.inspect}") do |output_format|
200
200
  options.output_format = output_format
201
201
  end
202
202
 
@@ -1,5 +1,5 @@
1
1
  module Occi
2
2
  module Cli
3
- VERSION = "4.2.0.beta.8" unless defined?(::Occi::Cli::VERSION)
3
+ VERSION = "4.2.0.beta.10" unless defined?(::Occi::Cli::VERSION)
4
4
  end
5
5
  end
data/occi-cli.gemspec CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |gem|
19
19
  gem.test_files = `git ls-files -- {test,spec}/*`.split("\n")
20
20
  gem.require_paths = ["lib"]
21
21
 
22
- gem.add_dependency 'occi-api', '= 4.2.0.beta.7'
22
+ gem.add_dependency 'occi-api', '= 4.2.0.beta.10'
23
23
  gem.add_dependency 'json'
24
24
  gem.add_dependency 'highline'
25
25
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: occi-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.2.0.beta.8
4
+ version: 4.2.0.beta.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Florian Feldhaus
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2014-01-09 00:00:00.000000000 Z
13
+ date: 2014-01-11 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: occi-api
@@ -18,40 +18,40 @@ dependencies:
18
18
  requirements:
19
19
  - - '='
20
20
  - !ruby/object:Gem::Version
21
- version: 4.2.0.beta.7
21
+ version: 4.2.0.beta.10
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
26
  - - '='
27
27
  - !ruby/object:Gem::Version
28
- version: 4.2.0.beta.7
28
+ version: 4.2.0.beta.10
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: json
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
- - - ! '>='
33
+ - - '>='
34
34
  - !ruby/object:Gem::Version
35
35
  version: '0'
36
36
  type: :runtime
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
- - - ! '>='
40
+ - - '>='
41
41
  - !ruby/object:Gem::Version
42
42
  version: '0'
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: highline
45
45
  requirement: !ruby/object:Gem::Requirement
46
46
  requirements:
47
- - - ! '>='
47
+ - - '>='
48
48
  - !ruby/object:Gem::Version
49
49
  version: '0'
50
50
  type: :runtime
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
53
53
  requirements:
54
- - - ! '>='
54
+ - - '>='
55
55
  - !ruby/object:Gem::Version
56
56
  version: '0'
57
57
  description: This gem is a client implementation of the Open Cloud Computing Interface
@@ -112,12 +112,12 @@ require_paths:
112
112
  - lib
113
113
  required_ruby_version: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - ! '>='
115
+ - - '>='
116
116
  - !ruby/object:Gem::Version
117
117
  version: 1.9.3
118
118
  required_rubygems_version: !ruby/object:Gem::Requirement
119
119
  requirements:
120
- - - ! '>'
120
+ - - '>'
121
121
  - !ruby/object:Gem::Version
122
122
  version: 1.3.1
123
123
  requirements: []