neetodeploy 1.1.3 → 1.1.4

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: 852a444976eabbc736b6ab65c2e93c980fa32281f80d0b99f870ca3c7300ffbb
4
- data.tar.gz: 5cb3f42d7f20af3186a77aef7d2c8d8bf4f0e80cebda965180dbeab17b2a7139
3
+ metadata.gz: 19af255afa80f69e3d6e3587f8917788e866cef5b296525c641415e9285d8720
4
+ data.tar.gz: d851f2610614e2f0f7d3054e72d70b770bb8deb3896fe3c70eafd9ebe70efe22
5
5
  SHA512:
6
- metadata.gz: 651e70c339bb1d36aa29d967357e13e34e1511e6af1b60e50ca6761c988bccbb31b2093589e980cd5bad3837ec842e7da61dbba5d403cf962135e4bdfef05ed4
7
- data.tar.gz: 2c2864829f60f732e64a59fcc406cb6f6a9cbef01866c7af2a101f2f1747526a126a042034054f7099bd53a0cfc6e2740b9970e5746e6a391bdf4f5757a844dc
6
+ metadata.gz: 40566c170d6f756b33446a237a670532188b5f32eac9cd8ee738b531793e9218e187efe091ec677b8730c68cc2e1ee27511e453cd5503dee7ee2f76f172fb554
7
+ data.tar.gz: efe2823e4c1aa55006f7284f69547e6292e378886bce2fd0ef214fbca559d185240dfd36ff498267c98698bd78fa055965359d05d26553187620c0c7d38c61b9
data/Gemfile.lock CHANGED
@@ -1,7 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- neetodeploy (1.1.3)
4
+ neetodeploy (1.1.4)
5
+ colorize
5
6
  dotenv (~> 2.8.1)
6
7
  httparty (~> 0.21.0)
7
8
  launchy (~> 2.5.0)
@@ -15,6 +16,7 @@ GEM
15
16
  addressable (2.8.1)
16
17
  public_suffix (>= 2.0.2, < 6.0)
17
18
  byebug (11.1.3)
19
+ colorize (1.1.0)
18
20
  dotenv (2.8.1)
19
21
  event_emitter (0.2.6)
20
22
  httparty (0.21.0)
@@ -1,45 +1,89 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require "websocket-client-simple"
3
4
  require "thor"
5
+ require "colorize"
6
+
7
+ require_relative "../session"
8
+ require_relative "./constants"
4
9
 
5
10
  module NeetoDeploy
6
11
  class CLI
7
12
  module Logs
8
13
  class Base < CLI::Base
14
+ include Constants
15
+ include Session
16
+
9
17
  attr_reader :app_name, :process_type
10
18
 
11
19
  def initialize(app_name, process_type = nil)
20
+ super()
12
21
  @app_name = app_name
13
22
  @process_type = process_type
14
23
  end
15
24
 
16
25
  def process!
17
- ws = WebSocket::Client::Simple.connect "wss://loki-gateway.neetodeployapp.com/loki/api/v1/tail?query={container=~\".*#{app_name}.*\"}&start=#{(Time.now - 300).to_i}"
26
+ stream_logs
27
+ end
18
28
 
19
- ws.on :message do |msg|
20
- begin
21
- data = JSON.parse(msg.data)
22
- puts data["streams"].map { |stream| stream["values"][0][1] }
23
- rescue JSON::ParserError => e
24
- end
25
- end
29
+ private
26
30
 
27
- ws.on :open do
31
+ def uri
32
+ "wss://connect.neetodeploy.com/cable"
28
33
  end
29
34
 
30
- ws.on :close do |e|
31
- p e
32
- exit 1
35
+ def ensure_app_access?
36
+ response = send_get_request(app_verify_access_url, { app_slug: app_name })
37
+ @ui.error(JSON[response.body]["error"]) unless response.success?
38
+ response.success?
33
39
  end
34
40
 
35
- ws.on :error do |e|
36
- p e
37
- exit 1
38
- end
41
+ def stream_logs
42
+ ws_connection = WebSocket::Client::Simple.connect(uri)
43
+ session_token = common_body[:session_token]
44
+ app_slug = @app_name
45
+ process_type = @process_type
46
+ pubsub_token = SecureRandom.hex(16)
47
+
48
+ ws_connection.on :open do
49
+ payload = {
50
+ command: "subscribe",
51
+ identifier: {
52
+ channel: "Cli::LogChannel", app_slug:, pubsub_token:, process_type:,
53
+ session_token:
54
+ }.to_json
55
+ }
56
+ ws_connection.send(payload.to_json)
57
+ end
58
+
59
+ ws_connection.on :message do |msg|
60
+ unless msg.data.empty?
61
+ parsed_msg = JSON.parse(msg.data)
62
+ if parsed_msg["type"].nil?
63
+ parsed_msg["message"]&.each do |log|
64
+ STDOUT.write "#{Time.at(log[0].to_i / 1e9).to_s.light_magenta} #{log[1]}\n"
65
+ end
66
+ elsif parsed_msg["type"] == "disconnect"
67
+ puts parsed_msg["error"].red
68
+ exit
69
+ end
70
+ end
71
+ end
72
+
73
+ ws_connection.on :close do |e|
74
+ p e unless e.nil?
75
+ exit 1
76
+ end
77
+
78
+ ws_connection.on :error do |e|
79
+ p e
80
+ puts "MyserverBackend>> Close entered. Last error:#{$!.class}:#{$!.to_s};Module:#{$0};"
81
+ $@.each { |backtrace| puts backtrace }
82
+ exit 1
83
+ end
39
84
 
40
- loop do
85
+ loop do end
41
86
  end
42
- end
43
87
  end
44
88
  end
45
89
  end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module NeetoDeploy
4
+ class CLI
5
+ module Logs
6
+ module Constants
7
+ NEETO_DEPLOY_CLI_API_ENVIRONMENT_VARIABLES_URL = "#{NEETO_DEPLOY_CLI_API_BASE_URL}/apps/access".freeze
8
+
9
+ def app_verify_access_url
10
+ NEETO_DEPLOY_CLI_API_ENVIRONMENT_VARIABLES_URL
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -33,7 +33,7 @@ module NeetoDeploy
33
33
 
34
34
  desc "logs", "Show logs"
35
35
  option :app, type: :string, aliases: "-a", required: true, desc: "App slug"
36
- option :process_type, type: :string, aliases: "-p", desc: "Process type"
36
+ option :process_type, type: :string, aliases: "-p", required: true, desc: "Process type"
37
37
  def logs
38
38
  CLI::Logs::Base.new(options[:app], options[:process_type]).process!
39
39
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module NeetoDeploy
4
- VERSION = "1.1.3"
4
+ VERSION = "1.1.4"
5
5
  CLI_API_VERSION = "v1"
6
6
  end
data/neetodeploy.gemspec CHANGED
@@ -36,6 +36,7 @@ Gem::Specification.new do |spec|
36
36
  spec.add_dependency "terminal-table", "~> 3.0.2" # for building cli table
37
37
  spec.add_dependency "thor", "~> 1.3.0" # for cli
38
38
  spec.add_dependency "websocket-client-simple"
39
+ spec.add_dependency "colorize"
39
40
 
40
41
  # To add the files from submodules
41
42
  `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.3
4
+ version: 1.1.4
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-03-29 00:00:00.000000000 Z
11
+ date: 2024-04-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dotenv
@@ -94,6 +94,20 @@ dependencies:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: colorize
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
97
111
  description: Manage neetoDeploy apps with CLI
98
112
  email:
99
113
  - subin.siby@bigbinary.com
@@ -119,6 +133,7 @@ files:
119
133
  - lib/neeto_deploy/cli/login/base.rb
120
134
  - lib/neeto_deploy/cli/login/constants.rb
121
135
  - lib/neeto_deploy/cli/logs/base.rb
136
+ - lib/neeto_deploy/cli/logs/constants.rb
122
137
  - lib/neeto_deploy/cli/redis/commands.rb
123
138
  - lib/neeto_deploy/cli/redis/constants.rb
124
139
  - lib/neeto_deploy/cli/redis/get.rb