naf 2.0.4 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
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