naf 2.0.4 → 2.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 (61) hide show
  1. data/README.rdoc +28 -4
  2. data/RELEASE_NOTES.rdoc +8 -0
  3. data/app/assets/javascripts/dataTablesTemplates/application_schedules.js +72 -0
  4. data/app/assets/javascripts/dataTablesTemplates/applications.js +12 -21
  5. data/app/controllers/naf/application_schedule_affinity_tabs_controller.rb +5 -8
  6. data/app/controllers/naf/application_schedules_controller.rb +98 -0
  7. data/app/controllers/naf/applications_controller.rb +6 -98
  8. data/app/controllers/naf/historical_jobs_controller.rb +18 -8
  9. data/app/helpers/naf/application_helper.rb +47 -22
  10. data/app/models/logical/naf/application.rb +9 -126
  11. data/app/models/logical/naf/application_schedule.rb +186 -0
  12. data/app/models/logical/naf/construction_zone/boss.rb +4 -5
  13. data/app/models/logical/naf/construction_zone/foreman.rb +34 -13
  14. data/app/models/logical/naf/construction_zone/proletariat.rb +1 -0
  15. data/app/models/logical/naf/construction_zone/work_order.rb +11 -4
  16. data/app/models/logical/naf/job_fetcher.rb +1 -0
  17. data/app/models/naf/application.rb +5 -16
  18. data/app/models/naf/application_schedule.rb +117 -43
  19. data/app/models/naf/historical_job.rb +6 -3
  20. data/app/models/naf/queued_job.rb +3 -0
  21. data/app/models/naf/run_interval_style.rb +20 -0
  22. data/app/models/naf/running_job.rb +3 -0
  23. data/app/models/process/naf/data_migration/backfill_application_schedule_run_interval.rb +85 -0
  24. data/app/models/process/naf/log_archiver.rb +1 -1
  25. data/app/models/process/naf/log_reader.rb +141 -0
  26. data/app/models/process/naf/runner.rb +6 -49
  27. data/app/views/naf/application_schedule_affinity_tabs/_form.html.erb +1 -1
  28. data/app/views/naf/{applications → application_schedules}/_application_schedule_prerequisites.html.erb +1 -1
  29. data/app/views/naf/application_schedules/_form.html.erb +120 -0
  30. data/app/views/naf/application_schedules/edit.html.erb +11 -0
  31. data/app/views/naf/application_schedules/index.html.erb +47 -0
  32. data/app/views/naf/application_schedules/index.json.erb +8 -0
  33. data/app/views/naf/application_schedules/new.html.erb +11 -0
  34. data/app/views/naf/application_schedules/show.html.erb +130 -0
  35. data/app/views/naf/applications/_form.html.erb +44 -106
  36. data/app/views/naf/applications/_search_container.html.erb +29 -29
  37. data/app/views/naf/applications/index.html.erb +1 -10
  38. data/app/views/naf/applications/index.json.erb +22 -6
  39. data/app/views/naf/applications/show.html.erb +47 -97
  40. data/app/views/naf/logger_styles/_form.html.erb +0 -3
  41. data/app/views/naf/machines/_form.html.erb +3 -4
  42. data/config/routes.rb +3 -4
  43. data/db/migrate/20131219195439_add_run_interval_styles_table.rb +49 -0
  44. data/db/migrate/20140113183243_drop_run_start_minute_from_application_schedules.rb +18 -0
  45. data/lib/naf/version.rb +1 -1
  46. data/naf.gemspec +1 -1
  47. data/spec/controllers/naf/application_schedule_affinity_tabs_controller_spec.rb +34 -27
  48. data/spec/controllers/naf/applications_controller_spec.rb +0 -48
  49. data/spec/factories/naf.rb +14 -8
  50. data/spec/models/logical/naf/application_spec.rb +9 -37
  51. data/spec/models/logical/naf/machine_spec.rb +1 -1
  52. data/spec/models/naf/application_schedule_spec.rb +38 -50
  53. data/spec/models/naf/application_spec.rb +3 -3
  54. data/spec/models/naf/historical_job_spec.rb +4 -2
  55. data/spec/models/naf/queued_job_spec.rb +2 -0
  56. data/spec/models/naf/run_interval_style_spec.rb +28 -0
  57. data/spec/models/naf/running_job_spec.rb +2 -0
  58. metadata +19 -7
  59. data/app/models/logical/naf/job_creator.rb +0 -151
  60. data/app/views/naf/applications/_application_schedule.html.erb +0 -80
  61. data/spec/models/logical/naf/job_creator_spec.rb +0 -102
