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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b5d2e7d9a658717576fbeea2ae64172521419c3b66e5e0235c6f175d76406376
4
- data.tar.gz: fa60c01b3fec7e7287954b1f8bddeeadd6ae3c2150292d9dae879f34de929028
3
+ metadata.gz: d22e25b1c8c50029c3ef7f7a0bbbea128e7a00c2c757cc1ae409130b4ffaf31f
4
+ data.tar.gz: eb8dc65a8d9a2db5a84f301d40992f8a3e2304b91b5728eb2a8ace1365e9d62d
5
5
  SHA512:
6
- metadata.gz: c54c6ad3a43e1b77fd5dbcaf3af8070c33a2aa01ee5bddd1fd0ae475b72bf654543848500740d201c15d69e5b411895e32c07b1cf3d044e15f884935e8247ad4
7
- data.tar.gz: aa62290db7c612547abbad5f7e0d25bc7316f5bce6dc80edd65d00c1768dedfce1df480c6e5af1581d442d7ec768849ac0ae11bcf21e6d9ba01b3d5f1615e021
6
+ metadata.gz: f047c7707680c375c5e475746eba2378e1f6c19f93a89729556db79fdba26fd7077c9bf11c197e43815de1eba51fe630e30312761521af5259b4f8fc5f3d8283
7
+ data.tar.gz: 83d44513679b2afc8b004b7184366e11af83c36e0cb5e3237d242abb6c1328ea3094e660da8f6af65ed56fc98ec17523776c0efbddb8acd39ee297f2d54e5b59
@@ -1,5 +1,9 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 0.3.0 (2018/11/5)
4
+
5
+ - Use new disk-edit API (#40)
6
+
3
7
  ## 0.2.1 (2018/09/27)
4
8
 
5
9
  - Re-released due to maintainer's error. This release as the same commit as v0.2.0.
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
- env[:ui].info(" -- Server Plan: #{server_plan}")
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 = 1001 # 1Core-1GB - cheapest
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
@@ -1,5 +1,5 @@
1
1
  module VagrantPlugins
2
2
  module Sakura
3
- VERSION = "0.2.1"
3
+ VERSION = "0.3.0"
4
4
  end
5
5
  end
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.2.1
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-09-27 00:00:00.000000000 Z
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.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.