civo_cli 0.3.12 → 0.3.13
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/CHANGELOG.md +4 -0
- data/Gemfile.lock +11 -11
- data/lib/civo_cli/version.rb +1 -1
- data/lib/finder.rb +36 -0
- data/lib/kubernetes.rb +0 -1
- data/lib/kubernetes_applications.rb +74 -0
- metadata +3 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0abd838b80a7091c2c4303aac03c4ce07899d038f0663e14996112976834fb3b
|
4
|
+
data.tar.gz: ad179d84288f5a9848b05abef1fa8be0c57f681eb76128a4353b1dec682f29c8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9db96461a2f75ec8116cc3b3914b0278694fd416d997ca79c9ac649c26edb42d7b4436dfaef65b3ba93329cbb908125c02c92bbacd2e22a973d3c23b52e399df
|
7
|
+
data.tar.gz: ead03aead4578bc8b118e2d6260ba9f74a79536b8888c383964c9a750634f9799cd4afdee0761257286d7feb9a97c6e5c8cd3d441c02b4e4496329dc14638bc1
|
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,10 @@ All notable changes to the Civo CLI will be documented in this file.
|
|
3
3
|
|
4
4
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
5
5
|
|
6
|
+
## [0.3.13] - 2019-08-28
|
7
|
+
### Fixed
|
8
|
+
- Was missing a file for Kubernetes marketplace applications
|
9
|
+
|
6
10
|
## [0.3.12] - 2019-08-28
|
7
11
|
### Added
|
8
12
|
- Support for Kubernetes marketplace applications
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
civo_cli (0.3.
|
4
|
+
civo_cli (0.3.13)
|
5
5
|
bundler (~> 1.17)
|
6
6
|
civo (>= 1.2.8)
|
7
7
|
colorize
|
@@ -34,7 +34,7 @@ GEM
|
|
34
34
|
diff-lcs (1.3)
|
35
35
|
faraday (0.15.4)
|
36
36
|
multipart-post (>= 1.2, < 3)
|
37
|
-
ffi (1.
|
37
|
+
ffi (1.11.1)
|
38
38
|
flexirest (1.7.9)
|
39
39
|
activesupport
|
40
40
|
crack
|
@@ -55,7 +55,7 @@ GEM
|
|
55
55
|
guard (~> 2.1)
|
56
56
|
guard-compat (~> 1.1)
|
57
57
|
rspec (>= 2.99.0, < 4.0)
|
58
|
-
hashdiff (0.
|
58
|
+
hashdiff (1.0.0)
|
59
59
|
highline (2.0.2)
|
60
60
|
i18n (1.6.0)
|
61
61
|
concurrent-ruby (~> 1.0)
|
@@ -70,14 +70,14 @@ GEM
|
|
70
70
|
multi_json (1.13.1)
|
71
71
|
multipart-post (2.1.1)
|
72
72
|
nenv (0.3.0)
|
73
|
-
notiffany (0.1.
|
73
|
+
notiffany (0.1.3)
|
74
74
|
nenv (~> 0.1)
|
75
75
|
shellany (~> 0.0)
|
76
76
|
parslet (1.8.2)
|
77
77
|
pry (0.12.2)
|
78
78
|
coderay (~> 1.1.0)
|
79
79
|
method_source (~> 0.9.0)
|
80
|
-
public_suffix (3.
|
80
|
+
public_suffix (3.1.1)
|
81
81
|
rake (10.5.0)
|
82
82
|
rb-fsevent (0.10.3)
|
83
83
|
rb-inotify (0.10.0)
|
@@ -86,15 +86,15 @@ GEM
|
|
86
86
|
rspec-core (~> 3.8.0)
|
87
87
|
rspec-expectations (~> 3.8.0)
|
88
88
|
rspec-mocks (~> 3.8.0)
|
89
|
-
rspec-core (3.8.
|
89
|
+
rspec-core (3.8.2)
|
90
90
|
rspec-support (~> 3.8.0)
|
91
|
-
rspec-expectations (3.8.
|
91
|
+
rspec-expectations (3.8.4)
|
92
92
|
diff-lcs (>= 1.2.0, < 2.0)
|
93
93
|
rspec-support (~> 3.8.0)
|
94
|
-
rspec-mocks (3.8.
|
94
|
+
rspec-mocks (3.8.1)
|
95
95
|
diff-lcs (>= 1.2.0, < 2.0)
|
96
96
|
rspec-support (~> 3.8.0)
|
97
|
-
rspec-support (3.8.
|
97
|
+
rspec-support (3.8.2)
|
98
98
|
ruby_dep (1.5.0)
|
99
99
|
safe_yaml (1.0.5)
|
100
100
|
shellany (0.0.1)
|
@@ -108,10 +108,10 @@ GEM
|
|
108
108
|
tzinfo (1.2.5)
|
109
109
|
thread_safe (~> 0.1)
|
110
110
|
unicode-display_width (1.6.0)
|
111
|
-
webmock (3.
|
111
|
+
webmock (3.7.0)
|
112
112
|
addressable (>= 2.3.6)
|
113
113
|
crack (>= 0.3.2)
|
114
|
-
hashdiff
|
114
|
+
hashdiff (>= 0.4.0, < 2.0.0)
|
115
115
|
zeitwerk (2.1.9)
|
116
116
|
|
117
117
|
PLATFORMS
|
data/lib/civo_cli/version.rb
CHANGED
data/lib/finder.rb
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
class Finder
|
2
|
+
def self.detect_cluster(id)
|
3
|
+
result = []
|
4
|
+
Civo::Kubernetes.all.items.each do |cluster|
|
5
|
+
result << cluster
|
6
|
+
end
|
7
|
+
result.select! { |cluster| cluster.name.include?(id) || cluster.id.include?(id) }
|
8
|
+
|
9
|
+
if result.count.zero?
|
10
|
+
puts "No Kubernetes clusters found for '#{id}'. Please check your query."
|
11
|
+
exit 1
|
12
|
+
elsif result.count > 1
|
13
|
+
puts "Multiple possible Kubernetes clusters found for '#{id}'. Please try with a more specific query."
|
14
|
+
exit 1
|
15
|
+
else
|
16
|
+
result[0]
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.detect_app(name)
|
21
|
+
result = []
|
22
|
+
Civo::Kubernetes.applications.items.each do |app|
|
23
|
+
result << app if app.name.downcase.include?(name)
|
24
|
+
end
|
25
|
+
|
26
|
+
if result.count.zero?
|
27
|
+
puts "No Kubernetes marketplace applications found for '#{name}'. Please check your query."
|
28
|
+
exit 1
|
29
|
+
elsif result.count > 1
|
30
|
+
puts "Multiple possible Kubernetes marketplace applications found for '#{name}'. Please try with a more specific query."
|
31
|
+
exit 1
|
32
|
+
else
|
33
|
+
result[0]
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
data/lib/kubernetes.rb
CHANGED
@@ -0,0 +1,74 @@
|
|
1
|
+
require 'tempfile'
|
2
|
+
|
3
|
+
module CivoCLI
|
4
|
+
class KubernetesApplications < Thor
|
5
|
+
desc "list", "list all available kubernetes applications"
|
6
|
+
option :quiet, type: :boolean, aliases: '-q'
|
7
|
+
def list
|
8
|
+
CivoCLI::Config.set_api_auth
|
9
|
+
if options[:quiet]
|
10
|
+
Civo::Kubernetes.applications.items.each do |app|
|
11
|
+
puts "#{app.name} (#{app.version}, #{app.category})"
|
12
|
+
end
|
13
|
+
else
|
14
|
+
rows = []
|
15
|
+
Civo::Kubernetes.applications.items.each do |app|
|
16
|
+
rows << [app.name, app.version, app.category]
|
17
|
+
end
|
18
|
+
puts Terminal::Table.new headings: ['Name', 'Version', 'Category'], rows: rows
|
19
|
+
end
|
20
|
+
rescue Flexirest::HTTPForbiddenClientException
|
21
|
+
reject_user_access
|
22
|
+
end
|
23
|
+
map "ls" => "list", "all" => "list"
|
24
|
+
|
25
|
+
|
26
|
+
desc "show NAME", "show a Kubernetes application by name"
|
27
|
+
def show(name)
|
28
|
+
CivoCLI::Config.set_api_auth
|
29
|
+
rows = []
|
30
|
+
app = Finder.detect_app(name)
|
31
|
+
|
32
|
+
puts " Name : #{app.name}"
|
33
|
+
puts " Version : #{app.version}"
|
34
|
+
puts " Category : #{app.category}"
|
35
|
+
puts " Maintainer : #{app.maintainer}"
|
36
|
+
puts " URL : #{app.url}"
|
37
|
+
puts " Description : #{app.description}"
|
38
|
+
rescue Flexirest::HTTPException => e
|
39
|
+
puts e.result.reason.colorize(:red)
|
40
|
+
exit 1
|
41
|
+
end
|
42
|
+
map "get" => "show", "inspect" => "show"
|
43
|
+
|
44
|
+
|
45
|
+
desc "add NAME --cluster=...", "add the marketplace application to a Kubernetes cluster by ID or name"
|
46
|
+
option :cluster
|
47
|
+
long_desc <<-LONGDESC
|
48
|
+
Use --cluster=name to specify part of the ID or name of the cluster to add the application to
|
49
|
+
LONGDESC
|
50
|
+
def add(name)
|
51
|
+
Civo::Kubernetes.verbose!
|
52
|
+
Flexirest::Logger.logfile = STDOUT
|
53
|
+
|
54
|
+
CivoCLI::Config.set_api_auth
|
55
|
+
app = Finder.detect_app(name)
|
56
|
+
cluster = Finder.detect_cluster(options[:cluster])
|
57
|
+
|
58
|
+
Civo::Kubernetes.update(id: cluster.id, applications: app.name)
|
59
|
+
puts "Added #{app.name.colorize(:green)} #{app.version} to Kubernetes cluster #{cluster.name.colorize(:green)}"
|
60
|
+
rescue Flexirest::HTTPException => e
|
61
|
+
puts e.result.reason.colorize(:red)
|
62
|
+
exit 1
|
63
|
+
end
|
64
|
+
|
65
|
+
default_task :help
|
66
|
+
|
67
|
+
private
|
68
|
+
|
69
|
+
def reject_user_access
|
70
|
+
puts "Sorry, this functionality is currently in closed beta and not available to the public yet"
|
71
|
+
exit(1)
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: civo_cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andy Jeffries
|
@@ -211,9 +211,11 @@ files:
|
|
211
211
|
- lib/config.rb
|
212
212
|
- lib/domain.rb
|
213
213
|
- lib/domain_record.rb
|
214
|
+
- lib/finder.rb
|
214
215
|
- lib/firewall.rb
|
215
216
|
- lib/instance.rb
|
216
217
|
- lib/kubernetes.rb
|
218
|
+
- lib/kubernetes_applications.rb
|
217
219
|
- lib/loadbalancer.rb
|
218
220
|
- lib/namegenerator.rb
|
219
221
|
- lib/network.rb
|