nex_client 0.9.0 → 0.10.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3837e3133c42a8c3735aae86123e048b5ec939d0
4
- data.tar.gz: 2942fc4186c219f2d5759528bad9d14ed8d12d02
3
+ metadata.gz: 3d9e6166df47119dad5f9ed37162f90dc09fed76
4
+ data.tar.gz: ba61368242bbc4c1226dfe31c7e0c1b9252134ac
5
5
  SHA512:
6
- metadata.gz: 68749c7e6061043bc4671add57f9d9cd4630cfa66df639b5332e318c1ed49e8779042f6bea0f1328fbff77780d10afd7caba75283578048feb2f7ce5a034f899
7
- data.tar.gz: 28b49d85667fcde6ed8e08d036e601417aebac98ccd00a5c9ffb22c28f7c7f4bfe63475875b31c03c505cad5e8c8a7b1b22a0021bf38f0e82dfb25f06d5efe82
6
+ metadata.gz: c3f09ff9d2cff8c5bda7c140f2f2b5bca6eab183948dc1835ee83c211e4742717ae0b314e236884dd68ca501489816433aad2044bc24ab980d357c0d1e3c0079
7
+ data.tar.gz: 438a36987ec311f99257200e643d389129397565fe0e67bdb80e3b179a8e9bb14fa37641831721c0c675b4fbee942bc4495bd55cf80a51881f5bf1e6fc5ad50e
@@ -36,6 +36,7 @@ module NexClient
36
36
  c.description = 'Create addons for your apps. Available addons: mysql | redis | mongo26'
37
37
  c.example 'create mysql addon for myapp', 'nex-cli addons:create mysql myapp'
38
38
  c.example 'create redis addon for myapp', 'nex-cli addons:create redis myapp'
39
+ c.option '--size SIZE', Integer, 'specify container size (default: 2, min: 1, max: 20). Container will have N shares of CPU and N*128M of memory.'
39
40
  c.action do |args, options|
40
41
  NexClient::Commands::Addons.create(args,options)
41
42
  end
@@ -119,10 +120,12 @@ module NexClient
119
120
  c.syntax = 'nex-cli apps:create DOCKER_IMAGE[:tag] [options]'
120
121
  c.summary = 'Create apps'
121
122
  c.description = 'Create new docker applications'
122
- c.example 'create new rails application', 'nex-cli apps:create rails'
123
+ c.example 'create new web-ruby application', 'nex-cli apps:create maestrano/web-ruby'
124
+ c.example 'create new web-ruby application with increased container size', 'nex-cli apps:create maestrano/web-ruby --size 8'
123
125
  c.option '--env MYVAR=value,MYVAR2=value,...', Array, 'comma separated list of env variables'
124
126
  c.option '--env-file FILE', String, 'newline separated list of env variables (MYVAR=1) or YAML file'
125
127
  c.option '--no-ssl', 'disable SSL support (enabled by default)'
128
+ c.option '--size SIZE', Integer, 'specify container size (default: 2, min: 1, max: 20). Container will have N shares of CPU and N*128M of memory.'
126
129
  c.option '--storage', 'enable persistent storage (/!\ only one node allowed)'
127
130
  c.option '--owner ORGANIZATION_HANDLE', 'specify an organisation as owner (organization admin only)'
128
131
  c.action do |args, options|
@@ -229,6 +232,17 @@ module NexClient
229
232
  end
230
233
  end
231
234
 
235
+ command :'apps:update' do |c|
236
+ c.syntax = 'nex-cli apps:update APP_NAME [options]'
237
+ c.summary = 'Update apps settings'
238
+ c.description = 'Update application settings'
239
+ c.example 'change container size to 4', 'nex-cli apps:update myapp --size 4'
240
+ c.option '--size SIZE', Integer, 'change container size (default: 2, min: 1, max: 20). Container will have N shares of CPU and N*128M of memory.'
241
+ c.action do |args, options|
242
+ NexClient::Commands::Apps.update(args,options)
243
+ end
244
+ end
245
+
232
246
  command :'apps:vars' do |c|
233
247
  c.syntax = 'nex-cli apps:vars APP_NAME [options]'
234
248
  c.summary = 'Manage app environment variables'
@@ -6,7 +6,7 @@ module NexClient
6
6
 
7
7
  SCALING_DIRECTIONS = [:up,:down]
