vagrant-sakura 0.2.1 → 0.3.0
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 +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.
|