bulk_ops 0.1.8 → 0.1.9

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4231e72e9eca7cf205487d52f2613ef8542e37789c117070cb7402cf489f77da
4
- data.tar.gz: d788d06b28f38ff386578ef962a14b0e8cc9525f5bb408daa13c4d38ded94e7a
3
+ metadata.gz: f55b62bd327612efa466184efc9249133480ace66e3069fc7d20705eedfddf0f
4
+ data.tar.gz: 109e4e3cf3567864eeb15e73d3c6603219ee9577c8333c6cfb012409cac1b957
5
5
  SHA512:
6
- metadata.gz: b86b3ddb3e462d2b6a098dbcea45a4945e31f88f135e6780eaa84fd908ff238a75f170bb05af3e093d46dab6e7bc52ce59cd6176aa29bc2da2df547866175425
7
- data.tar.gz: 54be897f9392fe0e19fc85350ef57d2a1c503d65ff5cb7cbbea44efc6615573fa58d50d61d7e31e323a5271b1d6470dc1d9cddac3998a8d7b1de79195c097733
6
+ metadata.gz: d1172dd5be0f063944505b86da8a6a8b28913c69f1447523de9685d85524a55cb8a148f48ad112dbd7c158e9b63cab9ca50fbab0d2ff49c3ddd759dbd5940b52
7
+ data.tar.gz: 119bb5c71f7be6eb8c8514307eead3dcebf31304f1d4221575790ce3d4c931c5f57e9f3eb1157592ce3cbe805dfa2a815141196904a3f38cb533ea804f60a9b8
@@ -6,6 +6,7 @@ module BulkOps
6
6
  before_action :define_presenter
7
7
  before_action :github_auth
8
8
  load_and_authorize_resource
9
+
9
10
  before_action :initialize_options, only: [:new,:show,:edit, :update]
10
11
  before_action :initialize_operation, only: [:edit, :destroy, :show, :request_apply, :approve, :csv, :errors, :log, :update, :request, :duplicate]
11
12
 
@@ -25,7 +26,7 @@ module BulkOps
25
26
  branches = BulkOps::GithubAccess.list_branch_names current_user
26
27
  BulkOps::Operation.all.each{|op| op.destroy! unless branches.include?(op.name) }
27
28
  @active_operations = BulkOps::Operation.where.not(stage: ['completed','discarded'])
28
- @active_operations.each {|op| op.destroy! unless branches.include?(op.name) }
29
+ @active_operations.each {|op| op.destroy! unless (op.stage == "running") or branches.include?(op.name) }
29
30
  @old_operations = BulkOps::Operation.where(stage: ['completed','discarded']) if params["show_old_ops"]
30
31
  end
31
32
 
@@ -167,25 +168,10 @@ module BulkOps
167
168
  #If new options have been defined, update them in github
168
169
  if params['edit_options']
169
170
  if filtered_options_params && @operation.name
170
-
171
171
  options = @operation.options
172
-
173
- puts "BULKOPS UPDATING OPTIONS"
174
- puts "all params: #{params.inspect}"
175
- puts "Updating bulk_ops options"
176
- puts "new options:"
177
- puts filtered_options_params.inspect
178
- puts "old options:"
179
- puts options.inspect
180
-
181
-
182
172
  filtered_options_params.each do |option_name, option_value|
183
173
  options[option_name] = option_value
184
174
  end
185
-
186
- puts "final options:"
187
- puts options.inspect
188
-
189
175
  BulkOps::GithubAccess.update_options(@operation.name, options, message: params['git_message'])
190
176
  flash[:notice] = "The operation options were updated successfully"
191
177
  redirect_to action: "show", id: @operation.id
@@ -11,4 +11,12 @@ class BulkOps::CreateWorkJob < BulkOps::WorkJob
11
11
  :create
12
12
  end
13
13
 
14
+ def define_work workClass
15
+ if record_exists?(@work_proxy.work_id)
16
+ report_error "trying to ingest a work proxy that already has a work attached. Work id: #{@work_proxy.work_id} Proxy id: #{@work_proxy.id}"
17
+ return false
18
+ end
19
+ @work = workClass.capitalize.constantize.new
20
+ end
21
+
14
22
  end
