def start_execution_opts options, workflow_type = nil
if workflow_type
options[:workflow_id] ||= UUIDTools::UUID.random_create.to_s
if workflow_type.is_a?(WorkflowType)
options[:workflow_type] = {}
options[:workflow_type][:name] = workflow_type.name
options[:workflow_type][:version] = workflow_type.version
elsif
workflow_type.is_a?(Hash) and
workflow_type[:name].is_a?(String) and
workflow_type[:version] .is_a?(String)and
workflow_type.keys.length == 2
then
options[:workflow_type] = workflow_type
else
msg = "expected workflow_type to be a WorkflowType object or " +
"a hash with :name and :version"
raise ArgumentError, msg
end
end
upcase_opts(options, :child_policy)
duration_opts(options,
:execution_start_to_close_timeout,
:task_start_to_close_timeout)
if options.has_key?(:task_list)
options[:task_list] = { :name => options[:task_list].to_s }
end
end