class DTK::Client::Operation::Module::Uninstall
Public Class Methods
execute(args = Args.new)
click to toggle source
# File lib/client/operation/module/uninstall.rb, line 21 def self.execute(args = Args.new) wrap_operation(args) do |args| module_ref = args.required(:module_ref) name = args.required(:name) version = args.required(:version) force = args.required(:force) unless name.nil? query_string_hash = QueryStringHash.new( :detail_to_include => ['remotes', 'versions'] ) response = rest_get("#{BaseRoute}/list", query_string_hash) installed_modules = response.data module_ref = process_module_ref(installed_modules, name, version) end raise Error::Usage, "Invalid module name." if module_ref.nil? delete_versions = module_ref.version unless args[:skip_prompt] if delete_versions && delete_versions.is_a?(Array) return false unless Console.prompt_yes_no("Are you sure you want to uninstall all module versions for '#{module_ref.namespace}/#{module_ref.module_name}' from the DTK Server?", :add_options => true) else return false unless Console.prompt_yes_no("Are you sure you want to uninstall module '#{module_ref.pretty_print}' from the DTK Server?", :add_options => true) end end post_body = module_ref_post_body(module_ref) post_body.merge!(:force => force) rest_post("#{BaseRoute}/delete", post_body) error_msg = if delete_versions && delete_versions.is_a?(Array) && delete_versions.size > 1 "All versions of dtk module '#{module_ref.namespace}/#{module_ref.module_name}' have been uninstalled." else "DTK module '#{module_ref.pretty_print}' has been uninstalled successfully." end OsUtil.print_info(error_msg) nil end end
process_module_ref(installed_modules, name, version)
click to toggle source
# File lib/client/operation/module/uninstall.rb, line 66 def self.process_module_ref(installed_modules, name, version) name.gsub!('/', ':') module_ref = nil installed_modules.each do |module_val| if module_val["display_name"].eql? name val = name.split(":") if version.nil? versions = module_val["versions"].split(",").map(&:strip) versions.each { |value| value.tr!('*', '') } if versions.size > 1 version = Console.version_prompt(versions, "Select which module version to uninstall: ", { :add_all => true}) version = versions if version.eql? "all" else version = module_val["versions"] version.tr!('*', '') if version.include?('*') end end module_opts = { :module_name => val[1], :namespace => val[0], :version => version } module_ref = ModuleRef.new(module_opts) end end module_ref end