udn 0.3.23.0.pre → 0.3.23.1

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.
data/README.md CHANGED
@@ -1,14 +1,21 @@
1
- # VMC
1
+ # UDN
2
2
 
3
- The VMware Cloud CLI. This is the command line interface to VMware's Application Platform
3
+ UDN is the command line interface to Cloudn PaaS.
4
+ This command is based on vmc.
5
+
6
+ ## Installation
7
+
8
+ $ sudo gem install udn
9
+
10
+ ## Usage
4
11
 
5
12
  _Copyright 2010-2012, VMware, Inc. Licensed under the
6
13
  MIT license, please see the LICENSE file. All rights reserved._
7
14
 
8
- Usage: vmc [options] command [<args>] [command_options]
9
- Try 'vmc help [command]' or 'vmc help options' for more information.
15
+ Usage: udn [options] command [<args>] [command_options]
16
+ Try 'udn help [command]' or 'udn help options' for more information.
10
17
 
11
- Currently available vmc commands are:
18
+ Currently available udn commands are:
12
19
 
13
20
  Getting Started
14
21
  target [url] Reports current target or sets a new target
@@ -103,11 +110,6 @@ MIT license, please see the LICENSE file. All rights reserved._
103
110
 
104
111
  ## Simple Story (for Ruby apps)
105
112
 
106
- vmc target api.cloudfoundry.com
107
- vmc login
113
+ udn login
108
114
  bundle package
109
- vmc push
110
-
111
- ## File a Bug
112
-
113
- To file a bug against Cloud Foundry Open Source and its components, sign up and use our bug tracking system: [http://cloudfoundry.atlassian.net](http://cloudfoundry.atlassian.net)
115
+ udn push
@@ -49,7 +49,7 @@ module VMC::Cli::Command
49
49
 
50
50
  def console(appname, interactive=true)
51
51
  unless defined? Caldecott
52
- display "To use `vmc rails-console', you must first install Caldecott:"
52
+ display "To use `udn rails-console', you must first install Caldecott:"
53
53
  display ""
54
54
  display "\tgem install caldecott"
55
55
  display ""
@@ -356,7 +356,7 @@ module VMC::Cli::Command
356
356
  display 'OK'.green
357
357
  restart appname if app[:state] == 'STARTED'
358
358
  else
359
- display 'OK'.green
359
+ display "Can't find specific environments: #{variable}".red
360
360
  end
361
361
  end
362
362
 
@@ -816,7 +816,7 @@ module VMC::Cli::Command
816
816
  display "\nApplication '#{appname}' cannot start in '#{@options[:debug]}' mode"
817
817
 
818
818
  if push
819
- display "Try 'vmc start' with one of the following modes: #{modes.inspect}"
819
+ display "Try 'udn start' with one of the following modes: #{modes.inspect}"
820
820
  else
821
821
  display "Available modes: #{modes.inspect}"
822
822
  end
@@ -2,7 +2,7 @@ module VMC::Cli::Command
2
2
 
3
3
  class Misc < Base
4
4
  def version
5
- say "vmc #{VMC::Cli::VERSION}"
5
+ say "udn #{VMC::Cli::VERSION}"
6
6
  end
7
7
 
8
8
  def target
@@ -6,8 +6,11 @@ module VMC::Cli::Command
6
6
  include VMC::Cli::ServicesHelper
7
7
  include VMC::Cli::TunnelHelper
8
8
 
9
+ CLOUDN_RDB = "cloudn_rdb"
10
+
9
11
  def services
10
12
  ss = client.services_info
13
+ css = client.cloudn_services_info
11
14
  ps = client.services
12
15
  ps.sort! {|a, b| a[:name] <=> b[:name] }
13
16
 
@@ -16,6 +19,7 @@ module VMC::Cli::Command
16
19
  return display JSON.pretty_generate(services)
17
20
  end
18
21
  display_system_services(ss)
22
+ display_cloudn_services(css)
19
23
  display_provisioned_services(ps)
20
24
  end
21
25
 
@@ -98,7 +102,7 @@ module VMC::Cli::Command
98
102
 
99
103
  def tunnel(service=nil, client_name=nil)
100
104
  unless defined? Caldecott
101
- display "To use `vmc tunnel', you must first install Caldecott:"
105
+ display "To use `udn tunnel', you must first install Caldecott:"
102
106
  display ""
103
107
  display "\tgem install caldecott"
104
108
  display ""
@@ -179,36 +183,32 @@ module VMC::Cli::Command
179
183
  else
180
184
  wait_for_tunnel_start(port)
181
185
  unless start_local_prog(clients, client_name, conn_info, port)
182
- err "'#{client_name}' execution failed; is it in your $PATH?"
186
+ err '\'#{client_name}\' execution failed; is it in your PATH?'
183
187
  end
184
188
  end
185
189
  end
186
190
 
187
- def register_service(service=nil, instance=nil, name=nil)
191
+ def register_service(service=nil, service_instance=nil)
188
192
  service = ask_service unless service
189
- instance = ask_instance(service) unless instance
190
-
191
- name = @options[:name] unless name
192
- unless name
193
- name = random_service_name(service)
194
- picked_name = true
195
- end
193
+ service_instance = ask_service_instance(service) unless service_instance
196
194
 
197
195
  options = {}
198
- if service == 'cloudnrdb'
199
- options = ask_cloudn_rdb(instance, options)
196
+ if service == CLOUDN_RDB
197
+ options = ask_cloudn_rdb(service_instance, options)
200
198
  end
201
199
 
202
- register_service_banner(service, instance, name, options, picked_name)
200
+ name = "#{service_instance}-#{options[:database]}"
201
+
202
+ register_service_banner(service, service_instance, name, options)
203
203
  end
204
204
 
205
205
  def ask_service
206
- services = client.external_services_info
207
- err 'No external services available to register' if services.empty?
206
+ services = client.cloudn_services_info
207
+ err 'No cloudn services available to register' if services.empty?
208
208
  service = ask(
209
209
  "Which service would you like to register?",
210
210
  { :indexed => true,
211
- :choices =>
211
+ :choices =>
212
212
  services.values.collect { |type|
213
213
  type.keys.collect(&:to_s)
214
214
  }.flatten
@@ -216,29 +216,29 @@ module VMC::Cli::Command
216
216
  )
217
217
  end
218
218
 
219
- def ask_instance(service)
220
- instances = client.external_service_instances(service).collect {|item|
219
+ def ask_service_instance(service)
220
+ service_instances = client.cloudn_service_instances(service).collect {|item|
221
221
  item[:name]
222
222
  }
223
- err "No instance in your #{service}" if instances.empty?
223
+ err "No instance in your #{service}" if service_instances.empty?
224
224
 
225
- instance = ask(
225
+ service_instance = ask(
226
226
  "Which instance would you like to register?",
227
227
  { :indexed => true,
228
- :choices => instances
228
+ :choices => service_instances
229
229
  }
230
230
  )
231
231
  end
232
232
 
233
- def ask_cloudn_rdb(instance, options)
233
+ def ask_cloudn_rdb(service_instance, options)
234
234
  options[:credentials] = {}
235
235
  options[:credentials][:MasterUsername] = @options[:MasterUsername] || ask("Master Username")
236
- options[:credentials][:MasterUserPassword] = @options[:MasterUserPassword] || ask("Master Password")
236
+ options[:credentials][:MasterUserPassword] = @options[:MasterUserPassword] || ask("Master Password", :echo => "*")
237
237
 
238
- databases = client.rdb_databases("cloudnrdb", instance, options[:credentials])
238
+ databases = client.rdb_databases(CLOUDN_RDB, service_instance, options[:credentials])
239
239
  err "No database in your Cloudn RDB instance" unless databases[:properties][:databases][:unregistered]
240
240
  if @options[:DBName]
241
- err "No such unregistered database in your Cloudn RDB instance" unless options[:properties][:databases][:unregistered].include?(@options[:DBName])
241
+ err "No such unregistered database in your Cloudn RDB instance" unless databases[:properties][:databases][:unregistered].include?(@options[:DBName])
242
242
  options[:database] = @options[:DBName]
243
243
  else
244
244
  options[:database] = ask(
@@ -7,7 +7,7 @@ require 'json/pure'
7
7
  module VMC::Cli
8
8
  class Config
9
9
 
10
- DEFAULT_TARGET = 'api.vcap.me'
10
+ DEFAULT_TARGET = 'api.cloudnpaas.com'
11
11
 
12
12
  TARGET_FILE = '~/.udn_target'
13
13
  TOKEN_FILE = '~/.udn_token'
@@ -168,11 +168,11 @@ class VMC::Cli::Runner
168
168
  case verb
169
169
 
170
170
  when 'version'
171
- usage('vmc version')
171
+ usage('udn version')
172
172
  set_cmd(:misc, :version)
173
173
 
174
174
  when 'target'
175
- usage('vmc target [url] [--url]')
175
+ usage('udn target [url] [--url]')
176
176
  if @args.size == 1
177
177
  set_cmd(:misc, :set_target, 1)
178
178
  else
@@ -180,31 +180,31 @@ class VMC::Cli::Runner
180
180
  end
181
181
 
182
182
  when 'targets'
183
- usage('vmc targets')
183
+ usage('udn targets')
184
184
  set_cmd(:misc, :targets)
185
185
 
186
186
  when 'tokens'
187
- usage('vmc tokens')
187
+ usage('udn tokens')
188
188
  set_cmd(:misc, :tokens)
189
189
 
190
190
  when 'info'
191
- usage('vmc info')
191
+ usage('udn info')
192
192
  set_cmd(:misc, :info)
193
193
 
194
194
  when 'runtimes'
195
- usage('vmc runtimes')
195
+ usage('udn runtimes')
196
196
  set_cmd(:misc, :runtimes)
197
197
 
198
198
  when 'frameworks'
199
- usage('vmc frameworks')
199
+ usage('udn frameworks')
200
200
  set_cmd(:misc, :frameworks)
201
201
 
202
202
  when 'user'
203
- usage('vmc user')
203
+ usage('udn user')
204
204
  set_cmd(:user, :info)
205
205
 
206
206
  when 'login'
207
- usage('vmc login [email] [--email EMAIL] [--passwd PASS]')
207
+ usage('udn login [email] [--email EMAIL] [--passwd PASS]')
208
208
  if @args.size == 1
209
209
  set_cmd(:user, :login, 1)
210
210
  else
@@ -212,11 +212,11 @@ class VMC::Cli::Runner
212
212
  end
213
213
 
214
214
  when 'logout'
215
- usage('vmc logout')
215
+ usage('udn logout')
216
216
  set_cmd(:user, :logout)
217
217
 
218
218
  when 'passwd'
219
- usage('vmc passwd')
219
+ usage('udn passwd')
220
220
  if @args.size == 1
221
221
  set_cmd(:user, :change_password, 1)
222
222
  else
@@ -224,7 +224,7 @@ class VMC::Cli::Runner
224
224
  end
225
225
 
226
226
  when 'add-user', 'add_user', 'create_user', 'create-user', 'register'
227
- usage('vmc add-user [user] [--email EMAIL] [--passwd PASS]')
227
+ usage('udn add-user [user] [--email EMAIL] [--passwd PASS]')
228
228
  if @args.size == 1
229
229
  set_cmd(:admin, :add_user, 1)
230
230
  else
@@ -232,35 +232,35 @@ class VMC::Cli::Runner
232
232
  end
233
233
 
234
234
  when 'delete-user', 'delete_user', 'unregister'
235
- usage('vmc delete-user <user>')
235
+ usage('udn delete-user <user>')
236
236
  set_cmd(:admin, :delete_user, 1)
237
237
 
238
238
  when 'users'
239
- usage('vmc users')
239
+ usage('udn users')
240
240
  set_cmd(:admin, :users)
241
241
 
242
242
  when 'apps'
243
- usage('vmc apps')
243
+ usage('udn apps')
244
244
  set_cmd(:apps, :apps)
245
245
 
246
246
  when 'list'
247
- usage('vmc list')
247
+ usage('udn list')
248
248
  set_cmd(:apps, :list)
249
249
 
250
250
  when 'start'
251
- usage('vmc start <appname>')
251
+ usage('udn start <appname>')
252
252
  set_cmd(:apps, :start, @args.size == 1 ? 1 : 0)
253
253
 
254
254
  when 'stop'
255
- usage('vmc stop <appname>')
255
+ usage('udn stop <appname>')
256
256
  set_cmd(:apps, :stop, @args.size == 1 ? 1 : 0)
257
257
 
258
258
  when 'restart'
259
- usage('vmc restart <appname>')
259
+ usage('udn restart <appname>')
260
260
  set_cmd(:apps, :restart, @args.size == 1 ? 1 : 0)
261
261
 
262
262
  when 'mem'
263
- usage('vmc mem <appname> [memsize]')
263
+ usage('udn mem <appname> [memsize]')
264
264
  if @args.size == 2
265
265
  set_cmd(:apps, :mem, 2)
266
266
  else
@@ -268,19 +268,19 @@ class VMC::Cli::Runner
268
268
  end
269
269
 
270
270
  when 'stats'
271
- usage('vmc stats <appname>')
271
+ usage('udn stats <appname>')
272
272
  set_cmd(:apps, :stats, @args.size == 1 ? 1 : 0)
273
273
 
274
274
  when 'map'
275
- usage('vmc map <appname> <url>')
275
+ usage('udn map <appname> <url>')
276
276
  set_cmd(:apps, :map, 2)
277
277
 
278
278
  when 'unmap'
279
- usage('vmc unmap <appname> <url>')
279
+ usage('udn unmap <appname> <url>')
280
280
  set_cmd(:apps, :unmap, 2)
281
281
 
282
282
  when 'delete'
283
- usage('vmc delete <appname>')
283
+ usage('udn delete <appname>')
284
284
  if @options[:all] && @args.size == 0
285
285
  set_cmd(:apps, :delete)
286
286
  else
@@ -288,7 +288,7 @@ class VMC::Cli::Runner
288
288
  end
289
289
 
290
290
  when 'files'
291
- usage('vmc files <appname> [path] [--instance N] [--all] [--prefix]')
291
+ usage('udn files <appname> [path] [--instance N] [--all] [--prefix]')
292
292
  if @args.size == 1
293
293
  set_cmd(:apps, :files, 1)
294
294
  else
@@ -296,28 +296,28 @@ class VMC::Cli::Runner
296
296
  end
297
297
 
298
298
  when 'logs'
299
- usage('vmc logs <appname> [--instance N] [--all] [--prefix]')
299
+ usage('udn logs <appname> [--instance N] [--all] [--prefix]')
300
300
  set_cmd(:apps, :logs, 1)
301
301
 
302
302
  when 'instances', 'scale'
303
303
  if @args.size > 1
304
- usage('vmc instances <appname> <num|delta>')
304
+ usage('udn instances <appname> <num|delta>')
305
305
  set_cmd(:apps, :instances, 2)
306
306
  else
307
- usage('vmc instances <appname>')
307
+ usage('udn instances <appname>')
308
308
  set_cmd(:apps, :instances, 1)
309
309
  end
310
310
 
311
311
  when 'crashes'
312
- usage('vmc crashes <appname>')
312
+ usage('udn crashes <appname>')
313
313
  set_cmd(:apps, :crashes, 1)
314
314
 
315
315
  when 'crashlogs'
316
- usage('vmc crashlogs <appname>')
316
+ usage('udn crashlogs <appname>')
317
317
  set_cmd(:apps, :crashlogs, 1)
318
318
 
319
319
  when 'push'
320
- usage('vmc push [appname] [--path PATH] [--url URL] [--instances N] [--mem] [--runtime RUNTIME] [--no-start]')
320
+ usage('udn push [appname] [--path PATH] [--url URL] [--instances N] [--mem] [--runtime RUNTIME] [--no-start]')
321
321
  if @args.size == 1
322
322
  set_cmd(:apps, :push, 1)
323
323
  else
@@ -325,19 +325,19 @@ class VMC::Cli::Runner
325
325
  end
326
326
 
327
327
  when 'update'
328
- usage('vmc update <appname> [--path PATH]')
328
+ usage('udn update <appname> [--path PATH]')
329
329
  set_cmd(:apps, :update, @args.size == 1 ? 1 : 0)
330
330
 
331
331
  when 'services'
332
- usage('vmc services')
332
+ usage('udn services')
333
333
  set_cmd(:services, :services)
334
334
 
335
335
  when 'env'
336
- usage('vmc env <appname>')
336
+ usage('udn env <appname>')
337
337
  set_cmd(:apps, :environment, 1)
338
338
 
339
339
  when 'env-add'
340
- usage('vmc env-add <appname> <variable[=]value>')
340
+ usage('udn env-add <appname> <variable[=]value>')
341
341
  if @args.size == 2
342
342
  set_cmd(:apps, :environment_add, 2)
343
343
  elsif @args.size == 3
@@ -345,11 +345,11 @@ class VMC::Cli::Runner
345
345
  end
346
346
 
347
347
  when 'env-del'
348
- usage('vmc env-del <appname> <variable>')
348
+ usage('udn env-del <appname> <variable>')
349
349
  set_cmd(:apps, :environment_del, 2)
350
350
 
351
351
  when 'create-service', 'create_service'
352
- usage('vmc create-service [service] [servicename] [plan] [appname] [--name servicename] [--bind appname] [--plan plan]')
352
+ usage('udn create-service [service] [servicename] [plan] [appname] [--name servicename] [--bind appname] [--plan plan]')
353
353
  set_cmd(:services, :create_service) if @args.size == 0
354
354
  set_cmd(:services, :create_service, 1) if @args.size == 1
355
355
  set_cmd(:services, :create_service, 2) if @args.size == 2
@@ -357,15 +357,13 @@ class VMC::Cli::Runner
357
357
  set_cmd(:services, :create_service, 4) if @args.size == 4
358
358
 
359
359
  when 'register-service', 'register_service'
360
- usage('vmc register-service [external] [type] [credentials] [appname] [--name servicename] [--bind appname] [--plan plan]')
360
+ usage( 'register-service [type] [instanceid] [--MasterUsername masterusername] [--MasterUserPassword masteruserpassword] [--DBName DBName]')
361
361
  set_cmd(:services, :register_service) if @args.size == 0
362
362
  set_cmd(:services, :register_service, 1) if @args.size == 1
363
363
  set_cmd(:services, :register_service, 2) if @args.size == 2
364
- set_cmd(:services, :register_service, 3) if @args.size == 3
365
- set_cmd(:services, :register_service, 4) if @args.size == 4
366
364
 
367
365
  when 'delete-service', 'delete_service'
368
- usage('vmc delete-service <service>')
366
+ usage('udn delete-service <service>')
369
367
  if @args.size == 1
370
368
  set_cmd(:services, :delete_service, 1)
371
369
  else
@@ -373,23 +371,23 @@ class VMC::Cli::Runner
373
371
  end
374
372
 
375
373
  when 'bind-service', 'bind_service'
376
- usage('vmc bind-service <servicename> <appname>')
374
+ usage('udn bind-service <servicename> <appname>')
377
375
  set_cmd(:services, :bind_service, 2)
378
376
 
379
377
  when 'unbind-service', 'unbind_service'
380
- usage('vmc unbind-service <servicename> <appname>')
378
+ usage('udn unbind-service <servicename> <appname>')
381
379
  set_cmd(:services, :unbind_service, 2)
382
380
 
383
381
  when 'clone-services'
384
- usage('vmc clone-services <src-app> <dest-app>')
382
+ usage('udn clone-services <src-app> <dest-app>')
385
383
  set_cmd(:services, :clone_services, 2)
386
384
 
387
385
  when 'aliases'
388
- usage('vmc aliases')
386
+ usage('udn aliases')
389
387
  set_cmd(:misc, :aliases)
390
388
 
391
389
  when 'alias'
392
- usage('vmc alias <alias[=]command>')
390
+ usage('udn alias <alias[=]command>')
393
391
  if @args.size == 1
394
392
  set_cmd(:misc, :alias, 1)
395
393
  elsif @args.size == 2
@@ -397,21 +395,21 @@ class VMC::Cli::Runner
397
395
  end
398
396
 
399
397
  when 'unalias'
400
- usage('vmc unalias <alias>')
398
+ usage('udn unalias <alias>')
401
399
  set_cmd(:misc, :unalias, 1)
402
400
 
403
401
  when 'tunnel'
404
- usage('vmc tunnel [servicename] [clientcmd] [--port port]')
402
+ usage('udn tunnel [servicename] [clientcmd] [--port port]')
405
403
  set_cmd(:services, :tunnel, 0) if @args.size == 0
406
404
  set_cmd(:services, :tunnel, 1) if @args.size == 1
407
405
  set_cmd(:services, :tunnel, 2) if @args.size == 2
408
406
 
409
407
  when 'rails-console'
410
- usage('vmc rails-console <appname>')
408
+ usage('udn rails-console <appname>')
411
409
  set_cmd(:apps, :console, 1)
412
410
 
413
411
  when 'micro'
414
- usage('vmc micro <online|offline|status> [--password password] [--save] [--vmx file] [--vmrun executable]')
412
+ usage('udn micro <online|offline|status> [--password password] [--save] [--vmx file] [--vmrun executable]')
415
413
  if %w[online offline status].include?(@args[0])
416
414
  set_cmd(:micro, @args[0].to_sym, 1)
417
415
  end
@@ -431,16 +429,16 @@ class VMC::Cli::Runner
431
429
  parse_options!
432
430
 
433
431
  when 'manifest'
434
- usage('vmc manifest')
432
+ usage('udn manifest')
435
433
  set_cmd(:manifest, :edit)
436
434
 
437
435
  when 'extend-manifest'
438
- usage('vmc extend-manifest')
436
+ usage('udn extend-manifest')
439
437
  set_cmd(:manifest, :extend, 1)
440
438
 
441
439
  else
442
440
  if verb
443
- display "vmc: Unknown command [#{verb}]"
441
+ display "udn: Unknown command [#{verb}]"
444
442
  display basic_usage
445
443
  exit(false)
446
444
  end
@@ -3,11 +3,19 @@ module VMC::Cli
3
3
  module ServicesHelper
4
4
  def display_system_services(services=nil)
5
5
  services ||= client.services_info
6
-
7
6
  display "\n============== System Services ==============\n\n"
8
-
9
7
  return display "No system services available" if services.empty?
8
+ display_services_table(services)
9
+ end
10
10
 
11
+ def display_cloudn_services(services=nil)
12
+ services ||= client.cloudn_services_info
13
+ display "\n============== Cloudn Services ==============\n\n"
14
+ return display "No cloudn services available" if services.empty?
15
+ display_services_table(services)
16
+ end
17
+
18
+ def display_services_table(services)
11
19
  displayed_services = []
12
20
  services.each do |service_type, value|
13
21
  value.each do |vendor, version|
@@ -73,8 +81,8 @@ module VMC::Cli
73
81
  display 'OK'.green
74
82
  end
75
83
 
76
- def register_service_banner(service, instance, name, options, display_name=false)
77
- sn = " [#{name}]" if display_name
84
+ def register_service_banner(service, instance, name, options)
85
+ sn = " [#{name}]"
78
86
  display "Register Service#{sn}: ", false
79
87
  client.register_service(service, instance, name, options)
80
88
  display 'OK'.green
@@ -1,8 +1,8 @@
1
1
  class VMC::Cli::Runner
2
2
 
3
3
  def basic_usage
4
- "Usage: vmc [options] command [<args>] [command_options]\n" +
5
- "Try 'vmc help [command]' or 'vmc help options' for more information."
4
+ "Usage: udn [options] command [<args>] [command_options]\n" +
5
+ "Try 'udn help [command]' or 'udn help options' for more information."
6
6
  end
7
7
 
8
8
  def display_usage
@@ -22,7 +22,7 @@ class VMC::Cli::Runner
22
22
 
23
23
  #{basic_usage}
24
24
 
25
- Currently available vmc commands are:
25
+ Currently available udn commands are:
26
26
 
27
27
  Getting Started
28
28
  target [url] Reports current target or sets a new target
@@ -81,9 +81,8 @@ Currently available vmc commands are:
81
81
  clone-services <src-app> <dest-app> Clone service bindings from <src-app> application to <dest-app>
82
82
  tunnel <servicename> [--port] Create a local tunnel to a service
83
83
  tunnel <servicename> <clientcmd> Create a local tunnel to a service and start a local client
84
- register-service <external> Register a external service (e.g. Cloudn RDB)
85
- register-service <external> <type> Register a external service and assign it <type>
86
- register-service <external> <type> <credential> Register a external service and assign it <type> with <credentials>
84
+ register-service <type> Register a cloudn service and assign it <type> (e.g. Cloudn RDB)
85
+ register-service <type> <credential> Register a cloudn service and assign it <type> with <credentials>
87
86
 
88
87
  Administration
89
88
  user Display user account information
@@ -2,6 +2,6 @@ module VMC
2
2
  module Cli
3
3
  # This version number is used as the RubyGem release version.
4
4
  # The internal VMC version number is VMC::VERSION.
5
- VERSION = '0.3.23.0.pre'
5
+ VERSION = '0.3.23.1'
6
6
  end
7
7
  end
@@ -167,42 +167,6 @@ class VMC::Client
167
167
  json_get(VMC::SERVICES_PATH)
168
168
  end
169
169
 
170
- def create_service(service, name, plan=nil)
171
- check_login_status
172
- services = services_info
173
- services ||= []
174
- service_hash = nil
175
-
176
- service = service.to_s
177
- service_plans = []
178
- default_plan = nil
179
-
180
- # FIXME!
181
- services.each do |service_type, value|
182
- value.each do |vendor, version|
183
- version.each do |version_str, service_descr|
184
- if service == service_descr[:vendor]
185
- service_plans = service_descr[:tiers].keys.map{|plan_name| plan_name.to_s} if service_descr[:tiers]
186
- default_plan = service_descr[:default_plan]
187
- service_hash = {
188
- :type => service_descr[:type], :tier => 'free',
189
- :vendor => service, :version => version_str
190
- }
191
- break
192
- end
193
- end
194
- end
195
- end
196
-
197
- raise TargetError, "Service [#{service}] is not a valid service choice" unless service_hash
198
- plan = default_plan || 'free' if plan.nil? || plan.empty?
199
- service_hash[:tier] = plan
200
- raise TargetError, "Please specify a plan in (#{service_plans.join(', ')})" if service_plans.size > 0 && (! service_plans.include? plan)
201
- service_hash[:name] = name
202
- json_post(path(VMC::SERVICES_PATH), service_hash)
203
- end
204
-
205
-
206
170
  def create_service(service, name, plan=nil)
207
171
  check_login_status
208
172
  services = services_info
@@ -264,17 +228,36 @@ class VMC::Client
264
228
  end
265
229
 
266
230
  ######################################################
267
- # External Services
231
+ # Access Logs
268
232
  ######################################################
269
233
 
270
- def external_services_info
234
+ def get_accesslog_list(name)
271
235
  check_login_status
272
- json_get(path(VMC::EXTERNAL_SERVICES_PATH))
236
+ json_get(path(VMC::APPS_PATH, name, "accesslogs.json"))
273
237
  end
274
238
 
275
- def register_service(service, instance, name, options)
239
+ def get_accesslog(name, date)
276
240
  check_login_status
277
- services = external_services_info.values.collect { |type|
241
+ begin
242
+ Date.strptime(date, "%Y-%m-%d")
243
+ rescue
244
+ raise TargetError, "Invalid date format"
245
+ end
246
+ json_get(path(VMC::APPS_PATH, name, "accesslogs", date))
247
+ end
248
+
249
+ ######################################################
250
+ # Cloudn Services
251
+ ######################################################
252
+
253
+ def cloudn_services_info
254
+ check_login_status
255
+ json_get(path(VMC::CLOUDN_SERVICES_PATH))
256
+ end
257
+
258
+ def register_service(service, service_instance, name, options)
259
+ check_login_status
260
+ services = cloudn_services_info.values.collect { |type|
278
261
  type.keys.collect(&:to_s)
279
262
  }.flatten
280
263
  services ||= []
@@ -289,18 +272,20 @@ class VMC::Client
289
272
  :options => options,
290
273
  }
291
274
 
292
- json_post(path(VMC::EXTERNAL_SERVICES_PATH, service, instance), service_hash)
275
+ json_post(path(VMC::CLOUDN_SERVICES_PATH, service, service_instance), service_hash)
293
276
  end
294
277
 
295
- def external_service_instances(service)
278
+ def cloudn_service_instances(service)
296
279
  check_login_status
297
- json_get(path(VMC::EXTERNAL_SERVICES_PATH, service))
280
+ json_get(path(VMC::CLOUDN_SERVICES_PATH, service))
298
281
  end
299
282
 
300
- def rdb_databases(service, instance, credentials)
283
+ def rdb_databases(service, service_instance, credentials)
301
284
  check_login_status
302
- json_get(path(VMC::EXTERNAL_SERVICES_PATH, service, instance),
303
- {:MasterUsername => credentials[:MasterUsername], :MasterUserPassword => credentials[:MasterUserPassword]})
285
+ headers = {
286
+ 'X-CLOUDN-SERVICE-AUTHENTICATION' => "#{credentials[:MasterUsername]}:#{credentials[:MasterUserPassword]}",
287
+ }
288
+ json_get(path(VMC::CLOUDN_SERVICES_PATH, service, service_instance), nil, headers)
304
289
  end
305
290
 
306
291
  ######################################################
@@ -411,12 +396,12 @@ class VMC::Client
411
396
  self.class.path(*args, &blk)
412
397
  end
413
398
 
414
- def json_get(url, params = nil)
399
+ def json_get(url, params = nil, headers = {})
415
400
  if params
416
401
  param = params.map {|key, value| key.to_s + "=" + value}.join("&")
417
402
  url = url + "?" + param
418
403
  end
419
- status, body, headers = http_get(url, 'application/json')
404
+ status, body, headers = http_get(url, 'application/json', headers)
420
405
  json_parse(body)
421
406
  rescue JSON::ParserError
422
407
  raise BadResponse, "Can't parse response into JSON", body
@@ -440,8 +425,8 @@ class VMC::Client
440
425
 
441
426
  # HTTP helpers
442
427
 
443
- def http_get(path, content_type=nil)
444
- request(:get, path, content_type)
428
+ def http_get(path, content_type=nil, headers={})
429
+ request(:get, path, content_type, nil, headers)
445
430
  end
446
431
 
447
432
  def http_post(path, body, content_type=nil)
@@ -11,7 +11,7 @@ module VMC
11
11
  # General Paths
12
12
  INFO_PATH = 'info'
13
13
  GLOBAL_SERVICES_PATH = ['info', 'services']
14
- EXTERNAL_SERVICES_PATH = ['external_services']
14
+ CLOUDN_SERVICES_PATH = ['cloudn_services']
15
15
  GLOBAL_RUNTIMES_PATH = ['info', 'runtimes']
16
16
  RESOURCES_PATH = 'resources'
17
17
 
@@ -18,7 +18,7 @@ module VMC::Micro::Switcher
18
18
  end
19
19
  end
20
20
 
21
- err "Micro Cloud Foundry VM initial setup needs to be completed before using 'vmc micro'" unless @vmrun.ready?
21
+ err "Micro Cloud Foundry VM initial setup needs to be completed before using 'udn micro'" unless @vmrun.ready?
22
22
  end
23
23
 
24
24
  def offline
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: udn
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.23.0.pre
5
- prerelease: 9
4
+ version: 0.3.23.1
5
+ prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - NTT Communications
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-06-11 00:00:00.000000000 Z
12
+ date: 2013-07-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: json_pure
@@ -297,9 +297,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
297
297
  required_rubygems_version: !ruby/object:Gem::Requirement
298
298
  none: false
299
299
  requirements:
300
- - - ! '>'
300
+ - - ! '>='
301
301
  - !ruby/object:Gem::Version
302
- version: 1.3.1
302
+ version: '0'
303
303
  requirements: []
304
304
  rubyforge_project:
305
305
  rubygems_version: 1.8.23