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 +4 -4
- data/Gemfile.lock +1 -1
- data/exe/ocean_kit +0 -2
- data/lib/ocean_kit/helpers/base.rb +3 -0
- data/lib/ocean_kit/helpers/client.rb +12 -0
- data/lib/ocean_kit/helpers/console.rb +5 -0
- data/lib/ocean_kit/helpers/firewalls.rb +36 -0
- data/lib/ocean_kit/resources/base.rb +1 -0
- data/lib/ocean_kit/{firewalls.rb → resources/firewalls.rb} +0 -45
- data/lib/ocean_kit/version.rb +1 -1
- data/lib/ocean_kit.rb +2 -12
- metadata +7 -3
- data/lib/helpers.rb +0 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2b7e53bd320bed32a746bf8c938e41916adc797399bc99f31588b1a046e0251f
|
4
|
+
data.tar.gz: bbc4ccb88be8a07bf60856eff18070c0506dd0b65493b2f2e8fefdae0a5593f3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 91c945c7f2b00964879a4c90db6b5d1190c5de0acc90dda89abeb64f682628ec2f5616d8276e315f3fedaa80bd4f30b89a27fa683488ba75b45059453bb54f2c
|
7
|
+
data.tar.gz: 2054bd0e4293709c4616a9f40538d0f6b733a8e40537eb727802c943148fb42e8537534b1ebe428bc9a6b205fd32e624e989fd63d13d98d5cc097b29dbf5fbb1
|
data/Gemfile.lock
CHANGED
data/exe/ocean_kit
CHANGED
@@ -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,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
|
data/lib/ocean_kit/version.rb
CHANGED
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/
|
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.
|
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/
|
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
|