@@ -16,54 +16,6 @@ module Naf
16
16
  response.should be_success
17
17
  end
18
18
 
19
- context "with regard to the edit action" do
20
-
21
- it "should build a new application schedule if it was destroyed" do
22
- @id = 5
23
- controller.stub(:check_application_run_group_name).and_return(nil)
24
- app_mock = mock_model(Application)
25
- schedule_mock = mock_model(ApplicationSchedule)
26
- schedule_prerequisites = mock_model(ApplicationSchedulePrerequisite)
27
- Application.should_receive(:find).with("5").and_return(app_mock)
28
- app_mock.should_receive(:application_schedule).and_return(nil)
29
- app_mock.should_receive(:build_application_schedule).and_return(schedule_mock)
30
- schedule_mock.should_receive(:application_schedule_prerequisites).and_return(schedule_prerequisites)
31
- schedule_prerequisites.should_receive(:build).and_return(nil)
32
- end
33
-
34
- it "should respond without building a new application schedule" do
35
- @id = 5
36
- controller.stub(:check_application_run_group_name).and_return(nil)
37
- app_mock = mock_model(Application)
38
- schedule_mock = mock_model(ApplicationSchedule)
39
- schedule_prerequisites = mock_model(ApplicationSchedulePrerequisite)
40
- app_mock.should_receive(:application_schedule).and_return(schedule_mock)
41
- Application.should_receive(:find).with("5").and_return(app_mock)
42
- schedule_mock.should_receive(:application_schedule_prerequisites).and_return(schedule_prerequisites)
43
- schedule_prerequisites.should_not_receive(:build)
44
- app_mock.should_not_receive(:build_application_schedule)
45
- end
46
-
47
- after(:each) do
48
- get :edit, id: @id
49
- response.should render_template("naf/applications/edit")
50
- response.should be_success
51
- end
52
- end
53
-
54
- it "should respond with affinity new" do
55
- app = double('app')
56
- app_schedule = double('application_schedule')
57
- schedule_prerequisites = double('schedule_prerequisites')
58
- Application.should_receive(:new).and_return(app)
59
- app.should_receive(:build_application_schedule).and_return(app_schedule)
60
- app_schedule.should_receive(:application_schedule_prerequisites).and_return(schedule_prerequisites)
61
- schedule_prerequisites.should_receive(:build).and_return(nil)
62
- get :new
63
- response.should render_template("naf/applications/new")
64
- response.should be_success
65
- end
66
-
67
19
  context "on the create action" do
68
20
  let(:application_schedule) { mock_model(ApplicationSchedule, application_run_group_name: 'command', prerequisites: []) }
69
21
  let(:valid_app) { mock_model(Application, save: true, id: 5, update_attributes: true, application_schedule: application_schedule) }
@@ -153,10 +153,12 @@ FactoryGirl.define do
153
153
  factory :application, parent: :application_base do
154
154
  sequence(:command) { |n| "::Naf::HistoricalJob.test hello_#{n}" }
155
155
  sequence(:title) { |n| "Test #{n}" }
156
- end
157
156
 
158
- factory :scheduled_application, parent: :application do
159
- association :application_schedule, factory: :schedule
157
+ factory :scheduled_application do
158
+ after(:create) do |application|
159
+ create_list(:schedule, 1, application: application)
160
+ end
161
+ end
160
162
  end
161
163
 
162
164
  #############################################################
@@ -166,20 +168,24 @@ FactoryGirl.define do
166
168
  factory :schedule_base, class: ::Naf::ApplicationSchedule do
167
169
  association :application, factory: :application
168
170
  association :application_run_group_restriction, factory: :no_limit
171
+ association :run_interval_style, factory: :run_interval_style
172
+ run_interval 0
169
173
  end
