pushmi_pullyu 2.0.2 → 2.0.3

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: e0e6a8b121842bd88b72a166f8ff85b9b7d78e8dd294c248c573af3981582a81
4
- data.tar.gz: 29e1631a92cd88dcb827769d6d6ef1e89172cc099fa88eaa1193406f4df604ba
3
+ metadata.gz: d64e5d619eb9dee63c358167cd6778034eb72fa2686fbe95fa187cfdfe7525b3
4
+ data.tar.gz: 333805bd92b1d5e308949d583e46056ffb1aeac9900d9c23ca59f2b88a7a4d01
5
5
  SHA512:
6
- metadata.gz: 4daaab3f235775f372c1141f1eabc0f8f122272115105d07f08797d492d2475c003e7145ae9aa39df7ce7a0592da6f0eb3ff3bc2bd65e71758299dbaaf6ba535
7
- data.tar.gz: f96752a30fc91992224d2a76c39106a1992aa4eb2a2eec4b9f09b30b503a403b74353b6b0e6eecec0e85911760c02797f3fc9a1bb51dc35e32fc6dc299925450
6
+ metadata.gz: b8b162ca028ca37362d0bcd68737189f6af656c747bfc18a1593e35635bddf606d649e8d02299d092b1b569cab7e8a03950855fe2f7da4f5877a2714c99af8cc
7
+ data.tar.gz: 56c8653b1d868993e31607de7cd1d811752ff4de1ab63813dec2f745321f2b7d6a54107eb304f0f93191d6372bf22e55977512155edca08ee25ad96c23fc0099
data/.github/CODEOWNERS CHANGED
@@ -1,2 +1,2 @@
1
1
  # https://help.github.com/articles/about-codeowners/
2
- * @ConnorSheremeta @lagoan @mbarnett @murny @pgwillia @piyapongch
2
+ * @ConnorSheremeta @lagoan @henryzhang87 @pgwillia @piyapongch
@@ -25,7 +25,7 @@ jobs:
25
25
  run: bundle exec rubocop --parallel
26
26
  - name: Run Danger
27
27
  env:
28
- DANGER_GITHUB_API_TOKEN: ${{ secrets.DANGER_GITHUB_API_TOKEN }}
28
+ DANGER_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }}
29
29
  run: bundle exec danger
30
30
  - name: Run tests
31
31
  run: bundle exec rake spec
data/.rubocop.yml CHANGED
@@ -36,7 +36,7 @@ Metrics/ClassLength:
36
36
  Metrics/CyclomaticComplexity:
37
37
  Enabled: false
38
38
 
39
- Metrics/LineLength:
39
+ Layout/LineLength:
40
40
  Enabled: true
41
41
  Max: 120 # default is 80
42
42
 
@@ -107,4 +107,4 @@ Naming/VariableNumber:
107
107
  Enabled: false
108
108
 
109
109
  Style/OpenStructUse:
