ubalo 0.17 → 0.18

Sign up to get free protection for your applications and to get access to all the features.
data/bin/ubalo CHANGED
@@ -187,7 +187,7 @@ desc 'Show information about a pod'
187
187
  command :pod do |c|
188
188
  c.action do |global_options,options,args|
189
189
  pod.refresh!
190
- puts pod.full_printable_result
190
+ puts pod.printable_result
191
191
  end
192
192
  end
193
193
 
@@ -219,7 +219,7 @@ command :task do |c|
219
219
  task = pod.latest_task
220
220
  end
221
221
 
222
- puts task.full_printable_result
222
+ puts task.printable_result
223
223
  end
224
224
  end
225
225
 
@@ -253,7 +253,7 @@ command 'task:stop' do |c|
253
253
  task.refresh!
254
254
  task.complete?
255
255
  end
256
- puts task.full_printable_result
256
+ puts task.printable_result
257
257
  end
258
258
  end
259
259
 
@@ -16,56 +16,22 @@ module Ubalo
16
16
 
17
17
  def update_attributes(attributes)
18
18
  @state = attributes.fetch('state')
19
- @started_at = parse_datetime(attributes.fetch('started_at'))
20
- @stopped_at = parse_datetime(attributes.fetch('stopped_at'))
21
19
  @exit_type = attributes.fetch('exit_type')
22
20
  @exit_result = attributes.fetch('exit_result')
23
21
  @output = attributes.fetch('output')
24
22
  end
25
23
 
26
- def tail(running_message, final_message)
24
+ def tail(message)
27
25
  tailer = Ubalo::Tailer.new(logger)
28
- logger.poll do
26
+ tailer.poll_on(message) do
29
27
  yield
30
-
31
- message = "(#{runtime}) #{running_message}..."
32
- if completed?
33
- message << "#{final_message}. Exit status: #{exit_result}"
34
- end
35
-
36
- tailer.update(@output, message)
28
+ tailer.update(@output)
37
29
  completed?
38
30
  end
39
31
  end
40
32
 
41
- def printable_result
42
- s = ""
43
- s << "status: #{exit_result}\n"
44
- s << "runtime: #{runtime}\n"
45
-
46
- if output and output.length > 0
47
- s << "stdout/stderr:\n"
48
- s << Util.indent(output)
49
- end
50
- s
51
- end
52
-
53
33
  def completed?
54
34
  @state == 'complete'
55
35
  end
56
-
57
- def runtime
58
- if @started_at
59
- days = ((@stopped_at || DateTime.now) - @started_at)
60
- minutes, seconds = (days * 86400).divmod(60)
61
- "%d:%02d s" % [minutes, seconds]
62
- end
63
- end
64
-
65
- def parse_datetime(string)
66
- if string
67
- DateTime.parse(string)
68
- end
69
- end
70
36
  end
71
37
  end
data/lib/ubalo/pod.rb CHANGED
@@ -105,15 +105,9 @@ module Ubalo
105
105
  compilation_process
106
106
  end
107
107
 
108
- logger.puts "Compilation process output:"
109
- compilation_process.tail("Compiling #{fullname}", "compiled") do
108
+ compilation_process.tail("Waiting for #{fullname.inspect} to compile") do
110
109
  refresh!
111
110
  end
112
-
113
- logger.poll_on("Waiting for container to stop") do
114
- refresh!
115
- compiled?
116
- end
117
111
  end
118
112
 
119
113
  def delete!
@@ -129,13 +123,14 @@ module Ubalo
129
123
  s = ""
130
124
  s << " name: #{fullname}\n"
131
125
  s << " state: #{state}\n"
132
- s
133
- end
134
126
 
135
- def full_printable_result
136
- s = printable_result
137
127
  if compilation_process
138
- s << compilation_process.printable_result
128
+ s << "status: #{compilation_process.exit_result}\n"
129
+
130
+ if compilation_process.output and compilation_process.output.length > 0
131
+ s << "stdout/stderr:\n"
132
+ s << Util.indent(compilation_process.output)
133
+ end
139
134
  end
