naf 2.0.4 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +28 -4
- data/RELEASE_NOTES.rdoc +8 -0
- data/app/assets/javascripts/dataTablesTemplates/application_schedules.js +72 -0
- data/app/assets/javascripts/dataTablesTemplates/applications.js +12 -21
- data/app/controllers/naf/application_schedule_affinity_tabs_controller.rb +5 -8
- data/app/controllers/naf/application_schedules_controller.rb +98 -0
- data/app/controllers/naf/applications_controller.rb +6 -98
- data/app/controllers/naf/historical_jobs_controller.rb +18 -8
- data/app/helpers/naf/application_helper.rb +47 -22
- data/app/models/logical/naf/application.rb +9 -126
- data/app/models/logical/naf/application_schedule.rb +186 -0
- data/app/models/logical/naf/construction_zone/boss.rb +4 -5
- data/app/models/logical/naf/construction_zone/foreman.rb +34 -13
- data/app/models/logical/naf/construction_zone/proletariat.rb +1 -0
- data/app/models/logical/naf/construction_zone/work_order.rb +11 -4
- data/app/models/logical/naf/job_fetcher.rb +1 -0
- data/app/models/naf/application.rb +5 -16
- data/app/models/naf/application_schedule.rb +117 -43
- data/app/models/naf/historical_job.rb +6 -3
- data/app/models/naf/queued_job.rb +3 -0
- data/app/models/naf/run_interval_style.rb +20 -0
- data/app/models/naf/running_job.rb +3 -0
- data/app/models/process/naf/data_migration/backfill_application_schedule_run_interval.rb +85 -0
- data/app/models/process/naf/log_archiver.rb +1 -1
- data/app/models/process/naf/log_reader.rb +141 -0
- data/app/models/process/naf/runner.rb +6 -49
- data/app/views/naf/application_schedule_affinity_tabs/_form.html.erb +1 -1
- data/app/views/naf/{applications → application_schedules}/_application_schedule_prerequisites.html.erb +1 -1
- data/app/views/naf/application_schedules/_form.html.erb +120 -0
- data/app/views/naf/application_schedules/edit.html.erb +11 -0
- data/app/views/naf/application_schedules/index.html.erb +47 -0
- data/app/views/naf/application_schedules/index.json.erb +8 -0
- data/app/views/naf/application_schedules/new.html.erb +11 -0
- data/app/views/naf/application_schedules/show.html.erb +130 -0
- data/app/views/naf/applications/_form.html.erb +44 -106
- data/app/views/naf/applications/_search_container.html.erb +29 -29
- data/app/views/naf/applications/index.html.erb +1 -10
- data/app/views/naf/applications/index.json.erb +22 -6
- data/app/views/naf/applications/show.html.erb +47 -97
- data/app/views/naf/logger_styles/_form.html.erb +0 -3
- data/app/views/naf/machines/_form.html.erb +3 -4
- data/config/routes.rb +3 -4
- data/db/migrate/20131219195439_add_run_interval_styles_table.rb +49 -0
- data/db/migrate/20140113183243_drop_run_start_minute_from_application_schedules.rb +18 -0
- data/lib/naf/version.rb +1 -1
- data/naf.gemspec +1 -1
- data/spec/controllers/naf/application_schedule_affinity_tabs_controller_spec.rb +34 -27
- data/spec/controllers/naf/applications_controller_spec.rb +0 -48
- data/spec/factories/naf.rb +14 -8
- data/spec/models/logical/naf/application_spec.rb +9 -37
- data/spec/models/logical/naf/machine_spec.rb +1 -1
- data/spec/models/naf/application_schedule_spec.rb +38 -50
- data/spec/models/naf/application_spec.rb +3 -3
- data/spec/models/naf/historical_job_spec.rb +4 -2
- data/spec/models/naf/queued_job_spec.rb +2 -0
- data/spec/models/naf/run_interval_style_spec.rb +28 -0
- data/spec/models/naf/running_job_spec.rb +2 -0
- metadata +19 -7
- data/app/models/logical/naf/job_creator.rb +0 -151
- data/app/views/naf/applications/_application_schedule.html.erb +0 -80
- 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) }
|
data/spec/factories/naf.rb
CHANGED
@@ -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
|
-
|
159
|
-
|
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
|
-
|
177
|
-
|
178
|
-
|
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
|
-
:
|
11
|
-
:
|
12
|
-
|
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
|
-
|
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
|
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
|
-
|
76
|
-
|
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
|
81
|
-
schedule.
|
82
|
-
|
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
|
-
|
88
|
-
|
89
|
-
|
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
|
93
|
-
schedule.
|
94
|
-
|
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\",
|
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
|
-
:
|
14
|
-
:
|
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
|
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!(
|
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.
|
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
|
+
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-
|
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/
|
331
|
-
- app/views/naf/
|
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
|