Module: Satorix::CI::Deploy::Flynn::Resources
- Included in:
- Satorix::CI::Deploy::Flynn
- Defined in:
- lib/satorix/CI/deploy/flynn/resources.rb
Instance Method Summary collapse
- #add_resources ⇒ Object
- #available_resources ⇒ Object
- #current_resource_provider_names ⇒ Object
- #desired_resource_provider_names ⇒ Object
- #remove_resources ⇒ Object
- #resource ⇒ Object
- #resource_provider_key ⇒ Object
- #resources_to_add ⇒ Object
- #resources_to_remove ⇒ Object
- #set_resources ⇒ Object
Instance Method Details
#add_resources ⇒ Object
7 8 9 10 11 12 13 |
# File 'lib/satorix/CI/deploy/flynn/resources.rb', line 7 def add_resources if resources_to_add.empty? log 'No resources to add.' else resources_to_add.each { |resource| run_command(['flynn', 'resource', 'add', resource]) } end end |
#available_resources ⇒ Object
16 17 18 |
# File 'lib/satorix/CI/deploy/flynn/resources.rb', line 16 def available_resources %w(postgres mysql mongodb redis) end |
#current_resource_provider_names ⇒ Object
21 22 23 |
# File 'lib/satorix/CI/deploy/flynn/resources.rb', line 21 def current_resource_provider_names resource.split("\n").drop(1).map(&:split).map(&:last) end |
#desired_resource_provider_names ⇒ Object
26 27 28 29 30 31 32 33 |
# File 'lib/satorix/CI/deploy/flynn/resources.rb', line 26 def desired_resource_provider_names names = ENV[resource_provider_key].to_s.split disallowed = names - available_resources unless disallowed.empty? log_error_and_abort("Invalid resource#{ 's' if disallowed.length > 1 }: #{ disallowed.join(' ') }") end names end |
#remove_resources ⇒ Object
36 37 38 39 40 41 42 43 44 45 |
# File 'lib/satorix/CI/deploy/flynn/resources.rb', line 36 def remove_resources if resources_to_remove.empty? log 'No resources to remove.' else log "The following previously allocated resources are no longer defined in #{ resource_provider_key }:" log resources_to_remove.join(' ') log '' log 'To remove them, use the flynn resource command: https://flynn.io/docs/cli#resource' end end |
#resource ⇒ Object
48 49 50 |
# File 'lib/satorix/CI/deploy/flynn/resources.rb', line 48 def resource run_command(%w[flynn resource], quiet: true).chomp end |
#resource_provider_key ⇒ Object
53 54 55 |
# File 'lib/satorix/CI/deploy/flynn/resources.rb', line 53 def resource_provider_key "FLYNN_#{ current_branch }_RESOURCES" end |
#resources_to_add ⇒ Object
58 59 60 |
# File 'lib/satorix/CI/deploy/flynn/resources.rb', line 58 def resources_to_add desired_resource_provider_names - current_resource_provider_names end |
#resources_to_remove ⇒ Object
63 64 65 |
# File 'lib/satorix/CI/deploy/flynn/resources.rb', line 63 def resources_to_remove current_resource_provider_names - desired_resource_provider_names end |
#set_resources ⇒ Object
68 69 70 71 |
# File 'lib/satorix/CI/deploy/flynn/resources.rb', line 68 def set_resources add_resources remove_resources end |