vmc 0.2.6 → 0.2.10

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.
@@ -35,7 +35,7 @@ module VMC::Cli::Command
35
35
  TAIL_TICKS = 25/SLEEP_TIME
36
36
  GIVEUP_TICKS = 120/SLEEP_TIME
37
37
 
38
- def start(appname)
38
+ def start(appname, push = false)
39
39
  app = client.app_info(appname)
40
40
  return display "Application '#{appname}' could not be found".red if app.nil?
41
41
  return display "Application '#{appname}' already started".yellow if app[:state] == 'STARTED'
@@ -58,7 +58,7 @@ module VMC::Cli::Command
58
58
  # Check for the existance of crashes
59
59
  display "\nError: Application [#{appname}] failed to start, logs information below.\n".red
60
60
  grab_crash_logs(appname, '0', true)
61
- if @push
61
+ if push
62
62
  display "\n"
63
63
  should_delete = ask 'Should I delete the application? (Y/n)? ' unless no_prompt
64
64
  delete_app(appname, false) unless no_prompt || should_delete.upcase == 'N'
@@ -334,6 +334,8 @@ module VMC::Cli::Command
334
334
  if appname
335
335
  err "Application '#{appname}' already exists, use update" if app_exists?(appname)
336
336
  app_checked = true
337
+ else
338
+ raise VMC::Client::AuthError unless client.logged_in?
337
339
  end
338
340
 
339
341
  # check if we have hit our app limit
@@ -427,17 +429,18 @@ module VMC::Cli::Command
427
429
  display 'OK'.green
428
430
 
429
431
  # Services check
430
- services = client.services_info
431
- unless no_prompt || @options[:noservices] || services.empty?
432
- proceed = ask("Would you like to bind any services to '#{appname}'? [yN]: ")
433
- bind_services(appname, services) if proceed.upcase == 'Y'
432
+ unless no_prompt || @options[:noservices]
433
+ services = client.services_info
434
+ unless services.empty?
435
+ proceed = ask("Would you like to bind any services to '#{appname}'? [yN]: ")
436
+ bind_services(appname, services) if proceed.upcase == 'Y'
437
+ end
434
438
  end
435
439
 
436
440
  # Stage and upload the app bits.
437
441
  upload_app_bits(appname, path)
438
442
 
439
- @push = true
440
- start(appname) unless no_start
443
+ start(appname, true) unless no_start
441
444
  end
442
445
 
443
446
  private
@@ -445,7 +448,7 @@ module VMC::Cli::Command
445
448
  def app_exists?(appname)
446
449
  app_info = client.app_info(appname)
447
450
  app_info != nil
448
- rescue
451
+ rescue VMC::Client::NotFound
449
452
  false
450
453
  end
451
454
 
@@ -511,32 +514,34 @@ module VMC::Cli::Command
511
514
 
512
515
  end
513
516
 
514
- # It's possible the CC tells us that we don't need to pack anything.
515
- # If so, exit early.
516
- if VMC::Cli::ZipUtil.get_files_to_pack(explode_dir).empty?
517
- display ' No resources need to be uploaded'
518
- display 'Push Status: ', false
519
- display 'OK'.green
520
- return
521
- end
522
-
523
517
  # Perform Packing of the upload bits here.
524
- display ' Packing application: ', false
525
- VMC::Cli::ZipUtil.pack(explode_dir, upload_file)
526
- display 'OK'.green
518
+ unless VMC::Cli::ZipUtil.get_files_to_pack(explode_dir).empty?
519
+ display ' Packing application: ', false
520
+ VMC::Cli::ZipUtil.pack(explode_dir, upload_file)
521
+ display 'OK'.green
527
522
 
528
- upload_size = File.size(upload_file);
529
- if upload_size > 1024*1024
530
- upload_size = (upload_size/(1024.0*1024.0)).round.to_s + 'M'
531
- elsif upload_size > 0
532
- upload_size = (upload_size/1024.0).round.to_s + 'K'
523
+ upload_size = File.size(upload_file);
524
+ if upload_size > 1024*1024
525
+ upload_size = (upload_size/(1024.0*1024.0)).round.to_s + 'M'
526
+ elsif upload_size > 0
527
+ upload_size = (upload_size/1024.0).round.to_s + 'K'
528
+ end
529
+ else
530
+ upload_size = '0K'
533
531
  end
532
+
534
533
  upload_str = " Uploading (#{upload_size}): "
535
534
  display upload_str, false
536
- FileWithPercentOutput.display_str = upload_str
537
- FileWithPercentOutput.upload_size = File.size(upload_file);
538
- file = FileWithPercentOutput.open(upload_file, 'rb')
535
+
536
+ unless VMC::Cli::ZipUtil.get_files_to_pack(explode_dir).empty?
537
+ FileWithPercentOutput.display_str = upload_str
538
+ FileWithPercentOutput.upload_size = File.size(upload_file);
539
+ file = FileWithPercentOutput.open(upload_file, 'rb')
540
+ end
541
+
539
542
  client.upload_app(appname, file, appcloud_resources)
543
+ display 'OK'.green if VMC::Cli::ZipUtil.get_files_to_pack(explode_dir).empty?
544
+
540
545
  display 'Push Status: ', false
541
546
  display 'OK'.green
542
547
  end
data/lib/cli/runner.rb CHANGED
@@ -90,7 +90,7 @@ class VMC::Cli::Runner
90
90
 
91
91
  def check_instances_delta!
92
92
  return unless @args
93
- instance_args = @args.select { |arg| /[-]\d+/ =~ arg } || []
93
+ instance_args = @args.select { |arg| /^[-]\d+$/ =~ arg } || []
94
94
  @args.delete_if { |arg| instance_args.include? arg}
95
95
  instance_args
96
96
  end
data/lib/cli/version.rb CHANGED
@@ -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.2.6'
5
+ VERSION = '0.2.10'
6
6
  end
7
7
  end
data/lib/vmc/client.rb CHANGED
@@ -87,12 +87,15 @@ class VMC::Client
87
87
  #FIXME, manifest should be allowed to be null, here for compatability with old cc's
88
88
  resource_manifest ||= []
89
89
  check_login_status
90
- if zipfile.is_a? File
91
- file = zipfile
92
- else
93
- file = File.new(zipfile, 'rb')
90
+ upload_data = {:_method => 'put'}
91
+ if zipfile
92
+ if zipfile.is_a? File
93
+ file = zipfile
94
+ else
95
+ file = File.new(zipfile, 'rb')
96
+ end
97
+ upload_data[:application] = file
94
98
  end
95
- upload_data = {:application => file, :_method => 'put'}
96
99
  upload_data[:resources] = resource_manifest.to_json if resource_manifest
97
100
  http_post("#{VMC::APPS_PATH}/#{name}/application", upload_data)
98
101
  end
data/lib/vmc/const.rb CHANGED
@@ -2,7 +2,7 @@ module VMC
2
2
 
3
3
  # This is the internal VMC version number, and is not necessarily
4
4
  # the same as the RubyGem version (VMC::Cli::VERSION).
5
- VERSION = '0.2.6'
5
+ VERSION = '0.2.8'
6
6
 
7
7
  # Targets
8
8
  DEFAULT_TARGET = 'http://api.cloudfoundry.com'
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: vmc
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.2.6
5
+ version: 0.2.10
6
6
  platform: ruby
7
7
  authors:
8
8
  - VMware
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-04-02 00:00:00 -05:00
13
+ date: 2011-04-03 00:00:00 -05:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency