namespace :opsmgr do

desc "Alias for opsmgr:destroy:vms"
task :destroy, [:environment] => %w(opsmgr:destroy:vms)

namespace :destroy do
  desc "- Clear our Resource Pool, deleting stemcells, all installed products' VMs (including Ops Mgr)"
  task :vms, [:environment, :om_version] do |_, args|
    require 'opsmgr/cmd/ops_manager'
    require 'opsmgr/environments'
    require 'opsmgr/api/client'

    env = Opsmgr::Environments.for(args.environment)
    begin
      installation_settings = Opsmgr::Api::Client.new(env, args.om_version).installation_settings.as_hash
    rescue
      installation_settings = { 'infrastructure' => {} }
    end
    require 'vm_shepherd'
    shep = VmShepherd::Shepherd.new(settings: env.settings_with_merged_folders(installation_settings))
    shep.clean_environment
    shep.destroy
  end

  desc "- Clear our Resource Pool, deleting stemcells, all installed products' VMs (including Ops Mgr) without merging settings"
  task :vms_raw, [:environment] do |_, args|
    require 'opsmgr/environments'
    require 'vm_shepherd'

    env = Opsmgr::Environments.for(args.environment)
    shep = VmShepherd::Shepherd.new(settings: env.settings)
    shep.clean_environment
    shep.destroy
  end

  desc '- Destroy Existing Ops Manager'
  task :opsmgr, [:environment] do |_, args|
    require 'opsmgr/environments'
    require 'vm_shepherd'
    env = Opsmgr::Environments.for(args.environment)

    shep = VmShepherd::Shepherd.new(settings: env.settings)
    shep.destroy
  end
end

end # Copyright © 2014-2015 Pivotal Software, Inc. # All rights reserved. # THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, # INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR # PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE # USE OR OTHER DEALINGS IN THE SOFTWARE.