This patch fixes a number of problems related to timezones:

1. ReportsController#show displayed log entries with values in the local
timezone of the Puppet client, not the Puppet Dashboard server.
2. Default date/time formats don't define their default timezone.
3. Code had many unnecessary #to_s calls.
4. Code had formatting in #to_s rather than using the defaults.

Signed-off-by: Igal Koshevoy <[email protected]>
---
 app/views/nodes/_nodes.html.haml                  |    2 +-
 app/views/nodes/show.html.haml                    |    2 +-
 app/views/puppet/transaction/reports/_report.haml |    2 +-
 app/views/puppet/util/logs/_log.haml              |    2 +-
 app/views/reports/_report.html.haml               |    2 +-
 app/views/reports/index.html.haml                 |    2 +-
 app/views/statuses/_run_failure.html.haml         |    2 +-
 app/views/statuses/_run_time.html.haml            |    2 +-
 config/initializers/time_formats.rb               |    6 ++++--
 9 files changed, 12 insertions(+), 10 deletions(-)

diff --git a/app/views/nodes/_nodes.html.haml b/app/views/nodes/_nodes.html.haml
index 13d07be..3d8b8b2 100644
--- a/app/views/nodes/_nodes.html.haml
+++ b/app/views/nodes/_nodes.html.haml
@@ -23,7 +23,7 @@
           %td.hostname
             = link_to h(node.name), node
           %td.latest_report
-            = node.last_report ? node.last_report.time.to_s : "Has not 
reported"
+            = node.last_report ? node.last_report.time : "Has not reported"
       = pagination_for nodes, more_link
     - else
       %td.empty{:colspan => 3}
diff --git a/app/views/nodes/show.html.haml b/app/views/nodes/show.html.haml
index bca6536..f630c70 100644
--- a/app/views/nodes/show.html.haml
+++ b/app/views/nodes/show.html.haml
@@ -67,7 +67,7 @@
             - @node.reports.limit(reports_limit).each do |report|
               %tr
                 = report_status_td(report)
-                %td= link_to report.time.to_s, report
+                %td= link_to report.time, report
                 %td= report.total_resources
                 %td= report.failed_resources
                 %td= report.total_time
diff --git a/app/views/puppet/transaction/reports/_report.haml 
b/app/views/puppet/transaction/reports/_report.haml
index c380689..dd27166 100644
--- a/app/views/puppet/transaction/reports/_report.haml
+++ b/app/views/puppet/transaction/reports/_report.haml
@@ -1,6 +1,6 @@
 -# FIXME Is anything using this partial?
 .report.grouping
-  %h2= report.time.to_s
+  %h2= report.time
 
   .section
     %h3 Metrics
diff --git a/app/views/puppet/util/logs/_log.haml 
b/app/views/puppet/util/logs/_log.haml
index efd66a9..da7ca19 100644
--- a/app/views/puppet/util/logs/_log.haml
+++ b/app/views/puppet/util/logs/_log.haml
@@ -6,4 +6,4 @@
   %td
     %code= h log.source
   %td.nowrap
-    %code= log.time.to_s
+    %code= log.time
diff --git a/app/views/reports/_report.html.haml 
b/app/views/reports/_report.html.haml
index 5a23af7..4cf28bc 100644
--- a/app/views/reports/_report.html.haml
+++ b/app/views/reports/_report.html.haml
@@ -3,7 +3,7 @@
     %span.status{:class => report.status}
       = report_status_icon(report)
       Report:
-      = report.time.to_s
+      = report.time
     - if report.node
       %span.alt for
       = link_to report.node.name, report.node
diff --git a/app/views/reports/index.html.haml 
b/app/views/reports/index.html.haml
index 8b5e2a8..ce2390a 100644
--- a/app/views/reports/index.html.haml
+++ b/app/views/reports/index.html.haml
@@ -27,7 +27,7 @@
           - for report in @reports
             %tr.nowrap[report]
               = report_status_td(report)
-              %td= link_to report.time.to_s, report
+              %td= link_to report.time, report
               - unless @node
                 %td= link_to_if report.node, h(report.host), 
node_path(report.node)
               %td= report.total_resources
diff --git a/app/views/statuses/_run_failure.html.haml 
b/app/views/statuses/_run_failure.html.haml
index 32df9b0..4c2f93a 100644
--- a/app/views/statuses/_run_failure.html.haml
+++ b/app/views/statuses/_run_failure.html.haml
@@ -13,7 +13,7 @@
     %thead
       %tr.labels
         - statuses.each do |status|
-          %th= status.start.strftime("%m/%d/%y")
+          %th= status.start.to_s(:date)
     %tbody
       %tr.succeeded
         - statuses.each do |status|
diff --git a/app/views/statuses/_run_time.html.haml 
b/app/views/statuses/_run_time.html.haml
index 053caa1..3c56216 100644
--- a/app/views/statuses/_run_time.html.haml
+++ b/app/views/statuses/_run_time.html.haml
@@ -5,7 +5,7 @@
     %thead
       %tr.labels
         - reports.map{|r| r.time}.each do |time|
-          %th= time.strftime('%I:%M%p')
+          %th= time.to_s(:time)
     %tbody
       %tr.runtimes
         - reports.map{|r| r.total_time}.compact.each do |time|
diff --git a/config/initializers/time_formats.rb 
b/config/initializers/time_formats.rb
index 5e6353a..61f48eb 100644
--- a/config/initializers/time_formats.rb
+++ b/config/initializers/time_formats.rb
@@ -1,6 +1,8 @@
 # TODO make format customizable through an external configuration file.
 Time::DATE_FORMATS.update(
   # :default => lambda{|time| time.strftime('%m/%d/%y ') + 
time.strftime('%I:%M%p').downcase }
-  :default => lambda{|time| time.strftime('%Y-%m-%d %H:%M %Z') },
-  :date => lambda{|time| time.strftime('%Y-%m-%d') }
+  :default => lambda{|time| time.in_time_zone.strftime('%Y-%m-%d %H:%M %Z') },
+  :date => lambda{|time| time.in_time_zone.strftime('%Y-%m-%d') },
+  :time => lambda{|time| time.in_time_zone.strftime('%I:%M%p') }
 )
+
-- 
1.7.2.3

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-dev?hl=en.

Reply via email to