kitchen-azure_vm 0.1.0.beta
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 +7 -0
- data/.cane +0 -0
- data/.gitignore +20 -0
- data/.kitchen.yml +23 -0
- data/.tailor +4 -0
- data/.travis.yml +11 -0
- data/CHANGELOG.md +3 -0
- data/Gemfile +3 -0
- data/LICENSE +15 -0
- data/README.md +194 -0
- data/Rakefile +28 -0
- data/kitchen-azure_vm.gemspec +32 -0
- data/lib/kitchen/driver/azure_vm.rb +155 -0
- data/lib/kitchen/driver/azure_vm_image.rb +48 -0
- data/lib/kitchen/driver/azure_vm_version.rb +26 -0
- metadata +184 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 8beacb4a02e50422dfcbd626a97b6bca61b63934
|
4
|
+
data.tar.gz: 246ae2e4c9d4738e70e01f060f97fc056c58dc9c
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 685a3d144895e9bd6339d00603956ccebd32a868053b155bf52afda4148cc22629374b274d522fa3d76152901d3fdc7d2f8d4b9d63c16a07d471982d04396528
|
7
|
+
data.tar.gz: 670b8327e7bbd5f6e0ff91b7393d642ddb567d5d981bdb7e78ac19cb0e6698ad4fd50afa8379bd842217bdda5b7e95ab36bb5a264b17e6ed57f29270651217d6
|
data/.cane
ADDED
File without changes
|
data/.gitignore
ADDED
data/.kitchen.yml
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
---
|
2
|
+
driver:
|
3
|
+
name: azure_vm
|
4
|
+
|
5
|
+
driver_config:
|
6
|
+
management_certificate: <%= ENV['AZURE_MANAGEMENT_CERTIFICATE'] %>
|
7
|
+
subscription_id: <%= ENV['AZURE_SUBSCRIPTION_ID'] %>
|
8
|
+
private_key_file: <%= ENV['AZURE_PRIVATE_KEY'] %>
|
9
|
+
certificate_file: <%= ENV['AZURE_CERTIFICATE'] %>
|
10
|
+
vm_size: Medium
|
11
|
+
location: Japan East
|
12
|
+
|
13
|
+
provisioner:
|
14
|
+
name: chef_zero
|
15
|
+
|
16
|
+
platforms:
|
17
|
+
- name: centos-6.5
|
18
|
+
- name: ubuntu-14.04
|
19
|
+
|
20
|
+
suites:
|
21
|
+
- name: default
|
22
|
+
run_list:
|
23
|
+
attributes:
|
data/.tailor
ADDED
data/.travis.yml
ADDED
data/CHANGELOG.md
ADDED
data/Gemfile
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
Author:: Masashi Terui (<marcy9114@gmail.com>)
|
2
|
+
|
3
|
+
Copyright (C) 2015, Masashi Terui
|
4
|
+
|
5
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
you may not use this file except in compliance with the License.
|
7
|
+
You may obtain a copy of the License at
|
8
|
+
|
9
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
|
11
|
+
Unless required by applicable law or agreed to in writing, software
|
12
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
See the License for the specific language governing permissions and
|
15
|
+
limitations under the License.
|
data/README.md
ADDED
@@ -0,0 +1,194 @@
|
|
1
|
+
# <a name="title"></a> Kitchen::AzureVm
|
2
|
+
|
3
|
+
A Test Kitchen Driver for Azure Virtual Machine.
|
4
|
+
|
5
|
+
## <a name="requirements"></a> Requirements
|
6
|
+
|
7
|
+
- Test-Kitchen
|
8
|
+
|
9
|
+
## <a name="installation"></a> Installation and Setup
|
10
|
+
|
11
|
+
```sh
|
12
|
+
gem install kitchen-azure_vm
|
13
|
+
```
|
14
|
+
|
15
|
+
or put `Gemfile` in your project directory.
|
16
|
+
|
17
|
+
```ruby
|
18
|
+
source 'https://rubygems.org'
|
19
|
+
|
20
|
+
gem 'kitchen-azure_vm'
|
21
|
+
```
|
22
|
+
|
23
|
+
and
|
24
|
+
|
25
|
+
```sh
|
26
|
+
bundle
|
27
|
+
```
|
28
|
+
|
29
|
+
## <a name="config"></a> Configuration
|
30
|
+
|
31
|
+
At first, put your `.kithcen(.local).yml` like this.
|
32
|
+
|
33
|
+
```yml
|
34
|
+
---
|
35
|
+
driver:
|
36
|
+
name: azure_vm
|
37
|
+
management_certificate: /path/to/management_certificate.cer
|
38
|
+
subscription_id: <%= ENV['AZURE_SUBSCRIPTION_ID'] %>
|
39
|
+
private_key_file: /path/to/private.key
|
40
|
+
certificate_file: /path/to/certificate.cer
|
41
|
+
|
42
|
+
platforms:
|
43
|
+
- name: ubuntu-14.04
|
44
|
+
- name: centos-6.6
|
45
|
+
|
46
|
+
suites:
|
47
|
+
- name: default
|
48
|
+
run_list:
|
49
|
+
attributes:
|
50
|
+
```
|
51
|
+
|
52
|
+
### management_certificate
|
53
|
+
|
54
|
+
Path to the Management Certificate file.
|
55
|
+
See also https://msdn.microsoft.com/en-us/library/azure/gg551722.aspx
|
56
|
+
|
57
|
+
Examples:
|
58
|
+
|
59
|
+
```yml
|
60
|
+
management_certificate: /path/to/management_certificate.cer
|
61
|
+
```
|
62
|
+
|
63
|
+
### subscription_id
|
64
|
+
|
65
|
+
Your Azure Subscription ID.
|
66
|
+
|
67
|
+
Examples:
|
68
|
+
|
69
|
+
```yml
|
70
|
+
subscription_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
|
71
|
+
```
|
72
|
+
|
73
|
+
### private_key_file
|
74
|
+
|
75
|
+
Path to the SSH private key file.
|
76
|
+
|
77
|
+
Examples:
|
78
|
+
|
79
|
+
```yml
|
80
|
+
private_key_file: /path/to/private.key
|
81
|
+
```
|
82
|
+
|
83
|
+
### private_key_file
|
84
|
+
|
85
|
+
Path to the x509 SSH certificate file.
|
86
|
+
|
87
|
+
Examples:
|
88
|
+
|
89
|
+
```yml
|
90
|
+
certificate_file: /path/to/certificate.cer
|
91
|
+
```
|
92
|
+
|
93
|
+
### vm_user
|
94
|
+
|
95
|
+
Login user name on the VM.
|
96
|
+
|
97
|
+
The default value is `azureuser`.
|
98
|
+
|
99
|
+
Examples:
|
100
|
+
|
101
|
+
```yml
|
102
|
+
vm_user: example-user
|
103
|
+
```
|
104
|
+
|
105
|
+
### location
|
106
|
+
|
107
|
+
Location(Region) of the VM.
|
108
|
+
|
109
|
+
The default value is `West US`.
|
110
|
+
|
111
|
+
Examples:
|
112
|
+
|
113
|
+
```yml
|
114
|
+
location: Japan East
|
115
|
+
```
|
116
|
+
|
117
|
+
### ssh_port
|
118
|
+
|
119
|
+
Port number of SSH.
|
120
|
+
|
121
|
+
The default value is `22`.
|
122
|
+
|
123
|
+
Examples:
|
124
|
+
|
125
|
+
```yml
|
126
|
+
ssh_port: 2222
|
127
|
+
```
|
128
|
+
|
129
|
+
### destroy_storage_account
|
130
|
+
|
131
|
+
Delete Storage Account when called `kitchen destroy`.
|
132
|
+
|
133
|
+
The default value is `true`.
|
134
|
+
|
135
|
+
Examples:
|
136
|
+
|
137
|
+
```yml
|
138
|
+
destroy_storage_account: false
|
139
|
+
```
|
140
|
+
|
141
|
+
### vm_size
|
142
|
+
|
143
|
+
VM instance size.
|
144
|
+
|
145
|
+
The default value is `Small`.
|
146
|
+
|
147
|
+
Examples:
|
148
|
+
|
149
|
+
```yml
|
150
|
+
vm_size: Large
|
151
|
+
```
|
152
|
+
|
153
|
+
### vm_image
|
154
|
+
|
155
|
+
VM boot image ID.
|
156
|
+
|
157
|
+
The default value get from public images by `platform.name`.
|
158
|
+
|
159
|
+
Examples:
|
160
|
+
|
161
|
+
```yml
|
162
|
+
vm_size: Large
|
163
|
+
```
|
164
|
+
|
165
|
+
## <a name="development"></a> Development
|
166
|
+
|
167
|
+
* Source hosted at [GitHub][repo]
|
168
|
+
* Report issues/questions/feature requests on [GitHub Issues][issues]
|
169
|
+
|
170
|
+
Pull requests are very welcome! Make sure your patches are well tested.
|
171
|
+
Ideally create a topic branch for every separate change you make. For
|
172
|
+
example:
|
173
|
+
|
174
|
+
1. Fork the repo
|
175
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
176
|
+
3. Commit your changes (`git commit -am 'Added some feature'`)
|
177
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
178
|
+
5. Create new Pull Request
|
179
|
+
|
180
|
+
## <a name="authors"></a> Authors
|
181
|
+
|
182
|
+
Created and maintained by [Masashi Terui][author] (<marcy9114@gmail.com>)
|
183
|
+
|
184
|
+
## <a name="license"></a> License
|
185
|
+
|
186
|
+
Apache 2.0 (see [LICENSE][license])
|
187
|
+
|
188
|
+
|
189
|
+
[author]: https://github.com/marcy-terui
|
190
|
+
[issues]: https://github.com/marcy-terui/kitchen-azure_vm/issues
|
191
|
+
[license]: https://github.com/marcy-terui/kitchen-azure_vm/blob/master/LICENSE
|
192
|
+
[repo]: https://github.com/marcy-terui/kitchen-azure_vm
|
193
|
+
[driver_usage]: http://docs.kitchen-ci.org/drivers/usage
|
194
|
+
[chef_omnibus_dl]: http://www.getchef.com/chef/install/
|
data/Rakefile
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
2
|
+
require 'cane/rake_task'
|
3
|
+
require 'tailor/rake_task'
|
4
|
+
|
5
|
+
desc "Run cane to check quality metrics"
|
6
|
+
Cane::RakeTask.new do |cane|
|
7
|
+
cane.canefile = './.cane'
|
8
|
+
end
|
9
|
+
|
10
|
+
Tailor::RakeTask.new
|
11
|
+
|
12
|
+
desc "Display LOC stats"
|
13
|
+
task :stats do
|
14
|
+
puts "\n## Production Code Stats"
|
15
|
+
sh "countloc -r lib"
|
16
|
+
end
|
17
|
+
|
18
|
+
desc "Run all quality tasks"
|
19
|
+
task :quality => [:cane, :tailor, :stats]
|
20
|
+
|
21
|
+
task :default => [:quality]
|
22
|
+
|
23
|
+
begin
|
24
|
+
require "kitchen/rake_tasks"
|
25
|
+
Kitchen::RakeTasks.new
|
26
|
+
rescue LoadError
|
27
|
+
puts ">>>>> Kitchen gem not loaded, omitting tasks" unless ENV["CI"]
|
28
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'kitchen/driver/azure_vm_version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = 'kitchen-azure_vm'
|
8
|
+
spec.version = Kitchen::Driver::AZURE_VM_VERSION
|
9
|
+
spec.authors = ['Masashi Terui']
|
10
|
+
spec.email = ['marcy9114@gmail.com']
|
11
|
+
spec.description = %q{A Test Kitchen Driver for Azure Virtual Machine}
|
12
|
+
spec.summary = spec.description
|
13
|
+
spec.homepage = 'https://github.com/marcy-terui/kitchen-azure_vm'
|
14
|
+
spec.license = 'Apache 2.0'
|
15
|
+
|
16
|
+
spec.files = `git ls-files`.split($/)
|
17
|
+
spec.executables = []
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ['lib']
|
20
|
+
|
21
|
+
spec.add_dependency 'test-kitchen', '>= 1.3'
|
22
|
+
spec.add_dependency 'azure'
|
23
|
+
|
24
|
+
spec.add_development_dependency 'bundler', '~> 1.3'
|
25
|
+
spec.add_development_dependency 'rake'
|
26
|
+
|
27
|
+
spec.add_development_dependency 'cane'
|
28
|
+
spec.add_development_dependency 'tailor'
|
29
|
+
spec.add_development_dependency 'countloc'
|
30
|
+
spec.add_development_dependency "coveralls"
|
31
|
+
spec.add_development_dependency "rspec"
|
32
|
+
end
|
@@ -0,0 +1,155 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
#
|
3
|
+
# Author:: Masashi Terui (<marcy9114@gmail.com>)
|
4
|
+
#
|
5
|
+
# Copyright (C) 2015, Masashi Terui
|
6
|
+
#
|
7
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
8
|
+
# you may not use this file except in compliance with the License.
|
9
|
+
# You may obtain a copy of the License at
|
10
|
+
#
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
12
|
+
#
|
13
|
+
# Unless required by applicable law or agreed to in writing, software
|
14
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
15
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
16
|
+
# See the License for the specific language governing permissions and
|
17
|
+
# limitations under the License.
|
18
|
+
|
19
|
+
require 'kitchen'
|
20
|
+
require 'azure'
|
21
|
+
require 'securerandom'
|
22
|
+
require 'kitchen/driver/azure_vm_image'
|
23
|
+
|
24
|
+
module Kitchen
|
25
|
+
|
26
|
+
module Driver
|
27
|
+
|
28
|
+
# Azure Virtual Machine driver for Kitchen.
|
29
|
+
#
|
30
|
+
# @author Masashi Terui <marcy9114@gmail.com>
|
31
|
+
class AzureVm < Kitchen::Driver::SSHBase
|
32
|
+
|
33
|
+
default_config :management_endpoint, 'https://management.core.windows.net'
|
34
|
+
default_config :vm_user, 'azureuser'
|
35
|
+
default_config :location, 'West US'
|
36
|
+
default_config :ssh_port, 22
|
37
|
+
default_config :destroy_storage_account, true
|
38
|
+
default_config :vm_size, 'Small'
|
39
|
+
|
40
|
+
default_config :vm_image do |driver|
|
41
|
+
driver.default_vm_image
|
42
|
+
end
|
43
|
+
|
44
|
+
def default_vm_image
|
45
|
+
Kitchen::Driver::AzureVmImage.get(instance.platform.name)
|
46
|
+
end
|
47
|
+
|
48
|
+
required_config :management_certificate
|
49
|
+
required_config :subscription_id
|
50
|
+
required_config :private_key_file
|
51
|
+
required_config :certificate_file
|
52
|
+
|
53
|
+
def configure
|
54
|
+
Azure.config.management_certificate = config[:management_certificate]
|
55
|
+
Azure.config.subscription_id = config[:subscription_id]
|
56
|
+
Azure.config.management_endpoint = config[:management_endpoint]
|
57
|
+
end
|
58
|
+
|
59
|
+
def vm_service
|
60
|
+
configure
|
61
|
+
Azure::VirtualMachineManagementService.new
|
62
|
+
end
|
63
|
+
|
64
|
+
def storage_account_service
|
65
|
+
configure
|
66
|
+
Azure::StorageManagementService.new
|
67
|
+
end
|
68
|
+
|
69
|
+
def params(state)
|
70
|
+
{
|
71
|
+
:vm_name => state[:vm_name],
|
72
|
+
:vm_user => config[:vm_user],
|
73
|
+
:image => config[:vm_image],
|
74
|
+
:password => config[:password],
|
75
|
+
:location => config[:location],
|
76
|
+
}
|
77
|
+
end
|
78
|
+
|
79
|
+
def options(state)
|
80
|
+
{
|
81
|
+
:storage_account_name => state[:storage_account_name],
|
82
|
+
:winrm_transport => config[:winrm_transport],
|
83
|
+
:cloud_service_name => config[:cloud_service_name],
|
84
|
+
:deployment_name => config[:deployment_name],
|
85
|
+
:tcp_endpoints => config[:tcp_endpoints],
|
86
|
+
:private_key_file => config[:private_key_file],
|
87
|
+
:certificate_file => config[:certificate_file],
|
88
|
+
:ssh_port => config[:ssh_port],
|
89
|
+
:vm_size => config[:vm_size],
|
90
|
+
:affinity_group_name => config[:affinity_group_name],
|
91
|
+
:virtual_network_name => config[:virtual_network_name],
|
92
|
+
:subnet_name => config[:subnet_name],
|
93
|
+
:availability_set_name => config[:availability_set_name],
|
94
|
+
}
|
95
|
+
end
|
96
|
+
|
97
|
+
def create(state)
|
98
|
+
return if state[:vm_name]
|
99
|
+
|
100
|
+
state[:vm_name] = gen_vm_name
|
101
|
+
state[:storage_account_name] = "#{state[:vm_name]}storage"
|
102
|
+
info("Creating VM <#{state[:vm_name]}>...")
|
103
|
+
vm = vm_service.create_virtual_machine(params(state), options(state))
|
104
|
+
info("VM <#{state[:vm_name]}> created!")
|
105
|
+
state[:cloud_service_name] = vm.cloud_service_name
|
106
|
+
state[:hostname] = vm.ipaddress
|
107
|
+
wait_for_sshd(state[:hostname], config[:vm_user], {
|
108
|
+
:ssh_timeout => config[:ssh_timeout],
|
109
|
+
:ssh_retries => config[:ssh_retries],
|
110
|
+
:port => config[:ssh_port],
|
111
|
+
})
|
112
|
+
info("VM <#{state[:vm_name]}> ready!")
|
113
|
+
rescue Exception => e
|
114
|
+
raise ActionFailed, e.message
|
115
|
+
end
|
116
|
+
|
117
|
+
def destroy(state)
|
118
|
+
info("Deleting VM <#{state[:vm_name]}>...")
|
119
|
+
vm = vm_service.delete_virtual_machine(state[:vm_name],state[:cloud_service_name])
|
120
|
+
info("VM <#{state[:vm_name]}> deleted!")
|
121
|
+
if config[:destroy_storage_account]
|
122
|
+
delete_storage_account(state)
|
123
|
+
info("Storage Account <#{state[:storage_account_name]}> deleted!")
|
124
|
+
end
|
125
|
+
rescue Exception => e
|
126
|
+
raise ActionFailed, e.message
|
127
|
+
end
|
128
|
+
|
129
|
+
def gen_vm_name
|
130
|
+
SecureRandom.hex(7)
|
131
|
+
end
|
132
|
+
|
133
|
+
def delete_storage_account(state)
|
134
|
+
storage_account_service.delete_storage_account(state[:storage_account_name])
|
135
|
+
end
|
136
|
+
|
137
|
+
def build_ssh_args(state)
|
138
|
+
combined = config.to_hash.merge(state)
|
139
|
+
|
140
|
+
opts = Hash.new
|
141
|
+
opts[:user_known_hosts_file] = "/dev/null"
|
142
|
+
opts[:paranoid] = false
|
143
|
+
opts[:keys_only] = true if combined[:ssh_key]
|
144
|
+
opts[:password] = combined[:password] if combined[:password]
|
145
|
+
opts[:forward_agent] = combined[:forward_agent] if combined.key? :forward_agent
|
146
|
+
opts[:port] = combined[:port] if combined[:port]
|
147
|
+
opts[:keys] = Array(combined[:private_key_file]) if combined[:private_key_file]
|
148
|
+
opts[:logger] = logger
|
149
|
+
|
150
|
+
[combined[:hostname], combined[:vm_user], opts]
|
151
|
+
end
|
152
|
+
|
153
|
+
end
|
154
|
+
end
|
155
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
#
|
3
|
+
# Author:: Masashi Terui (<marcy9114@gmail.com>)
|
4
|
+
#
|
5
|
+
# Copyright (C) 2015, Masashi Terui
|
6
|
+
#
|
7
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
8
|
+
# you may not use this file except in compliance with the License.
|
9
|
+
# You may obtain a copy of the License at
|
10
|
+
#
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
12
|
+
#
|
13
|
+
# Unless required by applicable law or agreed to in writing, software
|
14
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
15
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
16
|
+
# See the License for the specific language governing permissions and
|
17
|
+
# limitations under the License.
|
18
|
+
|
19
|
+
module Kitchen
|
20
|
+
|
21
|
+
module Driver
|
22
|
+
|
23
|
+
# Azure Virtual Machine Image Helper.
|
24
|
+
#
|
25
|
+
# @author Masashi Terui <marcy9114@gmail.com>
|
26
|
+
class AzureVmImage
|
27
|
+
class << self
|
28
|
+
@@list = {
|
29
|
+
'centos-6.5' => '5112500ae3b842c8b9c604889f8753c3__OpenLogic-CentOS-65-20150128',
|
30
|
+
'centos-6.6' => '5112500ae3b842c8b9c604889f8753c3__OpenLogic-CentOS-66-20150128',
|
31
|
+
'centos-7.0' => '5112500ae3b842c8b9c604889f8753c3__OpenLogic-CentOS-70-20150128',
|
32
|
+
'ubuntu-12.04' => 'b39f27a8b8c64d52b05eac6a62ebad85__Ubuntu-12_04_5-LTS-amd64-server-20150204-en-us-30GB',
|
33
|
+
'ubuntu-12.10' => 'b39f27a8b8c64d52b05eac6a62ebad85__Ubuntu-12_04_2-LTS-amd64-server-20121218-en-us-30GB',
|
34
|
+
'ubuntu-14.04' => 'b39f27a8b8c64d52b05eac6a62ebad85__Ubuntu-14_04_1-LTS-amd64-server-20150123-en-us-30GB',
|
35
|
+
'ubuntu-14.10' => 'b39f27a8b8c64d52b05eac6a62ebad85__Ubuntu-14_10-amd64-server-20150202-en-us-30GB',
|
36
|
+
}
|
37
|
+
|
38
|
+
def get(platform)
|
39
|
+
unless @@list.key?(platform)
|
40
|
+
msg = "Image not found for #{platform}.\n[#{@@list.join(',')}] are available now."
|
41
|
+
raise ActionFailed, msg
|
42
|
+
end
|
43
|
+
@@list[platform]
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
#
|
3
|
+
# Author:: Masashi Terui (<marcy9114@gmail.com>)
|
4
|
+
#
|
5
|
+
# Copyright (C) 2015, Masashi Terui
|
6
|
+
#
|
7
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
8
|
+
# you may not use this file except in compliance with the License.
|
9
|
+
# You may obtain a copy of the License at
|
10
|
+
#
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
12
|
+
#
|
13
|
+
# Unless required by applicable law or agreed to in writing, software
|
14
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
15
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
16
|
+
# See the License for the specific language governing permissions and
|
17
|
+
# limitations under the License.
|
18
|
+
|
19
|
+
module Kitchen
|
20
|
+
|
21
|
+
module Driver
|
22
|
+
|
23
|
+
# Version string for AzureVm Kitchen driver
|
24
|
+
AZURE_VM_VERSION = "0.1.0.beta"
|
25
|
+
end
|
26
|
+
end
|
metadata
ADDED
@@ -0,0 +1,184 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: kitchen-azure_vm
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0.beta
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Masashi Terui
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-03-11 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: test-kitchen
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.3'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.3'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: azure
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: bundler
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '1.3'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.3'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rake
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: cane
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: tailor
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: countloc
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: coveralls
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: rspec
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
description: A Test Kitchen Driver for Azure Virtual Machine
|
140
|
+
email:
|
141
|
+
- marcy9114@gmail.com
|
142
|
+
executables: []
|
143
|
+
extensions: []
|
144
|
+
extra_rdoc_files: []
|
145
|
+
files:
|
146
|
+
- ".cane"
|
147
|
+
- ".gitignore"
|
148
|
+
- ".kitchen.yml"
|
149
|
+
- ".tailor"
|
150
|
+
- ".travis.yml"
|
151
|
+
- CHANGELOG.md
|
152
|
+
- Gemfile
|
153
|
+
- LICENSE
|
154
|
+
- README.md
|
155
|
+
- Rakefile
|
156
|
+
- kitchen-azure_vm.gemspec
|
157
|
+
- lib/kitchen/driver/azure_vm.rb
|
158
|
+
- lib/kitchen/driver/azure_vm_image.rb
|
159
|
+
- lib/kitchen/driver/azure_vm_version.rb
|
160
|
+
homepage: https://github.com/marcy-terui/kitchen-azure_vm
|
161
|
+
licenses:
|
162
|
+
- Apache 2.0
|
163
|
+
metadata: {}
|
164
|
+
post_install_message:
|
165
|
+
rdoc_options: []
|
166
|
+
require_paths:
|
167
|
+
- lib
|
168
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
169
|
+
requirements:
|
170
|
+
- - ">="
|
171
|
+
- !ruby/object:Gem::Version
|
172
|
+
version: '0'
|
173
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
174
|
+
requirements:
|
175
|
+
- - ">"
|
176
|
+
- !ruby/object:Gem::Version
|
177
|
+
version: 1.3.1
|
178
|
+
requirements: []
|
179
|
+
rubyforge_project:
|
180
|
+
rubygems_version: 2.2.2
|
181
|
+
signing_key:
|
182
|
+
specification_version: 4
|
183
|
+
summary: A Test Kitchen Driver for Azure Virtual Machine
|
184
|
+
test_files: []
|