Sha256: 42258f4cd0f86f9dc34ef91fe539ac6ae92a598a6bd1dbbe1710761f9f3bae1d

Contents?: true

Size: 1.36 KB

Versions: 4

Compression:

Stored size: 1.36 KB

Contents

require 'chef/knife'
require 'knife-spork/runner'
require 'json'

module KnifeSpork
  class SporkDataBagDelete < Chef::Knife
    include KnifeSpork::Runner

    deps do
      require 'chef/knife/data_bag_delete'
    end

    banner 'knife data bag delete BAG [ITEM] (options)'


    def run
      self.config = Chef::Config.merge!(config)

      if @name_args.length == 2
        @object_name = @name_args.first
        @object_secondary_name = @name_args.last
        run_plugins(:before_databagitemdelete)
        pre_databag = load_databag_item(@object_name,@object_secondary_name)
        databag_delete
        post_databag = {}
        @object_difference = json_diff(pre_databag,post_databag).to_s
        run_plugins(:after_databagitemdelete)
      elsif @name_args.length == 1
        @object_name = @name_args.first
        run_plugins(:before_databagdelete)
        pre_databag = load_databag(@object_name)
        databag_delete
        post_databag =  {}
        @object_difference = json_diff(pre_databag,post_databag).to_s
        run_plugins(:after_databagdelete)
      else
        show_usage
        ui.fatal("You must specify at least a data bag name")
        exit 1
      end
    end

    private
    def databag_delete
      dbd = Chef::Knife::DataBagDelete.new
      dbd.name_args = @name_args
      dbd.config[:editor] = config[:editor]
      dbd.run
    end
  end
end

Version data entries

4 entries across 4 versions & 2 rubygems

Version Path
knife-spork-berks-1.3.2 lib/chef/knife/spork-databag-delete.rb
knife-spork-1.3.2 lib/chef/knife/spork-databag-delete.rb
knife-spork-1.3.1 lib/chef/knife/spork-databag-delete.rb
knife-spork-1.3.0 lib/chef/knife/spork-databag-delete.rb