class ChefDocker::DockerDelete
Public Instance Methods
delete(container)
click to toggle source
# File lib/chef/knife/docker_delete.rb, line 69 def delete(container) `docker stop #{container}` `docker rm #{container}` if config[:_purge] destroy_item(Chef::Node, container, "node") destroy_item(Chef::ApiClient, container, "client") end end
destroy_item(klass, name, type_name)
click to toggle source
# File lib/chef/knife/docker_delete.rb, line 59 def destroy_item(klass, name, type_name) begin object = klass.load(name) object.destroy ui.warn("Deleted #{type_name} #{name}") rescue Net::HTTPServerException ui.warn("Could not find a #{type_name} named #{name} to delete!") end end
run()
click to toggle source
# File lib/chef/knife/docker_delete.rb, line 34 def run if @name_args.length == 0 ui.error("Please provide at least one container id") show_usage exit 1 end running_containers = [] `docker ps`.split(/\n/).each do |c| if c =~ /^[\d\w]{12}\s/ running_containers.push c.split[0] end end @name_args.each do |name| unless running_containers.include? name ui.warn("Container #{name} does not exist") next end delete name end end