170
174
 
171
175
  factory :schedule, parent: :schedule_base do
172
- run_interval 1
173
176
  sequence(:application_run_group_name) { |n| "Run Group #{n}" }
174
177
  end
175
178
 
176
- factory :schedule_at_time, parent: :schedule do
177
- run_interval nil
178
- run_start_minute 5
179
+ #############################################################
180
+ ####### Application Schedule Prerequisites ################
181
+ #############################################################
182
+
183
+ factory :run_interval_style, class: ::Naf::RunIntervalStyle do
184
+ name 'at beginning of day'
179
185
  end
180
186
 
181
187
  #############################################################
182
- ####### Application Schedules ############ ################
188
+ ####### Application Schedules Prerequisite ################
183
189
  #############################################################
184
190
 
185
191
  factory :schedule_prerequisite, class: ::Naf::ApplicationSchedulePrerequisite do
@@ -2,26 +2,21 @@ require 'spec_helper'
2
2
 
3
3
  module Logical
4
4
  module Naf
5
+
5
6
  describe Application do
6
7
  let(:columns) { [:id,
7
8
  :title,
8
9
  :short_name,
9
10
  :script_type_name,
10
- :application_run_group_name,
11
- :application_run_group_restriction_name,
12
- :application_run_group_limit,
13
- :enabled,
14
- :enqueue_backlogs,
15
- :run_time,
16
- :affinities,
17
- :prerequisites,
18
- :deleted,
19
- :visible] }
20
- let(:physical_app) { FactoryGirl.create(:application, application_schedule: FactoryGirl.create(:schedule_base)) }
11
+ :application_schedules,
12
+ :deleted] }
13
+ let(:physical_app) { FactoryGirl.create(:application) }
21
14
  let!(:logical_app) { Application.new(physical_app) }
22
- let(:scheduled_physical_app) {
23
- FactoryGirl.create(:scheduled_application, application_schedule: FactoryGirl.create(:schedule_at_time))
24
- }
15
+ let(:scheduled_physical_app) { FactoryGirl.create(:scheduled_application) }
16
+
17
+ before do
18
+ physical_app.application_schedules << FactoryGirl.create(:schedule_base)
19
+ end
25
20
 
26
21
  context "Class Methods" do
27
22
  it "search method should return array of wrapper around physical application" do
@@ -39,29 +34,6 @@ module Logical
39
34
  it "to_hash should have the specified columns" do
40
35
  logical_app.to_hash.keys.should == columns
41
36
  end
42
-
43
- it "should render run_start_minute" do
44
- scheduled_physical_app.application_schedule.run_start_minute.should be_a(Fixnum)
45
-
46
- Application.new(scheduled_physical_app).run_start_minute.should be_a(String)
47
- end
48
-
49
- it "should delegate methods to its schedule" do
50
- methods = [:application_run_group_restriction_name,
51
- :run_interval,
52
- :application_run_group_name,
53
- :run_start_minute]
54
- schedule = scheduled_physical_app.application_schedule
55
- logical_scheduled_app = Application.new(scheduled_physical_app)
56
-
57
- methods.each do |m|
58
- schedule.should_receive(m).and_return(nil)
59
- end
60
-
61
- methods.each do |m|
62
- logical_scheduled_app.send(m)
63
- end
64
- end
65
37
  end
66
38
 
67
39
  end
@@ -21,7 +21,7 @@ module Logical
21
21
 
22
22
  describe '#self.all' do
23
23
  it 'return an array of logical wrappers around machines' do
24
- ::Logical::Naf::Machine.all.map(&:id).should == [physical_machine.id, physical_machine_two.id]
24
+ ::Logical::Naf::Machine.all.map(&:id).sort.should == [physical_machine.id, physical_machine_two.id]
25
25
  end
26
26
  end
27
27
 
@@ -12,10 +12,10 @@ module Naf
12
12
  :priority,
13
13
  :visible,
14
14
  :enabled,
15
- :run_start_minute,
16
15
  :application_run_group_limit,
17
16
  :application_schedule_prerequisites_attributes,
