udn 0.3.23.0.pre → 0.3.23.1

Sign up to get free protection for your applications and to get access to all the features.
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