neetodeploy 1.1.10 → 1.1.11

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: 8a3d1d307a336febc75e845090520f3b9682fccb51d37f1d916b7e687f60552f
4
- data.tar.gz: 29f7510011934930720d507581cfffa69ea51eeca7c338da3cab3bd496b7a981
3
+ metadata.gz: 991f65ca44d321dc7580b71263b9436176095769a7f069f55c2edadb6f5f2532
4
+ data.tar.gz: d614216531a9ef2a3c500a3a4e54cb9a72b34144607e4ea5f0ce8c6e1afabd22
5
5
  SHA512:
6
- metadata.gz: e1afa2622a80ca5398335fbc166e2ad018be68e679d2d62ab837dca25e2a33a5358de3f1ce3a185d0641b6edf814acc13238a8258f193d3de1e78d73163ba9e2
7
- data.tar.gz: 2f5c3ada11bf0ade6600c2e3af217e4b2203ea53e13d7cca543872042e95b334b8698d1b328971c24988cdc57c3b239702db9e6a33faae9e6478be0f4fb659a7
6
+ metadata.gz: 21eea9fe929b0bb2176b83ef0f547912bd2824aa3fbc28a4757a9e01cbb19ad56d7b9f658482318ee65f7c57d587d98c47abc74eae87127bd33375af46973763
7
+ data.tar.gz: 503ce18f29dc4a0bd9f4263cbd09b7f314aaf2bc3a5e95fba63b5ff1c2ec0c9193c90d59ab3625c9e77b03d659da3dd67bceabb7ed56d740491475361807f535
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- neetodeploy (1.1.10)
4
+ neetodeploy (1.1.11)
5
5
  colorize
6
6
  dotenv (~> 2.8.1)
7
7
  httparty (~> 0.21.0)
data/exe/console CHANGED
Binary file
@@ -9,13 +9,13 @@ module NeetoDeploy
9
9
  module Addon
10
10
  class Commands < Thor
11
11
  desc "info", "Get addon informations"
12
- option :addon_name, type: :string, aliases: "-n", required: true, desc: "Addon name"
12
+ option :addon, type: :string, aliases: "-n", required: true, desc: "Addon name"
13
13
  def info
14
14
  Info.new(options).run
15
15
  end
16
16
 
17
17
  desc "scheduled_exports_enabled", "Check whether scheduled exports is enabled for an app"
18
- option :app_name, type: :string, aliases: "-a", required: true, desc: "App name"
18
+ option :app, type: :string, aliases: "-a", required: true, desc: "App name"
19
19
  def scheduled_exports_enabled
20
20
  ScheduledExportsSettings.new(options).run
21
21
  end
@@ -16,7 +16,7 @@ module NeetoDeploy
16
16
 
17
17
  def initialize(options)
18
18
  super()
19
- @addon_name = options[:addon_name]
19
+ @addon_name = options[:addon]
20
20
  end
21
21
 
22
22
  def run
@@ -16,7 +16,7 @@ module NeetoDeploy
16
16
 
17
17
  def initialize(options)
18
18
  super()
19
- @app_name = options[:app_name]
19
+ @app_name = options[:app]
20
20
  end
21
21
 
22
22
  def run
@@ -5,80 +5,56 @@ require "thor"
5
5
  module NeetoDeploy
6
6
  class CLI
7
7
  class DynoConsoleManager < Base
8
- DYNO_CONSOLE_MANAGER_URL = "wss://neeto-deploy-lc.neetodeployapp.com"
8
+ attr_reader :addon_name, :kind
9
9
 
10
- def initialize
10
+ def initialize(addon_name)
11
11
  super()
12
- @prompt = ""
12
+ @addon_name = addon_name
13
13
  end
14
14
 
15
- def run_console
15
+ def process!
16
16
  start_spinner
17
17
  send_console_session_request
18
- ui.error(response) and return unless @response.success?
18
+ ui.error("\n#{@response.body}") and return unless @response.success?
19
19
 
20
- send_websocket_request
21
- define_websocket_blocks
20
+ start_console
21
+ connection_cleanup_callback
22
22
  end
23
23
 
24
24
  private
25
25
 
26
- def start_spinner
27
- @spinner = TTY::Spinner.new("[:spinner] Connecting to #{@instance_name}", format: :classic)
28
- @spinner.auto_spin
26
+ def console_executable_path
27
+ gem_spec = Gem::Specification.find_by_name("neetodeploy")
28
+ gem_dir = gem_spec.gem_dir
29
+ executable_path = File.join(gem_dir, "exe", "console")
29
30
  end
30
31
 