110
- Enabled: false
110
+ Enabled: false
data/CHANGELOG.md CHANGED
@@ -8,6 +8,13 @@ and releases in PushmiPullyu adheres to [Semantic Versioning](https://semver.org
8
8
 
9
9
  ## [Unreleased]
10
10
 
11
+ ## [2.0.3] - 2022-04-28
12
+
13
+ - Changed Danger token in Github Actions
14
+ - remove pg dependency
15
+ - unblock CI (rubocop and coveralls)
16
+ - Log to preservation_events.json as well in an easy to use json format.
17
+
11
18
  ## [2.0.2] - 2021-11-22
12
19
 
13
20
  - Fix authentication bug when using ssl
@@ -22,4 +29,5 @@ and releases in PushmiPullyu adheres to [Semantic Versioning](https://semver.org
22
29
  ### Removed
23
30
  - Data output for original_file information
24
31
 
32
+ -
25
33
  ## [1.0.6] - 2018-11-29
data/README.md CHANGED
@@ -6,7 +6,6 @@
6
6
 
7
7
  [![Gem Version](https://badge.fury.io/rb/pushmi_pullyu.svg)](https://rubygems.org/gems/pushmi_pullyu)
8
8
  [![Github Build Status](https://github.com/ualbertalib/pushmi_pullyu/workflows/CI/badge.svg)](https://github.com/ualbertalib/pushmi_pullyu/actions)
9
- [![Coverage Status](https://coveralls.io/repos/github/ualbertalib/pushmi_pullyu/badge.svg?branch=master)](https://coveralls.io/github/ualbertalib/pushmi_pullyu?branch=master)
10
9
 
11
10
  PushmiPullyu is a Ruby application, running behind the firewall that protects our Swift environment.
12
11
 
@@ -104,6 +103,12 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
104
103
 
105
104
  ## Testing
106
105
 
106
+ Pre-requisites:
107
+
108
+ Will need jupiter running locally and Openstack Swift running on port 8080.
109
+ - [Instructions for jupiter](https://github.com/ualbertalib/jupiter#docker)
110
+ - Use `docker-compose up -d` to start Swift (additional instructions in docker-compose.yml)
111
+
107
112
  To run the test suite:
108
113
 
109
114
  ```bash
@@ -0,0 +1,11 @@
1
+ services:
2
+ swift:
3
+ # useful if you need to re-run the tests/spec
4
+ # https://docs.openstack.org/ocata/cli-reference/swift.html
5
+ # manual steps to set environment variables and create container
6
+ # swift auth -v -U test:tester -K testing -A http://localhost:8080/auth/v1.0
7
+ # swift auth
8
+ # swift post ERA
9
+ image: openstackswift/saio
10
+ ports:
11
+ - '8080:8080'
@@ -21,9 +21,6 @@ minimum_age: 0
21
21
  redis:
22
22
  url: redis://localhost:6379
23
23
 
24
- database:
25
- url: postgresql://jupiter:mysecretpassword@127.0.0.1/jupiter_development
26
-
27
24
  #parameters project_name and project_domain_name are required only for keystone v3 authentication
28
25
  swift:
29
26
  tenant: tester
@@ -103,9 +103,7 @@ class PushmiPullyu::AIP::Downloader
103
103
 
104
104
  response = @http.request(request)
105
105
  is_success = if response.is_a?(Net::HTTPSuccess)
106
- File.open(local, 'wb') do |file|
107
- file.write(response.body)
108
- end
106
+ File.binwrite(local, response.body)
109
107
  # Response was a success and the file was saved to local
110
108
  File.exist? local
111
109
  end
@@ -45,6 +45,7 @@ module PushmiPullyu::Logging
45
45
 
46
46
  def log_preservation_event(deposited_file, aip_directory)
47
47
  preservation_logger = Logger.new("#{PushmiPullyu.options[:logdir]}/preservation_events.log")
48
+ preservation_json_logger = Logger.new("#{PushmiPullyu.options[:logdir]}/preservation_events.json")
48
49
 
49
50
  message = "#{deposited_file.name} was successfully deposited into Swift Storage!\n"\
50
51
  "Here are the details of this preservation event:\n"\
@@ -72,6 +73,65 @@ module PushmiPullyu::Logging
72
73
  preservation_logger.info(message)
73
74
 
74
75
  preservation_logger.close
76
+
77
+ message_json_str = preservation_event_to_json(deposited_file, aip_directory)
78
+ preservation_json_logger.info("#{message_json_str},")
79
+ preservation_json_logger.close
80
+ end
81
+
82
+ ###
83
+ # Provides an alternative logging method in json format for the convenience of
84
+ # parsing in the process of auditing against OpenStack Swift preservation.
85
+ #
86
+ # output format:
87
+ # I, [2022-04-06T11:07:21.983875 #20791] INFO -- : \
88
+ # {
89
+ # "do_uuid": "83b5d21f-a60a-43ba-945a-f03deec64a1d",
90
+ # "aip_deposited_at": "Thu, 07 Apr 2022 16:37:00 GMT",
91
+ # "aip_md5sum": "fe5832a510799b04c1c503e46dc3b589",
92
+ # "aip_sha256": "",
93
+ # "aip_metadata": "{\"project-id\":\"83b5d21f-a60a-43ba-945a-f03deec64a1d\",
94
+ # \"aip-version\":\"1.0\",
95
+ # \"project\":\"ERA\",
96
+ # \"promise\":\"bronze\"}",
97
+ # "aip_file_details": [
98
+ # {
99
+ # "fileset_uuid": "b2c6ac0f-f2ed-489e-bbae-bd26465207aa",
100
+ # "file_name": "Spallacci_Amanda_202103_PhD.pdf",
101
+ # "file_type": "pdf",
102
+ # "file_size": "2051363"
103
+ # }
104
+ # ]
105
+ # }
106
+ #
107
+ # note:
108
+ # to parse, the prefix "I, ... INFO --:" in each line needs to be
109
+ # stripped using a bash command such as "sed"
110
+ def preservation_event_to_json(deposited_file, aip_directory)
111
+ message = {}
112
+
113
+ message['do_uuid'] = deposited_file.name.to_s
114
+ message['aip_deposited_at'] = deposited_file.last_modified.to_s
115
+ message['aip_md5sum'] = deposited_file.etag.to_s
116
+ message['aip_sha256'] = ''
117
+ message['aip_metadata'] = deposited_file.metadata.to_json.to_s
118
+
119
+ file_details = file_log_details(aip_directory)
120
+
121
+ tmp_details = []
122
+ if file_details.present?
123
+ file_details.each do |file_detail|
124
+ tmp_hash = {}
125
+ tmp_hash['fileset_uuid'] = file_detail[:fileset_name].to_s
126
+ tmp_hash['file_name'] = file_detail[:file_name].to_s
127
+ tmp_hash['file_type'] = file_detail[:file_extension].to_s
128
+ tmp_hash['file_size'] = file_detail[:file_size].to_s
129
+ tmp_details << tmp_hash
130
+ end
131
+ end
132
+
133
+ message['aip_file_details'] = tmp_details
134
+ message.to_json
75
135
  end
76
136
 
77
137
  def reopen
@@ -1,3 +1,3 @@
1
1
  module PushmiPullyu
2
- VERSION = '2.0.2'.freeze
2
+ VERSION = '2.0.3'.freeze
3
3
  end
data/lib/pushmi_pullyu.rb CHANGED
@@ -40,18 +40,14 @@ module PushmiPullyu
40
40
  },
41
41
  rollbar: {
42
42
  },
43
- database: {
44
- encoding: 'utf8',
45
- pool: ENV['RAILS_MAX_THREADS'] || 5,
46
- url: ENV['DATABASE_URL'] || ENV['JUPITER_DATABASE_URL'] || 'postgresql://jupiter:mysecretpassword@127.0.0.1',
47
- database: 'jupiter_development'
48
- },
43
+ # rubocop disable: Style/FetchEnvVar
49
44
  jupiter: {
50
- user: ENV['JUPITER_USER'],
51
- api_key: ENV['JUPITER_API_KEY'],
52
- jupiter_url: ENV['JUPITER_URL'] || 'http://localhost:3000/',
53
- aip_api_path: ENV['JUPITER_AIP_API_PATH'] || 'aip/v1'
45
+ user: ENV.fetch('JUPITER_USER', nil),
46
+ api_key: ENV.fetch('JUPITER_API_KEY', nil),
47
+ jupiter_url: ENV.fetch('JUPITER_URL', nil) || 'http://era.lvh.me:3000/',
48
+ aip_api_path: ENV.fetch('JUPITER_AIP_API_PATH', nil) || 'aip/v1'
54
49
  }
50
+ # rubocop enable: Style/FetchEnvVar
55
51
  }.freeze
56
52
 
57
53
  def self.options
@@ -21,13 +21,12 @@ Gem::Specification.new do |spec|
21
21
 
22
22
  spec.required_ruby_version = '>= 2.5'
23
23
 
24
- spec.add_runtime_dependency 'activesupport', '>= 5', '< 7'
24
+ spec.add_runtime_dependency 'activesupport', '>= 5', '< 8'
25
25
  spec.add_runtime_dependency 'bagit', '~> 0.4'
26
26
  spec.add_runtime_dependency 'connection_pool', '~> 2.2'
27
27
  spec.add_runtime_dependency 'daemons', '~> 1.2', '>= 1.2.4'
28
28
  spec.add_runtime_dependency 'minitar', '~> 0.7'
29
29
  spec.add_runtime_dependency 'openstack', '~> 3.3', '>= 3.3.10'
30
- spec.add_runtime_dependency 'pg', '>= 1.0', '< 1.2'
31
30
  spec.add_runtime_dependency 'rdf', '>= 1.99', '< 4.0'
32
31
  spec.add_runtime_dependency 'rdf-n3', '>= 1.99', '< 4.0'
33
32
  spec.add_runtime_dependency 'redis', '>= 3.3', '< 5.0'
@@ -36,7 +35,6 @@ Gem::Specification.new do |spec|
36
35
  spec.add_runtime_dependency 'uuid', '~> 2.3.9'
37
36
 
38
37
  spec.add_development_dependency 'bundler', '~> 2.0'
39
- spec.add_development_dependency 'coveralls', '~> 0.8'
40
38
  spec.add_development_dependency 'danger', '~> 8.0'
41
39
  spec.add_development_dependency 'pry', '~> 0.10', '>= 0.10.4'
42
40
  spec.add_development_dependency 'pry-byebug', '~> 3.6'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pushmi_pullyu
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.2
4
+ version: 2.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shane Murnaghan
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2021-11-23 00:00:00.000000000 Z
12
+ date: 2022-04-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -20,7 +20,7 @@ dependencies:
20
20
  version: '5'
21
21
  - - "<"
22
22
  - !ruby/object:Gem::Version
23
- version: '7'
23
+ version: '8'
24
24
  type: :runtime
25
25
  prerelease: false
26
26
  version_requirements: !ruby/object:Gem::Requirement
@@ -30,7 +30,7 @@ dependencies:
30
30
  version: '5'
31
31
  - - "<"
32
32
  - !ruby/object:Gem::Version
33
- version: '7'
33
+ version: '8'
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: bagit
36
36
  requirement: !ruby/object:Gem::Requirement
@@ -113,26 +113,6 @@ dependencies:
113
113
  - - ">="
114
114
  - !ruby/object:Gem::Version
115
115
  version: 3.3.10
116
- - !ruby/object:Gem::Dependency
117
- name: pg
118
- requirement: !ruby/object:Gem::Requirement
119
- requirements:
120
- - - ">="
121
- - !ruby/object:Gem::Version
122
- version: '1.0'
123
- - - "<"
124
- - !ruby/object:Gem::Version
125
- version: '1.2'
126
- type: :runtime
127
- prerelease: false
128
- version_requirements: !ruby/object:Gem::Requirement
129
- requirements:
130
- - - ">="
131
- - !ruby/object:Gem::Version
132
- version: '1.0'
133
- - - "<"
134
- - !ruby/object:Gem::Version
135
- version: '1.2'
136
116
  - !ruby/object:Gem::Dependency
137
117
  name: rdf
138
118
  requirement: !ruby/object:Gem::Requirement
@@ -261,20 +241,6 @@ dependencies:
261
241
  - - "~>"
262
242
  - !ruby/object:Gem::Version
263
243
  version: '2.0'
264
- - !ruby/object:Gem::Dependency
265
- name: coveralls
266
- requirement: !ruby/object:Gem::Requirement
267
- requirements:
268
- - - "~>"
269
- - !ruby/object:Gem::Version
270
- version: '0.8'
271
- type: :development
272
- prerelease: false
273
- version_requirements: !ruby/object:Gem::Requirement
274
- requirements:
275
- - - "~>"
276
- - !ruby/object:Gem::Version
277
- version: '0.8'
278
244
  - !ruby/object:Gem::Dependency
279
245
  name: danger
280
246
  requirement: !ruby/object:Gem::Requirement
@@ -449,6 +415,7 @@ files:
449
415
  - bin/console
450
416
  - bin/setup
451
417
  - config/.gitkeep
418
+ - docker-compose.yml
452
419
  - docs/images/pushmi-pullyu.png
453
420
  - docs/images/system-infrastructure-diagram.png
454
421
  - examples/pushmi_pullyu.yml