I am trying to use service dialogs to allow someone requesting a VM to specify a puppet environment that they want to get manifests done. Currently, I am using CloudInit style customization templates, but the environment is static. I’d like this to be an option in the service dialog that i can pull into the customization template with erb.
Here is a snippet from the method called in the configurechilddialog state in a copy of the CatalogItemInitialization state machine.
task = $evm.root['service_template_provision_task']
task.set_option(:puppet_environment, $evm.root['dialog_puppet_environment'])
task.miq_request_tasks.each do |ctask|
ctask.set_option(:puppet_environment, $evm.root['dialog_puppet_environment'])
end
$evm.log(:info, "PE: #{$evm.root['dialog_puppet_environment']}")
I am able to see the “PE: …” log message in automation.log and the method exits with OK status.
In my customization template, I have the following bit:
runcmd:
- echo "Puppet Environment: <%= evm[:puppet_environment].inspect %>"
This causes an error provisioning the VM though. I see this in evm.log:
[----] I, [2017-05-03T15:17:11.880849 #30175:eecc6c] INFO -- : Q-task_id([miq_provision_57]) <AutomationEngine> Calling Create Notification type: automate_user_error subject type: MiqRequest id: 34 options: {:message=>"VM Provision Error: [manageiq.example.com] VM [testvm] Step [CheckProvisioned] Status [[Psych::SyntaxError]: (<unknown>): did not find expected key while parsing a block mapping at line 29 column 3] Message [[Psych::SyntaxError]: (<unknown>): did not find expected key while parsing a block mapping at line 29 column 3] "}
What I would like to know is how to access the options from the service dialog. Any ideas?