140
135
  s
141
136
  end
data/lib/ubalo/tailer.rb CHANGED
@@ -6,7 +6,16 @@ module Ubalo
6
6
  @lines = 0
7
7
  end
8
8
 
9
- def update(output, message)
9
+ def poll_on(message)
10
+ @message = message
11
+
12
+ @logger.puts "stdout/stderr: "
13
+ @logger.poll do
14
+ yield
15
+ end
16
+ end
17
+
18
+ def update(output)
10
19
  @lines.times do
11
20
  @logger.print "\e[A"
12
21
  @logger.print " " * Integer(ENV.fetch("COLUMNS", 80))
@@ -21,7 +30,7 @@ module Ubalo
21
30
  end
22
31
 
23
32
  puts ""
24
- puts message
33
+ puts @message
25
34
  end
26
35
 
27
36
  def puts(str)
data/lib/ubalo/task.rb CHANGED
@@ -32,15 +32,9 @@ module Ubalo
32
32
  container_process
33
33
  end
34
34
 
35
- puts "Task process output:"
36
- container_process.tail("Running #{label.inspect}", "completed") do
35
+ container_process.tail("Waiting for task #{label.inspect}") do
37
36
  refresh!
38
37
  end
39
-
40
- logger.poll_on("Waiting for container to stop") do
41
- refresh!
42
- complete?
43
- end
44
38
  end
45
39
 
46
40
  def stop!
@@ -72,6 +66,15 @@ module Ubalo
72
66
  s << " state: #{state}\n"
73
67
  s << " time: #{'%.1f' % elapsed_time} s\n"
74
68
 
69
+ if container_process
70
+ s << "status: #{container_process.exit_result}\n"
71
+
72
+ if container_process.output and container_process.output.length > 0
73
+ s << "stdout/stderr:\n"
74
+ s << Util.indent(container_process.output)
75
+ end
76
+ end
77
+
75
78
  if output?
76
79
  if @output_error
77
80
  s << "! Parse error in output: #{@output_error.message}"
@@ -83,14 +86,6 @@ module Ubalo
83
86
  s
84
87
  end
85
88
 
86
- def full_printable_result
87
- s = printable_result
88
- if container_process
89
- s << container_process.printable_result
90
- end
91
- s
92
- end
93
-
94
89
  def pretty_argv
95
90
  Shellwords.join(argv)
96
91
  end
data/lib/ubalo/version.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  module Ubalo
2
2
  unless const_defined?('VERSION')
3
- VERSION = "0.17"
3
+ VERSION = "0.18"
4
4
  end
5
5
 
6
6
  def self.version
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.17'
4
+ version: '0.18'
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-06-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: gli
16
- requirement: &70211396093500 !ruby/object:Gem::Requirement
16
+ requirement: &70165820405740 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70211396093500
24
+ version_requirements: *70165820405740
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: highline
27
- requirement: &70211396071860 !ruby/object:Gem::Requirement
27
+ requirement: &70165820404300 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70211396071860
35
+ version_requirements: *70165820404300
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: json
38
- requirement: &70211396068360 !ruby/object:Gem::Requirement
38
+ requirement: &70165820403040 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70211396068360
46
+ version_requirements: *70165820403040
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rest-client
49
- requirement: &70211396067300 !ruby/object:Gem::Requirement
49
+ requirement: &70165820399420 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 1.6.3
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70211396067300
57
+ version_requirements: *70165820399420
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: archive-tar-minitar
60
- requirement: &70211396066140 !ruby/object:Gem::Requirement
60
+ requirement: &70165820397840 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *70211396066140
68
+ version_requirements: *70165820397840
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: launchy
71
- requirement: &70211396065480 !ruby/object:Gem::Requirement
71
+ requirement: &70165820396300 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,7 +76,7 @@ dependencies:
76
76
  version: '0'
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *70211396065480
79
+ version_requirements: *70165820396300
80
80
  description: CLI and API client for Ubalo
81
81
  email: dev@ubalo.com
82
82
  executables: