nex_client 0.10.0 → 0.11.0
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/lib/nex_client/cli.rb +6 -1
- data/lib/nex_client/commands/addons.rb +1 -1
- data/lib/nex_client/commands/apps.rb +15 -21
- data/lib/nex_client/commands/helpers.rb +36 -1
- data/lib/nex_client/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1adedef202faa3b3708d8ddef5f23ca366e6f46b
|
4
|
+
data.tar.gz: cca86cabe36af8d1a17e5168ba70a09bc2c59723
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9e800785f3a84c6f20a84404a9e78b9f45b589e40464b3cff53c574895f5141d14349f763ba1387caca509802c9ceee05bbe69516ca6e21f702e251c972f87ec
|
7
|
+
data.tar.gz: 6f4ac9c0027199406a5a1765b3edbedd456e111d35ffeef198ded12ce099d0d6b39c85f069ecb5d512cdbf16014d6d87b62a806a16f1aabe60b5ae786b557152
|
data/lib/nex_client/cli.rb
CHANGED
@@ -111,6 +111,8 @@ module NexClient
|
|
111
111
|
c.option '--ssl', 'list all apps with SSL enabled'
|
112
112
|
c.option '--storage', 'list all apps with persistent storage'
|
113
113
|
c.option '--owner HANDLE', 'list all apps for the specified owner'
|
114
|
+
c.option '--image IMAGE', 'list the app with this image'
|
115
|
+
|
114
116
|
c.action do |args, options|
|
115
117
|
NexClient::Commands::Apps.list(args,options)
|
116
118
|
end
|
@@ -250,9 +252,12 @@ module NexClient
|
|
250
252
|
c.example 'list all env variables for myapp', 'nex-cli apps:vars myapp'
|
251
253
|
c.example 'Add env variables to myapp', 'nex-cli apps:vars myapp --add MYVAR1=VAL1,MYVAR2=VAL2'
|
252
254
|
c.example 'Delete env variables from myapp', 'nex-cli apps:vars myapp --delete MYVAR,MYVAR'
|
255
|
+
c.example 'Add env variables to myapp from file', 'nex-cli apps:vars myapp --env-file ~/myenvfile'
|
256
|
+
c.example 'Add env variables to myapp from file and prefix all vars with foo (foo_myvar)', 'nex-cli apps:vars myapp --env-file ~/myenvfile --env-prefix foo'
|
253
257
|
c.option '--add MYVAR=value,MYVAR2=value,...', Array, 'comma separated list of env variables'
|
254
258
|
c.option '--delete MYVAR,MYVAR2,...', Array, 'comma separated list of env variables'
|
255
|
-
c.option '--env-file FILE', String, 'newline separated list of env variables (MYVAR=1) or YAML file'
|
259
|
+
c.option '--env-file FILE', String, 'newline separated list of env variables (MYVAR=1) or YAML file. Note that YAML parsing is recursive.'
|
260
|
+
c.option '--env-prefix PREFIX', String, 'prefix all variables contained in the env file with the specified prefix (PREFIX_MYVAR)'
|
256
261
|
c.action do |args, options|
|
257
262
|
NexClient::Commands::Apps.manage_vars(args,options)
|
258
263
|
end
|
@@ -18,10 +18,11 @@ module NexClient
|
|
18
18
|
|
19
19
|
def self.list(args,opts)
|
20
20
|
filters = {}
|
21
|
-
filters[:status] =
|
21
|
+
filters[:status] = opts.status || ['active','restarting']
|
22
22
|
filters[:ssl_enabled] = opts.ssl if opts.ssl.present?
|
23
23
|
filters[:persistent_storage] = opts.storage if opts.storage.present?
|
24
24
|
filters[:'owner.handle'] = opts.owner || '@self'
|
25
|
+
filters[:image] = opts.image if opts.image.present?
|
25
26
|
|
26
27
|
# All option
|
27
28
|
filters = {} if opts.all
|
@@ -48,6 +49,9 @@ module NexClient
|
|
48
49
|
return false
|
49
50
|
end
|
50
51
|
|
52
|
+
# Display app id
|
53
|
+
self.display_id(e)
|
54
|
+
|
51
55
|
# Display app details
|
52
56
|
self.display_apps(e)
|
53
57
|
|
@@ -112,7 +116,7 @@ module NexClient
|
|
112
116
|
# Env variables from file
|
113
117
|
if opts.env_file.present?
|
114
118
|
attrs[:vars] ||= {}
|
115
|
-
|
119
|
+
vars_from_file(opts.env_file) do |key,val|
|
116
120
|
attrs[:vars][key] = val
|
117
121
|
end
|
118
122
|
end
|
@@ -292,7 +296,7 @@ module NexClient
|
|
292
296
|
|
293
297
|
# Add vars from file
|
294
298
|
if opts.env_file.present?
|
295
|
-
|
299
|
+
vars_from_file(opts.env_file,opts.env_prefix) do |key,val|
|
296
300
|
vars[key] = val
|
297
301
|
end
|
298
302
|
end
|
@@ -341,6 +345,14 @@ module NexClient
|
|
341
345
|
self.display_scm(e.scm)
|
342
346
|
end
|
343
347
|
|
348
|
+
def self.display_id(e)
|
349
|
+
table = Terminal::Table.new do |t|
|
350
|
+
t.add_row(['APP ID',e.id])
|
351
|
+
end
|
352
|
+
puts table
|
353
|
+
puts "\n"
|
354
|
+
end
|
355
|
+
|
344
356
|
def self.display_apps(list)
|
345
357
|
table = Terminal::Table.new title: APPS_TITLE, headings: APPS_HEADERS do |t|
|
346
358
|
[list].flatten.compact.each do |e|
|
@@ -396,24 +408,6 @@ module NexClient
|
|
396
408
|
return '-' unless record.node_count && record.max_node_count
|
397
409
|
"#{record.node_count}/#{record.max_node_count}"
|
398
410
|
end
|
399
|
-
|
400
|
-
def self.vars_from_file(file,&block)
|
401
|
-
# YAML file
|
402
|
-
if file =~ /(\.yml|\.yaml)$/
|
403
|
-
vars = YAML.load_file(file)
|
404
|
-
vars.each do |k,v|
|
405
|
-
yield(k,v)
|
406
|
-
end
|
407
|
-
else
|
408
|
-
f = File.read(file)
|
409
|
-
f.split("\n").each do |e|
|
410
|
-
line = e.strip
|
411
|
-
next if line.empty? || line.start_with?('#')
|
412
|
-
key,val = e.split('=',2)
|
413
|
-
yield(key,val)
|
414
|
-
end
|
415
|
-
end
|
416
|
-
end
|
417
411
|
end
|
418
412
|
end
|
419
413
|
end
|
@@ -42,7 +42,7 @@ module NexClient
|
|
42
42
|
end
|
43
43
|
|
44
44
|
# Get SSH details
|
45
|
-
username = me.handle
|
45
|
+
username = me.handle.downcase
|
46
46
|
pv_key = me.private_key
|
47
47
|
|
48
48
|
# Create SSH Key
|
@@ -60,6 +60,41 @@ module NexClient
|
|
60
60
|
pv_key_file.unlink # delete tmp file
|
61
61
|
end
|
62
62
|
end
|
63
|
+
|
64
|
+
# Parse plain or yaml file
|
65
|
+
def vars_from_file(file,prefix = nil,&block)
|
66
|
+
# YAML file
|
67
|
+
if file =~ /(\.yml|\.yaml)$/
|
68
|
+
vars_from_yaml_file(file,prefix,&block)
|
69
|
+
else
|
70
|
+
vars_from_plain_file(file,prefix,&block)
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
# Accept a path to a file or a hash
|
75
|
+
def vars_from_yaml_file(file,prefix = nil,&block)
|
76
|
+
vars = file.is_a?(Hash) ? file : YAML.load_file(file)
|
77
|
+
|
78
|
+
vars.each do |k,v|
|
79
|
+
key = prefix.present? ? "#{prefix}_#{k}" : k
|
80
|
+
if v.is_a?(Hash)
|
81
|
+
self.vars_from_yaml_file(v,key,&block)
|
82
|
+
else
|
83
|
+
yield(key,v)
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
def vars_from_plain_file(file,prefix = nil,&block)
|
89
|
+
f = File.read(file)
|
90
|
+
f.split("\n").each do |e|
|
91
|
+
line = e.strip
|
92
|
+
next if line.empty? || line.start_with?('#')
|
93
|
+
key,val = e.split('=',2)
|
94
|
+
key = prefix.present? ? "#{prefix}_#{key}" : key
|
95
|
+
yield(key,val)
|
96
|
+
end
|
97
|
+
end
|
63
98
|
end
|
64
99
|
end
|
65
100
|
end
|
data/lib/nex_client/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nex_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.11.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Arnaud Lachaume
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-09-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json_api_client
|