27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
# File 'lib/dockerun/cli/delete_image.rb', line 27
def delete_image
selSpec = CliEngine.select_spec(@proxy.exec_root)
cont = File.read(selSpec)
@proxy.set_dry_run_mode
@proxy.instance_eval(cont)
res = cf.find_image(@proxy.image_name).run
if res.success?
if not_empty?(res.output_lines)
skip = pmt.no?(" Delete image named '#{@proxy.image_name}'?")
if not skip
res = cf.find_container_names_by_image_name(@proxy.image_name, all_containers: true).run
raise Error, "Failed to extract container name by image name '#{@proxy.image_name}'" if not res.success?
if not_empty?(res.output_lines)
cont = []
cnt = 0
res.output_lines.each do |l|
cont << " #{cnt += 1}. #{l}"
end
skip = pmt.no?(" All the containers shall be deleted prior to image '#{@proxy.image_name}' deletion. Proceed?\n#{cont.join("\n")}")
if not skip
res.output_lines.each do |ci|
cf.stop_container(ci).run
cf.delete_container(ci).run
end
res = cf.delete_image(@proxy.image_name).run
if res.success?
pmt.puts " Image '#{@proxy.image_name}' deleted".green
else
raise Error, " Image '#{@proxy.image_name}' deletion failed. Error was : #{res.err_lines.join("\n")}"
end
else
pmt.puts " Delete of image '#{@proxy.image_name}' aborted".yellow
end
else
res = cf.delete_image(@proxy.image_name).run
if res.success?
pmt.puts " Image '#{@proxy.image_name}' deleted".green
else
raise Error, " Image '#{@proxy.image_name}' deletion failed. Error was : #{res.err_lines.join("\n")}"
end
end
else
pmt.puts " Delete of image '#{@proxy.image_name}' aborted".yellow
end
else
pmt.puts " Image '#{@proxy.image_name}' does not exist".green
end
else
pmt.puts " Failed to find image '#{@proxy.image_name}'. Error was : #{res.err_lines.join("\n")}"
end
end
|