ddr-batch 1.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (31) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +12 -0
  3. data/README.md +100 -0
  4. data/Rakefile +36 -0
  5. data/app/jobs/ddr/batch/batch_processor_job.rb +21 -0
  6. data/app/mailers/ddr/batch/batch_processor_run_mailer.rb +19 -0
  7. data/app/models/ddr/batch/batch.rb +72 -0
  8. data/app/models/ddr/batch/batch_ability_definitions.rb +14 -0
  9. data/app/models/ddr/batch/batch_object.rb +297 -0
  10. data/app/models/ddr/batch/batch_object_attribute.rb +57 -0
  11. data/app/models/ddr/batch/batch_object_datastream.rb +23 -0
  12. data/app/models/ddr/batch/batch_object_relationship.rb +26 -0
  13. data/app/models/ddr/batch/ingest_batch_object.rb +118 -0
  14. data/app/models/ddr/batch/update_batch_object.rb +94 -0
  15. data/app/scripts/ddr/batch/batch_processor.rb +151 -0
  16. data/app/views/ddr/batch/batch_processor_run_mailer/send_notification.html.erb +34 -0
  17. data/app/views/ddr/batch/batch_processor_run_mailer/send_notification.text.erb +20 -0
  18. data/config/locales/en.yml +52 -0
  19. data/config/routes.rb +2 -0
  20. data/db/migrate/20150828183839_create_batches.rb +25 -0
  21. data/db/migrate/20150828201857_create_batch_objects.rb +18 -0
  22. data/db/migrate/20150828202118_create_batch_object_attributes.rb +16 -0
  23. data/db/migrate/20150828202200_create_batch_object_datastreams.rb +17 -0
  24. data/db/migrate/20150828202240_create_batch_object_relationships.rb +15 -0
  25. data/lib/ddr-batch.rb +1 -0
  26. data/lib/ddr/batch.rb +17 -0
  27. data/lib/ddr/batch/batch_user.rb +10 -0
  28. data/lib/ddr/batch/engine.rb +14 -0
  29. data/lib/ddr/batch/version.rb +5 -0
  30. data/lib/tasks/ddr_batch_tasks.rake +4 -0
  31. metadata +228 -0
