opennebula-provider 0.1.5 → 0.1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5f21660590f1b8adb1f83e03e1d4ed528be27941
4
- data.tar.gz: d8cb277e930638635a43fa6be7ebcb2b2745da85
3
+ metadata.gz: fae90815076cc487d10199bed0a3ff1d8dbd81a1
4
+ data.tar.gz: 575a144fdd4436e0f18246a33ea8de5bd8a7d61b
5
5
  SHA512:
6
- metadata.gz: 2e07c6b69e77508836b94d121a44416f73575eafc9f2e3813c9715821f5ec74aaa4fba3ced0a48aab1ba57f3e3550c272d489dbeae285226aa7f048f3bd3a168
7
- data.tar.gz: 43d35fbb3f58c9e9e39668661ddb003793197cc8df68933e444276e990e3298be426375d1880d9651661e0b50fd988473668b21a77f294ce3d9ac95534f438fa
6
+ metadata.gz: e8b14749cdfa2ee3f57b6f047d74dab81b9402ae57a8b0999fddb884efac5fb7945deeedbe1398286b61ea91165ff6583a1021bb3741cc56c2651a65b9727b09
7
+ data.tar.gz: 767e5d43bd71c92f0bd6b2211469271ac27d1b7200e4c8bb7dd4cb6f5c5fc76342565f1ec382d137da76d8cdb00270d5c7c33056e8d7098f6c8555321ae85672
data/README.md CHANGED
@@ -1,10 +1,10 @@
1
1
  # OpenNebula::Provider
2
2
 
