vagrant-sakura 0.0.8 → 0.0.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +29 -8
- data/Gemfile +2 -1
- data/README.md +12 -5
- data/lib/vagrant-sakura/action/run_instance.rb +10 -2
- data/lib/vagrant-sakura/config.rb +24 -2
- data/lib/vagrant-sakura/driver/api.rb +3 -1
- data/lib/vagrant-sakura/version.rb +1 -1
- data/test/test_config.rb +104 -0
- data/vagrant-sakura.gemspec +3 -3
- metadata +9 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 945fc69723e0d563c7daeb0ae6a40271166dbcf6
|
4
|
+
data.tar.gz: c7ce8eaf073dc58e7408507907bc1c695a8005ae
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f75e242e6e681c00957bef08bfbc9d0843d07fd0dc99e8492f8c2adce5bd287a414634078afcd1e5555810ec682167933954929ee06585ea4df0b5b09e75032d
|
7
|
+
data.tar.gz: 870c6fb96b0cc5ae989ebbe6ae73c18c4fa50fb87de7d159341235edbcbe852274339f62f8d8ac0a359194d819f0d7bc82c6abe53742c00250bea7dac16e82a0
|
data/CHANGELOG.md
CHANGED
@@ -1,32 +1,53 @@
|
|
1
|
-
#
|
1
|
+
# CHANGELOG
|
2
|
+
|
3
|
+
## 0.0.9 (2018/07/13)
|
4
|
+
|
5
|
+
### General
|
6
|
+
|
7
|
+
- Git repo moved from tsahara/vagrant-sakura to sacloud/vagrant-sakura (#12)
|
8
|
+
|
9
|
+
### Core
|
10
|
+
|
11
|
+
- Update default settings (#9, #16)
|
12
|
+
- Add tags and description parameter (#11)
|
13
|
+
- Supports `SAKURACLOUD_*` environment variables (#18)
|
14
|
+
|
15
|
+
### Misc.
|
16
|
+
|
17
|
+
- Update docs (#8)
|
18
|
+
- Add detail error message (#10)
|
19
|
+
- Set User-Agent header (#13)
|
20
|
+
|
21
|
+
## 0.0.8 (2016/05/12)
|
22
|
+
|
2
23
|
- Update default disk archive.
|
3
24
|
|
4
|
-
|
25
|
+
## 0.0.7 (2015/02/19)
|
5
26
|
|
6
27
|
- Update CA certificate for secure.sakura.ad.jp.
|
7
28
|
|
8
|
-
|
29
|
+
## 0.0.6 (2014/07/14)
|
9
30
|
|
10
31
|
- Add `public_key_path` and `use_insecure_key` configuration parameters.
|
11
32
|
|
12
|
-
|
33
|
+
## 0.0.5 (2014/04/19)
|
13
34
|
|
14
35
|
- Fix Vagrant 1.5 compatibility.
|
15
36
|
- Update default disk archive.
|
16
37
|
|
17
|
-
|
38
|
+
## 0.0.4 (2013/11/06)
|
18
39
|
|
19
40
|
- Support `disk_id` configuration to reuse Disk resource.
|
20
41
|
|
21
|
-
|
42
|
+
## 0.0.3 (2013/10/22)
|
22
43
|
|
23
44
|
- Support `provision` command.
|
24
45
|
|
25
|
-
|
46
|
+
## 0.0.2 (2013/10/08)
|
26
47
|
|
27
48
|
- Add `vagrant sakura-list-id` command.
|
28
49
|
- Support `zone_id` configuration.
|
29
50
|
|
30
|
-
|
51
|
+
## 0.0.1 (2013/10/07)
|
31
52
|
|
32
53
|
- Initial release.
|
data/Gemfile
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
source 'https://rubygems.org'
|
2
2
|
|
3
3
|
group :development do
|
4
|
-
gem "vagrant", :git => "git://github.com/mitchellh/vagrant.git", :tag => '
|
4
|
+
gem "vagrant", :git => "git://github.com/mitchellh/vagrant.git", :tag => 'v2.1.2'
|
5
|
+
gem "test-unit", "~> 3.2.3"
|
5
6
|
end
|
6
7
|
|
7
8
|
group :plugins do
|
data/README.md
CHANGED
@@ -2,10 +2,13 @@
|
|
2
2
|
|
3
3
|
[![Gem Version](https://badge.fury.io/rb/vagrant-sakura.png)](http://badge.fury.io/rb/vagrant-sakura)
|
4
4
|
|
5
|
+
|
5
6
|
この gem は [Vagrant](http://www.vagrantup.com) に
|
6
7
|
[さくらのクラウド](http://cloud.sakura.ad.jp)上のサーバを操作する
|
7
8
|
機能を追加する provider です。
|
8
9
|
|
10
|
+
> __*このリポジトリは[tsahara/vagrant-sakura](https://github.com/tsahara/vagrant-sakura)から移行されました。*__
|
11
|
+
|
9
12
|
## 機能 / 制限
|
10
13
|
|
11
14
|
* さくらのクラウド上にサーバを作成できます。
|
@@ -39,7 +42,7 @@ $ vagrant up --provider=sakura
|
|
39
42
|
まずはじめに、ダミーの box を好きな名前で追加してください:
|
40
43
|
|
41
44
|
```sh
|
42
|
-
$ vagrant box add dummy https://github.com/
|
45
|
+
$ vagrant box add dummy https://github.com/sacloud/vagrant-sakura/raw/master/dummy.box
|
43
46
|
...
|
44
47
|
```
|
45
48
|
|
@@ -61,13 +64,15 @@ Vagrant.configure("2") do |config|
|
|
61
64
|
end
|
62
65
|
```
|
63
66
|
|
64
|
-
そして ``vagrant up --provider=
|
67
|
+
そして ``vagrant up --provider=sakura`` を実行してください。
|
65
68
|
|
66
69
|
サーバのディスクソースを ``sakura.disk_source_archive`` で指定しなかった
|
67
|
-
場合のデフォルトは ``
|
68
|
-
Ubuntu Server
|
70
|
+
場合のデフォルトは ``113000423772`` で
|
71
|
+
Ubuntu Server 16.04.4 LTS 64bit(石狩第2ゾーン)
|
69
72
|
です。
|
70
73
|
|
74
|
+
> ※注: アーカイブのIDはゾーンごとに異なります
|
75
|
+
|
71
76
|
このディスクソースのログインアカウントは ``root`` ではないため、
|
72
77
|
``config.ssh.username`` で指定してやる必要があります。
|
73
78
|
|
@@ -123,8 +128,10 @@ $ vagrant sakura-list-id
|
|
123
128
|
- ``disk_source_archive`` - サーバで利用するディスクのベースとするアーカイブ
|
124
129
|
- ``server_name`` - サーバ名
|
125
130
|
- ``server_plan`` - 作成するサーバのプラン ID
|
131
|
+
- ``tags`` - 作成するサーバ/ディスクのタグ(リスト)
|
132
|
+
- ``description`` - 作成するサーバ/ディスクの説明
|
126
133
|
- ``sshkey_id`` - サーバへのログインに利用する SSH 公開鍵のリソース ID
|
127
|
-
- ``zone_id`` - ゾーン ID (石狩第1=`is1a`, 石狩第2=`is1b`、東京第1=`tk1a`)
|
134
|
+
- ``zone_id`` - ゾーン ID (石狩第1=`is1a`, 石狩第2=`is1b`、東京第1=`tk1a`、デフォルトは`is1b`)
|
128
135
|
|
129
136
|
## ネットワーク
|
130
137
|
``vagrant-sakura`` は ``config.vm.network`` を利用したネットワークの構築を
|
@@ -24,12 +24,16 @@ module VagrantPlugins
|
|
24
24
|
sshkey_id = env[:machine].provider_config.sshkey_id
|
25
25
|
public_key_path = env[:machine].provider_config.public_key_path
|
26
26
|
use_insecure_key = env[:machine].provider_config.use_insecure_key
|
27
|
+
tags = env[:machine].provider_config.tags
|
28
|
+
description = env[:machine].provider_config.description
|
27
29
|
|
28
30
|
env[:ui].info(I18n.t("vagrant_sakura.creating_instance"))
|
29
31
|
env[:ui].info(" -- Server Name: #{server_name}")
|
30
32
|
env[:ui].info(" -- Server Plan: #{server_plan}")
|
31
33
|
env[:ui].info(" -- Disk Plan: #{disk_plan}")
|
32
34
|
env[:ui].info(" -- Disk Source Archive: #{disk_source_archive}")
|
35
|
+
env[:ui].info(" -- Tags: #{tags}") unless tags.empty?
|
36
|
+
env[:ui].info(" -- Description: \"#{description}\"") unless description.empty?
|
33
37
|
|
34
38
|
api = env[:sakura_api]
|
35
39
|
|
@@ -44,7 +48,9 @@ module VagrantPlugins
|
|
44
48
|
"Connection" => "virtio",
|
45
49
|
"SourceArchive" => {
|
46
50
|
"ID" => disk_source_archive
|
47
|
-
}
|
51
|
+
},
|
52
|
+
"Tags" => tags,
|
53
|
+
"Description" => description
|
48
54
|
}
|
49
55
|
}
|
50
56
|
response = api.post("/disk", data)
|
@@ -76,7 +82,9 @@ module VagrantPlugins
|
|
76
82
|
"ServerPlan" => { "ID" => server_plan },
|
77
83
|
"ConnectedSwitches" => [
|
78
84
|
{ "Scope" => "shared", "BandWidthMbps" => 100 }
|
79
|
-
]
|
85
|
+
],
|
86
|
+
"Tags" => tags,
|
87
|
+
"Description" => description
|
80
88
|
}
|
81
89
|
}
|
82
90
|
response = api.post("/server", data)
|
@@ -56,6 +56,16 @@ module VagrantPlugins
|
|
56
56
|
# The ID of the zone.
|
57
57
|
attr_accessor :zone_id
|
58
58
|
|
59
|
+
# The tags of the server and disk.
|
60
|
+
#
|
61
|
+
# @return [Array<String>]
|
62
|
+
attr_accessor :tags
|
63
|
+
|
64
|
+
# The description of the server and disk.
|
65
|
+
#
|
66
|
+
# @return [String]
|
67
|
+
attr_accessor :description
|
68
|
+
|
59
69
|
def initialize
|
60
70
|
@access_token = UNSET_VALUE
|
61
71
|
@access_token_secret = UNSET_VALUE
|
@@ -68,15 +78,19 @@ module VagrantPlugins
|
|
68
78
|
@sshkey_id = UNSET_VALUE
|
69
79
|
@use_insecure_key = UNSET_VALUE
|
70
80
|
@zone_id = UNSET_VALUE
|
81
|
+
@tags = UNSET_VALUE
|
82
|
+
@description = UNSET_VALUE
|
71
83
|
end
|
72
84
|
|
73
85
|
def finalize!
|
74
86
|
if @access_token == UNSET_VALUE
|
75
87
|
@access_token = ENV['SAKURA_ACCESS_TOKEN']
|
88
|
+
@access_token = ENV['SAKURACLOUD_ACCESS_TOKEN'] if @access_token.nil?
|
76
89
|
end
|
77
90
|
|
78
91
|
if @access_token_secret == UNSET_VALUE
|
79
92
|
@access_token_secret = ENV['SAKURA_ACCESS_TOKEN_SECRET']
|
93
|
+
@access_token_secret = ENV['SAKURACLOUD_ACCESS_TOKEN_SECRET'] if @access_token_secret.nil?
|
80
94
|
end
|
81
95
|
|
82
96
|
if @disk_id == UNSET_VALUE
|
@@ -88,7 +102,7 @@ module VagrantPlugins
|
|
88
102
|
end
|
89
103
|
|
90
104
|
if @disk_source_archive == UNSET_VALUE
|
91
|
-
@disk_source_archive =
|
105
|
+
@disk_source_archive = 113000423772 # Ubuntu Server 16.04.4 LTS 64bit on is1b
|
92
106
|
end
|
93
107
|
|
94
108
|
@public_key_path = nil if @public_key_path == UNSET_VALUE
|
@@ -106,8 +120,16 @@ module VagrantPlugins
|
|
106
120
|
@use_insecure_key = false if @use_insecure_key == UNSET_VALUE
|
107
121
|
|
108
122
|
if @zone_id == UNSET_VALUE
|
109
|
-
@zone_id =
|
123
|
+
@zone_id = ENV['SAKURACLOUD_ZONE']
|
124
|
+
@zone_id = "is1b" if @zone_id.nil?
|
110
125
|
end
|
126
|
+
|
127
|
+
@tags = [] if @tags == UNSET_VALUE
|
128
|
+
@tags = [@tags] unless @tags.is_a?(Array)
|
129
|
+
@tags.map!(&:to_s)
|
130
|
+
|
131
|
+
@description = "" if @description == UNSET_VALUE
|
132
|
+
@description = @description.to_s
|
111
133
|
end
|
112
134
|
|
113
135
|
def validate(machine)
|
@@ -49,11 +49,13 @@ module VagrantPlugins
|
|
49
49
|
|
50
50
|
def do_request(request)
|
51
51
|
request.basic_auth @access_token, @access_token_secret
|
52
|
+
request['User-Agent'] = "vagrant-sakura/v#{VagrantPlugins::Sakura::VERSION}"
|
52
53
|
response = @https.request(request)
|
53
54
|
@logger.debug("#{request.method} #{request.path} #{request.body} "+
|
54
55
|
"=> #{response.code} : #{response.body}")
|
55
56
|
|
56
|
-
|
57
|
+
emsg_detail = JSON.pretty_generate JSON.parse(response.body)
|
58
|
+
emsg = "#{response.code} (#{request.method} #{request.path})\n#{emsg_detail}"
|
57
59
|
case response.code
|
58
60
|
when /2../
|
59
61
|
# Success
|
data/test/test_config.rb
ADDED
@@ -0,0 +1,104 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require "vagrant-sakura/config"
|
3
|
+
|
4
|
+
module VagrantPlugins
|
5
|
+
module Sakura
|
6
|
+
class TestConfig < Test::Unit::TestCase
|
7
|
+
|
8
|
+
def setup
|
9
|
+
%w("SAKURACLOUD_ACCESS_TOKEN" "SAKURACLOUD_ACCESS_TOKEN_SECRET" "SAKURACLOUD_ZONE").map do |k|
|
10
|
+
ENV.delete(k)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_apikeys
|
15
|
+
cases = {
|
16
|
+
"config only" => {
|
17
|
+
"config" => {
|
18
|
+
"access_token" => "foo",
|
19
|
+
"access_token_secret" => "bar"
|
20
|
+
},
|
21
|
+
"env" => {},
|
22
|
+
"expects" => {
|
23
|
+
"token" => "foo",
|
24
|
+
"secret" => "bar",
|
25
|
+
"zone" => "is1b"
|
26
|
+
}
|
27
|
+
},
|
28
|
+
"env(SAKURA_*) only" => {
|
29
|
+
"config" => {},
|
30
|
+
"env" => {
|
31
|
+
"SAKURA_ACCESS_TOKEN" => "foo",
|
32
|
+
"SAKURA_ACCESS_TOKEN_SECRET" => "bar",
|
33
|
+
},
|
34
|
+
"expects" => {
|
35
|
+
"token" => "foo",
|
36
|
+
"secret" => "bar",
|
37
|
+
"zone" => "is1b"
|
38
|
+
}
|
39
|
+
},
|
40
|
+
"env(SAKURACLOUD_*) only" => {
|
41
|
+
"config" => {},
|
42
|
+
"env" => {
|
43
|
+
"SAKURACLOUD_ACCESS_TOKEN" => "foo",
|
44
|
+
"SAKURACLOUD_ACCESS_TOKEN_SECRET" => "bar",
|
45
|
+
"SAKURACLOUD_ZONE" => "tk1a",
|
46
|
+
},
|
47
|
+
"expects" => {
|
48
|
+
"token" => "foo",
|
49
|
+
"secret" => "bar",
|
50
|
+
"zone" => "tk1a"
|
51
|
+
}
|
52
|
+
},
|
53
|
+
"env order" => {
|
54
|
+
"config" => {},
|
55
|
+
"env" => {
|
56
|
+
"SAKURA_ACCESS_TOKEN" => "foo",
|
57
|
+
"SAKURA_ACCESS_TOKEN_SECRET" => "bar",
|
58
|
+
"SAKURACLOUD_ACCESS_TOKEN" => "not_use",
|
59
|
+
"SAKURACLOUD_ACCESS_TOKEN_SECRET" => "not_use",
|
60
|
+
"SAKURACLOUD_ZONE" => "tk1a",
|
61
|
+
},
|
62
|
+
"expects" => {
|
63
|
+
"token" => "foo",
|
64
|
+
"secret" => "bar",
|
65
|
+
"zone" => "tk1a"
|
66
|
+
}
|
67
|
+
},
|
68
|
+
"conf and env order" => {
|
69
|
+
"config" => {
|
70
|
+
"access_token" => "foo",
|
71
|
+
"access_token_secret" => "bar",
|
72
|
+
"zone_id" => "tk1a"
|
73
|
+
},
|
74
|
+
"env" => {
|
75
|
+
"SAKURA_ACCESS_TOKEN" => "not_use",
|
76
|
+
"SAKURA_ACCESS_TOKEN_SECRET" => "not_use",
|
77
|
+
"SAKURACLOUD_ACCESS_TOKEN" => "not_use",
|
78
|
+
"SAKURACLOUD_ACCESS_TOKEN_SECRET" => "not_use",
|
79
|
+
"SAKURACLOUD_ZONE" => "not_use",
|
80
|
+
},
|
81
|
+
"expects" => {
|
82
|
+
"token" => "foo",
|
83
|
+
"secret" => "bar",
|
84
|
+
"zone" => "tk1a"
|
85
|
+
}
|
86
|
+
}
|
87
|
+
}
|
88
|
+
|
89
|
+
cases.map {|name, c|
|
90
|
+
puts "Case: #{name}"
|
91
|
+
conf = Config.new
|
92
|
+
conf.set_options c["config"]
|
93
|
+
|
94
|
+
ENV.update c["env"]
|
95
|
+
|
96
|
+
conf.finalize!
|
97
|
+
assert_equal c["expects"]["token"], conf.access_token
|
98
|
+
assert_equal c["expects"]["secret"], conf.access_token_secret
|
99
|
+
assert_equal c["expects"]["zone"], conf.zone_id
|
100
|
+
}
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
data/vagrant-sakura.gemspec
CHANGED
@@ -6,11 +6,11 @@ require 'vagrant-sakura/version'
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "vagrant-sakura"
|
8
8
|
spec.version = VagrantPlugins::Sakura::VERSION
|
9
|
-
spec.authors = ["Tomoyuki Sahara"]
|
10
|
-
spec.email = ["
|
9
|
+
spec.authors = ["Tomoyuki Sahara", "Kazumichi Yamamoto"]
|
10
|
+
spec.email = ["yamamoto.febc@gmail.com"]
|
11
11
|
spec.description = %q{Enables Vagrant to manage machines in Sakura Cloud.}
|
12
12
|
spec.summary = %q{Enables Vagrant to manage machines in Sakura Cloud.}
|
13
|
-
spec.homepage = "https://github.com/
|
13
|
+
spec.homepage = "https://github.com/sacloud/vagrant-sakura"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
16
16
|
spec.files = `git ls-files`.split($/)
|
metadata
CHANGED
@@ -1,18 +1,19 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant-sakura
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tomoyuki Sahara
|
8
|
+
- Kazumichi Yamamoto
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date:
|
12
|
+
date: 2018-07-13 00:00:00.000000000 Z
|
12
13
|
dependencies: []
|
13
14
|
description: Enables Vagrant to manage machines in Sakura Cloud.
|
14
15
|
email:
|
15
|
-
-
|
16
|
+
- yamamoto.febc@gmail.com
|
16
17
|
executables: []
|
17
18
|
extensions: []
|
18
19
|
extra_rdoc_files: []
|
@@ -53,8 +54,9 @@ files:
|
|
53
54
|
- lib/vagrant-sakura/provider.rb
|
54
55
|
- lib/vagrant-sakura/version.rb
|
55
56
|
- locales/en.yml
|
57
|
+
- test/test_config.rb
|
56
58
|
- vagrant-sakura.gemspec
|
57
|
-
homepage: https://github.com/
|
59
|
+
homepage: https://github.com/sacloud/vagrant-sakura
|
58
60
|
licenses:
|
59
61
|
- MIT
|
60
62
|
metadata: {}
|
@@ -74,8 +76,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
74
76
|
version: '0'
|
75
77
|
requirements: []
|
76
78
|
rubyforge_project:
|
77
|
-
rubygems_version: 2.
|
79
|
+
rubygems_version: 2.5.2
|
78
80
|
signing_key:
|
79
81
|
specification_version: 4
|
80
82
|
summary: Enables Vagrant to manage machines in Sakura Cloud.
|
81
|
-
test_files:
|
83
|
+
test_files:
|
84
|
+
- test/test_config.rb
|