fly.io-rails 0.1.16-x64-mingw32 → 0.1.18-x64-mingw32

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: 6f10c2ab586e1deb5010a5769faf6b339e79e7c1add2c1e96c18d1845910df7a
4
- data.tar.gz: 7ce497f5e07f5418392141766efe62ddde8607bcc453971ed559c41809385418
3
+ metadata.gz: de0c354099a707c5df36e1661c21870170a523d2755ea0935891cf4bf14d9783
4
+ data.tar.gz: c1eb047bea6edfa1de626ecc43c53951e26f44fdef79db0d26d769203a4f0369
5
5
  SHA512:
6
- metadata.gz: f2ca749d732360c3cc311cb7fc43a3136b95a88c8a12bcf27d1411bc7ba55ba6a9087485993dcc10925f72d1280518fa5c6408d17204fd22f02f783d6b457bb2
7
- data.tar.gz: 30bb520d6fc8b1dd0d9522d5246387a54ea3e6992c93faab140b1db4487bb9c798b137011dc0c1e2d77005715559c381cc5645beca6b7e3ec15f2e6df495c689
6
+ metadata.gz: e919bec2e6d040b0e66155a433b7068eab2294dc6d34e74549f7e0b12f99cef8f30cc28bb1bcdad0ba44aa00334c98132fe014b76bb89af5087656b14ab630f4
7
+ data.tar.gz: f44a08b3ce2ae82f0ad3f7d1f98b07489bc7f236e5a1fc1b787a9c4828a0af6e3597dd546e269135f16bec8a48cdd2cff5da9644e032b7f525e26bb35d217107
Binary file
@@ -197,17 +197,19 @@ module Fly
197
197
  end
198
198
 
199
199
  def create_volume(app, region, size)
200
- volume = "#{app.gsub('-', '_')}_volume"
201
- volumes = JSON.parse(`flyctl volumes list --json`).
202
- map {|volume| [volume['Name'], volume['Region']]}
200
+ name = "#{app.gsub('-', '_')}_volume"
201
+ volumes = JSON.parse(`flyctl volumes list --json`)
203
202
 
204
- unless volumes.include? [volume, region]
205
- cmd = "flyctl volumes create #{volume} --app #{app} --region #{region} --size #{size}"
203
+ volume = volumes.find {|volume| volume['Name'] == name and volume['Region'] == region}
204
+ unless volume
205
+ cmd = "flyctl volumes create #{name} --app #{app} --region #{region} --size #{size}"
206
206
  say_status :run, cmd
207
207
  system cmd
208
+ volumes = JSON.parse(`flyctl volumes list --json`)
209
+ volume = volumes.find {|volume| volume['Name'] == name and volume['Region'] == region}
208
210
  end
209
211
 
210
- volume
212
+ volume && volume['id']
211
213
  end
212
214
 
213
215
  def create_postgres(app, org, region, vm_size, volume_size, cluster_size)
@@ -235,8 +237,8 @@ module Fly
235
237
  output[%r{redis://\S+}]
236
238
  end
237
239
 
238
- def release(app, config)
239
- start = Fly::Machines.create_and_start_machine(app, config: config)
240
+ def release(app, options)
241
+ start = Fly::Machines.create_and_start_machine(app, options)
240
242
  machine = start[:id]
241
243
 
242
244
  if not machine
@@ -320,9 +322,6 @@ module Fly
320
322
 
321
323
  # default config
322
324
  config = {
323
- region: @region,
324
- app: app,
325
- name: "#{app}-machine",
326
325
  image: image,
327
326
  guest: {
328
327
  cpus: @config.machine.cpus,
@@ -351,7 +350,7 @@ module Fly
351
350
 
352
351
  # perform release
353
352
  say_status :fly, release_config[:env]['SERVER_COMMAND']
354
- event, exit_code, machine = release(app, release_config)
353
+ event, exit_code, machine = release(app, region: @region, config: release_config)
355
354
 
356
355
  if exit_code != 0
357
356
  STDERR.puts 'Error performing release'
@@ -396,21 +395,37 @@ module Fly
396
395
  config[:services] = toml['services'] if toml['services']
397
396
  if toml['mounts']
398
397
  mounts = toml['mounts']
399
- config[:mounts] = [ { volume: mounts['source'], path: mounts['destination'] } ]
398
+ volume = JSON.parse(`flyctl volumes list --json`).
399
+ find {|volume| volume['Name'] == mounts['source'] and volume['Region'] == @region}
400
+ if volume
401
+ config[:mounts] = [ { volume: volume['id'], path: mounts['destination'] } ]
402
+ else
403
+ STDERR.puts "volume #{mounts['source']} not found in region #{@region}"
404
+ exit 1
405
+ end
400
406
  end
401
407
 
402
408
  # start app
403
409
  machines = {}
410
+ options = {region: @region, config: config}
404
411
  say_status :fly, "start #{app}"
405
412
  if not toml['processes'] or toml['processes'].empty?
406
- start = Fly::Machines.create_and_start_machine(app, config: config)
413
+ options[:name] = "#{app}-machine",
414
+ start = Fly::Machines.create_and_start_machine(app, options)
407
415
  machines['app'] = start[:id]
408
416
  else
409
417
  config[:env] ||= {}
410
418
  config[:env]['NATS_SERVER'] = 'localhost'
411
419
  toml['processes'].each do |name, entrypoint|
420
+ options[:name] = "#{app}-machine-#{name}"
412
421
  config[:env]['SERVER_COMMAND'] = entrypoint
413
- start = Fly::Machines.create_and_start_machine(app, config: config)
422
+ start = Fly::Machines.create_and_start_machine(app, options)
423
+
424
+ if start['error']
425
+ STDERR.puts "ERROR: #{start.error}"
426
+ exit 1
427
+ end
428
+
414
429
  machines[name] = start[:id]
415
430
 
416
431
  config.delete :mounts
@@ -484,7 +499,7 @@ module Fly
484
499
  # perform release, if necessary
485
500
  if (IO.read('lib/tasks/fly.rake') rescue '') =~ /^\s*task[ \t]*+:?release"?[ \t]*\S/
486
501
  say_status :fly, config[:env]['SERVER_COMMAND']
487
- event, exit_code, machine = release(app, config)
502
+ event, exit_code, machine = release(app, region: @region, config: config)
488
503
  else
489
504
  exit_code = 0
490
505
  end
@@ -1,3 +1,3 @@
1
1
  module Fly_io
2
- VERSION = '0.1.16'
2
+ VERSION = '0.1.18'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fly.io-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.16
4
+ version: 0.1.18
5
5
  platform: x64-mingw32
6
6
  authors:
7
7
  - Sam Ruby