3
- [![Gem Version](https://badge.fury.io/rb/opennebula-provider.png)](https://rubygems.org/gems/opennebula-provider)
3
+ [![Gem Version](https://badge.fury.io/rb/opennebula-provider.svg)](https://rubygems.org/gems/opennebula-provider)
4
4
 
5
5
  This is a Vagrant 1.5 plugin that add an OpenNebula provider to Vagrant.
6
6
 
7
- **NOTE:** This plugin requires occi-api gem and works with rOCCI-server.
7
+ **NOTE:** This plugin requires occi-api gem and works with [rOCCI-server](https://github.com/gwdg/rOCCI-server/).
8
8
 
9
9
  ## Features
10
10
 
@@ -49,6 +49,7 @@ end
49
49
  * `auth` - OpenNebula authorization method, default: basic
50
50
  * `os_tpl` - OpenNebula os template
51
51
  * `resource_tpl` - OpenNebula resource template, default: small
52
+ * `title` - OpenNebula instance name
52
53
 
53
54
  ## Contributing
54
55
 
@@ -7,6 +7,7 @@ module VagrantPlugins
7
7
  attr_accessor :password
8
8
  attr_accessor :os_tpl
9
9
  attr_accessor :resource_tpl
10
+ attr_accessor :title
10
11
 
11
12
  def initialize
12
13
  @endpoint = UNSET_VALUE
@@ -15,6 +16,7 @@ module VagrantPlugins
15
16
  @password = UNSET_VALUE
16
17
  @os_tpl = UNSET_VALUE
17
18
  @resource_tpl = UNSET_VALUE
19
+ @title = UNSET_VALUE
18
20
  end
19
21
 
20
22
  def finalize!
@@ -24,6 +26,7 @@ module VagrantPlugins
24
26
  @password = nil if @password == UNSET_VALUE
25
27
  @os_tpl = nil if @os_tpl == UNSET_VALUE
26
28
  @resource_tpl = 'small' if @resource_tpl == UNSET_VALUE
29
+ @title = nil if @title == UNSET_VALUE
27
30
  end
28
31
 
29
32
  def validate(machine)
@@ -31,7 +34,7 @@ module VagrantPlugins
31
34
  errors << I18n.t('opennebula_provider.config.endpoint') unless @endpoint
32
35
  errors << I18n.t('opennebula_provider.config.username') unless @username
33
36
  errors << I18n.t('opennebula_provider.config.password') unless @password
34
- errors << I18n.t('opennebula_provider.config.resource_tpl') unless @resource_tpl
37
+ errors << I18n.t('opennebula_provider.config.os_tpl') unless @os_tpl
35
38
 
36
39
  { 'OpenNebula provider' => errors }
37
40
  end
@@ -5,17 +5,29 @@ module VagrantPlugins
5
5
  error_namespace('opennebula_provider.errors')
6
6
  end
7
7
 
8
- class QuotaError < OpenNebulaProviderError
9
- error_key(:quota)
10
- end
11
-
12
8
  class AllocateError < OpenNebulaProviderError
13
9
  error_key(:allocate)
14
10
  end
15
11
 
12
+ class AuthError < OpenNebulaProviderError
13
+ error_key(:auth)
14
+ end
15
+
16
16
  class ComputeError < OpenNebulaProviderError
17
17
  error_key(:compute)
18
18
  end
19
+
20
+ class ConnectError < OpenNebulaProviderError
21
+ error_key(:connect)
22
+ end
23
+
24
+ class ResourceError < OpenNebulaProviderError
25
+ error_key(:resource)
26
+ end
27
+
28
+ class QuotaError < OpenNebulaProviderError
29
+ error_key(:quota)
30
+ end
19
31
  end
20
32
  end
21
33
  end
@@ -23,20 +23,41 @@ module VagrantPlugins
23
23
  password: @config.password
24
24
  }
25
25
  # :log => {
26
- #:out => STDERR,
27
- #:level => Occi::Api::Log::DEBUG
26
+ # :out => STDERR,
27
+ # :level => Occi::Api::Log::DEBUG
28
28
  # }
29
29
  }
30
- @rocci = Occi::Api::Client::ClientHttp.new(options)
30
+ begin
31
+ @rocci = Occi::Api::Client::ClientHttp.new(options)
32
+ rescue Errno::ECONNREFUSED => e
33
+ raise Errors::ConnectError, error: e
34
+ rescue Occi::Api::Client::Errors::AuthnError => e
35
+ raise Errors::AuthError, error: e
36
+ end
31
37
  end
32
38
 
33
39
  def compute
34
40
  @logger.info 'compute!'
35
41
  cmpt = @rocci.get_resource 'compute'
42
+
36
43
  os = @rocci.get_mixin @config.os_tpl, 'os_tpl'
44
+ unless os
45
+ mixins = @rocci.get_mixins 'os_tpl'
46
+ mixins.each do |mixin|
47
+ if mixin.title == @config.os_tpl
48
+ os = @rocci.get_mixin mixin.term, 'os_tpl'
49
+ end
50
+ end
51
+ fail Errors::ComputeError, error: I18n.t('opennebula_provider.compute.os_missing', template: @config.os_tpl) unless os
52
+ end
53
+
37
54
  size = @rocci.get_mixin @config.resource_tpl, 'resource_tpl'
55
+ unless size
56
+ fail Errors::ComputeError, error: I18n.t('opennebula_provider.compute.resource_size_missing', template: @config.resource_tpl)
57
+ end
58
+
38
59
  cmpt.mixins << os << size
39
- cmpt.title = 'testROCCIvagrant'
60
+ cmpt.title = @config.title if @config.title
40
61
  cmpt_loc = @rocci.create cmpt
41
62
  @logger.info "Location of new compute resource: #{cmpt_loc}"
42
63
  cmpt_loc
@@ -65,7 +86,11 @@ module VagrantPlugins
65
86
 
66
87
  def machine_state(id)
67
88
  if id
68
- desc = @rocci.describe id
89
+ begin
90
+ desc = @rocci.describe id
91
+ rescue ArgumentError => e
92
+ raise Errors::ResourceError, error: e
93
+ end
69
94
  return :not_created if desc.empty?
70
95
  return desc.first.attributes.occi.compute.state
71
96
  else
@@ -1,5 +1,5 @@
1
1
  module VagrantPlugins
2
2
  module OpenNebulaProvider
3
- VERSION = '0.1.5'
3
+ VERSION = '0.1.9'
4
4
  end
5
5
  end
data/locales/en.yml CHANGED
@@ -4,7 +4,7 @@ en:
4
4
  connecting: |-
5
5
  Connecting to OpenNebula
6
6
  creating: |-
7
- Creating a new instance...
7
+ Creating a new instance...
8
8
  not_created: |-
9
9
  Instance is not created
10
10
  destroying: |-
@@ -23,6 +23,11 @@ en:
23
23
  long_not_created: |-
24
24
  The OpenNebula instance is not created
25
25
 
26
+ short_inactive: |-
27
+ inactive
28
+ long_inactive: |-
29
+ Instance is inactive
30
+
26
31
  short_active: |-
27
32
  active
28
33
  long_active: |-
@@ -40,13 +45,25 @@ en:
40
45
  Username is not set
41
46
  password: |-
42
47
  Password is not set
43
- resource_tpl: |-
44
- A resource template must defined via "resource_tpl"
48
+ os_tpl: |-
49
+ An os template must defined via "os_tpl"
50
+
51
+ compute:
52
+ os_missing: |-
53
+ Os template "%{template}" is not defined in OpenNebula
54
+ resource_size_missing: |-
55
+ Resource size "%{template}" is not defined in rOCCI-server
45
56
 
46
57
  errors:
58
+ allocate: |-
59
+ Allocation error! %{error}
60
+ auth: |-
61
+ Authentication error! %{error}
47
62
  compute: |-
48
63
  Compute error! %{error}
64
+ connect: |-
65
+ Connect error! %{error}
66
+ resource: |-
67
+ Resource error! %{error}
49
68
  quota: |-
50
69
  Quota error! %{error}
51
- allocate: |-
52
- Allocation error! %{error}
metadata CHANGED
@@ -1,69 +1,69 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opennebula-provider
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cherdancev Evgeni
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-23 00:00:00.000000000 Z
11
+ date: 2014-05-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: occi-api
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '4.2'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '4.2'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '1.3'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.3'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '>='
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  description: OpenNebula provider for Vagrant
@@ -73,31 +73,30 @@ executables: []
73
73
  extensions: []
74
74
  extra_rdoc_files: []
75
75
  files:
76
+ - ".gitignore"
77
+ - Gemfile
76
78
  - LICENSE.txt
77
- - locales/en.yml
78
79
  - README.md
79
- - Gemfile
80
+ - Rakefile
81
+ - boxes/dummy/README.md
80
82
  - boxes/dummy/dummy.box
81
83
  - boxes/dummy/metadata.json
82
- - boxes/dummy/README.md
83
- - lib/opennebula-provider/version.rb
84
- - lib/opennebula-provider/errors.rb
85
- - lib/opennebula-provider/plugin.rb
86
- - lib/opennebula-provider/helpers/rocci.rb
87
- - lib/opennebula-provider/action/destroy.rb
84
+ - lib/opennebula-provider.rb
85
+ - lib/opennebula-provider/action.rb
88
86
  - lib/opennebula-provider/action/check_state.rb
89
- - lib/opennebula-provider/action/read_ssh_info.rb
90
87
  - lib/opennebula-provider/action/connect_opennebula.rb
91
88
  - lib/opennebula-provider/action/create.rb
89
+ - lib/opennebula-provider/action/destroy.rb
90
+ - lib/opennebula-provider/action/read_ssh_info.rb
92
91
  - lib/opennebula-provider/action/sync_folders.rb
93
- - lib/opennebula-provider/action.rb
94
92
  - lib/opennebula-provider/config.rb
93
+ - lib/opennebula-provider/errors.rb
94
+ - lib/opennebula-provider/helpers/rocci.rb
95
+ - lib/opennebula-provider/plugin.rb
95
96
  - lib/opennebula-provider/provider.rb
96
- - lib/opennebula-provider.rb
97
+ - lib/opennebula-provider/version.rb
98
+ - locales/en.yml
97
99
  - opennebula-provider.gemspec
98
- - test/test_rsa
99
- - Rakefile
100
- - .gitignore
101
100
  homepage: ''
102
101
  licenses:
103
102
  - MIT
@@ -108,19 +107,18 @@ require_paths:
108
107
  - lib
109
108
  required_ruby_version: !ruby/object:Gem::Requirement
110
109
  requirements:
111
- - - '>='
110
+ - - ">="
112
111
  - !ruby/object:Gem::Version
113
112
  version: '0'
114
113
  required_rubygems_version: !ruby/object:Gem::Requirement
115
114
  requirements:
116
- - - '>='
115
+ - - ">="
117
116
  - !ruby/object:Gem::Version
118
117
  version: '0'
119
118
  requirements: []
120
119
  rubyforge_project:
121
- rubygems_version: 2.1.11
120
+ rubygems_version: 2.2.2
122
121
  signing_key:
123
122
  specification_version: 4
124
123
  summary: OpenNebula provider for Vagrant
125
- test_files:
126
- - test/test_rsa
124
+ test_files: []
data/test/test_rsa DELETED
@@ -1,27 +0,0 @@
1
- -----BEGIN RSA PRIVATE KEY-----
2
- MIIEpQIBAAKCAQEA7PbUG3ZnKywbc031GWQjzxnqBYHgOy78cEoMccC1oiuX1+1o
3
- tKkGtADuAnDOrd3bPOQNr0vNxJpizHM+Jdj/Osno8gW1G01rGTQG/CZ6uA20bd4b
4
- ob1yPjrmo/PaFmG18xgK/P7hP8h9ME9pXHWiQAewQs1OW/QM9REowFrxyFIEAZXp
5
- /MKXP96Yr59cdFRY+5k0uchOH5zT1HR5VEIaS1bouF2IYSUjdHbDbX8LRU5z4h4R
6
- 1rf1f6ANAsZfANi+G0wJqZwOCf8vz397AzAEMfhCHCYwrD68qpl9Olf9HWgnF1WT
7
- U5yX0+bakZWl0VmJGsBlD9y8q+A2tZo+VMLBNQIDAQABAoIBAQDJ8w4PnZgNThjS
8
- 6tSA4Dw4a0BrkyUzqzaOyDzU0US6weY1quo6VXcV/1jYkaVCvjnzKfSTucnSzTR4
9
- Q5rqjIXwZ1V0tfKEIzWsFBAD4xNhOqTToZ/w9tCfQnl/rvnlaz6yv4HV3a7AOjCe
10
- 9H65wrMVWLgaJniqm1JTpV0Smi9G5SMCs3S+r3JMeTDkGiaMOuRxt0jWF6tQqKvW
11
- UquE9uRZkqXnvZUZYe38AjZ/grbhIJHUFqDxidAGX4ouhnIuqZy971oel6C3ZPWu
12
- 4Px5Ex58+HqRdjvOnLhSVVgBEtE8LdMMjYf3RFTPszdMtAXpU+zh2Jzkswha+pKT
13
- +99gYshdAoGBAPvxVgxNZsRZWnpDPAEm5R5I0pD7vP9oCtr4QlQPTHCt6GYXtS+J
14
- rHCUomNH98+kVbQuWqaOFX2FfIIw9C/GO/r8X51sSAp7Ah0HKW6WeLKMk+jfgruH
15
- jJy5MS2gMmdVAgoAr8OXMMFJAyuvgyeVpXpJiEdOIV4U8oCB4dPLSEcHAoGBAPDH
16
- vdhLUItEE3XWeghalkXPeWa1EBc7l53dXxr/4DXk63/AgFIGt7g5OEwZjPqSZ0Pz
17
- SbuOxGzIj8FVwfSvFWbOsbe03IRgaIltGWq6pVzpa3uJASNAWZh10z3UhJuj9vWG
18
- 4oMvGkZoBK8eAjgQPAxVhemZotoxEhaNkDQtDorjAoGBANTtVmf3Uo9HZSxHfoMK
19
- uEEsEqnt2AGTkPkXMBeTBmuEzxDZoIuYs2BCfiuiO1IF9VjehEaXdporItt1PCrU
20
- QwUQHk8RoKEa7OJTlzSbf06HeMorfHW5TaF28pU4+uBR+/MwOVv4f4AbkM5u+02N
21
- L9l2I/L/mTvGQF1TZ+RzvZYpAoGABMPfNPWgnXD2daGN/rZUPQNzIp44uEz8niow
22
- ZKdlt4tVQcz8fSMW5bV0MMVcreTR2F1rOyQDLSf2+FuLIB2K7eLvT3Rr3M7PotCe
23
- 7SbOeP1BnEtE037Fhyfly1Z2XWIsVAWcW/5FpdkPJqwQXS2tEo1qvgnFWE4aTon0
24
- raOqowMCgYEAy2I3mslOA9lylapShkydPRraBow9rTtpGi8K85HTdyz3wzfR5t7Y
25
- Aoad1jJ77U2nXnHTe+s1X7FusyX8SF6Wl9jb/Wjf9K/LbMZQqCmzDqsAA6Rwguds
26
- OD2kABU5dyf6X8BJ3vpv4JR57nOowwkKFKJNZmkNPiwolF9kCk0YQFM=
27
- -----END RSA PRIVATE KEY-----