ocean_kit 0.1.2 → 0.1.3

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: 62d343d2e641d29b1d725b8fa28cc31ae1f315c6066301d259690044e5bdec0c
4
- data.tar.gz: fe8ea0a906be855815be19084fdba93c37cdb39ddafc70fb3d963e56b1294541
3
+ metadata.gz: 2b7e53bd320bed32a746bf8c938e41916adc797399bc99f31588b1a046e0251f
4
+ data.tar.gz: bbc4ccb88be8a07bf60856eff18070c0506dd0b65493b2f2e8fefdae0a5593f3
5
5
  SHA512:
6
- metadata.gz: 18da4133b0419fec8d780d1eeaa5fa7a97e271cc4a99daeb8329d2ca0045757bfd34b9fea68cf346fcac4feca10ab66edbcd264404245bbfa7aa9809d9f73197
7
- data.tar.gz: 71c1d8033773066e2ae9d6418bcfb2e4ceb274483131cddbe6677b3c9093250276dacba52a12bfb0fdb94e8d65f74d0bac6942938cfa7bed8eb7cbacc72d686a
6
+ metadata.gz: 91c945c7f2b00964879a4c90db6b5d1190c5de0acc90dda89abeb64f682628ec2f5616d8276e315f3fedaa80bd4f30b89a27fa683488ba75b45059453bb54f2c
7
+ data.tar.gz: 2054bd0e4293709c4616a9f40538d0f6b733a8e40537eb727802c943148fb42e8537534b1ebe428bc9a6b205fd32e624e989fd63d13d98d5cc097b29dbf5fbb1
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ocean_kit (0.1.1)
4
+ ocean_kit (0.1.2)
5
5
  droplet_kit (~> 3.16, >= 3.16.1)
6
6
  pastel
7
7
  thor (~> 1.2)
data/exe/ocean_kit CHANGED
@@ -2,6 +2,4 @@
2
2
 
3
3
  require "ocean_kit"
4
4
 
5
- require_relative "../lib/helpers"
6
-
7
5
  OceanKit::Client.start(ARGV)
@@ -0,0 +1,3 @@
1
+ require_relative "./client"
2
+ require_relative "./console"
3
+ require_relative "./firewalls"
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ def do_client
4
+ DropletKit::Client.new(access_token: access_token)
5
+ end
6
+
7
+ def access_token
8
+ credentials_file = YAML.load(File.read(File.expand_path("~/.ocean_kit/credentials.yml")))
9
+ credentials_file["digital_ocean_token"]
10
+ rescue => e
11
+ puts pastel.red.bold("Error: #{e.message}")
12
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ def pastel
4
+ Pastel.new
5
+ end
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ def fetch_firewall(number)
4
+ do_client.firewalls.all.each_with_index.filter { |firewall, index| index == number.to_i }.flatten.first
5
+ end
6
+
7
+ def update_firewall(firewall)
8
+ new_firewall = DropletKit::Firewall.new(
9
+ name: firewall.name,
10
+ inbound_rules: firewall.inbound_rules.map { |rule| new_inbound_rule(rule) },
11
+ outbound_rules: firewall.outbound_rules,
12
+ droplet_ids: firewall.droplet_ids,
13
+ tags: firewall.tags
14
+ )
15
+ do_client.firewalls.update(new_firewall, id: firewall.id)
16
+ end
17
+
18
+ def firewall_inbound_rules(firewall)
19
+ firewall.inbound_rules.map(&:to_h)
20
+ end
21
+
22
+ def new_inbound_rule(rule)
23
+ DropletKit::FirewallInboundRule.new(
24
+ protocol: rule[:protocol],
25
+ ports: rule[:ports],
26
+ sources: rule[:sources]
27
+ )
28
+ end
29
+
30
+ def remove_ssh_rule(rules_array)
31
+ rules_array.delete_if { |r| r[:ports] == "22" }
32
+ end
33
+
34
+ def add_ssh_rule(rules_array)
35
+ rules_array << {protocol: "tcp", ports: "22", sources: {addresses: ["0.0.0.0/0", "::/0"]}}
36
+ end
@@ -0,0 +1 @@
1
+ require_relative "./firewalls"
@@ -68,50 +68,5 @@ module OceanKit
68
68
  puts pastel.red.bold("Error: #{e.message}")
