vagrant-sakura 0.2.1 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/README.md +3 -1
- data/lib/vagrant-sakura/action/run_instance.rb +78 -56
- data/lib/vagrant-sakura/config.rb +23 -2
- data/lib/vagrant-sakura/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d22e25b1c8c50029c3ef7f7a0bbbea128e7a00c2c757cc1ae409130b4ffaf31f
|
4
|
+
data.tar.gz: eb8dc65a8d9a2db5a84f301d40992f8a3e2304b91b5728eb2a8ace1365e9d62d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f047c7707680c375c5e475746eba2378e1f6c19f93a89729556db79fdba26fd7077c9bf11c197e43815de1eba51fe630e30312761521af5259b4f8fc5f3d8283
|
7
|
+
data.tar.gz: 83d44513679b2afc8b004b7184366e11af83c36e0cb5e3237d242abb6c1328ea3094e660da8f6af65ed56fc98ec17523776c0efbddb8acd39ee297f2d54e5b59
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -195,7 +195,9 @@ $ vagrant sakura-list-id
|
|
195
195
|
|
196
196
|
- ``disk_source_archive`` - サーバで利用するディスクのベースとするアーカイブのID (※`os_type`とは同時に指定できません)
|
197
197
|
- ``server_name`` - サーバ名
|
198
|
-
- ``server_plan`` - 作成するサーバのプラン ID
|
198
|
+
- ``server_plan`` - 作成するサーバのプラン ID(**非推奨** 代わりに`server_core`と`server_memory`を利用してください)
|
199
|
+
- ``server_core`` - 作成するサーバのコア数(デフォルト: `1`)
|
200
|
+
- ``server_memory`` - 作成するサーバのメモリサイズ(GB単位、デフォルト: `1`)
|
199
201
|
- ``packet_filter`` - 作成するサーバに適用するパケットフィルタ ID
|
200
202
|
- ``startup_scripts`` - 作成するサーバに適用するスタートアップスクリプト ID(リスト)
|
201
203
|
- ``enable_pw_auth`` - パスワード認証の有効化(デフォルト: `false`)
|
@@ -19,8 +19,9 @@ module VagrantPlugins
|
|
19
19
|
server_name = env[:machine].provider_config.server_name
|
20
20
|
server_name ||= env[:machine].name
|
21
21
|
server_plan = env[:machine].provider_config.server_plan
|
22
|
+
server_core = env[:machine].provider_config.server_core
|
23
|
+
server_memory = env[:machine].provider_config.server_memory
|
22
24
|
disk_plan = env[:machine].provider_config.disk_plan
|
23
|
-
disk_source_mode = env[:machine].provider_config.disk_source_mode
|
24
25
|
os_type = env[:machine].provider_config.os_type
|
25
26
|
disk_source_archive = env[:machine].provider_config.disk_source_archive
|
26
27
|
sshkey_id = env[:machine].provider_config.sshkey_id
|
@@ -34,7 +35,12 @@ module VagrantPlugins
|
|
34
35
|
|
35
36
|
env[:ui].info(I18n.t("vagrant_sakura.creating_instance"))
|
36
37
|
env[:ui].info(" -- Server Name: #{server_name}")
|
37
|
-
|
38
|
+
if server_plan
|
39
|
+
env[:ui].info(" -- Server Plan: #{server_plan}")
|
40
|
+
else
|
41
|
+
env[:ui].info(" -- Server Core: #{server_core}")
|
42
|
+
env[:ui].info(" -- Server Memory: #{server_memory}")
|
43
|
+
end
|
38
44
|
env[:ui].info(" -- Disk Plan: #{disk_plan}")
|
39
45
|
env[:ui].info(" -- Disk Source OS Type: #{os_type}") if os_type
|
40
46
|
env[:ui].info(" -- Disk Source Archive: #{disk_source_archive}")
|
@@ -45,8 +51,55 @@ module VagrantPlugins
|
|
45
51
|
|
46
52
|
api = env[:sakura_api]
|
47
53
|
|
54
|
+
data = {
|
55
|
+
"Server" => {
|
56
|
+
"Name" => server_name,
|
57
|
+
"ServerPlan" => { "ID" => server_plan },
|
58
|
+
"ConnectedSwitches" => [
|
59
|
+
{ "Scope" => "shared", "BandWidthMbps" => 100 }
|
60
|
+
],
|
61
|
+
"Tags" => tags,
|
62
|
+
"Description" => description
|
63
|
+
}
|
64
|
+
}
|
65
|
+
if server_plan
|
66
|
+
data["Server"]["ServerPlan"] = { "ID" => server_plan }
|
67
|
+
else
|
68
|
+
data["Server"]["ServerPlan"] = {
|
69
|
+
"CPU" => server_core,
|
70
|
+
"MemoryMB" => server_memory * 1024
|
71
|
+
}
|
72
|
+
end
|
73
|
+
unless env[:machine].provider_config.disk_id
|
74
|
+
data["Server"]["WaitDiskMigration"] = true
|
75
|
+
end
|
76
|
+
|
77
|
+
response = api.post("/server", data)
|
78
|
+
unless response["Server"]["ID"]
|
79
|
+
raise 'no Server ID returned'
|
80
|
+
end
|
81
|
+
env[:machine].id = serverid = response["Server"]["ID"]
|
82
|
+
interface_id = response["Server"]["Interfaces"][0]["ID"]
|
83
|
+
# Server Created
|
84
|
+
|
85
|
+
unless packet_filter.empty?
|
86
|
+
response = api.put("/interface/#{interface_id}/to/packetfilter/#{packet_filter}")
|
87
|
+
# Packet Filter connected to Server
|
88
|
+
end
|
89
|
+
|
48
90
|
if env[:machine].provider_config.disk_id
|
49
91
|
diskid = env[:machine].provider_config.disk_id
|
92
|
+
|
93
|
+
begin
|
94
|
+
response = api.put("/disk/#{diskid}/to/server/#{serverid}")
|
95
|
+
# Disk mounted to Server
|
96
|
+
rescue VagrantPlugins::Sakura::Driver::NotFoundError
|
97
|
+
terminate(env)
|
98
|
+
raise
|
99
|
+
end
|
100
|
+
|
101
|
+
# Power On
|
102
|
+
response = api.put("/server/#{serverid}/power")
|
50
103
|
else
|
51
104
|
data = {
|
52
105
|
"Disk" => {
|
@@ -56,10 +109,32 @@ module VagrantPlugins
|
|
56
109
|
"SourceArchive" => {
|
57
110
|
"ID" => disk_source_archive
|
58
111
|
},
|
112
|
+
"Server" => {
|
113
|
+
"ID" => serverid
|
114
|
+
},
|
59
115
|
"Tags" => tags,
|
60
116
|
"Description" => description
|
61
|
-
}
|
117
|
+
},
|
118
|
+
"BootAtAvailable" => true
|
62
119
|
}
|
120
|
+
|
121
|
+
config = {
|
122
|
+
"UserSubnet" => {},
|
123
|
+
"Notes" => startup_scripts,
|
124
|
+
"DisablePWAuth" => !enable_pw_auth
|
125
|
+
}
|
126
|
+
if sshkey_id
|
127
|
+
config["SSHKey"] = { "ID" => sshkey_id }
|
128
|
+
elsif public_key_path
|
129
|
+
config["SSHKey"] = { "PublicKey" => File.read(public_key_path) }
|
130
|
+
elsif use_insecure_key
|
131
|
+
pubkey = Vagrant.source_root.join("keys", "vagrant.pub").read.chomp
|
132
|
+
config["SSHKey"] = { "PublicKey" => pubkey }
|
133
|
+
else
|
134
|
+
raise 'failsafe'
|
135
|
+
end
|
136
|
+
data["Config"] = config
|
137
|
+
|
63
138
|
response = api.post("/disk", data)
|
64
139
|
unless response["Disk"]["ID"]
|
65
140
|
raise 'no Disk ID returned'
|
@@ -83,59 +158,6 @@ module VagrantPlugins
|
|
83
158
|
end
|
84
159
|
end
|
85
160
|
|
86
|
-
data = {
|
87
|
-
"Server" => {
|
88
|
-
"Name" => server_name,
|
89
|
-
"ServerPlan" => { "ID" => server_plan },
|
90
|
-
"ConnectedSwitches" => [
|
91
|
-
{ "Scope" => "shared", "BandWidthMbps" => 100 }
|
92
|
-
],
|
93
|
-
"Tags" => tags,
|
94
|
-
"Description" => description
|
95
|
-
}
|
96
|
-
}
|
97
|
-
response = api.post("/server", data)
|
98
|
-
unless response["Server"]["ID"]
|
99
|
-
raise 'no Server ID returned'
|
100
|
-
end
|
101
|
-
env[:machine].id = serverid = response["Server"]["ID"]
|
102
|
-
interface_id = response["Server"]["Interfaces"][0]["ID"]
|
103
|
-
# Server Created
|
104
|
-
|
105
|
-
unless packet_filter.empty?
|
106
|
-
response = api.put("/interface/#{interface_id}/to/packetfilter/#{packet_filter}")
|
107
|
-
# Packet Filter connected to Server
|
108
|
-
end
|
109
|
-
|
110
|
-
begin
|
111
|
-
response = api.put("/disk/#{diskid}/to/server/#{serverid}")
|
112
|
-
# Disk mounted to Server
|
113
|
-
rescue VagrantPlugins::Sakura::Driver::NotFoundError
|
114
|
-
terminate(env)
|
115
|
-
raise
|
116
|
-
end
|
117
|
-
|
118
|
-
data = {
|
119
|
-
"UserSubnet" => {},
|
120
|
-
"Notes" => startup_scripts,
|
121
|
-
"DisablePWAuth" => !enable_pw_auth
|
122
|
-
}
|
123
|
-
if sshkey_id
|
124
|
-
data["SSHKey"] = { "ID" => sshkey_id }
|
125
|
-
elsif public_key_path
|
126
|
-
data["SSHKey"] = { "PublicKey" => File.read(public_key_path) }
|
127
|
-
elsif use_insecure_key
|
128
|
-
pubkey = Vagrant.source_root.join("keys", "vagrant.pub").read.chomp
|
129
|
-
data["SSHKey"] = { "PublicKey" => pubkey }
|
130
|
-
else
|
131
|
-
raise 'failsafe'
|
132
|
-
end
|
133
|
-
|
134
|
-
response = api.put("/disk/#{diskid}/config", data)
|
135
|
-
# Config
|
136
|
-
|
137
|
-
response = api.put("/server/#{serverid}/power")
|
138
|
-
# Power On
|
139
161
|
|
140
162
|
if !env[:interrupted]
|
141
163
|
# Wait for SSH to be ready.
|
@@ -47,10 +47,23 @@ module VagrantPlugins
|
|
47
47
|
attr_accessor :server_name
|
48
48
|
|
49
49
|
# The Plan ID of the server.
|
50
|
-
#
|
50
|
+
#
|
51
|
+
# @deprecated Use {#server_core} and {#server_memory} instead.
|
51
52
|
# @return [Fixnum]
|
52
53
|
attr_accessor :server_plan
|
53
54
|
|
55
|
+
# The number of cores.
|
56
|
+
#
|
57
|
+
# @return [Fixnum]
|
58
|
+
attr_accessor :server_core
|
59
|
+
|
60
|
+
# The number of memories.
|
61
|
+
# unit: GB
|
62
|
+
#
|
63
|
+
# @deprecated Use {#server_core} and {#server_memory} instead.
|
64
|
+
# @return [Fixnum]
|
65
|
+
attr_accessor :server_memory
|
66
|
+
|
54
67
|
# The resource ID of the SSH public key to login the server.
|
55
68
|
#
|
56
69
|
# @return [String]
|
@@ -104,6 +117,8 @@ module VagrantPlugins
|
|
104
117
|
@public_key_path = UNSET_VALUE
|
105
118
|
@server_name = UNSET_VALUE
|
106
119
|
@server_plan = UNSET_VALUE
|
120
|
+
@server_core = UNSET_VALUE
|
121
|
+
@server_memory = UNSET_VALUE
|
107
122
|
@sshkey_id = UNSET_VALUE
|
108
123
|
@use_insecure_key = UNSET_VALUE
|
109
124
|
@enable_pw_auth = UNSET_VALUE
|
@@ -167,7 +182,13 @@ module VagrantPlugins
|
|
167
182
|
end
|
168
183
|
|
169
184
|
if @server_plan == UNSET_VALUE
|
170
|
-
@server_plan =
|
185
|
+
@server_plan = nil
|
186
|
+
end
|
187
|
+
if @server_core == UNSET_VALUE
|
188
|
+
@server_core = 1
|
189
|
+
end
|
190
|
+
if @server_memory == UNSET_VALUE
|
191
|
+
@server_memory = 1
|
171
192
|
end
|
172
193
|
|
173
194
|
@sshkey_id = nil if @sshkey_id == UNSET_VALUE
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant-sakura
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tomoyuki Sahara
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2018-
|
12
|
+
date: 2018-11-05 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: Enables Vagrant to manage machines in Sakura Cloud.
|
15
15
|
email:
|
@@ -89,7 +89,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
89
89
|
version: '0'
|
90
90
|
requirements: []
|
91
91
|
rubyforge_project:
|
92
|
-
rubygems_version: 2.7.
|
92
|
+
rubygems_version: 2.7.8
|
93
93
|
signing_key:
|
94
94
|
specification_version: 4
|
95
95
|
summary: Enables Vagrant to manage machines in Sakura Cloud.
|