neetodeploy 1.1.4 → 1.1.5
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 +5 -1
- data/lib/neeto_deploy/cli/addon/commands.rb +18 -0
- data/lib/neeto_deploy/cli/addon/constants.rb +15 -0
- data/lib/neeto_deploy/cli/addon/info.rb +54 -0
- data/lib/neeto_deploy/cli/exec/base.rb +3 -1
- data/lib/neeto_deploy/cli/redis/commands.rb +8 -0
- data/lib/neeto_deploy/cli/redis/constants.rb +1 -1
- data/lib/neeto_deploy/cli/redis/get.rb +20 -9
- data/lib/neeto_deploy/cli/redis/reset_stats.rb +39 -0
- data/lib/neeto_deploy/cli/redis/set.rb +19 -11
- data/lib/neeto_deploy/cli/ui.rb +7 -0
- data/lib/neeto_deploy/cli.rb +5 -0
- data/lib/neeto_deploy/version.rb +1 -1
- data/neetodeploy.gemspec +1 -0
- metadata +20 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 305d6867816ecbca9f4c86d447117ff8fefebac877e6177000cf29f338c2b11b
|
4
|
+
data.tar.gz: 97243a423a38b634cb30289dfaf93ca71cb7bc96e9d83e3c9c57e16a54814f64
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: de103bbd5f402dd3903b49f85008299652b7680b7a7a1e0fc8835dc3804cd91a7e204915183497fa020a9eedd7fbae20590af4c833c58e7327e276bf473c4770
|
7
|
+
data.tar.gz: 7f13ee1a14bc878f0c8e718d2fa045b3ceea1f44614e78ffbcfad9cdf6fbdeca38793ef2629f33950ceb9e30f2aeb0b226987fbc6e649498bfcda841ac00fa58
|
data/Gemfile.lock
CHANGED
@@ -1,13 +1,14 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
neetodeploy (1.1.
|
4
|
+
neetodeploy (1.1.5)
|
5
5
|
colorize
|
6
6
|
dotenv (~> 2.8.1)
|
7
7
|
httparty (~> 0.21.0)
|
8
8
|
launchy (~> 2.5.0)
|
9
9
|
terminal-table (~> 3.0.2)
|
10
10
|
thor (~> 1.3.0)
|
11
|
+
tty-spinner
|
11
12
|
websocket-client-simple
|
12
13
|
|
13
14
|
GEM
|
@@ -30,6 +31,9 @@ GEM
|
|
30
31
|
terminal-table (3.0.2)
|
31
32
|
unicode-display_width (>= 1.1.1, < 3)
|
32
33
|
thor (1.3.0)
|
34
|
+
tty-cursor (0.7.1)
|
35
|
+
tty-spinner (0.9.3)
|
36
|
+
tty-cursor (~> 0.7)
|
33
37
|
unicode-display_width (2.4.2)
|
34
38
|
websocket (1.2.9)
|
35
39
|
websocket-client-simple (0.6.1)
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "thor"
|
4
|
+
require_relative "./info"
|
5
|
+
|
6
|
+
module NeetoDeploy
|
7
|
+
class CLI
|
8
|
+
module Addon
|
9
|
+
class Commands < Thor
|
10
|
+
desc "info", "Get addon informations"
|
11
|
+
option :addon_name, type: :string, aliases: "-n", required: true, desc: "Addon name"
|
12
|
+
def info
|
13
|
+
Info.new(options).run
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module NeetoDeploy
|
4
|
+
class CLI
|
5
|
+
module Addon
|
6
|
+
module Constants
|
7
|
+
NEETO_DEPLOY_CLI_API_ADDON_URL = "#{NEETO_DEPLOY_CLI_API_BASE_URL}/addons".freeze
|
8
|
+
|
9
|
+
def addon_url(addon_name)
|
10
|
+
"#{NEETO_DEPLOY_CLI_API_BASE_URL}/addons/#{addon_name}"
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "thor"
|
4
|
+
|
5
|
+
require_relative "../session"
|
6
|
+
require_relative "./constants"
|
7
|
+
|
8
|
+
module NeetoDeploy
|
9
|
+
class CLI
|
10
|
+
module Addon
|
11
|
+
class Info < CLI::Base
|
12
|
+
include Constants
|
13
|
+
include Session
|
14
|
+
|
15
|
+
attr_reader :addon_name
|
16
|
+
|
17
|
+
def initialize(options)
|
18
|
+
super()
|
19
|
+
@addon_name = options[:addon_name]
|
20
|
+
end
|
21
|
+
|
22
|
+
def run
|
23
|
+
ui.execute_with_loading("Fetching info...") do
|
24
|
+
send_request
|
25
|
+
end
|
26
|
+
print_output
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
def flatten_hash_from(hash)
|
32
|
+
hash.each_with_object({}) do |(key, value), memo|
|
33
|
+
next flatten_hash_from(value).each do |k, v|
|
34
|
+
memo["#{k}".intern] = v
|
35
|
+
end if value.is_a? Hash
|
36
|
+
memo[key] = value
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def send_request
|
41
|
+
@response = send_get_request(addon_url(addon_name), {})
|
42
|
+
end
|
43
|
+
|
44
|
+
def print_output
|
45
|
+
ui.error(@response["error"]) and return unless @response.success?
|
46
|
+
|
47
|
+
flatten_hash_from(JSON[@response.body]).each do |k, v|
|
48
|
+
ui.info("#{k}: #{v}")
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -33,8 +33,10 @@ module NeetoDeploy
|
|
33
33
|
ui.error(response) and return unless response.success?
|
34
34
|
|
35
35
|
console_token = response.parsed_response["console_token"]
|
36
|
+
pubsub_token = response.parsed_response["console_pubsub_token"]
|
37
|
+
deployment_name = "#{app_name}-#{pubsub_token}-console-deployment"
|
36
38
|
|
37
|
-
ws = WebSocket::Client::Simple.connect "wss://neeto-deploy-lc.neetodeployapp.com/cli_console?
|
39
|
+
ws = WebSocket::Client::Simple.connect "wss://neeto-deploy-lc.neetodeployapp.com/cli_console?app_name=#{app_name}&deployment_name=#{deployment_name}&console_token=#{console_token}"
|
38
40
|
|
39
41
|
prompt = ''
|
40
42
|
|
@@ -3,6 +3,7 @@
|
|
3
3
|
require "thor"
|
4
4
|
require_relative "./set"
|
5
5
|
require_relative "./get"
|
6
|
+
require_relative "./reset_stats"
|
6
7
|
|
7
8
|
module NeetoDeploy
|
8
9
|
class CLI
|
@@ -23,6 +24,13 @@ module NeetoDeploy
|
|
23
24
|
def get
|
24
25
|
Get.new(options).run
|
25
26
|
end
|
27
|
+
|
28
|
+
desc "reset-stats", "Resets the statistics of the Redis instance"
|
29
|
+
option :addon_name, type: :string, aliases: "-n", required: true, desc: "Addon name"
|
30
|
+
def reset_stats
|
31
|
+
ResetStats.new(options).run
|
32
|
+
end
|
33
|
+
|
26
34
|
end
|
27
35
|
end
|
28
36
|
end
|
@@ -5,7 +5,7 @@ module NeetoDeploy
|
|
5
5
|
module Redis
|
6
6
|
module Constants
|
7
7
|
NEETO_DEPLOY_CLI_API_ADDONS_REDIS_URL = "#{NEETO_DEPLOY_CLI_API_BASE_URL}/addons/redis".freeze
|
8
|
-
AVAILABLE_REDIS_CONFIGS_TO_EDIT = ["maxmemory-policy"]
|
8
|
+
AVAILABLE_REDIS_CONFIGS_TO_EDIT = ["maxmemory-policy", "notify-keyspace-events"]
|
9
9
|
|
10
10
|
def redis_addon_url
|
11
11
|
NEETO_DEPLOY_CLI_API_ADDONS_REDIS_URL
|
@@ -20,17 +20,28 @@ module NeetoDeploy
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def run
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
)
|
23
|
+
ui.execute_with_loading("Fetching info...") do
|
24
|
+
send_request
|
25
|
+
end
|
26
|
+
print_output
|
27
|
+
end
|
29
28
|
|
30
|
-
|
29
|
+
private
|
31
30
|
|
32
|
-
|
33
|
-
|
31
|
+
def send_request
|
32
|
+
@response = send_patch_request(
|
33
|
+
redis_addon_url, {
|
34
|
+
addon_name:,
|
35
|
+
command: "CONFIG get #{key}"
|
36
|
+
}
|
37
|
+
)
|
38
|
+
end
|
39
|
+
|
40
|
+
def print_output
|
41
|
+
ui.error(@response["error"]) and return unless @response.success?
|
42
|
+
|
43
|
+
ui.success(@response["message"])
|
44
|
+
end
|
34
45
|
end
|
35
46
|
end
|
36
47
|
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "thor"
|
4
|
+
require_relative "../session"
|
5
|
+
require_relative "./constants"
|
6
|
+
|
7
|
+
module NeetoDeploy
|
8
|
+
class CLI
|
9
|
+
module Redis
|
10
|
+
class ResetStats < CLI::Base
|
11
|
+
include Constants
|
12
|
+
include Session
|
13
|
+
|
14
|
+
attr_reader :addon_name
|
15
|
+
|
16
|
+
def initialize(options)
|
17
|
+
super()
|
18
|
+
@addon_name = options[:addon_name]
|
19
|
+
end
|
20
|
+
|
21
|
+
def run
|
22
|
+
if ui.yes?("Are you sure you want to reset the statistics (y/n)")
|
23
|
+
response = send_patch_request(
|
24
|
+
redis_addon_url, {
|
25
|
+
addon_name:,
|
26
|
+
command: "CONFIG RESETSTAT"
|
27
|
+
}
|
28
|
+
)
|
29
|
+
ui.error(response["error"]) and return unless response.success?
|
30
|
+
|
31
|
+
ui.success("Stats reset successful.")
|
32
|
+
else
|
33
|
+
puts "Reset cancelled."
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -1,7 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "thor"
|
4
|
-
require "byebug"
|
5
4
|
|
6
5
|
require_relative "../session"
|
7
6
|
require_relative "./constants"
|
@@ -28,16 +27,10 @@ module NeetoDeploy
|
|
28
27
|
return
|
29
28
|
end
|
30
29
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
}
|
36
|
-
)
|
37
|
-
|
38
|
-
ui.error(response) and return unless response.success?
|
39
|
-
|
40
|
-
ui.success("Done")
|
30
|
+
ui.execute_with_loading("Setting config...") do
|
31
|
+
send_request
|
32
|
+
end
|
33
|
+
print_output
|
41
34
|
end
|
42
35
|
|
43
36
|
private
|
@@ -45,6 +38,21 @@ module NeetoDeploy
|
|
45
38
|
def valid_config?
|
46
39
|
AVAILABLE_REDIS_CONFIGS_TO_EDIT.include?(key)
|
47
40
|
end
|
41
|
+
|
42
|
+
def send_request
|
43
|
+
@response = send_patch_request(
|
44
|
+
redis_addon_url, {
|
45
|
+
addon_name:,
|
46
|
+
command: "CONFIG set #{key} #{value}"
|
47
|
+
}
|
48
|
+
)
|
49
|
+
end
|
50
|
+
|
51
|
+
def print_output
|
52
|
+
ui.error(@response["error"]) and return unless @response.success?
|
53
|
+
|
54
|
+
ui.success("#{key} config for #{addon_name} set to #{value}")
|
55
|
+
end
|
48
56
|
end
|
49
57
|
end
|
50
58
|
end
|
data/lib/neeto_deploy/cli/ui.rb
CHANGED
@@ -34,6 +34,13 @@ module NeetoDeploy
|
|
34
34
|
def info(statement)
|
35
35
|
shell.say(statement)
|
36
36
|
end
|
37
|
+
|
38
|
+
def execute_with_loading(msg)
|
39
|
+
@spinner = TTY::Spinner.new("[:spinner] #{msg}", format: :classic)
|
40
|
+
@spinner.auto_spin
|
41
|
+
yield
|
42
|
+
@spinner.stop
|
43
|
+
end
|
37
44
|
end
|
38
45
|
end
|
39
46
|
end
|
data/lib/neeto_deploy/cli.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "thor"
|
4
|
+
require 'tty-spinner'
|
4
5
|
|
5
6
|
# TODO: make this like neetob
|
6
7
|
|
@@ -12,6 +13,7 @@ module NeetoDeploy
|
|
12
13
|
require_relative "cli/logs/base"
|
13
14
|
require_relative "cli/env/commands"
|
14
15
|
require_relative "cli/redis/commands"
|
16
|
+
require_relative "cli/addon/commands"
|
15
17
|
|
16
18
|
def self.start(*)
|
17
19
|
super
|
@@ -40,5 +42,8 @@ module NeetoDeploy
|
|
40
42
|
|
41
43
|
desc "redis", "Manage redis addons"
|
42
44
|
subcommand "redis", Redis::Commands
|
45
|
+
|
46
|
+
desc "addon", "Manage addons"
|
47
|
+
subcommand "addon", Addon::Commands
|
43
48
|
end
|
44
49
|
end
|
data/lib/neeto_deploy/version.rb
CHANGED
data/neetodeploy.gemspec
CHANGED
@@ -37,6 +37,7 @@ Gem::Specification.new do |spec|
|
|
37
37
|
spec.add_dependency "thor", "~> 1.3.0" # for cli
|
38
38
|
spec.add_dependency "websocket-client-simple"
|
39
39
|
spec.add_dependency "colorize"
|
40
|
+
spec.add_dependency "tty-spinner"
|
40
41
|
|
41
42
|
# To add the files from submodules
|
42
43
|
`git submodule --quiet foreach pwd`.split($\).each do |submodule_path|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: neetodeploy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Subin Siby
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-05-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dotenv
|
@@ -108,6 +108,20 @@ dependencies:
|
|
108
108
|
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: tty-spinner
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
111
125
|
description: Manage neetoDeploy apps with CLI
|
112
126
|
email:
|
113
127
|
- subin.siby@bigbinary.com
|
@@ -122,6 +136,9 @@ files:
|
|
122
136
|
- exe/neetodeploy
|
123
137
|
- lib/neeto_deploy.rb
|
124
138
|
- lib/neeto_deploy/cli.rb
|
139
|
+
- lib/neeto_deploy/cli/addon/commands.rb
|
140
|
+
- lib/neeto_deploy/cli/addon/constants.rb
|
141
|
+
- lib/neeto_deploy/cli/addon/info.rb
|
125
142
|
- lib/neeto_deploy/cli/base.rb
|
126
143
|
- lib/neeto_deploy/cli/env/commands.rb
|
127
144
|
- lib/neeto_deploy/cli/env/constants.rb
|
@@ -137,6 +154,7 @@ files:
|
|
137
154
|
- lib/neeto_deploy/cli/redis/commands.rb
|
138
155
|
- lib/neeto_deploy/cli/redis/constants.rb
|
139
156
|
- lib/neeto_deploy/cli/redis/get.rb
|
157
|
+
- lib/neeto_deploy/cli/redis/reset_stats.rb
|
140
158
|
- lib/neeto_deploy/cli/redis/set.rb
|
141
159
|
- lib/neeto_deploy/cli/session.rb
|
142
160
|
- lib/neeto_deploy/cli/ui.rb
|