69
69
  end
70
70
  end
71
-
72
- private
73
-
74
- def fetch_firewall(number)
75
- do_client.firewalls.all.each_with_index.filter { |firewall, index| index == number.to_i }.flatten.first
76
- end
77
-
78
- def update_firewall(firewall)
79
- new_firewall = DropletKit::Firewall.new(
80
- name: firewall.name,
81
- inbound_rules: firewall.inbound_rules.map { |rule| new_inbound_rule(rule) },
82
- outbound_rules: firewall.outbound_rules,
83
- droplet_ids: firewall.droplet_ids,
84
- tags: firewall.tags
85
- )
86
- do_client.firewalls.update(new_firewall, id: firewall.id)
87
- end
88
-
89
- def firewall_inbound_rules(firewall)
90
- firewall.inbound_rules.map(&:to_h)
91
- end
92
-
93
- def new_inbound_rule(rule)
94
- DropletKit::FirewallInboundRule.new(
95
- protocol: rule[:protocol],
96
- ports: rule[:ports],
97
- sources: rule[:sources]
98
- )
99
- end
100
-
101
- def remove_ssh_rule(rules_array)
102
- rules_array.delete_if { |r| r[:ports] == "22" }
103
- end
104
-
105
- def add_ssh_rule(rules_array)
106
- rules_array << {protocol: "tcp", ports: "22", sources: {addresses: ["0.0.0.0/0", "::/0"]}}
107
- end
108
-
109
- def pastel
110
- Pastel.new
111
- end
112
-
113
- def find_firewall_by_id(id)
114
- do_client.firewalls.find(id:)
115
- end
116
71
  end
117
72
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module OceanKit
4
- VERSION = "0.1.2"
4
+ VERSION = "0.1.3"
5
5
  end
data/lib/ocean_kit.rb CHANGED
@@ -6,23 +6,13 @@ require "thor"
6
6
  require "yaml"
7
7
 
8
8
  require_relative "ocean_kit/version"
9
- require_relative "./ocean_kit/firewalls"
9
+ require_relative "./ocean_kit/resources/base"
10
+ require_relative "./ocean_kit/helpers/base"
10
11
 
11
12
  module OceanKit
12
13
  class Client < Thor
13
14
  desc "firewalls SUBCOMMAND ...ARGS", "manage your DO firewall"
14
15
  subcommand "firewalls", Firewalls
15
-
16
- no_commands {
17
- def client
18
- DropletKit::Client.new(access_token: access_token)
19
- end
20
-
21
- def access_token
22
- credentials_file = YAML.load(File.read(File.expand_path("~/.ocean_kit/credentials.yml")))
23
- credentials_file["digital_ocean_token"]
24
- end
25
- }
26
16
  end
27
17
 
28
18
  class Error < StandardError; end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ocean_kit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Leo Policastro
@@ -77,9 +77,13 @@ files:
77
77
  - README.md
78
78
  - Rakefile
79
79
  - exe/ocean_kit
80
- - lib/helpers.rb
81
80
  - lib/ocean_kit.rb
82
- - lib/ocean_kit/firewalls.rb
81
+ - lib/ocean_kit/helpers/base.rb
82
+ - lib/ocean_kit/helpers/client.rb
83
+ - lib/ocean_kit/helpers/console.rb
84
+ - lib/ocean_kit/helpers/firewalls.rb
85
+ - lib/ocean_kit/resources/base.rb
86
+ - lib/ocean_kit/resources/firewalls.rb
83
87
  - lib/ocean_kit/version.rb
84
88
  - ocean_kit.gemspec
85
89
  - sig/ocean_kit.rbs
data/lib/helpers.rb DELETED
@@ -1,6 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- def do_client
4
- ocean = OceanKit::Client.new
5
- ocean.client
6
- end