@@ -0,0 +1,34 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
5
+ <style type="text/css">
6
+ th { text-align: left; }
7
+ td { text-align: right; }
8
+ </style>
9
+ </head>
10
+ <body>
11
+ <h1><%= @title %></h1>
12
+ <p>
13
+ Host: <%= @host %><br />
14
+ Ddr::Batch version: <%= @batch.version %>
15
+ </p>
16
+ <p>
17
+ Batch Id: <%= @batch.id %><br />
18
+ Batch Name: <%= @batch.name %><br />
19
+ Started at: <%= @batch.start %><br />
20
+ Stopped at: <%= @batch.stop %><br />
21
+ Status: <%= @batch.status %><br />
22
+ Outcome: <%= @batch.outcome %>
23
+ </p>
24
+ <p>
25
+ Objects in batch: <%= @batch.batch_objects.size %><br />
26
+ Successfully processed: <%= @batch.success %><br />
27
+ Processing failures: <%= @batch.failure %><br />
28
+ Unprocessed: <%= @batch.batch_objects.size - @batch.success - @batch.failure %>
29
+ </p>
30
+ <p>
31
+ See attachment for details of batch run.
32
+ </p>
33
+ </body>
34
+ </html>
@@ -0,0 +1,20 @@
1
+ =========================
2
+ <%= @title %>
3
+ =========================
4
+
5
+ Host: <%= @host %>
6
+ Ddr::Batch version: <%= @batch.version %>
7
+
8
+ Batch Id: <%= @batch.id %>
9
+ Batch Name: <%= @batch.name %>
10
+ Started at: <%= @batch.start %>
11
+ Stopped at: <%= @batch.stop %>
12
+ Status: <%= @batch.status %>
13
+ Outcome: <%= @batch.outcome %>
14
+
15
+ Objects in batch: <%= @batch.batch_objects.size %>
16
+ Successfully processed: <%= @batch.success %>
17
+ Processing failures: <%= @batch.failure %>
18
+ Unprocessed: <%= @batch.batch_objects.size - @batch.success - @batch.failure %>
19
+
20
+ See attachment for details of batch run.
@@ -0,0 +1,52 @@
1
+ en:
2
+ ddr:
3
+ batch:
4
+ errors:
5
+ prefix: "%{identifier} [Database ID: %{id}]:"
6
+ no_batches: "No %{type} batches found for your user account."
7
+ web:
8
+ action_names:
9
+ procezz: "Process"
10
+ restart: "Restart"
11
+ retry: "Retry"
12
+ validate: "Validate"
13
+ batch_deletion_confirmation: "You are about to delete batch %{batch_id}. Continue?"
14
+ column_names:
15
+ action: "Action"
16
+ checksum: "Checksum"
17
+ checksum_type: "Checksum Type"
18
+ creation_date: "Created"
19
+ datastream: "Datastream"
20
+ description: "Description"
21
+ id: "ID"
22
+ identifier: "Identifier"
23
+ log: "Log"
24
+ model: "Model"
25
+ name: "Name"
26
+ objects: "Objects"
27
+ operation: "Operation"
28
+ outcome: "Outcome"
29
+ part_of_batch: "Part of Batch"
30
+ payload: "Payload"
31
+ payload_type: "Payload Type"
32
+ pid: "PID"
33
+ related_object: "Related Object"
34
+ related_object_type: "Related Object Type"
35
+ start: "Start"
36
+ status: "Status"
37
+ user: "User"
38
+ value: "Value"
39
+ value_type: "Value Type"
40
+ verified: "Verified"
41
+ verified_in_repository: "Verified in Repository?"
42
+ headings:
43
+ object_validation_errors: "Batch Object Validation Errors"
44
+ page_titles:
45
+ batch: "Batch %{id}"
46
+ batches: "Batches"
47
+ batch_object: "Batch Object %{id}"
48
+ tabs:
49
+ finished_batches:
50
+ label: "Already Run"
51
+ pending_batches:
52
+ label: "Pending"
data/config/routes.rb ADDED
@@ -0,0 +1,2 @@
1
+ Rails.application.routes.draw do
2
+ end
@@ -0,0 +1,25 @@
1
+ class CreateBatches < ActiveRecord::Migration
2
+ def change
3
+ unless table_exists?(:batches)
4
+ create_table :batches do |t|
5
+ t.string "name"
6
+ t.string "description"
7
+ t.datetime "created_at"
8
+ t.datetime "updated_at"
9
+ t.integer "user_id"
10
+ t.string "status"
11
+ t.datetime "start"
12
+ t.datetime "stop"
13
+ t.string "outcome"
14
+ t.integer "failure", default: 0
15
+ t.integer "success", default: 0
16
+ t.string "version"
17
+ t.string "logfile_file_name"
18
+ t.string "logfile_content_type"
19
+ t.integer "logfile_file_size"
20
+ t.datetime "logfile_updated_at"
21
+ t.datetime "processing_step_start"
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,18 @@
1
+ class CreateBatchObjects < ActiveRecord::Migration
2
+ def change
3
+ unless table_exists?(:batch_objects)
4
+ create_table :batch_objects do |t|
5
+ t.integer "batch_id"
6
+ t.string "identifier"
7
+ t.string "model"
8
+ t.string "label"
9
+ t.string "pid"
10
+ t.datetime "created_at"
11
+ t.datetime "updated_at"
12
+ t.string "type"
13
+ t.boolean "verified", default: false
14
+ end
15
+ add_index "batch_objects", ["verified"], name: "index_batch_objects_on_verified"
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,16 @@
1
+ class CreateBatchObjectAttributes < ActiveRecord::Migration
2
+ def change
3
+ unless table_exists?(:batch_object_attributes)
4
+ create_table :batch_object_attributes do |t|
5
+ t.integer "batch_object_id"
6
+ t.string "datastream"
7
+ t.string "name"
8
+ t.string "operation"
9
+ t.text "value", limit: 65535
10
+ t.string "value_type"
11
+ t.datetime "created_at"
12
+ t.datetime "updated_at"
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,17 @@
1
+ class CreateBatchObjectDatastreams < ActiveRecord::Migration
2
+ def change
3
+ unless table_exists?(:batch_object_datastreams)
4
+ create_table :batch_object_datastreams do |t|
5
+ t.integer "batch_object_id"
6
+ t.string "operation"
7
+ t.string "name"
8
+ t.text "payload"
9
+ t.string "payload_type"
10
+ t.datetime "created_at"
11
+ t.datetime "updated_at"
12
+ t.string "checksum"
13
+ t.string "checksum_type"
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,15 @@
1
+ class CreateBatchObjectRelationships < ActiveRecord::Migration
2
+ def change
3
+ unless table_exists?(:batch_object_relationships)
4
+ create_table :batch_object_relationships do |t|
5
+ t.integer "batch_object_id"
6
+ t.string "name"
7
+ t.string "operation"
8
+ t.string "object"
9
+ t.string "object_type"
10
+ t.datetime "created_at"
11
+ t.datetime "updated_at"
12
+ end
13
+ end
14
+ end
15
+ end
data/lib/ddr-batch.rb ADDED
@@ -0,0 +1 @@
1
+ require 'ddr/batch'
data/lib/ddr/batch.rb ADDED
@@ -0,0 +1,17 @@
1
+ require 'ddr/batch/engine'
2
+ require 'ddr/batch/version'
3
+ require 'ddr/models'
4
+
5
+ require 'paperclip'
6
+
7
+ module Ddr
8
+ module Batch
9
+ extend ActiveSupport::Autoload
10
+
11
+ autoload :BatchUser
12
+
13
+ def self.table_name_prefix
14
+ end
15
+
16
+ end
17
+ end
@@ -0,0 +1,10 @@
1
+ module Ddr::Batch
2
+ module BatchUser
3
+ extend ActiveSupport::Concern
4
+
5
+ included do
6
+ has_many :batches, :inverse_of => :user, class_name: Ddr::Batch::Batch
7
+ end
8
+
9
+ end
10
+ end
@@ -0,0 +1,14 @@
1
+ module Ddr
2
+ module Batch
3
+ class Engine < ::Rails::Engine
4
+
5
+ engine_name 'ddr_batch'
6
+
7
+ config.generators do |g|
8
+ g.test_framework :rspec
9
+ g.fixture_replacement :factory_girl
10
+ end
11
+
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,5 @@
1
+ module Ddr
2
+ module Batch
3
+ VERSION = "1.0.0.rc1"
4
+ end
5
+ end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :ddr_batch do
3
+ # # Task goes here
4
+ # end
metadata ADDED
@@ -0,0 +1,228 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ddr-batch
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0.rc1
5
+ platform: ruby
6
+ authors:
7
+ - Jim Coble
8
+ - David Chandek-Stark
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2015-09-08 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rails
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: 4.1.13
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: 4.1.13
28
+ - !ruby/object:Gem::Dependency
29
+ name: devise
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: '3.4'
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '3.4'
42
+ - !ruby/object:Gem::Dependency
43
+ name: paperclip
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: 4.2.0
49
+ type: :runtime
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: 4.2.0
56
+ - !ruby/object:Gem::Dependency
57
+ name: ddr-models
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: '2.0'
63
+ type: :runtime
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '2.0'
70
+ - !ruby/object:Gem::Dependency
71
+ name: log4r
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :runtime
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
84
+ - !ruby/object:Gem::Dependency
85
+ name: sqlite3
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ version: '0'
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
98
+ - !ruby/object:Gem::Dependency
99
+ name: rspec-rails
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - "~>"
103
+ - !ruby/object:Gem::Version
104
+ version: '3.1'
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - "~>"
110
+ - !ruby/object:Gem::Version
111
+ version: '3.1'
112
+ - !ruby/object:Gem::Dependency
113
+ name: factory_girl_rails
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - "~>"
117
+ - !ruby/object:Gem::Version
118
+ version: '4.4'
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - "~>"
124
+ - !ruby/object:Gem::Version
125
+ version: '4.4'
126
+ - !ruby/object:Gem::Dependency
127
+ name: capybara
128
+ requirement: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - "~>"
131
+ - !ruby/object:Gem::Version
132
+ version: '2.0'
133
+ type: :development
134
+ prerelease: false
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - "~>"
138
+ - !ruby/object:Gem::Version
139
+ version: '2.0'
140
+ - !ruby/object:Gem::Dependency
141
+ name: jettywrapper
142
+ requirement: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - "~>"
145
+ - !ruby/object:Gem::Version
146
+ version: '1.8'
147
+ type: :development
148
+ prerelease: false
149
+ version_requirements: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - "~>"
152
+ - !ruby/object:Gem::Version
153
+ version: '1.8'
154
+ - !ruby/object:Gem::Dependency
155
+ name: database_cleaner
156
+ requirement: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - ">="
159
+ - !ruby/object:Gem::Version
160
+ version: '0'
161
+ type: :development
162
+ prerelease: false
163
+ version_requirements: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - ">="
166
+ - !ruby/object:Gem::Version
167
+ version: '0'
168
+ description: Batch processing for Duke Digital Repository
169
+ email:
170
+ - lib-drs@duke.edu
171
+ executables: []
172
+ extensions: []
173
+ extra_rdoc_files: []
174
+ files:
175
+ - LICENSE.txt
176
+ - README.md
177
+ - Rakefile
178
+ - app/jobs/ddr/batch/batch_processor_job.rb
179
+ - app/mailers/ddr/batch/batch_processor_run_mailer.rb
180
+ - app/models/ddr/batch/batch.rb
181
+ - app/models/ddr/batch/batch_ability_definitions.rb
182
+ - app/models/ddr/batch/batch_object.rb
183
+ - app/models/ddr/batch/batch_object_attribute.rb
184
+ - app/models/ddr/batch/batch_object_datastream.rb
185
+ - app/models/ddr/batch/batch_object_relationship.rb
186
+ - app/models/ddr/batch/ingest_batch_object.rb
187
+ - app/models/ddr/batch/update_batch_object.rb
188
+ - app/scripts/ddr/batch/batch_processor.rb
189
+ - app/views/ddr/batch/batch_processor_run_mailer/send_notification.html.erb
190
+ - app/views/ddr/batch/batch_processor_run_mailer/send_notification.text.erb
191
+ - config/locales/en.yml
192
+ - config/routes.rb
193
+ - db/migrate/20150828183839_create_batches.rb
194
+ - db/migrate/20150828201857_create_batch_objects.rb
195
+ - db/migrate/20150828202118_create_batch_object_attributes.rb
196
+ - db/migrate/20150828202200_create_batch_object_datastreams.rb
197
+ - db/migrate/20150828202240_create_batch_object_relationships.rb
198
+ - lib/ddr-batch.rb
199
+ - lib/ddr/batch.rb
200
+ - lib/ddr/batch/batch_user.rb
201
+ - lib/ddr/batch/engine.rb
202
+ - lib/ddr/batch/version.rb
203
+ - lib/tasks/ddr_batch_tasks.rake
204
+ homepage: https://github.com/duke-libraries/ddr-batch
205
+ licenses:
206
+ - BSD-3-Clause
207
+ metadata: {}
208
+ post_install_message:
209
+ rdoc_options: []
210
+ require_paths:
211
+ - lib
212
+ required_ruby_version: !ruby/object:Gem::Requirement
213
+ requirements:
214
+ - - ">="
215
+ - !ruby/object:Gem::Version
216
+ version: '0'
217
+ required_rubygems_version: !ruby/object:Gem::Requirement
218
+ requirements:
219
+ - - ">"
220
+ - !ruby/object:Gem::Version
221
+ version: 1.3.1
222
+ requirements: []
223
+ rubyforge_project:
224
+ rubygems_version: 2.2.2
225
+ signing_key:
226
+ specification_version: 4
227
+ summary: Batch processing for Duke Digital Repository
228
+ test_files: []