18
- :enqueue_backlogs].each do |a|
17
+ :enqueue_backlogs,
18
+ :run_interval_style_id].each do |a|
19
19
  it { should allow_mass_assignment_of(a) }
20
20
  end
21
21
 
@@ -31,6 +31,7 @@ module Naf
31
31
 
32
32
  it { should belong_to(:application) }
33
33
  it { should belong_to(:application_run_group_restriction) }
34
+ it { should belong_to(:run_interval_style) }
34
35
  it { should have_many(:application_schedule_affinity_tabs) }
35
36
  it { should have_many(:affinities) }
36
37
  it { should have_many(:application_schedule_prerequisites) }
@@ -71,27 +72,49 @@ module Naf
71
72
  # *** Class Methods ***
72
73
  #++++++++++++++++++++++
73
74
 
75
+ let!(:time) { Time.zone.now.beginning_of_day }
76
+
74
77
  describe "#exact_schedules" do
75
- it "return schedule when run_start_minute is set" do
76
- schedule.update_attributes!(run_start_minute: 1, run_interval: nil)
77
- ::Naf::ApplicationSchedule.exact_schedules.should == [schedule]
78
+ let!(:job) { FactoryGirl.create(:finished_job) }
79
+ it "return schedule when it is ready" do
80
+ ::Naf::ApplicationSchedule.exact_schedules(time, {}, {}).should == [schedule]
81
+ end
82
+
83
+ it "return no schedules when application has not finished running" do
84
+ apps = { schedule.id => job }
85
+ ::Naf::ApplicationSchedule.exact_schedules(time, apps, {}).should == []
78
86
  end
79
87
 
80
- it "return no schedules when run_start_minute is not set" do
81
- schedule.update_attributes!(run_start_minute: nil, run_interval: nil)
82
- ::Naf::ApplicationSchedule.exact_schedules.should == []
88
+ it "return no schedules when interval time has not passed" do
89
+ apps = { schedule.id => job }
90
+ schedule.run_interval = 20
91
+ ::Naf::ApplicationSchedule.exact_schedules(time, {}, apps).should == []
92
+ end
93
+
94
+ it "return no schedules when it is not time to run the application" do
95
+ time = Time.zone.now
96
+ ::Naf::ApplicationSchedule.exact_schedules(time, {}, {}).should == []
83
97
  end
84
98
  end
85
99
 
86
100
  describe "#relative_schedules" do
87
- it "return schedule when run_interval is set" do
88
- schedule.update_attributes!(run_interval: 60)
89
- ::Naf::ApplicationSchedule.relative_schedules.should == [schedule]
101
+ let!(:job) { FactoryGirl.create(:finished_job) }
102
+ it "return schedule when it is ready" do
103
+ schedule.run_interval_style.name = 'after previous run'
104
+ schedule.run_interval_style.save
105
+
106
+ ::Naf::ApplicationSchedule.relative_schedules(time, {}, {}).should == [schedule]
107
+ end
108
+
109
+ it "return no schedules when application has not finished running" do
110
+ apps = { schedule.application_id => job }
111
+ ::Naf::ApplicationSchedule.relative_schedules(time, apps, {}).should == []
90
112
  end
91
113
 
92
- it "return no schedules when run_interval is not set" do
93
- schedule.update_attributes!(run_interval: nil)
94
- ::Naf::ApplicationSchedule.relative_schedules.should == []
114
+ it "return no schedules when interval time has not passed" do
115
+ apps = { schedule.application_id => job }
116
+ schedule.run_interval = 20
117
+ ::Naf::ApplicationSchedule.relative_schedules(time, {}, apps).should == []
95
118
  end
96
119
  end
97
120
 
@@ -107,7 +130,7 @@ module Naf
107
130
 
108
131
  it "return correct parsing of app" do
109
132
  schedule.to_s.should == "::Naf::ApplicationSchedule<ENABLED, id: #{schedule.id}, " +
110
- "\"App1\", start every: 1 minutes>"
133
+ "\"App1\", #{::Logical::Naf::ApplicationSchedule.new(schedule).display}>"
111
134
  end
112
135
  end
113
136
 
@@ -127,40 +150,5 @@ module Naf
127
150
  end
