Sha256: 87947512f22fbdcd2d58d0ef9daaf9bd83e535e9a9d59fd2b0fc3555b5bb9cd7

Contents?: true

Size: 978 Bytes

Versions: 4

Compression:

Stored size: 978 Bytes

Contents

# frozen_string_literal: true

def fetch_firewall(number)
  do_client.firewalls.all.each_with_index.filter { |firewall, index| index == number.to_i }.flatten.first
end

def update_firewall(firewall)
  new_firewall = DropletKit::Firewall.new(
    name: firewall.name,
    inbound_rules: firewall.inbound_rules.map { |rule| new_inbound_rule(rule) },
    outbound_rules: firewall.outbound_rules,
    droplet_ids: firewall.droplet_ids,
    tags: firewall.tags
  )
  do_client.firewalls.update(new_firewall, id: firewall.id)
end

def firewall_inbound_rules(firewall)
  firewall.inbound_rules.map(&:to_h)
end

def new_inbound_rule(rule)
  DropletKit::FirewallInboundRule.new(
    protocol: rule[:protocol],
    ports: rule[:ports],
    sources: rule[:sources]
  )
end

def remove_ssh_rule(rules_array)
  rules_array.delete_if { |r| r[:ports] == "22" }
end

def add_ssh_rule(rules_array)
  rules_array << {protocol: "tcp", ports: "22", sources: {addresses: ["0.0.0.0/0", "::/0"]}}
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
ocean_kit-0.1.6 lib/ocean_kit/helpers/firewalls.rb
ocean_kit-0.1.5 lib/ocean_kit/helpers/firewalls.rb
ocean_kit-0.1.4 lib/ocean_kit/helpers/firewalls.rb
ocean_kit-0.1.3 lib/ocean_kit/helpers/firewalls.rb