class DTK::Client::Operation::Service::Delete

Public Class Methods

delete_service_path(path) click to toggle source
# File lib/client/operation/service/delete.rb, line 67
def self.delete_service_path(path)
  return false unless Console.prompt_yes_no("Are you sure you want to delete '#{path}' ?", :add_options => true)

  post_body = PostBody.new(
    :service_instance => @service_instance,
    :path => path
  )
  rest_post("#{BaseRoute}/delete_by_path", post_body)
end
display_node_info(nodes, message = '') click to toggle source

TODO: DTK-2938: below need sto be upgraded to be consistent with node as a component

# File lib/client/operation/service/delete.rb, line 57
def self.display_node_info(nodes, message = '')
  if nodes.size > 0
    nodes.each do |node|
      return if  node['instance_id'].nil?
      message += "#{node['display_name']} - #{node['instance_id']}\n"
    end
    OsUtil.print("Nodes that will be deleted: \n" + message)
  end
end
execute(args = Args.new) click to toggle source
# File lib/client/operation/service/delete.rb, line 21
def self.execute(args = Args.new)
  wrap_operation(args) do |args|
    @service_instance = args.required(:service_instance)
    recursive        = args.required(:recursive)
    force            = args[:force]
    directory_path   = args[:directory_path]

    if path = args[:path]
      delete_service_path(path)
    else
      unless args[:skip_prompt]
        return false unless Console.prompt_yes_no("Are you sure you want to delete the content of service instance '#{@service_instance}' ?", :add_options => true)
      end

      if !force && directory_path
        modified_args = Args.new(
          :dir => directory_path,
          :error_msg => "To allow delete to go through, invoke 'dtk push' to push the changes to server before invoking delete again",
          :command => 'delete'
        )
        ClientModuleDir::ServiceInstance.modified_service_instance_or_nested_modules?(modified_args)
      end

      post_body = PostBody.new(
        :service_instance => @service_instance,
        :recursive? => recursive
      )
      response = rest_post("#{BaseRoute}/delete", post_body)

      OsUtil.print_info("Delete procedure started. For more information use 'dtk task-status'.")
      display_node_info(response.data)
    end
  end
end