naf 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (295) hide show
  1. data/.gitignore +16 -0
  2. data/.rspec +1 -0
  3. data/.travis.yml +17 -0
  4. data/Gemfile +17 -0
  5. data/LICENSE +2 -0
  6. data/README.rdoc +22 -0
  7. data/RELEASE_NOTES.rdoc +18 -0
  8. data/Rakefile +43 -0
  9. data/app/assets/images/bg-grad.png +0 -0
  10. data/app/assets/images/clock.png +0 -0
  11. data/app/assets/images/control_play_blue.png +0 -0
  12. data/app/assets/images/down_arrow.gif +0 -0
  13. data/app/assets/images/papertrail_job.png +0 -0
  14. data/app/assets/images/papertrail_machine.png +0 -0
  15. data/app/assets/images/papertrail_machine_runner.png +0 -0
  16. data/app/assets/images/terminate.png +0 -0
  17. data/app/assets/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  18. data/app/assets/images/ui-bg_flat_0_ffffff_40x100.png +0 -0
  19. data/app/assets/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  20. data/app/assets/images/ui-bg_glass_0_f4f4f4_1x400.png +0 -0
  21. data/app/assets/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  22. data/app/assets/images/ui-bg_glass_65_f4f4f4_1x400.png +0 -0
  23. data/app/assets/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  24. data/app/assets/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  25. data/app/assets/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  26. data/app/assets/images/ui-bg_glass_75_f4f4f4_1x400.png +0 -0
  27. data/app/assets/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  28. data/app/assets/images/ui-bg_highlight-soft_0_f4f4f4_1x100.png +0 -0
  29. data/app/assets/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  30. data/app/assets/images/ui-icons_222222_256x240.png +0 -0
  31. data/app/assets/images/ui-icons_2e83ff_256x240.png +0 -0
  32. data/app/assets/images/ui-icons_454545_256x240.png +0 -0
  33. data/app/assets/images/ui-icons_888888_256x240.png +0 -0
  34. data/app/assets/images/ui-icons_cd0a0a_256x240.png +0 -0
  35. data/app/assets/images/up_arrow.gif +0 -0
  36. data/app/assets/javascripts/dataTablesTemplates/applications.js +94 -0
  37. data/app/assets/javascripts/dataTablesTemplates/jobs.js +163 -0
  38. data/app/assets/javascripts/dataTablesTemplates/machine_runner_invocations.js +60 -0
  39. data/app/assets/javascripts/dataTablesTemplates/machine_runners.js +82 -0
  40. data/app/assets/javascripts/dataTablesTemplates/machines.js +93 -0
  41. data/app/assets/javascripts/date.js +104 -0
  42. data/app/assets/javascripts/iso8601.js +41 -0
  43. data/app/assets/javascripts/jquery.dataTables.custom.js +62 -0
  44. data/app/assets/javascripts/jquery.dataTables.js +6862 -0
  45. data/app/assets/javascripts/naf.js +30 -0
  46. data/app/assets/javascripts/underscore.js +713 -0
  47. data/app/assets/stylesheets/jquery_ui/jquery-ui-1.8.5.custom.css.erb +572 -0
  48. data/app/assets/stylesheets/min_naf.css +14 -0
  49. data/app/assets/stylesheets/min_naf/layout.css.scss +355 -0
  50. data/app/assets/stylesheets/naf.css +14 -0
  51. data/app/assets/stylesheets/naf/layout.css.scss +497 -0
  52. data/app/controllers/naf/affinities_controller.rb +61 -0
  53. data/app/controllers/naf/application_controller.rb +43 -0
  54. data/app/controllers/naf/application_schedule_affinity_tabs_controller.rb +75 -0
  55. data/app/controllers/naf/applications_controller.rb +153 -0
  56. data/app/controllers/naf/historical_job_affinity_tabs_controller.rb +65 -0
  57. data/app/controllers/naf/historical_jobs_controller.rb +159 -0
  58. data/app/controllers/naf/janitorial_assignments_controller.rb +77 -0
  59. data/app/controllers/naf/logger_names_controller.rb +58 -0
  60. data/app/controllers/naf/logger_styles_controller.rb +59 -0
  61. data/app/controllers/naf/machine_affinity_slots_controller.rb +69 -0
  62. data/app/controllers/naf/machine_runner_invocations_controller.rb +59 -0
  63. data/app/controllers/naf/machine_runners_controller.rb +26 -0
  64. data/app/controllers/naf/machines_controller.rb +95 -0
  65. data/app/helpers/naf/application_helper.rb +275 -0
  66. data/app/models/log4r/papertrail_outputter.rb +19 -0
  67. data/app/models/logical/naf/application.rb +183 -0
  68. data/app/models/logical/naf/construction_zone/ad_hoc_work_order.rb +22 -0
  69. data/app/models/logical/naf/construction_zone/application_schedule_work_order.rb +15 -0
  70. data/app/models/logical/naf/construction_zone/application_work_order.rb +25 -0
  71. data/app/models/logical/naf/construction_zone/boss.rb +123 -0
  72. data/app/models/logical/naf/construction_zone/foreman.rb +53 -0
  73. data/app/models/logical/naf/construction_zone/proletariat.rb +40 -0
  74. data/app/models/logical/naf/construction_zone/work_order.rb +100 -0
  75. data/app/models/logical/naf/create_infrastructure.rb +48 -0
  76. data/app/models/logical/naf/job.rb +357 -0
  77. data/app/models/logical/naf/job_creator.rb +155 -0
  78. data/app/models/logical/naf/job_fetcher.rb +167 -0
  79. data/app/models/logical/naf/job_statuses/errored.rb +27 -0
  80. data/app/models/logical/naf/job_statuses/finished.rb +26 -0
  81. data/app/models/logical/naf/job_statuses/finished_less_minute.rb +25 -0
  82. data/app/models/logical/naf/job_statuses/queued.rb +32 -0
  83. data/app/models/logical/naf/job_statuses/running.rb +34 -0
  84. data/app/models/logical/naf/job_statuses/terminated.rb +25 -0
  85. data/app/models/logical/naf/job_statuses/waiting.rb +43 -0
  86. data/app/models/logical/naf/machine.rb +85 -0
  87. data/app/models/logical/naf/machine_runner.rb +46 -0
  88. data/app/models/logical/naf/machine_runner_invocation.rb +50 -0
  89. data/app/models/logical/naf/pickler.rb +74 -0
  90. data/app/models/logical/naf/unpickler.rb +98 -0
  91. data/app/models/naf/affinity.rb +145 -0
  92. data/app/models/naf/affinity_classification.rb +44 -0
  93. data/app/models/naf/application.rb +100 -0
  94. data/app/models/naf/application_run_group_restriction.rb +39 -0
  95. data/app/models/naf/application_schedule.rb +181 -0
  96. data/app/models/naf/application_schedule_affinity_tab.rb +86 -0
  97. data/app/models/naf/application_schedule_prerequisite.rb +50 -0
  98. data/app/models/naf/application_type.rb +72 -0
  99. data/app/models/naf/by_historical_job_id.rb +86 -0
  100. data/app/models/naf/historical_job.rb +334 -0
  101. data/app/models/naf/historical_job_affinity_tab.rb +61 -0
  102. data/app/models/naf/historical_job_prerequisite.rb +19 -0
  103. data/app/models/naf/janitorial_archive_assignment.rb +36 -0
  104. data/app/models/naf/janitorial_assignment.rb +37 -0
  105. data/app/models/naf/janitorial_create_assignment.rb +36 -0
  106. data/app/models/naf/janitorial_drop_assignment.rb +36 -0
  107. data/app/models/naf/logger_level.rb +21 -0
  108. data/app/models/naf/logger_name.rb +23 -0
  109. data/app/models/naf/logger_style.rb +58 -0
  110. data/app/models/naf/logger_style_name.rb +28 -0
  111. data/app/models/naf/machine.rb +257 -0
  112. data/app/models/naf/machine_affinity_slot.rb +78 -0
  113. data/app/models/naf/machine_runner.rb +51 -0
  114. data/app/models/naf/machine_runner_invocation.rb +71 -0
  115. data/app/models/naf/naf_base.rb +9 -0
  116. data/app/models/naf/queued_job.rb +164 -0
  117. data/app/models/naf/running_job.rb +80 -0
  118. data/app/models/process/naf/application.rb +164 -0
  119. data/app/models/process/naf/janitor.rb +117 -0
  120. data/app/models/process/naf/machine_manager.rb +150 -0
  121. data/app/models/process/naf/machine_upgrader.rb +112 -0
  122. data/app/models/process/naf/runner.rb +539 -0
  123. data/app/views/naf/affinities/_form.html.erb +50 -0
  124. data/app/views/naf/affinities/edit.html.erb +11 -0
  125. data/app/views/naf/affinities/index.html.erb +57 -0
  126. data/app/views/naf/affinities/new.html.erb +15 -0
  127. data/app/views/naf/affinities/show.html.erb +48 -0
  128. data/app/views/naf/application_schedule_affinity_tabs/_form.html.erb +31 -0
  129. data/app/views/naf/application_schedule_affinity_tabs/edit.html.erb +12 -0
  130. data/app/views/naf/application_schedule_affinity_tabs/new.html.erb +11 -0
  131. data/app/views/naf/applications/_application_schedule.html.erb +80 -0
  132. data/app/views/naf/applications/_application_schedule_prerequisites.html.erb +14 -0
  133. data/app/views/naf/applications/_form.html.erb +109 -0
  134. data/app/views/naf/applications/_search_container.html.erb +94 -0
  135. data/app/views/naf/applications/_show.html.erb +34 -0
  136. data/app/views/naf/applications/edit.html.erb +11 -0
  137. data/app/views/naf/applications/index.html.erb +51 -0
  138. data/app/views/naf/applications/index.json.erb +11 -0
  139. data/app/views/naf/applications/new.html.erb +11 -0
  140. data/app/views/naf/applications/show.html.erb +203 -0
  141. data/app/views/naf/datatable.html.erb +49 -0
  142. data/app/views/naf/historical_job_affinity_tabs/_form.html.erb +36 -0
  143. data/app/views/naf/historical_job_affinity_tabs/edit.html.erb +11 -0
  144. data/app/views/naf/historical_job_affinity_tabs/new.html.erb +11 -0
  145. data/app/views/naf/historical_jobs/_form.html.erb +94 -0
  146. data/app/views/naf/historical_jobs/_runners.html.erb +22 -0
  147. data/app/views/naf/historical_jobs/_search_container.html.erb +140 -0
  148. data/app/views/naf/historical_jobs/edit.html.erb +11 -0
  149. data/app/views/naf/historical_jobs/index.html.erb +48 -0
  150. data/app/views/naf/historical_jobs/index.json.erb +26 -0
  151. data/app/views/naf/historical_jobs/new.html.erb +61 -0
  152. data/app/views/naf/historical_jobs/show.html.erb +201 -0
  153. data/app/views/naf/janitorial_assignments/_form.html.erb +38 -0
  154. data/app/views/naf/janitorial_assignments/_rows.html.erb +17 -0
  155. data/app/views/naf/janitorial_assignments/edit.html.erb +11 -0
  156. data/app/views/naf/janitorial_assignments/index.html.erb +56 -0
  157. data/app/views/naf/janitorial_assignments/index.js.erb +1 -0
  158. data/app/views/naf/janitorial_assignments/new.html.erb +11 -0
  159. data/app/views/naf/layouts/jquery_datatables.json.erb +6 -0
  160. data/app/views/naf/logger_names/_form.html.erb +18 -0
  161. data/app/views/naf/logger_names/edit.html.erb +11 -0
  162. data/app/views/naf/logger_names/new.html.erb +11 -0
  163. data/app/views/naf/logger_names/show.html.erb +44 -0
  164. data/app/views/naf/logger_styles/_form.html.erb +30 -0
  165. data/app/views/naf/logger_styles/_logger_style_names.html.erb +19 -0
  166. data/app/views/naf/logger_styles/edit.html.erb +11 -0
  167. data/app/views/naf/logger_styles/new.html.erb +11 -0
  168. data/app/views/naf/logger_styles/show.html.erb +48 -0
  169. data/app/views/naf/machine_affinity_slots/_form.html.erb +36 -0
  170. data/app/views/naf/machine_affinity_slots/edit.html.erb +11 -0
  171. data/app/views/naf/machine_affinity_slots/new.html.erb +11 -0
  172. data/app/views/naf/machine_runner_invocations/_filter.html.erb +21 -0
  173. data/app/views/naf/machine_runner_invocations/index.html.erb +36 -0
  174. data/app/views/naf/machine_runner_invocations/index.json.erb +16 -0
  175. data/app/views/naf/machine_runner_invocations/show.html.erb +91 -0
  176. data/app/views/naf/machine_runners/index.html.erb +82 -0
  177. data/app/views/naf/machine_runners/index.json.erb +16 -0
  178. data/app/views/naf/machine_runners/show.html.erb +113 -0
  179. data/app/views/naf/machines/_filter.html.erb +26 -0
  180. data/app/views/naf/machines/_form.html.erb +62 -0
  181. data/app/views/naf/machines/_show.html.erb +169 -0
  182. data/app/views/naf/machines/edit.html.erb +11 -0
  183. data/app/views/naf/machines/index.html.erb +51 -0
  184. data/app/views/naf/machines/index.json.erb +23 -0
  185. data/app/views/naf/machines/new.html.erb +11 -0
  186. data/app/views/naf/machines/show.html.erb +92 -0
  187. data/app/views/naf/record.html.erb +46 -0
  188. data/app/views/naf/shared/_application.html.erb +50 -0
  189. data/app/views/naf/shared/_information_container.html.erb +19 -0
  190. data/app/views/naf/shared/_select_per_page.html.erb +72 -0
  191. data/ci/test-build.sh +17 -0
  192. data/ci/travis.sh +26 -0
  193. data/config/initializers/naf.rb +3 -0
  194. data/config/routes.rb +38 -0
  195. data/db/migrate/20120820023848_naf_schema.rb +413 -0
  196. data/doc/README_FOR_APP +2 -0
  197. data/lib/generators/naf_generator.rb +45 -0
  198. data/lib/generators/templates/config/logging/af.yml +26 -0
  199. data/lib/generators/templates/config/logging/naf.yml +22 -0
  200. data/lib/generators/templates/config/logging/nafjob.yml +16 -0
  201. data/lib/generators/templates/config/logging/nafrunner.yml +17 -0
  202. data/lib/generators/templates/naf.rb +11 -0
  203. data/lib/generators/templates/naf_layout.html.erb +15 -0
  204. data/lib/naf.rb +48 -0
  205. data/lib/naf/configuration.rb +23 -0
  206. data/lib/naf/engine.rb +18 -0
  207. data/lib/naf/version.rb +3 -0
  208. data/lib/tasks/naf_tasks.rake +370 -0
  209. data/naf.gemspec +30 -0
  210. data/script/rails +10 -0
  211. data/spec/controllers/naf/affinities_controller_spec.rb +79 -0
  212. data/spec/controllers/naf/application_controller_spec.rb +10 -0
  213. data/spec/controllers/naf/application_schedule_affinity_tabs_controller_spec.rb +106 -0
  214. data/spec/controllers/naf/applications_controller_spec.rb +109 -0
  215. data/spec/controllers/naf/historical_job_affinity_tabs_controller_spec.rb +96 -0
  216. data/spec/controllers/naf/historical_jobs_controller_spec.rb +19 -0
  217. data/spec/controllers/naf/machine_affinity_slots_controller_spec.rb +109 -0
  218. data/spec/controllers/naf/machines_controller_spec.rb +74 -0
  219. data/spec/dummy/.gitignore +12 -0
  220. data/spec/dummy/README +19 -0
  221. data/spec/dummy/Rakefile +7 -0
  222. data/spec/dummy/app/assets/javascripts/application.js +16 -0
  223. data/spec/dummy/app/assets/stylesheets/application.css +14 -0
  224. data/spec/dummy/app/controllers/application_controller.rb +3 -0
  225. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  226. data/spec/dummy/app/models/my_script.rb +8 -0
  227. data/spec/dummy/app/models/other/base.rb.sample +10 -0
  228. data/spec/dummy/app/views/layouts/application.html.erb +15 -0
  229. data/spec/dummy/app/views/layouts/naf_layout.html.erb +15 -0
  230. data/spec/dummy/config.ru +4 -0
  231. data/spec/dummy/config/application.rb +62 -0
  232. data/spec/dummy/config/boot.rb +10 -0
  233. data/spec/dummy/config/database-non_primary.yml +20 -0
  234. data/spec/dummy/config/database-primary.yml +16 -0
  235. data/spec/dummy/config/environment.rb +5 -0
  236. data/spec/dummy/config/environments/development.rb +37 -0
  237. data/spec/dummy/config/environments/production.rb +67 -0
  238. data/spec/dummy/config/environments/test.rb +37 -0
  239. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  240. data/spec/dummy/config/initializers/inflections.rb +15 -0
  241. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  242. data/spec/dummy/config/initializers/naf.rb.non_primary +4 -0
  243. data/spec/dummy/config/initializers/naf.rb.primary +3 -0
  244. data/spec/dummy/config/initializers/secret_token.rb +7 -0
  245. data/spec/dummy/config/initializers/session_store.rb +8 -0
  246. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  247. data/spec/dummy/config/locales/en.yml +5 -0
  248. data/spec/dummy/config/logging/af.yml +26 -0
  249. data/spec/dummy/config/logging/naf.yml +22 -0
  250. data/spec/dummy/config/logging/nafjob.yml +16 -0
  251. data/spec/dummy/config/logging/nafrunner.yml +17 -0
  252. data/spec/dummy/config/routes.rb +5 -0
  253. data/spec/dummy/db/.gitignore +2 -0
  254. data/spec/dummy/lib/tasks/dummy.rake +60 -0
  255. data/spec/dummy/public/404.html +26 -0
  256. data/spec/dummy/public/422.html +26 -0
  257. data/spec/dummy/public/500.html +25 -0
  258. data/spec/dummy/public/favicon.ico +0 -0
  259. data/spec/dummy/script/rails +6 -0
  260. data/spec/factories/naf.rb +433 -0
  261. data/spec/helpers/naf/application_helper_spec.rb +0 -0
  262. data/spec/models/logical/naf/application_spec.rb +69 -0
  263. data/spec/models/logical/naf/job_creator_spec.rb +32 -0
  264. data/spec/models/logical/naf/job_fetcher_spec.rb +140 -0
  265. data/spec/models/logical/naf/job_spec.rb +282 -0
  266. data/spec/models/logical/naf/machine_spec.rb +61 -0
  267. data/spec/models/naf/affinity_classification_spec.rb +56 -0
  268. data/spec/models/naf/affinity_spec.rb +100 -0
  269. data/spec/models/naf/application_run_group_restriction_spec.rb +57 -0
  270. data/spec/models/naf/application_schedule_affinity_tab_spec.rb +85 -0
  271. data/spec/models/naf/application_schedule_prerequisite_spec.rb +35 -0
  272. data/spec/models/naf/application_schedule_spec.rb +166 -0
  273. data/spec/models/naf/application_spec.rb +128 -0
  274. data/spec/models/naf/application_type_spec.rb +104 -0
  275. data/spec/models/naf/historical_job_affinity_tab_spec.rb +59 -0
  276. data/spec/models/naf/historical_job_prerequisite_spec.rb +25 -0
  277. data/spec/models/naf/historical_job_spec.rb +334 -0
  278. data/spec/models/naf/logger_level_spec.rb +34 -0
  279. data/spec/models/naf/logger_name_spec.rb +35 -0
  280. data/spec/models/naf/logger_style_name_spec.rb +39 -0
  281. data/spec/models/naf/logger_style_spec.rb +89 -0
  282. data/spec/models/naf/machine_affinity_slot_spec.rb +77 -0
  283. data/spec/models/naf/machine_runner_invocation_spec.rb +38 -0
  284. data/spec/models/naf/machine_runner_spec.rb +37 -0
  285. data/spec/models/naf/machine_spec.rb +425 -0
  286. data/spec/models/naf/naf_base_spec.rb +14 -0
  287. data/spec/models/naf/queued_job_spec.rb +171 -0
  288. data/spec/models/naf/running_job_spec.rb +107 -0
  289. data/spec/models/process/naf/application_spec.rb +8 -0
  290. data/spec/models/process/naf/janitor_spec.rb +10 -0
  291. data/spec/models/process/naf/runner_spec.rb +10 -0
  292. data/spec/spec_helper.rb +32 -0
  293. data/spec/support/engine_routing.rb +27 -0
  294. data/spec/support/script_spec_helper.rb +58 -0
  295. metadata +590 -0
