Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Loading…

Feature: dangerous_restart #4

Merged
merged 1 commit into from

2 participants

@verm666
Owner

Если со времени последнего перезапуска сервиса были внесены
изменения в файлы, используемые сервисом (задается в files-to-watch
аналогично files-to-view) - имя сервиса подсвечивается красным.

Данное нововведение будет удобно при политике отложенных перезапусков
(когда сервис автоматически не перезапускается при выкатке новой версии
ПО, а перезапускается в ручном режиме в отведенное для этого время).

@verm666 verm666 Feature: dangerous_restart
Если со времени последнего перезапуска сервиса были внесены
изменения в файлы, используемые сервисом (задается в files-to-watch
аналогично files-to-view) - имя сервиса подсвечивается красным.

Данное нововведение будет удобно при политике отложенных перезапусков
(когда сервис автоматически не перезапускается при выкатке новой версии
ПО, а перезапускается в ручном режиме в отведенное для этого время).
28943e8
@akzhan akzhan merged commit 28943e8 into Undev:master
@akzhan

Thanks, has been landed and released as 2.4.1a1.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Commits on Apr 12, 2012
  1. @verm666

    Feature: dangerous_restart

    verm666 authored
    Если со времени последнего перезапуска сервиса были внесены
    изменения в файлы, используемые сервисом (задается в files-to-watch
    аналогично files-to-view) - имя сервиса подсвечивается красным.
    
    Данное нововведение будет удобно при политике отложенных перезапусков
    (когда сервис автоматически не перезапускается при выкатке новой версии
    ПО, а перезапускается в ручном режиме в отведенное для этого время).
This page is out of date. Refresh to see the latest.
View
38 lib/runit-man/service_info/base.rb
@@ -109,6 +109,25 @@ def all_log_file_locations
[]
end
+ def restart_dangerous?
+ changed_files_to_watch.size == 0 ? false : true
+ end
+
+ def changed_files_to_watch
+ return [] if files_to_watch.empty?
+
+ changed_files = []
+ files_to_watch.each do |file|
+ mtime = File.stat(file).mtime
+
+ if mtime > @status.started_at
+ changed_files << file
+ end
+ end
+
+ return changed_files
+ end
+
def send_signal(signal)
return unless supervise?
@@ -144,6 +163,21 @@ def urls_to_view
end
end
+ def files_to_watch
+ return [] unless File.directory?(files_to_watch_folder)
+
+ Dir.entries(files_to_watch_folder).select do |name|
+ File.symlink?(File.join(files_to_watch_folder, name))
+ end.map do |name|
+ File.expand_path(
+ File.readlink(File.join(files_to_watch_folder, name)),
+ files_to_watch_folder
+ )
+ end.select do |file_path|
+ File.file?(file_path)
+ end
+ end
+
def allowed_signals
return [] unless File.directory?(allowed_signals_folder)
@@ -165,6 +199,10 @@ def files_to_view_folder
File.join(active_service_folder, 'runit-man', 'files-to-view')
end
+ def files_to_watch_folder
+ File.join(active_service_folder, 'runit-man', 'files-to-watch')
+ end
+
def urls_to_view_folder
File.join(active_service_folder, 'runit-man', 'urls-to-view')
end
View
1  public/css/runit-man.css
@@ -20,6 +20,7 @@ form.service-action, form.service-signal
span.inactive {color:gray;}
span.down {color:#8a1f11;}
span.run {color:#264409;}
+span.danger {color:red;}
#services { text-align: center; }
View
4 views/_service_info.haml
@@ -1,7 +1,9 @@
- need_second_row = !service_info.files_to_view.empty? || !service_info.urls_to_view.empty?
%tr{:class=> even_or_odd ? 'even' : 'odd'}
%td{:rowspan=> need_second_row ? 2 : 1}= h(service_info.pid)
- %th{:scope=>"row"}= h(service_info.name)
+ %th{:scope=>"row"}
+ %span{:class=>service_info.restart_dangerous? ? "danger" : "ok"}
+ = h(service_info.name)
%td= service_info.started_at ? service_info.started_at.utc : ''
%td= service_info.uptime ? ('%.2f' % service_info.uptime) : ''
%td= stat_subst(service_info.stat)
Something went wrong with that request. Please try again.