class Chef::Knife::VcVappSnapshot

Public Instance Methods

run() click to toggle source
# File lib/chef/knife/vapp/vc_vapp_snapshot.rb, line 27
def run
  $stdout.sync = true

  command_arg = @name_args.shift
  vapp_arg = @name_args.shift

  unless command_arg =~ /create|revert/
    raise ArgumentError, "Invalid command #{command_arg} supplied. Only create and revert are allowed."
  end

  command = command_arg.to_sym

  connection.login

  vapp = get_vapp(vapp_arg)

  case command
    when :create
      task_id = connection.create_vapp_snapshot vapp[:id]
      ui.msg "vApp snapshot creation..."
      wait_task(connection, task_id)
    when :revert
      task_id = connection.revert_vapp_snapshot vapp[:id]
      ui.msg "vApp snapshot revert..."
      wait_task(connection, task_id)
  end

  connection.logout
end