Sha256: de6c9c8a832279b98ff3c8dc59c49fda6da7d47a7c459880b6b6cb494ea2dffd

Contents?: true

Size: 1.09 KB

Versions: 6

Compression:

Stored size: 1.09 KB

Contents

module Cifrado
  class CLI
    desc "delete CONTAINER [OBJECT]", "Delete specific container or object"
    def delete(container, object = nil)
      client = client_instance
      if object
        Log.info "Deleting file #{object}..."
        deleted = false
        begin
          client.service.delete_object container, object
          deleted = true
        rescue Fog::Storage::OpenStack::NotFound
          Log.debug 'Trying to find hashed object name'
          file_hash = (Digest::SHA2.new << object).to_s
          deleted = client.service.delete_object(container, file_hash) rescue nil
        end
        if deleted
          Log.info "File #{object} deleted"
        else
          Log.error "File #{object} not found"
        end
      else
        Log.info "Deleting container '#{container}'..."
        dir = client.service.directories.get(container)
        if dir
          dir.files.each do |f|
            Log.info "Deleting file #{f.key}..."
            f.destroy
          end
          dir.destroy
          Log.info "Container #{container} deleted"
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
cifrado-0.2.1 lib/cifrado/cli/delete.rb
cifrado-0.2.0 lib/cifrado/cli/delete.rb
cifrado-0.1.3 lib/cifrado/cli/delete.rb
cifrado-0.1.2 lib/cifrado/cli/delete.rb
cifrado-0.1.1 lib/cifrado/cli/delete.rb
cifrado-0.1 lib/cifrado/cli/delete.rb