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
8 9 10 11 12 13 14 |
# File 'lib/satorix/CI/deploy/flynn/resources.rb', line 8 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
17 18 19 |
# File 'lib/satorix/CI/deploy/flynn/resources.rb', line 17 def available_resources %w(postgres mysql mongodb redis) end |
#current_resource_provider_names ⇒ Object
22 23 24 |
# File 'lib/satorix/CI/deploy/flynn/resources.rb', line 22 def current_resource_provider_names resource.split("\n").drop(1).map(&:split).map(&:last) end |
#desired_resource_provider_names ⇒ Object
27 28 29 30 31 32 33 34 |
# File 'lib/satorix/CI/deploy/flynn/resources.rb', line 27 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
37 38 39 40 41 42 43 44 45 46 |
# File 'lib/satorix/CI/deploy/flynn/resources.rb', line 37 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
49 50 51 |
# File 'lib/satorix/CI/deploy/flynn/resources.rb', line 49 def resource run_command('flynn resource', quiet: true).chomp end |
#resource_provider_key ⇒ Object
54 55 56 |
# File 'lib/satorix/CI/deploy/flynn/resources.rb', line 54 def resource_provider_key "FLYNN_#{ current_branch }_RESOURCES" end |
#resources_to_add ⇒ Object
59 60 61 |
# File 'lib/satorix/CI/deploy/flynn/resources.rb', line 59 def resources_to_add desired_resource_provider_names - current_resource_provider_names end |
#resources_to_remove ⇒ Object
64 65 66 |
# File 'lib/satorix/CI/deploy/flynn/resources.rb', line 64 def resources_to_remove current_resource_provider_names - desired_resource_provider_names end |
#set_resources ⇒ Object
69 70 71 72 |
# File 'lib/satorix/CI/deploy/flynn/resources.rb', line 69 def set_resources add_resources remove_resources end |