cf_script 0.0.1.beta.1 → 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +18 -0
- data/README.md +182 -34
- data/Rakefile +0 -13
- data/lib/cf_script/command/base.rb +1 -1
- data/lib/cf_script/command/cf/apps/app.rb +1 -1
- data/lib/cf_script/command/cf/apps/apps.rb +5 -3
- data/lib/cf_script/command/cf/apps/delete.rb +25 -0
- data/lib/cf_script/command/cf/apps/env.rb +4 -2
- data/lib/cf_script/command/cf/apps/push.rb +7 -2
- data/lib/cf_script/command/cf/apps/rename.rb +20 -0
- data/lib/cf_script/command/cf/apps/restage.rb +1 -1
- data/lib/cf_script/command/cf/apps/restart.rb +1 -1
- data/lib/cf_script/command/cf/apps/set_env.rb +1 -1
- data/lib/cf_script/command/cf/apps/start.rb +1 -1
- data/lib/cf_script/command/cf/apps/stop.rb +3 -2
- data/lib/cf_script/command/cf/apps/unset_env.rb +1 -1
- data/lib/cf_script/command/cf/apps.rb +5 -1
- data/lib/cf_script/command/cf/general/api.rb +1 -1
- data/lib/cf_script/command/cf/general/auth.rb +1 -1
- data/lib/cf_script/command/cf/general/login.rb +1 -1
- data/lib/cf_script/command/cf/general/logout.rb +1 -1
- data/lib/cf_script/command/cf/general/target.rb +1 -1
- data/lib/cf_script/command/cf/routes/check_route.rb +1 -1
- data/lib/cf_script/command/cf/routes/create_route.rb +1 -1
- data/lib/cf_script/command/cf/routes/delete_route.rb +5 -2
- data/lib/cf_script/command/cf/routes/map_route.rb +1 -1
- data/lib/cf_script/command/cf/routes/routes.rb +1 -1
- data/lib/cf_script/command/cf/routes/unmap_route.rb +1 -1
- data/lib/cf_script/command/cf/spaces/space.rb +1 -1
- data/lib/cf_script/command/cf/spaces/spaces.rb +1 -1
- data/lib/cf_script/command/runner.rb +1 -15
- data/lib/cf_script/config.rb +3 -1
- data/lib/cf_script/executor/recorder.rb +3 -1
- data/lib/cf_script/executor/simple.rb +22 -9
- data/lib/cf_script/executor.rb +0 -1
- data/lib/cf_script/object/api_endpoint.rb +1 -1
- data/lib/cf_script/object/app_info.rb +1 -1
- data/lib/cf_script/object/app_list.rb +21 -5
- data/lib/cf_script/object/attribute.rb +1 -1
- data/lib/cf_script/object/attribute_list.rb +1 -1
- data/lib/cf_script/object/instance_status.rb +1 -1
- data/lib/cf_script/object/route_info.rb +1 -1
- data/lib/cf_script/object/space.rb +1 -1
- data/lib/cf_script/object/target.rb +1 -1
- data/lib/cf_script/object.rb +0 -11
- data/lib/cf_script/output/buffer.rb +1 -1
- data/lib/cf_script/scope/app/routes.rb +1 -1
- data/lib/cf_script/scope/app.rb +0 -26
- data/lib/cf_script/scope/target.rb +7 -1
- data/lib/cf_script/ui.rb +2 -6
- data/lib/cf_script/version.rb +1 -1
- data/lib/cf_script.rb +0 -2
- data/test/fixtures/commands/apps/delete/good.yml +8 -0
- data/test/fixtures/commands/apps/delete/not_exist.yml +9 -0
- data/test/fixtures/commands/apps/env/{empty.yml → empty_vars.yml} +0 -0
- data/test/fixtures/commands/apps/rename/good.yml +8 -0
- data/test/fixtures/commands/apps/rename/not_found.yml +8 -0
- data/test/fixtures/commands/{apps/set_env → common}/empty.yml +0 -0
- data/test/lib/cf_script/command/cf/apps/app_test.rb +8 -0
- data/test/lib/cf_script/command/cf/apps/apps_test.rb +12 -3
- data/test/lib/cf_script/command/cf/apps/delete_test.rb +51 -0
- data/test/lib/cf_script/command/cf/apps/env_test.rb +12 -2
- data/test/lib/cf_script/command/cf/apps/push_test.rb +14 -0
- data/test/lib/cf_script/command/cf/apps/rename_test.rb +35 -0
- data/test/lib/cf_script/command/cf/apps/restage_test.rb +8 -0
- data/test/lib/cf_script/command/cf/apps/restart_test.rb +8 -0
- data/test/lib/cf_script/command/cf/apps/start_test.rb +8 -0
- data/test/lib/cf_script/command/cf/apps/stop_test.rb +2 -2
- data/test/lib/cf_script/command/cf/general/login_test.rb +9 -10
- data/test/lib/cf_script/command/cf/routes/create_route_test.rb +12 -0
- data/test/lib/cf_script/command/cf/routes/delete_route_test.rb +18 -0
- data/test/lib/cf_script/command/cf/routes/map_route_test.rb +12 -0
- data/test/lib/cf_script/command/cf/routes/routes_test.rb +8 -0
- data/test/lib/cf_script/command/cf/routes/unmap_route_test.rb +12 -0
- data/test/lib/cf_script/object/app_info_test.rb +4 -4
- data/test/lib/cf_script/object/app_list_test.rb +68 -2
- data/test/lib/cf_script/output/buffer_test.rb +9 -9
- data/test/lib/cf_script/output/parser/section_test.rb +4 -2
- data/test/lib/cf_script/output/tests_test.rb +24 -24
- data/test/lib/cf_script/output_test.rb +23 -18
- data/test/lib/cf_script/scope/app/env_test.rb +58 -0
- data/test/lib/cf_script/scope/app/routes_test.rb +56 -0
- data/test/lib/cf_script/scope/app/state_test.rb +30 -0
- data/test/lib/cf_script/scope/script_test.rb +3 -2
- data/test/lib/cf_script/scope/target_test.rb +38 -23
- data/test/lib/cf_script/scope_test.rb +10 -6
- data/test/lib/cf_script/ui_test.rb +133 -0
- data/test/lib/cf_script_test.rb +14 -8
- data/test/support/assertions.rb +25 -0
- data/test/support/helpers/fixture_executor.rb +1 -1
- data/test/support/helpers/mock_execution.rb +29 -7
- metadata +23 -14
- data/lib/cf_script/callbacks.rb +0 -43
- data/lib/cf_script/executor/non_blocking.rb +0 -107
- data/lib/cf_script/object/app_spec.rb +0 -55
- data/test/fixtures/commands/apps/unset_env/empty.yml +0 -5
- data/test/fixtures/commands/general/auth/empty.yml +0 -5
- data/test/fixtures/commands/general/target/empty.yml +0 -5
- data/test/fixtures/commands/spaces/space/empty.yml +0 -5
- data/test/fixtures/commands/spaces/spaces/empty.yml +0 -5
@@ -1,107 +0,0 @@
|
|
1
|
-
require 'open3'
|
2
|
-
|
3
|
-
class CfScript::Executor::NonBlocking
|
4
|
-
include CfScript::UI
|
5
|
-
|
6
|
-
READ_SIZE = 1024
|
7
|
-
|
8
|
-
PROGRESS_CHARS = ['|', '/', '-', '\\']
|
9
|
-
|
10
|
-
def initialize
|
11
|
-
@executions = 0
|
12
|
-
@spin_count = 0
|
13
|
-
end
|
14
|
-
|
15
|
-
def execute(env, command_line)
|
16
|
-
@spin_count = 0
|
17
|
-
@executions += 1
|
18
|
-
|
19
|
-
print " ... "
|
20
|
-
stdout, stderr, status = execute_internal(env, command_line)
|
21
|
-
|
22
|
-
report_exit(status.exitstatus == 0 ? :success : :error)
|
23
|
-
|
24
|
-
[stdout, stderr, status]
|
25
|
-
end
|
26
|
-
|
27
|
-
def spin
|
28
|
-
char = PROGRESS_CHARS[(@spin_count += 1) % PROGRESS_CHARS.length]
|
29
|
-
|
30
|
-
print "\b#{char}".colorize(with_color_of(:step))
|
31
|
-
end
|
32
|
-
|
33
|
-
def got(c = '@')
|
34
|
-
print "\b#{c}".colorize(with_color_of(:info))
|
35
|
-
end
|
36
|
-
|
37
|
-
def report_exit(type)
|
38
|
-
icon = "#{emoji_for(type)} "
|
39
|
-
text = case type
|
40
|
-
when :success
|
41
|
-
CfScript.config.ui.emoji ? icon : 'DONE '
|
42
|
-
else
|
43
|
-
CfScript.config.ui.emoji ? icon : 'ERROR'
|
44
|
-
end
|
45
|
-
|
46
|
-
puts "\b\b\b\b\b#{text}".colorize(with_color_of(type))
|
47
|
-
end
|
48
|
-
|
49
|
-
def execute_internal(env, command_line)
|
50
|
-
out_stdout = ''
|
51
|
-
out_stderr = ''
|
52
|
-
out_status = nil
|
53
|
-
|
54
|
-
Open3.popen3(env, command_line.to_s) do |stdin, stdout, stderr, wait|
|
55
|
-
stdin.close_write
|
56
|
-
|
57
|
-
begin
|
58
|
-
streams = [stdout, stderr]
|
59
|
-
|
60
|
-
#until streams.empty? do
|
61
|
-
loop do
|
62
|
-
ready = IO.select(streams, [], [], 0.1)
|
63
|
-
spin
|
64
|
-
|
65
|
-
if ready
|
66
|
-
readable = ready[0]
|
67
|
-
|
68
|
-
readable.each do |stream|
|
69
|
-
fileno = stream.fileno
|
70
|
-
|
71
|
-
begin
|
72
|
-
data = stream.read_nonblock(READ_SIZE)
|
73
|
-
|
74
|
-
if fileno == stdout.fileno
|
75
|
-
got ; out_stdout << data
|
76
|
-
elsif fileno == stderr.fileno
|
77
|
-
got ; out_stderr << data
|
78
|
-
else
|
79
|
-
fileno_error(fileno, stdin, stdout, stderr)
|
80
|
-
end
|
81
|
-
rescue EOFError => e
|
82
|
-
# puts "EOF-ERROR".colorize(with_color_of(:error))
|
83
|
-
# streams.delete(stream)
|
84
|
-
end
|
85
|
-
end
|
86
|
-
end
|
87
|
-
|
88
|
-
break if stdout.eof? && stderr.eof?
|
89
|
-
end
|
90
|
-
|
91
|
-
out_status = wait.value
|
92
|
-
rescue IOError => e
|
93
|
-
puts "IOError: #{e}"
|
94
|
-
end
|
95
|
-
end
|
96
|
-
|
97
|
-
[out_stdout, out_stderr, out_status]
|
98
|
-
end
|
99
|
-
|
100
|
-
def fileno_error(fileno, stdin, stdout, stderr)
|
101
|
-
puts "ERROR: unexpected fileno: #{fileno} [" +
|
102
|
-
"stdin: #{stdin.fileno}, " +
|
103
|
-
"stdout: #{stdout.fileno}, " +
|
104
|
-
"stderr: #{stderr.fileno}" +
|
105
|
-
"]"
|
106
|
-
end
|
107
|
-
end
|
@@ -1,55 +0,0 @@
|
|
1
|
-
class CfScript::AppSpec < CfScript::Object
|
2
|
-
include CfScript::Callbacks
|
3
|
-
include CfScript::UI
|
4
|
-
|
5
|
-
def initialize(spec)
|
6
|
-
@org = spec[:org]
|
7
|
-
@env = spec[:env]
|
8
|
-
@domain = spec[:domain]
|
9
|
-
@name = spec[:name]
|
10
|
-
@type = spec[:type]
|
11
|
-
@phase = spec[:phase]
|
12
|
-
@memory = spec[:memory] || '2GB'
|
13
|
-
@instances = spec[:instances] || 1
|
14
|
-
end
|
15
|
-
|
16
|
-
def push_options
|
17
|
-
{
|
18
|
-
#domain: @domain,
|
19
|
-
#hostname: hostname,
|
20
|
-
memory: @memory,
|
21
|
-
instances: @instances,
|
22
|
-
health_check_type: @health_check,
|
23
|
-
flags: [
|
24
|
-
:no_route,
|
25
|
-
:no_start,
|
26
|
-
:no_manifest,
|
27
|
-
]
|
28
|
-
}
|
29
|
-
end
|
30
|
-
|
31
|
-
def method_missing(m, *args, &block)
|
32
|
-
if args.empty? && block.nil?
|
33
|
-
instance_variable_get("@#{m}")
|
34
|
-
elsif !args.empty? && block.nil?
|
35
|
-
instance_variable_set("@#{m}", args.first)
|
36
|
-
elsif args.empty? && !block.nil?
|
37
|
-
instance_variable_set("@#{m}", yield)
|
38
|
-
else
|
39
|
-
raise "Can not accept arguments and a block. " +
|
40
|
-
"Pass arguments or a block, not both."
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
def full_name
|
45
|
-
[name, type, phase].compact.join('-')
|
46
|
-
end
|
47
|
-
|
48
|
-
def hostname
|
49
|
-
[org, env, name, type, phase].compact.join('-')
|
50
|
-
end
|
51
|
-
|
52
|
-
def fqdn
|
53
|
-
[hostname, domain].compact.join('.')
|
54
|
-
end
|
55
|
-
end
|