128
151
  end
129
152
 
130
- describe "#enabled_application_id_unique" do
131
- let(:error_message) { {
132
- application_id: ['is enabled and has already been taken']
133
- } }
134
-
135
- it "return nil if enabled is false" do
136
- schedule.enabled = false
137
- schedule.enabled_application_id_unique.should == nil
138
- end
139
-
140
- it "return nil if enabled is false" do
141
- schedule2 = FactoryGirl.create(:schedule)
142
- schedule2.application_id = schedule.application_id
143
- schedule2.enabled_application_id_unique
144
-
145
- schedule2.errors.messages.should == error_message
146
- end
147
- end
148
-
149
- describe "#run_interval_at_time_check" do
150
- let(:error_messages) { {
151
- run_interval: ['or Run start minute must be nil'],
152
- run_start_minute: ['or Run interval must be nil']
153
- } }
154
-
155
- before do
156
- schedule.run_start_minute = 1
157
- schedule.run_interval_at_time_check
158
- end
159
-
160
- it "add errors to schedule" do
161
- schedule.errors.messages.should == error_messages
162
- end
163
- end
164
-
165
153
  end
166
154
  end
@@ -10,8 +10,8 @@ module Naf
10
10
  :log_level,
11
11
  :short_name,
12
12
  :deleted,
13
- :application_schedule,
14
- :application_schedule_attributes].each do |a|
13
+ :application_schedules,
14
+ :application_schedules_attributes].each do |a|
15
15
  it { should allow_mass_assignment_of(a) }
16
16
  end
17
17
 
@@ -26,7 +26,7 @@ module Naf
26
26
  #+++++++++++++++++++++
27
27
 
28
28
  it { should belong_to(:application_type) }
29
- it { should have_one(:application_schedule) }
29
+ it { should have_many(:application_schedules) }
30
30
  it { should have_many(:historical_jobs) }
31
31
 
32
32
  #--------------------
@@ -11,6 +11,7 @@ module Naf
11
11
 
12
12
  # Mass-assignment
13
13
  [:application_id,
14
+ :application_schedule_id,
14
15
  :application_type_id,
15
16
  :command,
16
17
  :application_run_group_restriction_id,
@@ -40,6 +41,7 @@ module Naf
40
41
  # *** Associations ***
41
42
  #+++++++++++++++++++++
42
43
 
44
+ it { should belong_to(:application_schedule) }
43
45
  it { should belong_to(:application_type) }
44
46
  it { should belong_to(:started_on_machine) }
45
47
  it { should belong_to(:marked_dead_by_machine) }
@@ -103,13 +105,13 @@ module Naf
103
105
 
104
106
  describe "#application_last_runs" do
105
107
  before do
106
- historical_job.update_attributes!(application_id: FactoryGirl.create(:application).id)
108
+ historical_job.update_attributes!(application_schedule_id: FactoryGirl.create(:scheduled_application).id)
107
109
  end
108
110
 
109
111
  it "return job when it finished running" do
110
112
  historical_job.finished_at = Time.zone.now
111
113
  historical_job.save!
112
- ::Naf::HistoricalJob.application_last_runs.first.application.should == historical_job.application
114
+ ::Naf::HistoricalJob.application_last_runs.first.application_schedule.should == historical_job.application_schedule
113
115
  end
114
116
 
115
117
  it "return nil when job has not finished running" do
@@ -4,6 +4,7 @@ module Naf
4
4
  describe QueuedJob do
5
5
  # Mass-assignment
6
6
  [:application_id,
7
+ :application_schedule_id,
7
8
  :application_type_id,
8
9
  :command,
9
10
  :application_run_group_restriction_id,
@@ -25,6 +26,7 @@ module Naf
25
26
 
26
27
  it { should belong_to(:historical_job) }
27
28
  it { should belong_to(:application) }
29
+ it { should belong_to(:application_schedule) }
28
30
  it { should belong_to(:application_type) }
29
31
  it { should belong_to(:application_run_group_restriction) }
30
32
 
@@ -0,0 +1,28 @@
1
+ require 'spec_helper'
2
+
3
+ module Naf
4
+ describe RunIntervalStyle do
5
+ # Mass-assignment
6
+ [:name].each do |a|
7
+ it { should allow_mass_assignment_of(a) }
8
+ end
9
+
10
+ [:id,
11
+ :created_at].each do |a|
12
+ it { should_not allow_mass_assignment_of(a) }
13
+ end
14
+
15
+ #---------------------
16
+ # *** Associations ***
17
+ #+++++++++++++++++++++
18
+
19
+ it { should have_many(:application_schedules) }
20
+
21
+ #--------------------
22
+ # *** Validations ***
23
+ #++++++++++++++++++++
24
+
25
+ it { should validate_presence_of(:name) }
26
+
27
+ end
28
+ end
@@ -6,6 +6,7 @@ module Naf
6
6
 
7
7
  # Mass-assignment
8
8
  [:application_id,
9
+ :application_schedule_id,
9
10
  :application_type_id,
10
11
  :command,
11
12
  :application_run_group_restriction_id,
@@ -33,6 +34,7 @@ module Naf
33
34
 
34
35
  it { should belong_to(:historical_job) }
35
36
  it { should belong_to(:application) }
37
+ it { should belong_to(:application_schedule) }
36
38
  it { should belong_to(:application_type) }
37
39
  it { should belong_to(:application_run_group_restriction) }
38
40
  it { should belong_to(:started_on_machine) }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: naf
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.4
4
+ version: 2.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2014-01-10 00:00:00.000000000 Z
15
+ date: 2014-01-24 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: rails
@@ -221,6 +221,7 @@ files:
221
221
  - app/assets/images/ui-icons_cd0a0a_256x240.png
222
222
  - app/assets/images/up_arrow.gif
223
223
  - app/assets/javascripts/col_reorder_with_resize.js
224
+ - app/assets/javascripts/dataTablesTemplates/application_schedules.js
224
225
  - app/assets/javascripts/dataTablesTemplates/applications.js
225
226
  - app/assets/javascripts/dataTablesTemplates/jobs.js
226
227
  - app/assets/javascripts/dataTablesTemplates/machine_runner_invocations.js
@@ -240,6 +241,7 @@ files:
240
241
  - app/controllers/naf/affinities_controller.rb
241
242
  - app/controllers/naf/application_controller.rb
242
243
  - app/controllers/naf/application_schedule_affinity_tabs_controller.rb
244
+ - app/controllers/naf/application_schedules_controller.rb
243
245
  - app/controllers/naf/applications_controller.rb
244
246
  - app/controllers/naf/historical_job_affinity_tabs_controller.rb
245
247
  - app/controllers/naf/historical_jobs_controller.rb
@@ -256,6 +258,7 @@ files:
256
258
  - app/helpers/naf/application_helper.rb
257
259
  - app/helpers/naf/time_helper.rb
258
260
  - app/models/logical/naf/application.rb
261
+ - app/models/logical/naf/application_schedule.rb
259
262
  - app/models/logical/naf/construction_zone/ad_hoc_work_order.rb
260
263
  - app/models/logical/naf/construction_zone/application_schedule_work_order.rb
261
264
  - app/models/logical/naf/construction_zone/application_work_order.rb
@@ -265,7 +268,6 @@ files:
265
268
  - app/models/logical/naf/construction_zone/work_order.rb
266
269
  - app/models/logical/naf/create_infrastructure.rb
267
270
  - app/models/logical/naf/job.rb
268
- - app/models/logical/naf/job_creator.rb
269
271
  - app/models/logical/naf/job_fetcher.rb
270
272
  - app/models/logical/naf/job_statuses/errored.rb
271
273
  - app/models/logical/naf/job_statuses/finished.rb
@@ -311,10 +313,13 @@ files:
311
313
  - app/models/naf/machine_runner_invocation.rb
312
314
  - app/models/naf/naf_base.rb
313
315
  - app/models/naf/queued_job.rb
316
+ - app/models/naf/run_interval_style.rb
314
317
  - app/models/naf/running_job.rb
315
318
  - app/models/process/naf/application.rb
319
+ - app/models/process/naf/data_migration/backfill_application_schedule_run_interval.rb
316
320
  - app/models/process/naf/janitor.rb
317
321
  - app/models/process/naf/log_archiver.rb
322
+ - app/models/process/naf/log_reader.rb
318
323
  - app/models/process/naf/machine_manager.rb
319
324
  - app/models/process/naf/machine_upgrader.rb
320
325
  - app/models/process/naf/runner.rb
@@ -327,8 +332,13 @@ files:
327
332
  - app/views/naf/application_schedule_affinity_tabs/_form.html.erb
328
333
  - app/views/naf/application_schedule_affinity_tabs/edit.html.erb
329
334
  - app/views/naf/application_schedule_affinity_tabs/new.html.erb
330
- - app/views/naf/applications/_application_schedule.html.erb
331
- - app/views/naf/applications/_application_schedule_prerequisites.html.erb
335
+ - app/views/naf/application_schedules/_application_schedule_prerequisites.html.erb
336
+ - app/views/naf/application_schedules/_form.html.erb
337
+ - app/views/naf/application_schedules/edit.html.erb
338
+ - app/views/naf/application_schedules/index.html.erb
339
+ - app/views/naf/application_schedules/index.json.erb
340
+ - app/views/naf/application_schedules/new.html.erb
341
+ - app/views/naf/application_schedules/show.html.erb
332
342
  - app/views/naf/applications/_form.html.erb
333
343
  - app/views/naf/applications/_search_container.html.erb
334
344
  - app/views/naf/applications/_show.html.erb
@@ -404,6 +414,8 @@ files:
404
414
  - db/migrate/20120820023848_naf_schema.rb
405
415
  - db/migrate/20131106162436_add_uuid_column_to_machine_runner_invocations.rb
406
416
  - db/migrate/20131121185222_move_tabs_column_from_historical_jobs_to_running_jobs.rb
417
+ - db/migrate/20131219195439_add_run_interval_styles_table.rb
418
+ - db/migrate/20140113183243_drop_run_start_minute_from_application_schedules.rb
407
419
  - doc/README_FOR_APP
408
420
  - lib/generators/naf_generator.rb
409
421
  - lib/generators/templates/config/logging/af.yml
@@ -471,7 +483,6 @@ files:
471
483
  - spec/factories/naf.rb
472
484
  - spec/helpers/naf/application_helper_spec.rb
473
485
  - spec/models/logical/naf/application_spec.rb
474
- - spec/models/logical/naf/job_creator_spec.rb
475
486
  - spec/models/logical/naf/job_fetcher_spec.rb
476
487
  - spec/models/logical/naf/job_spec.rb
477
488
  - spec/models/logical/naf/log_file_spec.rb
@@ -499,6 +510,7 @@ files:
499
510
  - spec/models/naf/machine_spec.rb
500
511
  - spec/models/naf/naf_base_spec.rb
501
512
  - spec/models/naf/queued_job_spec.rb
513
+ - spec/models/naf/run_interval_style_spec.rb
502
514
  - spec/models/naf/running_job_spec.rb
503
515
  - spec/models/process/naf/application_spec.rb
504
516
  - spec/models/process/naf/janitor_spec.rb
@@ -585,7 +597,6 @@ test_files:
585
597
  - spec/factories/naf.rb
586
598
  - spec/helpers/naf/application_helper_spec.rb
587
599
  - spec/models/logical/naf/application_spec.rb
588
- - spec/models/logical/naf/job_creator_spec.rb
589
600
  - spec/models/logical/naf/job_fetcher_spec.rb
590
601
  - spec/models/logical/naf/job_spec.rb
591
602
  - spec/models/logical/naf/log_file_spec.rb
@@ -613,6 +624,7 @@ test_files:
613
624
  - spec/models/naf/machine_spec.rb
614
625
  - spec/models/naf/naf_base_spec.rb
615
626
  - spec/models/naf/queued_job_spec.rb
627
+ - spec/models/naf/run_interval_style_spec.rb
616
628
  - spec/models/naf/running_job_spec.rb
617
629
  - spec/models/process/naf/application_spec.rb
618
630
  - spec/models/process/naf/janitor_spec.rb