Class: Chef::Knife::VcVmConfigGuest

Inherits:
Chef::Knife show all
Includes:
VcCommon, VcVmCommon
Defined in:
lib/chef/knife/vm/vc_vm_config_guest.rb

Instance Method Summary collapse

Methods included from VcVmCommon

#get_vm, included, #sanitize_guest_name, #stop_if_running

Methods included from VcCommon

#connection, #deprecation_msg, #generate_key, #get_password, included, #locate_config_value, #locate_org_option, #notice_msg, #out_msg, #pretty_symbol, #sort_by_key, #store_config, #store_password, #wait_task

Instance Method Details

#runObject



57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
# File 'lib/chef/knife/vm/vc_vm_config_guest.rb', line 57

def run
  $stdout.sync = true

  vm_arg = @name_args.shift
  computer_name = locate_config_value(:guest_computer_name)
  script_filename = locate_config_value(:customization_script)

  if script_filename
    script = File.read(script_filename)
    raise ArgumentError,
      "A customization script cannot exceed 49000 characters" if script.size > 49_000
  end

  config = {
    :enabled => locate_config_value(:guest_enabled),
    :admin_passwd_enabled => locate_config_value(:admin_passwd_enabled),
    :admin_passwd => locate_config_value(:admin_passwd),
    :customization_script => script
  }

  connection.

  vm = get_vm(vm_arg)

  if config[:admin_passwd].nil? && vm[:guest_customizations][:admin_passwd_enabled]
    ui.msg('Inheriting admin password')
    config[:admin_passwd] = vm[:guest_customizations][:admin_passwd]
  end

  if computer_name.nil?
    computer_name = vm[:guest_customizations][:computer_name]
  end

  stop_if_running(connection, vm)

  guest_name = sanitize_guest_name(computer_name)

  ui.msg "Renaming guest name to #{guest_name}..." if locate_config_value(:guest_computer_name)
  task_id, response = connection.set_vm_guest_customization vm[:id], guest_name, config

  ui.msg "VM guest configuration..."
  wait_task(connection, task_id)

  if locate_config_value(:force_customization)
    ui.msg "Forcing Guest Customization..."
    task_id = connection.force_customization_vm vm[:id]
    wait_task(connection, task_id)
  end

  connection.logout
end