Class: Hyrb::Tasks::DigitalOcean::SyncSSHKeys
- Inherits:
-
Hyrb::Task
- Object
- Hyrb::Task
- Hyrb::Tasks::DigitalOcean::SyncSSHKeys
- Defined in:
- lib/hyrb/tasks/digital_ocean.rb
Instance Attribute Summary
Attributes inherited from Hyrb::Task
Instance Method Summary collapse
Methods inherited from Hyrb::Task
depends, #initialize, prompt, prompts, #run_before
Constructor Details
This class inherits a constructor from Hyrb::Task
Instance Method Details
#run(env) ⇒ Object
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/hyrb/tasks/digital_ocean.rb', line 61 def run(env) env.digital_ocean_ssh_keys.each do |dokey| unless key = env.developers.any? { |dev| dev.keys.include? dokey.ssh_pub_key } say "Removing #{dokey.name} SSH key from Digital Ocean", :green env.digital_ocean_client.ssh_keys.destroy(dokey.id) end end env.developers.select { |d| d.keys.any? }.each do |dev| if key = env.digital_ocean_ssh_keys.any? { |k| dev.keys.include? k.ssh_pub_key } say "#{dev.name}'s keys already added to Digital Ocean", :yellow else dev.keys.each do |pubkey, i| say "Adding pubkey for #{dev.name} to Digital Ocean", :green env.digital_ocean_client.ssh_keys.create(name: dev.name, ssh_pub_key: pubkey) end end end end |