@@ -0,0 +1,77 @@
1
+ module Naf
2
+ class JanitorialAssignmentsController < Naf::ApplicationController
3
+
4
+ before_filter :set_cols_and_attributes
5
+
6
+ def index
7
+ @params_name = params_name
8
+ @rows =
9
+ if params[:deleted].nil? || params[:deleted] == "false"
10
+ janitorial_assignment_type.where(deleted: false).order("id desc")
11
+ else
12
+ janitorial_assignment_type.order("id desc")
13
+ end
14
+ respond_to do |format|
15
+ format.js
16
+ format.html
17
+ end
18
+ end
19
+
20
+ def show
21
+ @record = janitorial_assignment_type.find(params[:id])
22
+ render template: 'naf/record'
23
+ end
24
+
25
+ def new
26
+ @janitorial_assignment = janitorial_assignment_type.new
27
+ end
28
+
29
+ def create
30
+ @janitorial_assignment = janitorial_assignment_type.new(params[params_name])
31
+ if @janitorial_assignment.save
32
+ redirect_to(@janitorial_assignment,
33
+ notice: "#{@janitorial_assignment.type} '#{@janitorial_assignment.model_name}' was successfully created.")
34
+ else
35
+ render action: "new"
36
+ end
37
+ end
38
+
39
+ def edit
40
+ @janitorial_assignment = janitorial_assignment_type.find(params[:id])
41
+ end
42
+
43
+ def update
44
+ @janitorial_assignment = janitorial_assignment_type.find(params[:id])
45
+ if @janitorial_assignment.update_attributes(params[params_name])
46
+ redirect_to(@janitorial_assignment,
47
+ notice: "#{@janitorial_assignment.type} '#{@janitorial_assignment.model_name}' was successfully updated.")
48
+ else
49
+ render action: "edit"
50
+ end
51
+ end
52
+
53
+
54
+ private
55
+
56
+ def set_cols_and_attributes
57
+ @attributes = Naf::JanitorialAssignment.attribute_names.map(&:to_sym)
58
+ @cols = [:id, :type, :enabled, :model_name, :assignment_order]
59
+ end
60
+
61
+ def janitorial_assignment_type
62
+ params[:type].constantize
63
+ end
64
+
65
+ def params_name
66
+ case params[:type]
67
+ when /Create/
68
+ :janitorial_create_assignment
69
+ when /Archive/
70
+ :janitorial_archive_assignment
71
+ when /Drop/
72
+ :janitorial_drop_assignment
73
+ end
74
+ end
75
+
76
+ end
77
+ end
@@ -0,0 +1,58 @@
1
+ module Naf
2
+ class LoggerNamesController < Naf::ApplicationController
3
+
4
+ before_filter :set_cols_and_attributes
5
+
6
+ def index
7
+ @rows = Naf::LoggerName.all
8
+ render template: 'naf/datatable'
9
+ end
10
+
11
+ def show
12
+ @logger_name = Naf::LoggerName.find(params[:id])
13
+ end
14
+
15
+ def destroy
16
+ @logger_name = Naf::LoggerName.find(params[:id])
17
+ @logger_name.destroy
18
+ flash[:notice] = "Logger Name '#{@logger_name.name}' was successfully deleted."
19
+ redirect_to(action: "index")
20
+ end
21
+
22
+ def new
23
+ @logger_name = Naf::LoggerName.new
24
+ end
25
+
26
+ def create
27
+ @logger_name = Naf::LoggerName.new(params[:logger_name])
28
+ if @logger_name.save
29
+ redirect_to(@logger_name,
30
+ notice: "Logger Name '#{@logger_name.name}' was successfully created.")
31
+ else
32
+ render action: "new"
33
+ end
34
+ end
35
+
36
+ def edit
37
+ @logger_name = Naf::LoggerName.find(params[:id])
38
+ end
39
+
40
+ def update
41
+ @logger_name = Naf::LoggerName.find(params[:id])
42
+ if @logger_name.update_attributes(params[:logger_name])
43
+ redirect_to(@logger_name,
44
+ notice: "Logger Name '#{@logger_name.name}' was successfully updated.")
45
+ else
46
+ render action: "edit"
47
+ end
48
+ end
49
+
50
+ private
51
+
52
+ def set_cols_and_attributes
53
+ @attributes = Naf::LoggerName.attribute_names.map(&:to_s)
54
+ @cols = [:id, :name]
55
+ end
56
+
57
+ end
58
+ end
@@ -0,0 +1,59 @@
1
+ module Naf
2
+ class LoggerStylesController < Naf::ApplicationController
3
+
4
+ before_filter :set_cols_and_attributes
5
+
6
+ def index
7
+ @rows = Naf::LoggerStyle.all
8
+ render template: 'naf/datatable'
9
+ end
10
+
11
+ def show
12
+ @logger_style = Naf::LoggerStyle.find(params[:id])
13
+ end
14
+
15
+ def destroy
16
+ @logger_style = Naf::LoggerStyle.find(params[:id])
17
+ @logger_style.destroy
18
+ flash[:notice] = "Logger Style '#{@logger_style.name}' was successfully deleted."
19
+ redirect_to(action: "index")
20
+ end
21
+
22
+ def new
23
+ @logger_style = Naf::LoggerStyle.new
24
+ @logger_style.logger_style_names.build
25
+ end
26
+
27
+ def create
28
+ @logger_style = Naf::LoggerStyle.new(params[:logger_style])
29
+ if @logger_style.save
30
+ redirect_to(@logger_style,
31
+ notice: "Logger Style '#{@logger_style.name}' was successfully created.")
32
+ else
33
+ render action: "new"
34
+ end
35
+ end
36
+
37
+ def edit
38
+ @logger_style = Naf::LoggerStyle.find(params[:id])
39
+ end
40
+
41
+ def update
42
+ @logger_style = Naf::LoggerStyle.find(params[:id])
43
+ if @logger_style.update_attributes(params[:logger_style])
44
+ redirect_to(@logger_style,
45
+ notice: "Logger Style '#{@logger_style.name}' was successfully updated.")
46
+ else
47
+ render action: "edit"
48
+ end
49
+ end
50
+
51
+ private
52
+
53
+ def set_cols_and_attributes
54
+ @attributes = Naf::LoggerStyle.attribute_names.map(&:to_sym)
55
+ @cols = [:id, :name, :note, :_logger_names, :logger_levels]
56
+ end
57
+
58
+ end
59
+ end
@@ -0,0 +1,69 @@
1
+ module Naf
2
+ class MachineAffinitySlotsController < Naf::ApplicationController
3
+
4
+ before_filter :set_cols_and_attributes
5
+
6
+ def index
7
+ @rows = []
8
+ if params[:machine_id]
9
+ @rows = Naf::MachineAffinitySlot.where(machine_id: params[:machine_id])
10
+ end
11
+ render template: 'naf/datatable'
12
+ end
13
+
14
+ def show
15
+ @record = Naf::MachineAffinitySlot.find(params[:id])
16
+ @machine = Naf::Machine.find(params[:machine_id])
17
+ render template: 'naf/record'
18
+ end
19
+
20
+ def destroy
21
+ @machine = Naf::Machine.find(params[:machine_id])
22
+ @slot = Naf::MachineAffinitySlot.find(params[:id])
23
+ @slot.destroy
24
+ flash[:notice] = "Machine Affinity Slot '#{@slot.affinity_name}' was successfully deleted."
25
+ redirect_to naf.machine_machine_affinity_slots_path(@machine)
26
+ end
27
+
28
+ def new
29
+ @machine = Naf::Machine.find(params[:machine_id])
30
+ @slot = Naf::MachineAffinitySlot.new
31
+ end
32
+
33
+ def create
34
+ @machine = Naf::Machine.find(params[:machine_affinity_slot][:machine_id])
35
+ @slot = Naf::MachineAffinitySlot.new(params[:machine_affinity_slot])
36
+ if @slot.save
37
+ redirect_to(naf.machine_machine_affinity_slot_path(@machine, @slot),
38
+ notice: "Machine Affinity Slot '#{@slot.affinity_name}' was successfully created.")
39
+ else
40
+ render action: "new", machine_id: @machine.id
41
+ end
42
+ end
43
+
44
+ def edit
45
+ @slot = Naf::MachineAffinitySlot.find(params[:id])
46
+ @machine = Naf::Machine.find(params[:machine_id])
47
+ end
48
+
49
+ def update
50
+ @slot = Naf::MachineAffinitySlot.find(params[:id])
51
+ @machine = Naf::Machine.find(@slot.machine_id)
52
+ if @slot.update_attributes(params[:machine_affinity_slot])
53
+ redirect_to(naf.machine_machine_affinity_slot_path(@machine, @slot),
54
+ notice: "Machine Affinity Slot '#{@slot.affinity_name}' was successfully updated")
55
+ else
56
+ render action: "edit", machine_id: @machine.id
57
+ end
58
+ end
59
+
60
+
61
+ private
62
+
63
+ def set_cols_and_attributes
64
+ @cols = [:id, :machine_server_name, :machine_server_address, :affinity_classification_name, :affinity_name, :required]
65
+ @attributes = Naf::MachineAffinitySlot.attribute_names.map(&:to_sym) | @cols << :affinity_short_name
66
+ end
67
+
68
+ end
69
+ end
@@ -0,0 +1,59 @@
1
+ module Naf
2
+ class MachineRunnerInvocationsController < Naf::ApplicationController
3
+
4
+ before_filter :set_rows_per_page
5
+
6
+ def index
7
+ respond_to do |format|
8
+ format.html
9
+ format.json do
10
+ set_page
11
+
12
+ @total_records = ::Naf::MachineRunnerInvocation.count(:all)
13
+ @rows = ::Logical::Naf::MachineRunnerInvocation.
14
+ to_array(params['iSortCol_0'].to_i, params['sSortDir_0'], params['filter']['invocations']).
15
+ paginate(page: @page, per_page: @rows_per_page)
16
+
17
+ render layout: 'naf/layouts/jquery_datatables'
18
+ end
19
+ end
20
+ end
21
+
22
+ def show
23
+ @machine_runner_invocation = Naf::MachineRunnerInvocation.find(params[:id])
24
+ end
25
+
26
+ def update
27
+ respond_to do |format|
28
+ @machine_runner_invocation = Naf::MachineRunnerInvocation.find(params[:id])
29
+ format.json do
30
+ if params[:machine_runner_invocation][:request_to_wind_down].present?
31
+ @machine_runner_invocation.update_attributes!(wind_down_at: Time.zone.now)
32
+ @machine_runner_invocation.machine_runner.reload
33
+ render json: { success: true }.to_json
34
+ else
35
+ render json: { success: false }.to_json
36
+ end
37
+ end
38
+ end
39
+ end
40
+
41
+ def wind_down_all
42
+ if ::Naf::MachineRunnerInvocation.where('wind_down_at IS NULL').
43
+ count == 0
44
+
45
+ flash[:error] = "There aren't any Machine Runners to wind down!"
46
+ redirect_to machine_runners_path
47
+ return
48
+ end
49
+
50
+ ::Naf::MachineRunnerInvocation.
51
+ where('wind_down_at IS NULL').
52
+ update_all(wind_down_at: Time.zone.now)
53
+
54
+ redirect_to machine_runners_path,
55
+ notice: 'Machine Runners are winding down!'
56
+ end
57
+
58
+ end
59
+ end
@@ -0,0 +1,26 @@
1
+ module Naf
2
+ class MachineRunnersController < Naf::ApplicationController
3
+
4
+ before_filter :set_rows_per_page
5
+
6
+ def index
7
+ respond_to do |format|
8
+ format.html
9
+ format.json do
10
+ set_page
11
+
12
+ @total_records = ::Naf::MachineRunner.count(:all)
13
+ @rows = ::Logical::Naf::MachineRunner.to_array(params['iSortCol_0'].to_i, params['sSortDir_0']).
14
+ paginate(page: @page, per_page: @rows_per_page)
15
+
16
+ render layout: 'naf/layouts/jquery_datatables'
17
+ end
18
+ end
19
+ end
20
+
21
+ def show
22
+ @machine_runner = Naf::MachineRunner.find(params[:id])
23
+ end
24
+
25
+ end
26
+ end
@@ -0,0 +1,95 @@
1
+ module Naf
2
+ class MachinesController < Naf::ApplicationController
3
+
4
+ include Naf::ApplicationHelper
5
+
6
+ before_filter :set_rows_per_page
7
+
8
+ def index
9
+ respond_to do |format|
10
+ format.html
11
+ format.json do
12
+ set_page
13
+
14
+ if params['show'].present?
15
+ filter = params['show']['deleted']
16
+ else
17
+ filter = false
18
+ end
19
+
20
+ machines = []
21
+ machine = []
22
+ @total_records = Naf::Machine.count(:all)
23
+ Logical::Naf::Machine.all(filter).map(&:to_hash).map do |hash|
24
+ add_urls(hash).map do |key, value|
25
+ value = '' if value.nil?
26
+ machine << value
27
+ end
28
+ machines << machine
29
+ machine =[]
30
+ end
31
+ @machines = machines.paginate(page: @page, per_page: @rows_per_page)
32
+
33
+ render layout: 'naf/layouts/jquery_datatables'
34
+ end
35
+ end
36
+ end
37
+
38
+ def show
39
+ @machine = Naf::Machine.find(params[:id])
40
+ end
41
+
42
+ def new
43
+ @machine = Naf::Machine.new
44
+ end
45
+
46
+ def create
47
+ @machine = Naf::Machine.new(params[:machine])
48
+ if @machine.save
49
+ redirect_to(@machine,
50
+ notice: "Machine '#{@machine.server_name.blank? ? @machine.server_address : @machine.server_name}' was successfully created.")
51
+ else
52
+ render action: "new"
53
+ end
54
+ end
55
+
56
+ def edit
57
+ @machine = Naf::Machine.find(params[:id])
58
+ end
59
+
60
+ def update
61
+ respond_to do |format|
62
+ @machine = Naf::Machine.find(params[:id])
63
+
64
+ if params[:terminate]
65
+ @machine.mark_machine_down(::Naf::Machine.local_machine)
66
+ format.json do
67
+ render json: { success: true }.to_json
68
+ end
69
+ end
70
+
71
+ if @machine.update_attributes(params[:machine])
72
+ format.html do
73
+ redirect_to(@machine,
74
+ notice: "Machine '#{@machine.server_name.blank? ? @machine.server_address : @machine.server_name}' was successfully updated.")
75
+ end
76
+ else
77
+ format.html do
78
+ render action: "edit"
79
+ end
80
+ end
81
+ end
82
+ end
83
+
84
+ private
85
+
86
+ def add_urls(hash)
87
+ machine = ::Naf::Machine.find(hash[:id])
88
+ hash[:papertrail_url] = naf_papertrail_link(machine)
89
+ hash[:papertrail_runner_url] = naf_papertrail_link(machine, true)
90
+
91
+ hash
92
+ end
93
+
94
+ end
95
+ end