8
8
  ADDONS_TITLE = "Addons".colorize(:red)
9
- ADDONS_HEADERS = ['id','name','status','service','nodes','app'].map(&:upcase)
9
+ ADDONS_HEADERS = ['name','status','service','size','nodes','app'].map(&:upcase)
10
10
 
11
11
  def self.list(args,opts)
12
12
  filters = {}
@@ -71,7 +71,12 @@ module NexClient
71
71
  return false
72
72
  end
73
73
 
74
- addon = NexClient::Addon.new(service: svc_name)
74
+ # Attributes
75
+ attrs = {}
76
+ attrs[:service] = svc_name
77
+ attrs[:container_size] = opts.size if opts.size.present?
78
+
79
+ addon = NexClient::Addon.new(attrs)
75
80
  addon.relationships.attributes = { app: { data: { type: 'apps', id: app.id } } }
76
81
  addon.save
77
82
 
@@ -149,10 +154,10 @@ module NexClient
149
154
  app = self.format_app(record)
150
155
  node_count = self.format_node_count(record)
151
156
  [
152
- record.id,
153
157
  record.name,
154
158
  record.status,
155
159
  record.service,
160
+ record.container_size,
156
161
  node_count,
157
162
  app
158
163
  ]
@@ -8,7 +8,7 @@ module NexClient
8
8
 
9
9
  SCALING_DIRECTIONS = [:up,:down]
10
10
  APPS_TITLE = "App Details".colorize(:green)
11
- APPS_HEADERS = ['id','name','status','image','ssl','storage','preferred region','nodes','owner'].map(&:upcase)
11
+ APPS_HEADERS = ['name','status','image','ssl','storage','preferred region','size','nodes','owner'].map(&:upcase)
12
12
 
13
13
  VARS_TITLE = "Environment Variables".colorize(:blue)
14
14
  VARS_HEADERS = ['key','value'].map(&:upcase)
@@ -98,6 +98,7 @@ module NexClient
98
98
  # Meta attributes
99
99
  attrs[:ssl_enabled] = !opts.no_ssl if opts.no_ssl.present?
100
100
  attrs[:persistent_storage] = opts.storage if opts.storage.present?
101
+ attrs[:container_size] = opts.size if opts.size.present?
101
102
 
102
103
  # Env variables via command line
103
104
  if opts.env.present?
@@ -142,6 +143,27 @@ module NexClient
142
143
  self.display_apps(NexClient::App.includes(:owner).find(e.id).first)
143
144
  end
144
145
 
146
+ def self.update(args,opts)
147
+ name = args.first
148
+ e = NexClient::App.find(name: name).first
149
+
150
+ # Display error
151
+ unless e
152
+ error("Error! Could not find app: #{name}")
153
+ return false
154
+ end
155
+
156
+ # Attributes
157
+ attrs = {}
158
+ attrs[:container_size] = opts.size if opts.size.present?
159
+
160
+ # Update
161
+ e.update_attributes(attrs)
162
+
163
+ # Display app
164
+ self.display_apps(NexClient::App.includes(:owner).find(e.id).first)
165
+ end
166
+
145
167
  def self.destroy(args,opts)
146
168
  name = args.first
147
169
  e = NexClient::App.find(name: name).first
@@ -281,6 +303,7 @@ module NexClient
281
303
  # Update and reload the resource
282
304
  e.update_attributes(vars: vars)
283
305
  e = NexClient::App.find(e.id).first
306
+ success("Successfully updated env vars. You may want to restart your app...")
284
307
  end
285
308
 
286
309
  # Display all vars
@@ -352,13 +375,13 @@ module NexClient
352
375
  owner = self.format_owner(record)
353
376
  node_count = self.format_node_count(record)
354
377
  [
355
- record.id,
356
378
  record.name,
357
379
  record.status,
358
380
  record.image,
359
381
  record.ssl_enabled,
360
382
  record.persistent_storage,
361
383
  record.preferred_region,
384
+ record.container_size,
362
385
  node_count,
363
386
  owner
364
387
  ]
@@ -1,3 +1,3 @@
1
1
  module NexClient
2
- VERSION = '0.9.0'
2
+ VERSION = '0.10.0'
3
3
  end
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.9.0
4
+ version: 0.10.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-08-27 00:00:00.000000000 Z
11
+ date: 2016-08-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json_api_client