opennebula-provider 0.1.5 → 0.1.9

Sign up to get free protection for your applications and to get access to all the features.
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-----