diff options
author | NAshwini <ashwini.nehate@msystechnologies.com> | 2017-09-12 13:21:41 +0000 |
---|---|---|
committer | NAshwini <ashwini.nehate@msystechnologies.com> | 2017-09-20 17:56:46 +0530 |
commit | 82fb01b9dc854b8adb5dfde7e848b6a41beeb928 (patch) | |
tree | fe00986f71cbdd9e47f81512ffe378cc571b7fa1 /lib/chef/provider/windows_task.rb | |
parent | 8b91c383a5e88d5039163831f50f8bc42673bb61 (diff) | |
download | chef-82fb01b9dc854b8adb5dfde7e848b6a41beeb928.tar.gz |
Added none frequency to windows task resource
Signed-off-by: NAshwini <ashwini.nehate@msystechnologies.com>
Diffstat (limited to 'lib/chef/provider/windows_task.rb')
-rw-r--r-- | lib/chef/provider/windows_task.rb | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/lib/chef/provider/windows_task.rb b/lib/chef/provider/windows_task.rb index 8703c30da9..7dbb4fa8c3 100644 --- a/lib/chef/provider/windows_task.rb +++ b/lib/chef/provider/windows_task.rb @@ -89,11 +89,17 @@ class Chef basic_validation options = {} options["F"] = "" if new_resource.force || task_need_update? - options["SC"] = schedule + if schedule == :none + options["SC"] = :once + options["ST"] = "00:00" + options["SD"] = convert_user_date_to_system_date "12/12/2012" + else + options["SC"] = schedule + options["ST"] = new_resource.start_time unless new_resource.start_time.nil? + options["SD"] = convert_user_date_to_system_date new_resource.start_day unless new_resource.start_day.nil? + end options["MO"] = new_resource.frequency_modifier if frequency_modifier_allowed options["I"] = new_resource.idle_time unless new_resource.idle_time.nil? - options["SD"] = convert_user_date_to_system_date new_resource.start_day unless new_resource.start_day.nil? - options["ST"] = new_resource.start_time unless new_resource.start_time.nil? options["TR"] = new_resource.command options["RU"] = new_resource.user options["RP"] = new_resource.password if use_password? @@ -277,6 +283,7 @@ class Chef :daily => "Triggers/CalendarTrigger/RandomDelay", :weekly => "Triggers/CalendarTrigger/RandomDelay", :monthly => "Triggers/CalendarTrigger/RandomDelay", + :none => "Triggers", } xml_element_mapping = { @@ -297,6 +304,12 @@ class Chef doc = REXML::Document.new(xml_cmd.stdout) + if new_resource.frequency == :none + doc.root.elements.delete(xml_element_mapping["random_delay"]) + cwd_element = REXML::Element.new(xml_element_mapping["random_delay"]) + doc.root.elements.add(cwd_element) + end + options.each do |option| Chef::Log.debug 'Removing former #{option} if any' doc.root.elements.delete(xml_element_mapping[option]) @@ -410,7 +423,8 @@ class Chef task[:idle_time] = root.elements["Settings/IdleSettings/Duration"].text if root.elements["Settings/IdleSettings/Duration"] && task[:on_idle] - task[:once] = true if !(task[:repetition_interval] || task[:schedule_by_day] || task[:schedule_by_week] || task[:schedule_by_month] || task[:on_logon] || task[:onstart] || task[:on_idle]) + task[:none] = true if root.elements["Triggers/"] && root.elements["Triggers/"].entries.empty? + task[:once] = true if !(task[:repetition_interval] || task[:schedule_by_day] || task[:schedule_by_week] || task[:schedule_by_month] || task[:on_logon] || task[:onstart] || task[:on_idle] || task[:none]) task[:execution_time_limit] = root.elements["Settings/ExecutionTimeLimit"].text if root.elements["Settings/ExecutionTimeLimit"] #by default PT72H task[:random_delay] = root.elements["Triggers/TimeTrigger/RandomDelay"].text if root.elements["Triggers/TimeTrigger/RandomDelay"] task[:random_delay] = root.elements["Triggers/CalendarTrigger/RandomDelay"].text if root.elements["Triggers/CalendarTrigger/RandomDelay"] @@ -481,6 +495,7 @@ class Chef current_resource.frequency(:onstart) if task_hash[:onstart] current_resource.frequency(:on_idle) if task_hash[:on_idle] current_resource.frequency(:once) if task_hash[:once] + current_resource.frequency(:none) if task_hash[:none] end def set_current_idle_time(idle_time) |