31
- def define_websocket_blocks
32
- stop_spinner = lambda do
33
- @spinner.stop unless @connection_established
34
- end
35
-
36
- cleanup = lambda do
37
- connection_cleanup
38
- end
39
-
40
- @ws.on :message do |msg|
41
- message = msg.data
42
- if message.to_s.eql?("{\"exitCode\":0,\"signal\":0}")
43
- cleanup.call
44
- exit 0
45
- end
46
- cmd = message[0]
47
- if cmd == "1"
48
- extracted_message = message.delete_prefix("1")
49
- stop_spinner.call && @connection_established = true unless extracted_message == ""
50
- @prompt = "\u001b[2K\u001b[0G#{extracted_message.split("\r\n").last}"
51
- print extracted_message
52
- end
53
- end
54
-
55
- @ws.on :open do
56
- end
32
+ def start_console
33
+ console_access_token = @response.parsed_response["console_access_token"]
34
+ pod_name = @response.parsed_response["pod_name"]
35
+ database_url = @response.parsed_response["database_url"]
36
+ container_name = @response.parsed_response["container_name"]
57
37
 
58
- @ws.on :close do |e|
59
- puts e
60
- exit 1
61
- end
38
+ execute_console(pod_name, console_access_token, container_name, kind, database_url)
39
+ end
62
40
 
63
- @ws.on :error do |e|
64
- puts e
65
- puts "MyserverBackend>> Close entered. Last error:#{$!.class}:#{$!.to_s};Module:#{$0};"
66
- $@.each { |backtrace| puts backtrace }
67
- exit 1
68
- end
41
+ def execute_console(pod_name, console_access_token, container_name, kind, database_url)
42
+ system("#{console_executable_path} -podname #{pod_name} -token #{console_access_token} -kind #{kind} -container #{container_name} -url #{database_url}")
43
+ end
69
44
 
70
- trap("SIGINT") do
71
- Thread.new { @ws.send "4" }
72
- end
45
+ def send_console_session_request
46
+ @response = send_post_request(console_session_base_url, { addon_name:, kind: })
47
+ @spinner.stop
48
+ end
73
49
 
74
- loop do
75
- sleep 0.1
76
- input = Readline.readline(@prompt, true)
77
- @ws.send "1" + input
78
- end
50
+ def connection_cleanup_callback
51
+ url = "#{console_session_base_url}/#{addon_name}"
52
+ send_delete_request(url, { pubsub_token: @pubsub_token })
79
53
  end
80
54
 
81
- def connection_cleanup
55
+ def start_spinner
56
+ @spinner = TTY::Spinner.new("Setting up dyno [:spinner]", format: :classic)
57
+ @spinner.auto_spin
82
58
  end
83
59
  end
84
60
  end
@@ -41,7 +41,8 @@ module NeetoDeploy
41
41
  @pubsub_token = @response.parsed_response["console_pubsub_token"]
42
42
  console_access_token = @response.parsed_response["console_access_token"]
43
43
  pod_name = "#{app_name}-#{@pubsub_token}-console-deployment"
44
- system("#{console_executable_path} #{pod_name} #{console_access_token}")
44
+ container_name = "#{app_name}-#{@pubsub_token}-console"
45
+ system("#{console_executable_path} -podname #{pod_name} -token #{console_access_token} -container #{container_name}")
45
46
  end
46
47
 
47
48
  def send_console_session_request
@@ -6,12 +6,11 @@ module NeetoDeploy
6
6
  class CLI
7
7
  module Pg
8
8
  class Commands < Thor
9
- # desc "cli", "Connect to postgresql console"
10
- # option :addon_name, type: :string, aliases: "-n", required: true, desc: "Addon name"
11
-
12
- # def cli
13
- # Console.new(options).run
14
- # end
9
+ desc "cli", "Connect to postgresql console"
10
+ option :addon, type: :string, aliases: "-n", required: true, desc: "Addon name"
11
+ def cli
12
+ Console.new(options[:addon]).process!
13
+ end
15
14
  end
16
15
  end
17
16
  end
@@ -12,33 +12,10 @@ module NeetoDeploy
12
12
  include Constants
13
13
  include Session
14
14
 
15
- attr_reader :addon_name
16
-
17
- def initialize(options)
18
- super()
19
- @addon_name = options[:addon_name]
20
- @instance_name = options[:addon_name]
21
- @connection_established = false
22
- end
23
-
24
- def run
25
- run_console
15
+ def initialize(addon_name)
16
+ super(addon_name)
17
+ @kind = "neetodeploy-postgresql"
26
18
  end
27
-
28
- private
29
-
30
- def send_console_session_request
31
- @response = send_post_request(console_session_base_url(addon_name), {})
32
- end
33
-
34
- def send_websocket_request
35
- console_token = @response.parsed_response["console_token"]
36
- database_url = @response.parsed_response["url"]
37
- deployment_name = @response.parsed_response["internal_name"]
38
- app_name = @response.parsed_response["app_name"]
39
-
40
- @ws = WebSocket::Client::Simple.connect "#{DYNO_CONSOLE_MANAGER_URL}/cli_console?app_name=#{app_name}&deployment_name=#{deployment_name}&console_token=#{console_token}&database_url=#{database_url}&kind=postgres"
41
- end
42
19
  end
43
20
  end
44
21
  end
@@ -4,8 +4,8 @@ module NeetoDeploy
4
4
  class CLI