@@ -11,4 +11,20 @@ class BulkOps::UpdateWorkJob < BulkOps::WorkJob
11
11
  :update
12
12
  end
13
13
 
14
+ def define_work workClass=nil
15
+ # report an error if we can't find the work in solr
16
+ unless record_exists?(@work_proxy.work_id)
17
+ report_error "Could not find work to update with id: #{@work_proxy.work_id} referenced by work proxy: #{@work_proxy.id}"
18
+ return false
19
+ end
20
+ # Report an error if we can't retrieve the work from Fedora.
21
+ begin
22
+ @work = ActiveFedora::Base.find(@work_proxy.work_id)
23
+ rescue ActiveFedora::ObjectNotFoundError
24
+ report_error "Could not find work to update in Fedora (though it shows up in Solr). Work id: #{@work_proxy.work_id}"
25
+ return false
26
+ end
27
+ return @work
28
+ end
29
+
14
30
  end
@@ -1,3 +1,3 @@
1
1
  module BulkOps
2
- VERSION = "0.1.8"
2
+ VERSION = "0.1.9"
3
3
  end
@@ -9,7 +9,7 @@ class BulkOps::WorkJob < ActiveJob::Base
9
9
  after_perform do |job|
10
10
 
11
11
  # update BulkOperationsWorkProxy status
12
- @work ||= ActiveFedora.find(@work_proxy.work_id)
12
+ @work ||= ActiveFedora::Base.find(@work_proxy.work_id)
13
13
  if @work.id.nil?
14
14
  status = "error"
15
15
  else
@@ -41,10 +41,15 @@ class BulkOps::WorkJob < ActiveJob::Base
41
41
 
42
42
  # Check if the parent operation is finished
43
43
  # and do any cleanup if so
44
- @work_proxy.operation.check_if_finished
44
+
45
+ if @work_proxy.operation.present? && @work_proxy.operation.respond_to?(:check_if_finished)
46
+ @work_proxy.operation.check_if_finished
47
+ end
48
+
45
49
  end
46
50
 
47
51
  def perform(workClass,user_email,attributes,work_proxy_id,visibility=nil)
52
+ return if status == "complete"
48
53
  update_status "starting", "Initializing the job"
49
54
  attributes['visibility']= visibility if visibility.present?
50
55
  @work_proxy = BulkOps::WorkProxy.find(work_proxy_id)
@@ -52,23 +57,9 @@ class BulkOps::WorkJob < ActiveJob::Base
52
57
  report_error("Cannot find work proxy with id: #{work_proxy_id}")
53
58
  return
54
59
  end
55
- if record_exists?(@work_proxy.work_id)
56
- # The work exists in Solr. Presumably we're updating it.
57
- # Report an error if we can't retrieve the work from Fedora.
58
- begin
59
- @work = ActiveFedora::Base.find(@work_proxy.work_id)
60
- rescue ActiveFedora::ObjectNotFoundError
61
- report_error "Could not find work to update in Fedora (though it shows up in Solr). Work id: #{@work_proxy.work_id}"
62
- return
63
- end
64
- else # The work is not found in Solr. If we're trying to update a work, we're in trouble.
65
- if (type.to_s == "update")
66
- report_error "Could not find work to update with id: #{@work_proxy.work_id}"
67
- return
68
- end
69
- # Create the work we are ingesting
70
- @work = workClass.capitalize.constantize.new
71
- end
60
+
61
+ return unless define_work
62
+
72
63
  user = User.find_by_email(user_email)
73
64
  update_status "running", "Started background task at #{DateTime.now.strftime("%d/%m/%Y %H:%M")}"
74
65
  ability = Ability.new(user)
@@ -102,4 +93,9 @@ class BulkOps::WorkJob < ActiveJob::Base
102
93
  @work_proxy.update(atts)
103
94
  end
104
95
 
96
+ def define_work(workClass)
97
+ #override this unless you want a simple ingest
98
+ @work = workClass.capitalize.constantize.new
99
+ end
100
+
105
101
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bulk_ops
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 0.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ned Henry, UCSC Library Digital Initiatives
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-07-08 00:00:00.000000000 Z
11
+ date: 2019-07-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails