ubalo 0.28 → 0.29
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/bin/ubalo +10 -0
 - data/lib/ubalo/container_process.rb +10 -1
 - data/lib/ubalo/pod.rb +13 -6
 - data/lib/ubalo/task.rb +13 -6
 - data/lib/ubalo/version.rb +1 -1
 - metadata +16 -45
 
    
        data/bin/ubalo
    CHANGED
    
    | 
         @@ -199,6 +199,16 @@ command :run do |c| 
     | 
|
| 
       199 
199 
     | 
    
         
             
              end
         
     | 
| 
       200 
200 
     | 
    
         
             
            end
         
     | 
| 
       201 
201 
     | 
    
         | 
| 
      
 202 
     | 
    
         
            +
            desc 'SSH into as a task'
         
     | 
| 
      
 203 
     | 
    
         
            +
            command :ssh do |c|
         
     | 
| 
      
 204 
     | 
    
         
            +
              c.action do |global_options,options,args|
         
     | 
| 
      
 205 
     | 
    
         
            +
                task = pod.run(nil, nil)
         
     | 
| 
      
 206 
     | 
    
         
            +
                task.wait_for_process
         
     | 
| 
      
 207 
     | 
    
         
            +
                task.container_process.ssh
         
     | 
| 
      
 208 
     | 
    
         
            +
                task.stop!
         
     | 
| 
      
 209 
     | 
    
         
            +
              end
         
     | 
| 
      
 210 
     | 
    
         
            +
            end
         
     | 
| 
      
 211 
     | 
    
         
            +
             
     | 
| 
       202 
212 
     | 
    
         
             
            desc 'Show information about a pod'
         
     | 
| 
       203 
213 
     | 
    
         
             
            command :pod do |c|
         
     | 
| 
       204 
214 
     | 
    
         
             
              c.action do |global_options,options,args|
         
     | 
| 
         @@ -8,7 +8,7 @@ module Ubalo 
     | 
|
| 
       8 
8 
     | 
    
         
             
                  container_process
         
     | 
| 
       9 
9 
     | 
    
         
             
                end
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
       11 
     | 
    
         
            -
                attr_reader :state, :exit_type, :exit_result, :output
         
     | 
| 
      
 11 
     | 
    
         
            +
                attr_reader :state, :exit_type, :exit_result, :output, :ssh_uri
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
       13 
13 
     | 
    
         
             
                def initialize(account)
         
     | 
| 
       14 
14 
     | 
    
         
             
                  @account = account
         
     | 
| 
         @@ -22,6 +22,15 @@ module Ubalo 
     | 
|
| 
       22 
22 
     | 
    
         
             
                  @exit_type = attributes.fetch('exit_type')
         
     | 
| 
       23 
23 
     | 
    
         
             
                  @exit_result = attributes.fetch('exit_result')
         
     | 
| 
       24 
24 
     | 
    
         
             
                  @output = attributes.fetch('output')
         
     | 
| 
      
 25 
     | 
    
         
            +
                  @ssh_uri = attributes.fetch('ssh_uri')
         
     | 
| 
      
 26 
     | 
    
         
            +
                end
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
                def ssh
         
     | 
| 
      
 29 
     | 
    
         
            +
                  unless @ssh_uri
         
     | 
| 
      
 30 
     | 
    
         
            +
                    raise Ubalo::Error, "Unable to ssh: no connection information available"
         
     | 
| 
      
 31 
     | 
    
         
            +
                  end
         
     | 
| 
      
 32 
     | 
    
         
            +
                  uri = URI.parse(@ssh_uri)
         
     | 
| 
      
 33 
     | 
    
         
            +
                  system("ssh", "-o", "StrictHostKeyChecking=no", "-o", "CheckHostIp=no", "-p", uri.port.to_s, "#{uri.user}@#{uri.host}")
         
     | 
| 
       25 
34 
     | 
    
         
             
                end
         
     | 
| 
       26 
35 
     | 
    
         | 
| 
       27 
36 
     | 
    
         
             
                def tail(tailer, message)
         
     | 
    
        data/lib/ubalo/pod.rb
    CHANGED
    
    | 
         @@ -38,15 +38,22 @@ module Ubalo 
     | 
|
| 
       38 
38 
     | 
    
         
             
                end
         
     | 
| 
       39 
39 
     | 
    
         | 
| 
       40 
40 
     | 
    
         
             
                def run(argv, arg)
         
     | 
| 
       41 
     | 
    
         
            -
                  if argv.empty?
         
     | 
| 
      
 41 
     | 
    
         
            +
                  if argv && argv.empty?
         
     | 
| 
       42 
42 
     | 
    
         
             
                    raise Ubalo::Error, "Specify the command to run"
         
     | 
| 
       43 
43 
     | 
    
         
             
                  end
         
     | 
| 
       44 
44 
     | 
    
         | 
| 
       45 
     | 
    
         
            -
                  params = {
         
     | 
| 
       46 
     | 
    
         
            -
             
     | 
| 
       47 
     | 
    
         
            -
             
     | 
| 
       48 
     | 
    
         
            -
                     
     | 
| 
       49 
     | 
    
         
            -
             
     | 
| 
      
 45 
     | 
    
         
            +
                  params = {}
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
                  if arg
         
     | 
| 
      
 48 
     | 
    
         
            +
                    params.merge!(
         
     | 
| 
      
 49 
     | 
    
         
            +
                      :arg_content_type => UbaloJSON.content_type,
         
     | 
| 
      
 50 
     | 
    
         
            +
                      :arg => UbaloJSON.dump(arg),
         
     | 
| 
      
 51 
     | 
    
         
            +
                    )
         
     | 
| 
      
 52 
     | 
    
         
            +
                  end
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
                  if argv
         
     | 
| 
      
 55 
     | 
    
         
            +
                    params.merge!(:argv => argv)
         
     | 
| 
      
 56 
     | 
    
         
            +
                  end
         
     | 
| 
       50 
57 
     | 
    
         
             
                  task = @account.task_from_json(request(:post, "/tasks", :params => params))
         
     | 
| 
       51 
58 
     | 
    
         | 
| 
       52 
59 
     | 
    
         
             
                  task
         
     | 
    
        data/lib/ubalo/task.rb
    CHANGED
    
    | 
         @@ -29,11 +29,7 @@ module Ubalo 
     | 
|
| 
       29 
29 
     | 
    
         
             
                def tail_process
         
     | 
| 
       30 
30 
     | 
    
         
             
                  tailer = Ubalo::TimedTailer.new(logger)
         
     | 
| 
       31 
31 
     | 
    
         | 
| 
       32 
     | 
    
         
            -
                   
     | 
| 
       33 
     | 
    
         
            -
                    tailer.update("Starting...")
         
     | 
| 
       34 
     | 
    
         
            -
                    refresh!
         
     | 
| 
       35 
     | 
    
         
            -
                    container_process
         
     | 
| 
       36 
     | 
    
         
            -
                  end
         
     | 
| 
      
 32 
     | 
    
         
            +
                  wait_for_process(tailer)
         
     | 
| 
       37 
33 
     | 
    
         | 
| 
       38 
34 
     | 
    
         
             
                  container_process.tail(tailer, "Running #{label}...") do
         
     | 
| 
       39 
35 
     | 
    
         
             
                    refresh!
         
     | 
| 
         @@ -43,11 +39,20 @@ module Ubalo 
     | 
|
| 
       43 
39 
     | 
    
         
             
                  tailer.update("Completed #{label}. Exit code: #{container_process.exit_result}.\n")
         
     | 
| 
       44 
40 
     | 
    
         
             
                end
         
     | 
| 
       45 
41 
     | 
    
         | 
| 
      
 42 
     | 
    
         
            +
                def wait_for_process(tailer = nil)
         
     | 
| 
      
 43 
     | 
    
         
            +
                  logger.poll do
         
     | 
| 
      
 44 
     | 
    
         
            +
                    tailer.update("Starting...") if tailer
         
     | 
| 
      
 45 
     | 
    
         
            +
                    refresh!
         
     | 
| 
      
 46 
     | 
    
         
            +
                    container_process
         
     | 
| 
      
 47 
     | 
    
         
            +
                  end
         
     | 
| 
      
 48 
     | 
    
         
            +
                end
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
       46 
50 
     | 
    
         
             
                def stop!
         
     | 
| 
       47 
51 
     | 
    
         
             
                  tailer = Ubalo::TimedTailer.new(logger)
         
     | 
| 
       48 
52 
     | 
    
         | 
| 
       49 
53 
     | 
    
         
             
                  tailer.update("Stopping #{label}...")
         
     | 
| 
       50 
54 
     | 
    
         
             
                  request(:put, "/stop")
         
     | 
| 
      
 55 
     | 
    
         
            +
                  refresh!
         
     | 
| 
       51 
56 
     | 
    
         | 
| 
       52 
57 
     | 
    
         
             
                  logger.poll do
         
     | 
| 
       53 
58 
     | 
    
         
             
                    tailer.update("Stopping #{label}...")
         
     | 
| 
         @@ -70,7 +75,9 @@ module Ubalo 
     | 
|
| 
       70 
75 
     | 
    
         
             
                  s = ""
         
     | 
| 
       71 
76 
     | 
    
         
             
                  s << " label: #{label}\n"
         
     | 
| 
       72 
77 
     | 
    
         
             
                  s << "   pod: #{pod_name}\n"
         
     | 
| 
       73 
     | 
    
         
            -
                   
     | 
| 
      
 78 
     | 
    
         
            +
                  if argv
         
     | 
| 
      
 79 
     | 
    
         
            +
                    s << "  argv: #{pretty_argv}\n"
         
     | 
| 
      
 80 
     | 
    
         
            +
                  end
         
     | 
| 
       74 
81 
     | 
    
         
             
                  if arg?
         
     | 
| 
       75 
82 
     | 
    
         
             
                    if @arg_error
         
     | 
| 
       76 
83 
     | 
    
         
             
                      s << "! Parse error in arg: #{@arg_error.message}"
         
     | 
    
        data/lib/ubalo/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: ubalo
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: '0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: '0.29'
         
     | 
| 
       5 
5 
     | 
    
         
             
              prerelease: 
         
     | 
| 
       6 
6 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       7 
7 
     | 
    
         
             
            authors:
         
     | 
| 
         @@ -9,11 +9,11 @@ authors: 
     | 
|
| 
       9 
9 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       10 
10 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       11 
11 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       12 
     | 
    
         
            -
            date: 2012-07- 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2012-07-09 00:00:00.000000000 Z
         
     | 
| 
       13 
13 
     | 
    
         
             
            dependencies:
         
     | 
| 
       14 
14 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       15 
15 
     | 
    
         
             
              name: gli
         
     | 
| 
       16 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 16 
     | 
    
         
            +
              requirement: &70223958033980 !ruby/object:Gem::Requirement
         
     | 
| 
       17 
17 
     | 
    
         
             
                none: false
         
     | 
| 
       18 
18 
     | 
    
         
             
                requirements:
         
     | 
| 
       19 
19 
     | 
    
         
             
                - - ! '>='
         
     | 
| 
         @@ -21,15 +21,10 @@ dependencies: 
     | 
|
| 
       21 
21 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       22 
22 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       23 
23 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       24 
     | 
    
         
            -
              version_requirements:  
     | 
| 
       25 
     | 
    
         
            -
                none: false
         
     | 
| 
       26 
     | 
    
         
            -
                requirements:
         
     | 
| 
       27 
     | 
    
         
            -
                - - ! '>='
         
     | 
| 
       28 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       29 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
      
 24 
     | 
    
         
            +
              version_requirements: *70223958033980
         
     | 
| 
       30 
25 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       31 
26 
     | 
    
         
             
              name: highline
         
     | 
| 
       32 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 27 
     | 
    
         
            +
              requirement: &70223958033560 !ruby/object:Gem::Requirement
         
     | 
| 
       33 
28 
     | 
    
         
             
                none: false
         
     | 
| 
       34 
29 
     | 
    
         
             
                requirements:
         
     | 
| 
       35 
30 
     | 
    
         
             
                - - ! '>='
         
     | 
| 
         @@ -37,15 +32,10 @@ dependencies: 
     | 
|
| 
       37 
32 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       38 
33 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       39 
34 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       40 
     | 
    
         
            -
              version_requirements:  
     | 
| 
       41 
     | 
    
         
            -
                none: false
         
     | 
| 
       42 
     | 
    
         
            -
                requirements:
         
     | 
| 
       43 
     | 
    
         
            -
                - - ! '>='
         
     | 
| 
       44 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       45 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
      
 35 
     | 
    
         
            +
              version_requirements: *70223958033560
         
     | 
| 
       46 
36 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       47 
37 
     | 
    
         
             
              name: json
         
     | 
| 
       48 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 38 
     | 
    
         
            +
              requirement: &70223958033140 !ruby/object:Gem::Requirement
         
     | 
| 
       49 
39 
     | 
    
         
             
                none: false
         
     | 
| 
       50 
40 
     | 
    
         
             
                requirements:
         
     | 
| 
       51 
41 
     | 
    
         
             
                - - ! '>='
         
     | 
| 
         @@ -53,15 +43,10 @@ dependencies: 
     | 
|
| 
       53 
43 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       54 
44 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       55 
45 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       56 
     | 
    
         
            -
              version_requirements:  
     | 
| 
       57 
     | 
    
         
            -
                none: false
         
     | 
| 
       58 
     | 
    
         
            -
                requirements:
         
     | 
| 
       59 
     | 
    
         
            -
                - - ! '>='
         
     | 
| 
       60 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       61 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
      
 46 
     | 
    
         
            +
              version_requirements: *70223958033140
         
     | 
| 
       62 
47 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       63 
48 
     | 
    
         
             
              name: rest-client
         
     | 
| 
       64 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 49 
     | 
    
         
            +
              requirement: &70223958027240 !ruby/object:Gem::Requirement
         
     | 
| 
       65 
50 
     | 
    
         
             
                none: false
         
     | 
| 
       66 
51 
     | 
    
         
             
                requirements:
         
     | 
| 
       67 
52 
     | 
    
         
             
                - - ~>
         
     | 
| 
         @@ -69,15 +54,10 @@ dependencies: 
     | 
|
| 
       69 
54 
     | 
    
         
             
                    version: 1.6.3
         
     | 
| 
       70 
55 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       71 
56 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       72 
     | 
    
         
            -
              version_requirements:  
     | 
| 
       73 
     | 
    
         
            -
                none: false
         
     | 
| 
       74 
     | 
    
         
            -
                requirements:
         
     | 
| 
       75 
     | 
    
         
            -
                - - ~>
         
     | 
| 
       76 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       77 
     | 
    
         
            -
                    version: 1.6.3
         
     | 
| 
      
 57 
     | 
    
         
            +
              version_requirements: *70223958027240
         
     | 
| 
       78 
58 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       79 
59 
     | 
    
         
             
              name: archive-tar-minitar
         
     | 
| 
       80 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 60 
     | 
    
         
            +
              requirement: &70223958026680 !ruby/object:Gem::Requirement
         
     | 
| 
       81 
61 
     | 
    
         
             
                none: false
         
     | 
| 
       82 
62 
     | 
    
         
             
                requirements:
         
     | 
| 
       83 
63 
     | 
    
         
             
                - - ! '>='
         
     | 
| 
         @@ -85,15 +65,10 @@ dependencies: 
     | 
|
| 
       85 
65 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       86 
66 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       87 
67 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       88 
     | 
    
         
            -
              version_requirements:  
     | 
| 
       89 
     | 
    
         
            -
                none: false
         
     | 
| 
       90 
     | 
    
         
            -
                requirements:
         
     | 
| 
       91 
     | 
    
         
            -
                - - ! '>='
         
     | 
| 
       92 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       93 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
      
 68 
     | 
    
         
            +
              version_requirements: *70223958026680
         
     | 
| 
       94 
69 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       95 
70 
     | 
    
         
             
              name: launchy
         
     | 
| 
       96 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 71 
     | 
    
         
            +
              requirement: &70223958026100 !ruby/object:Gem::Requirement
         
     | 
| 
       97 
72 
     | 
    
         
             
                none: false
         
     | 
| 
       98 
73 
     | 
    
         
             
                requirements:
         
     | 
| 
       99 
74 
     | 
    
         
             
                - - ! '>='
         
     | 
| 
         @@ -101,12 +76,7 @@ dependencies: 
     | 
|
| 
       101 
76 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       102 
77 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       103 
78 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       104 
     | 
    
         
            -
              version_requirements:  
     | 
| 
       105 
     | 
    
         
            -
                none: false
         
     | 
| 
       106 
     | 
    
         
            -
                requirements:
         
     | 
| 
       107 
     | 
    
         
            -
                - - ! '>='
         
     | 
| 
       108 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       109 
     | 
    
         
            -
                    version: '0'
         
     | 
| 
      
 79 
     | 
    
         
            +
              version_requirements: *70223958026100
         
     | 
| 
       110 
80 
     | 
    
         
             
            description: CLI and API client for Ubalo
         
     | 
| 
       111 
81 
     | 
    
         
             
            email: dev@ubalo.com
         
     | 
| 
       112 
82 
     | 
    
         
             
            executables:
         
     | 
| 
         @@ -147,8 +117,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       147 
117 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       148 
118 
     | 
    
         
             
            requirements: []
         
     | 
| 
       149 
119 
     | 
    
         
             
            rubyforge_project: 
         
     | 
| 
       150 
     | 
    
         
            -
            rubygems_version: 1.8. 
     | 
| 
      
 120 
     | 
    
         
            +
            rubygems_version: 1.8.11
         
     | 
| 
       151 
121 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       152 
122 
     | 
    
         
             
            specification_version: 3
         
     | 
| 
       153 
123 
     | 
    
         
             
            summary: CLI and API client for Ubalo
         
     | 
| 
       154 
124 
     | 
    
         
             
            test_files: []
         
     | 
| 
      
 125 
     | 
    
         
            +
            has_rdoc: 
         
     |