5
5
  module Pg
6
6
  module Constants
7
- def console_session_base_url(addon_name)
8
- "#{NEETO_DEPLOY_CLI_API_BASE_URL}/addons/#{addon_name}/console_session"
7
+ def console_session_base_url
8
+ "#{NEETO_DEPLOY_CLI_API_BASE_URL}/addons/console_sessions"
9
9
  end
10
10
  end
11
11
  end
@@ -4,13 +4,14 @@ require "thor"
4
4
  require_relative "./set"
5
5
  require_relative "./get"
6
6
  require_relative "./reset_stats"
7
+ require_relative "./console"
7
8
 
8
9
  module NeetoDeploy
9
10
  class CLI
10
11
  module Redis
11
12
  class Commands < Thor
12
13
  desc "set", "Set redis config"
13
- option :addon_name, type: :string, aliases: "-n", required: true, desc: "Addon name"
14
+ option :addon, type: :string, aliases: "-n", required: true, desc: "Addon name"
14
15
  option :key, type: :string, aliases: "-k", required: true, desc: "CONFIG name"
15
16
  option :value, type: :string, aliases: "-v", required: true, desc: "New value for the CONFIG"
16
17
 
@@ -19,18 +20,24 @@ module NeetoDeploy
19
20
  end
20
21
 
21
22
  desc "get", "Get redis config"
22
- option :addon_name, type: :string, aliases: "-n", required: true, desc: "Addon name"
23
+ option :addon, type: :string, aliases: "-n", required: true, desc: "Addon name"
23
24
  option :key, type: :string, aliases: "-k", required: true, desc: "CONFIG name"
24
25
  def get
25
26
  Get.new(options).run
26
27
  end
27
28
 
28
29
  desc "reset-stats", "Resets the statistics of the Redis instance"
29
- option :addon_name, type: :string, aliases: "-n", required: true, desc: "Addon name"
30
+ option :addon, type: :string, aliases: "-n", required: true, desc: "Addon name"
30
31
  def reset_stats
31
32
  ResetStats.new(options).run
32
33
  end
33
34
 
35
+ desc "cli", "Connect to redis console"
36
+ option :addon, type: :string, aliases: "-n", required: true, desc: "Addon name"
37
+ def cli
38
+ Console.new(options[:addon]).process!
39
+ end
40
+
34
41
  end
35
42
  end
36
43
  end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "thor"
4
+ require_relative "../session"
5
+ require_relative "./constants"
6
+ require_relative "../dyno_console_manager"
7
+
8
+ module NeetoDeploy
9
+ class CLI
10
+ module Redis
11
+ class Console < CLI::DynoConsoleManager
12
+ include Constants
13
+ include Session
14
+
15
+ def initialize(addon_name)
16
+ super(addon_name)
17
+ @kind = "neetodeploy-redis"
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -14,6 +14,10 @@ module NeetoDeploy
14
14
  def available_configs_to_edit
15
15
  AVAILABLE_REDIS_CONFIGS_TO_EDIT
16
16
  end
17
+
18
+ def console_session_base_url
19
+ "#{NEETO_DEPLOY_CLI_API_BASE_URL}/addons/console_sessions"
20
+ end
17
21
  end
18
22
  end
19
23
  end
@@ -15,7 +15,7 @@ module NeetoDeploy
15
15
 
16
16
  def initialize(options)
17
17
  super()
18
- @addon_name = options[:addon_name]
18
+ @addon_name = options[:addon]
19
19
  @key = options[:key]
20
20
  end
21
21
 
@@ -15,7 +15,7 @@ module NeetoDeploy
15
15
 
16
16
  def initialize(options)
17
17
  super()
18
- @addon_name = options[:addon_name]
18
+ @addon_name = options[:addon]
19
19
  end
20
20
 
21
21
  def run
@@ -16,7 +16,7 @@ module NeetoDeploy
16
16
 
17
17
  def initialize(options)
18
18
  super()
19
- @addon_name = options[:addon_name]
19
+ @addon_name = options[:addon]
20
20
  @key = options[:key]
21
21
  @value = options[:value]
22
22
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module NeetoDeploy
4
- VERSION = "1.1.10"
4
+ VERSION = "1.1.11"
5
5
  CLI_API_VERSION = "v1"
6
6
  end
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.10
4
+ version: 1.1.11
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-08-07 00:00:00.000000000 Z
11
+ date: 2024-08-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dotenv
@@ -161,6 +161,7 @@ files:
161
161
  - lib/neeto_deploy/cli/pg/console.rb
162
162
  - lib/neeto_deploy/cli/pg/constants.rb
163
163
  - lib/neeto_deploy/cli/redis/commands.rb
164
+ - lib/neeto_deploy/cli/redis/console.rb
164
165
  - lib/neeto_deploy/cli/redis/constants.rb
165
166
  - lib/neeto_deploy/cli/redis/get.rb
166
167
  - lib/neeto_deploy/cli/redis/reset_stats.rb