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 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.