diff --git a/README.md b/README.md index d79a29a..dc810eb 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,21 @@ In the file `lib/cfg.d/pirus.pl` there is a URL for a test COUNTER server in the if you are testing the plugin, or have it installed on a test/development machine, you can add the configuration above to a file in the archive specific configuration e.g. `~/archives/ARCHIVEID/cfg/cfg.d/z_pirus.pl`. +### Troubleshooting + +From v1.2.2, more information about a failed transfer of data to the tracker will be logged in the description of the +`Event::PIRUS` event (that then replays the data to the tracker). +To view the event, go to 'Manage records' -> 'Tasks' as an admin user in the EPrints interface. If there are a lot of +items in the list, you may want to filter for `Plugin` = `Event::PIRUS`. + +There is also a configuration option to add the same information to the Apache error log. This can can be quite +verbose as it would log for every failed transmission, whereas the replay event is created once. + +The `Event::PIRUS` replays may only exist for a short amount of time in the event queue if the initial transmissions +fail, but the replay events work. To scrutinise the replay event you may need to temporarily stop the EPrints indexer +to allow you to see the details of the failure. + + ## Implementation This code will PING the configured tracker server whenever a full-text or item summary page is requested from EPrints. @@ -72,7 +87,11 @@ The default oai_dc metadata profile does not contain ORCIDs, but if you have a m ## Changes - + +* 1.2.2 John Salter + +Additional information added to replay event and error log when a data transfer fails. This information may help diagnose the problem. + * 1.2.1 John Salter Update to default tracker URL. diff --git a/irus.epm b/irus.epm index b5b23c3..5775f04 100644 --- a/irus.epm +++ b/irus.epm @@ -25,71 +25,80 @@ ZCIgXSwgbWF0Y2ggPT4gIlNFVCIsIH0sCl0gfTsK document cfg.d/pirus.pl inode/symlink - 8ce08e43a4ff811693797650900b37a7 + 67c7393025b548cd2fa1f4b5f114bb00 MD5 - 2883 - PXBvZAoKPWhlYWQxIFBJUlVTICdQVVNIJyBpbXBsZW1lbnRhdGlvbgoKUHJvdmlkZSBkYXRhIGZv -ciBDT1VOVEVSLWNvbXBsaWFudCB1c2FnZSBzdGF0aXN0aWNzLgoKQ29weXJpZ2h0IDIwMTIgVW5p -dmVyc2l0eSBvZiBTb3V0aGFtcHRvbgoKUmVsZWFzZWQgdG8gdGhlIHB1YmxpYyBkb21haW4gKG9y -IENDMCBkZXBlbmRpbmcgb24geW91ciBqdXJpc3RpY3Rpb24pLgoKVVNFIE9GIFRISVMgRVhURU5T -SU9OIElTIEVOVElSRUxZIEFUIFlPVVIgT1dOIFJJU0sKCj1oZWFkMiBJbnN0YWxsYXRpb24KCkNv -cHkgdGhpcyBmaWxlIGludG8geW91ciByZXBvc2l0b3J5J3MgY2ZnLmQvIGRpcmVjdG9yeSBhbmQg -cmVzdGFydCBBcGFjaGUuCgo9aGVhZDIgSW1wbGVtZW50YXRpb24KClRoaXMgY29kZSB3aWxsIFBJ -TkcgdGhlIGNvbmZpZ3VyZWQgdHJhY2tlciBzZXJ2ZXIgd2hlbmV2ZXIgYSBmdWxsLXRleHQgb2Jq -ZWN0CmlzIHJlcXVlc3RlZCBmcm9tIEVQcmludHMuCgpUaGVzZSBwaW5ncyBjYW4gYmUgYWdncmVn -YXRlZCB0b2dldGhlciB3aXRoIGRhdGEgZnJvbSBvdGhlciBzb3VyY2VzCihwdWJsaXNoZXJzLCBv -dGhlciByZXBvc2l0b3JpZXMpIHRvIGNyZWF0ZSBhIGZ1bGxlciBwaWN0dXJlIG9mIHRoZSB1c2Fn -ZSBvZgppbmRpdmlkdWFsIGFydGljbGVzLgoKClRoZSBkYXRhIHRyYW5zZmVycmVkIGFyZToKCgkt -IGVwcmludC5lcHJpbnRpZCAtIHRoZSBlcHJpbnQncyBpbnRlcm5hbCBpZGVudGlmaWVyCgktIGVw -cmludC5kYXRlc3RhbXAgLSB0aGUgZGF0ZXRpbWUgdGhlIGFjY2VzcyBzdGFydGVkCgktIElQIGFk -ZHJlc3MgLSB0aGUgdXNlcidzIElQIGFkZHJlc3MKCS0gVXNlciBBZ2VudCAtIHRoZSB1c2VyJ3Mg -YnJvd3NlciB1c2VyIGFnZW50CgktIGVwcmludC5kYXRlIC0gdGhlIHB1YmxpY2F0aW9uIGRhdGUK -CkFuZCBlaXRoZXIgKGlmIGlkX251bWJlciBpcyBkZWZpbmVkKToKCgktIGVwcmludC5pZF9udW1i -ZXIgLSB0aGUgRE9JCgpPcjoKCgktIGVwcmludC5jcmVhdG9yc19uYW1lIC0gZmlyc3QgbmFtZWQg -YXV0aG9yCgktIGVwcmludC50aXRsZSAtIGVwcmludCB0aXRsZQoJLSBlcHJpbnQuanRpdGxlIC0g -cHVibGljYXRpb24gdGl0bGUKCS0gZXByaW50Lmlzc24gLSBwdWJsaWNhdGlvbiBJU1NOCgktIGVw -cmludC52b2x1bWUgLSBwdWJsaWNhdGlvbiB2b2x1bWUKCS0gZXByaW50Lmlzc3VlIC0gcHVibGlj -YXRpb24gaXNzdWUKCj1oZWFkMiBDaGFuZ2VzCgoxLjA1IFNlYmFzdGllbiBGcmFuY29pcyA8c2Yy -QGVjcy5zb3Rvbi5hYy51az4KCkNvbmZvcm0gdG8gMjAxNCBndWlkZWxpbmVzIChzZWUgRXZlbnQ6 -OlBJUlVTLnBtKQoKMS4wMiBKdXN0aW4gQnJhZGxleSA8amI0QGVjcy5zb3Rvbi5hYy51az4KCkNv -bXBhdGliaWxpdHkgZml4ZXMgZm9yIDMuMi4KCjEuMDEgVGltIEJyb2R5IDx0ZGIyQGVjcy5zb3Rv -bi5hYy51az4KCkZpeGVkIHJlZmVyZW5jZSB0byAnanRpdGxlJyBpbnN0ZWFkIG9mICdwdWJsaWNh -dGlvbicKCjEuMDAgVGltIEJyb2R5IDx0ZGIyQGVjcy5zb3Rvbi5hYy51az4KCkluaXRpYWwgdmVy -c2lvbgoKPWN1dAoKcmVxdWlyZSBMV1A6OlVzZXJBZ2VudDsKcmVxdWlyZSBMV1A6OkNvbm5DYWNo -ZTsKCiMgbW9kaWZ5IHRoZSBmb2xsb3dpbmcgVVJMIHRvIHRoZSBQSVJVUyB0cmFja2VyIGxvY2F0 -aW9uCiRjLT57cGlydXN9LT57dHJhY2tlcn0gPSAiaHR0cHM6Ly9pcnVzLmppc2MuYWMudWsvY291 -bnRlci8iOwojIGR1cmluZyB0ZXN0aW5nIChvciBvbiBhIHRlc3Qgc2VydmVyKSwgdGhlIGZvbGxv -d2luZyBzaG91bGQgYmUgdXNlZDoKIyRjLT57cGlydXN9LT57dHJhY2tlcn0gPSAiaHR0cHM6Ly9p -cnVzLmppc2MuYWMudWsvY291bnRlci90ZXN0LyI7CgojIHlvdSBtYXkgd2FudCB0byByZXZpc2Ug -dGhlIHNldHRpbmdzIGZvciB0aGUgdXNlciBhZ2VudCBlLmcuIGluY3JlYXNlIG9yCiMgZGVjcmVh -c2UgdGhlIG5ldHdvcmsgdGltZW91dAokYy0+e3BpcnVzfS0+e3VhfSA9IExXUDo6VXNlckFnZW50 -LT5uZXcoCglmcm9tID0+ICRjLT57YWRtaW5lbWFpbH0sCglhZ2VudCA9PiAkYy0+e3ZlcnNpb259 -LAoJdGltZW91dCA9PiAyMCwKCWNvbm5fY2FjaGUgPT4gTFdQOjpDb25uQ2FjaGUtPm5ldywKKTsK -CiRjLT57cGx1Z2luc30tPnsiRXZlbnQ6OlBJUlVTIn0tPntwYXJhbXN9LT57ZGlzYWJsZX0gPSAw -OwoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj -IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgokYy0+YWRkX2RhdGFzZXRfdHJpZ2dlciggJ2FjY2Vz -cycsIEVQcmludHM6OkNvbnN0OjpFUF9UUklHR0VSX0NSRUFURUQsIHN1YiB7CglteSggJWFyZ3Mg -KSA9IEBfOwoKCW15ICRyZXBvID0gJGFyZ3N7cmVwb3NpdG9yeX07CglteSAkYWNjZXNzID0gJGFy -Z3N7ZGF0YW9ian07CgoJbXkgJHBsdWdpbiA9ICRyZXBvLT5wbHVnaW4oICJFdmVudDo6UElSVVMi -ICk7CgoJbXkgJHIgPSAkcGx1Z2luLT5sb2coICRhY2Nlc3MsICRyZXBvLT5jdXJyZW50X3VybCgg -aG9zdCA9PiAxICkgKTsKCglpZiggZGVmaW5lZCAkciAmJiAhJHItPmlzX3N1Y2Nlc3MgKQoJewoJ -CW15ICRldmVudCA9ICRyZXBvLT5kYXRhc2V0KCAiZXZlbnRfcXVldWUiICktPmRhdGFvYmpfY2xh -c3MtPmNyZWF0ZV91bmlxdWUoICRyZXBvLCB7CgkJCWV2ZW50cXVldWVpZCA9PiBEaWdlc3Q6Ok1E -NTo6bWQ1X2hleCggIkV2ZW50OjpQSVJVUzo6cmVwbGF5IiApLAoJCQlwbHVnaW5pZCA9PiAiRXZl -bnQ6OlBJUlVTIiwKCQkJYWN0aW9uID0+ICJyZXBsYXkiLAoJCX0pOwoJCWlmKCBkZWZpbmVkICRl -dmVudCApCgkJewoJCQkkZXZlbnQtPnNldF92YWx1ZSggInBhcmFtcyIsIFskYWNjZXNzLT5pZF0g -KTsKCQkJJGV2ZW50LT5jb21taXQ7CgkJfQoJfQp9KTsK + 3367 + PXBvZAoKPWhlYWQxIFBJUlVTICdQVVNIJyBpbXBsZW1lbnRhdGlvbgoKVGhlIG9mZmljaWFsIGxv +Y2F0aW9uIGZvciB0aGlzIEVQcmludHMgZXh0ZW5zaW9uIGlzIEw8aHR0cHM6Ly9naXRodWIuY29t +L2VwcmludHN1Zy9pcnVzLz4uCgpQbGVhc2UgY29uc3VsdCB0aGUgUkVBRE1FIHRoZXJlIGZvciBk +ZXRhaWxzIGFib3V0IHRoaXMgaW1wbGVtZW50YXRpb24uCgpJZiB0aGVyZSBhcmUgYW55IHByb2Js +ZW1zIG9yIGJ1Z3MsIHBsZWFzZSBvcGVuIGFuIGlzc3VlIGluIHRoYXQgR2l0SHViIHJlcG9zaXRv +cnkuCgpSZWxlYXNlZCB0byB0aGUgcHVibGljIGRvbWFpbiAob3IgQ0MwIGRlcGVuZGluZyBvbiB5 +b3VyIGp1cmlzdGljdGlvbikuCgpVU0UgT0YgVEhJUyBFWFRFTlNJT04gSVMgRU5USVJFTFkgQVQg +WU9VUiBPV04gUklTSwoKPWhlYWQyIEluc3RhbGxhdGlvbiAvIEltcGxlbWVudGF0aW9uIAoKUGxl +YXNlIHNlZSB0aGUgTDxJbnN0YWxsYXRpb258aHR0cHM6Ly9naXRodWIuY29tL2VwcmludHN1Zy9p +cnVzI2luc3RhbGxhdGlvbj4gCm9yIEw8SW1wbGVtZW50YXRpb258aHR0cHM6Ly9naXRodWIuY29t +L2VwcmludHN1Zy9pcnVzI2ltcGxlbWVudGF0aW9uPiBzZWN0aW9ucwpvZiB0aGUgUkVBRE1FLgoK +PWhlYWQyIENoYW5nZXMKCkZvciByZWNlbnQgY2hhbmdlcywgcGxlYXNlIHNlZSBMPGh0dHBzOi8v +Z2l0aHViLmNvbS9lcHJpbnRzdWcvaXJ1cyNjaGFuZ2VzPiAgCgoxLjA1IFNlYmFzdGllbiBGcmFu +Y29pcyA8c2YyQGVjcy5zb3Rvbi5hYy51az4KCkNvbmZvcm0gdG8gMjAxNCBndWlkZWxpbmVzIChz +ZWUgRXZlbnQ6OlBJUlVTLnBtKQoKMS4wMiBKdXN0aW4gQnJhZGxleSA8amI0QGVjcy5zb3Rvbi5h +Yy51az4KCkNvbXBhdGliaWxpdHkgZml4ZXMgZm9yIDMuMi4KCjEuMDEgVGltIEJyb2R5IDx0ZGIy +QGVjcy5zb3Rvbi5hYy51az4KCkZpeGVkIHJlZmVyZW5jZSB0byAnanRpdGxlJyBpbnN0ZWFkIG9m +ICdwdWJsaWNhdGlvbicKCjEuMDAgVGltIEJyb2R5IDx0ZGIyQGVjcy5zb3Rvbi5hYy51az4KCklu +aXRpYWwgdmVyc2lvbgoKPWN1dAoKcmVxdWlyZSBMV1A6OlVzZXJBZ2VudDsKcmVxdWlyZSBMV1A6 +OkNvbm5DYWNoZTsKCiMgbW9kaWZ5IHRoZSBmb2xsb3dpbmcgVVJMIHRvIHRoZSBQSVJVUyB0cmFj +a2VyIGxvY2F0aW9uCiRjLT57cGlydXN9LT57dHJhY2tlcn0gPSAiaHR0cHM6Ly9pcnVzLmppc2Mu +YWMudWsvY291bnRlci8iOwojIGR1cmluZyB0ZXN0aW5nIChvciBvbiBhIHRlc3Qgc2VydmVyKSwg +dGhlIGZvbGxvd2luZyBzaG91bGQgYmUgdXNlZDoKIyRjLT57cGlydXN9LT57dHJhY2tlcn0gPSAi +aHR0cHM6Ly9pcnVzLmppc2MuYWMudWsvY291bnRlci90ZXN0LyI7CgojIHlvdSBtYXkgd2FudCB0 +byByZXZpc2UgdGhlIHNldHRpbmdzIGZvciB0aGUgdXNlciBhZ2VudCBlLmcuIGluY3JlYXNlIG9y +CiMgZGVjcmVhc2UgdGhlIG5ldHdvcmsgdGltZW91dAokYy0+e3BpcnVzfS0+e3VhfSA9IExXUDo6 +VXNlckFnZW50LT5uZXcoCglmcm9tID0+ICRjLT57YWRtaW5lbWFpbH0sCglhZ2VudCA9PiAkYy0+ +e3ZlcnNpb259LAoJdGltZW91dCA9PiAyMCwKCWNvbm5fY2FjaGUgPT4gTFdQOjpDb25uQ2FjaGUt +Pm5ldywKKTsKCiMgSWYgeW91IG5lZWQgdG8gZ28gdmlhIGEgcHJveHkgdG8gY29tbXVuaWNhdGUg +d2l0aCB0aGUgdHJhY2tlciwKIyBhZGQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIGEgbG9jYWwgY29u +ZmlnIGZpbGUKIyRjLT57cGlydXN9LT57dWF9LT5wcm94eSgnaHR0cHMnLCAnRlVMTC1VUkwtVE8t +WU9VUi1QUk9YWS1TRVJWRVInKTsKCiMgVGhpcyBjb25maWcgdmFsdWUgY29udHJvbHMgd2hldGhl +ciBmYWlsZWQgcmVxdWVzdHMgYXJlIGxvZ2dlZCBpbnRvIHRoZQojIEFwYWNoZSBlcnJvciBsb2cu +CiMgQnkgZGVmYXVsdCBzb21lIGJhc2ljIGRldGFpbHMgYXJlIGluY2x1ZGVkIGluIHRoZSBkZXNj +cmlwdGlvbiBvZiB0aGUgcmVwbGF5IGV2ZW50LgojIElmIHlvdSBuZWVkIGFkZGl0aW9uYWwgZGVi +dWdnaW5nLCBjb3B5IHRoZSBmb2xsb3dpbmcgbGluZSBpbnRvIGEgcmVwb3NpdG9yeS1zcGVjaWZp +YwojIGNvbmZpZyBmaWxlLCB1bmNvbW1lbnQgaXQsIHJlc3RhcnQgQXBhY2hlIGFuZCBzZWUgd2hh +dCBpcyBpbiB0aGUgbG9ncy4KIyBzaG91bGQgZ2V0IGFkZGVkIAojICRjLT57cGlydXN9LT57dmVy +Ym9zZV9lcnJvcl9sb2dnaW5nfSA9IDE7CgojIEVuYWJsZSB0aGUgRXZlbnQgcGx1Z2luIGZvciBy +ZXBsYXlzCiRjLT57cGx1Z2luc30tPnsiRXZlbnQ6OlBJUlVTIn0tPntwYXJhbXN9LT57ZGlzYWJs +ZX0gPSAwOwoKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj +IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgokYy0+YWRkX2RhdGFzZXRfdHJpZ2dlcigg +J2FjY2VzcycsIEVQcmludHM6OkNvbnN0OjpFUF9UUklHR0VSX0NSRUFURUQsIHN1YiB7CglteSgg +JWFyZ3MgKSA9IEBfOwoKCW15ICRyZXBvID0gJGFyZ3N7cmVwb3NpdG9yeX07CglteSAkYWNjZXNz +ID0gJGFyZ3N7ZGF0YW9ian07CgoJbXkgJHBsdWdpbiA9ICRyZXBvLT5wbHVnaW4oICJFdmVudDo6 +UElSVVMiICk7CgoJbXkgJHIgPSAkcGx1Z2luLT5sb2coICRhY2Nlc3MsICRyZXBvLT5jdXJyZW50 +X3VybCggaG9zdCA9PiAxICkgKTsKCglpZiggZGVmaW5lZCAkciAmJiAhJHItPmlzX3N1Y2Nlc3Mg +KQoJewoJCW15ICRmYWlsX21lc3NhZ2UgPSAiUElSVVMgZGF0YXNldCB0cmlnZ2VyIGZhaWxlZCB0 +byBzZW5kIGRhdGEgdG8gdHJhY2tlci5cbiAiIC4gJHItPmFzX3N0cmluZzsKCQlteSAkZXZlbnQg +PSAkcmVwby0+ZGF0YXNldCggImV2ZW50X3F1ZXVlIiApLT5kYXRhb2JqX2NsYXNzLT5jcmVhdGVf +dW5pcXVlKCAkcmVwbywgewoJCQlldmVudHF1ZXVlaWQgPT4gRGlnZXN0OjpNRDU6Om1kNV9oZXgo +ICJFdmVudDo6UElSVVM6OnJlcGxheSIgKSwKCQkJcGx1Z2luaWQgPT4gIkV2ZW50OjpQSVJVUyIs +CgkJCWFjdGlvbiA9PiAicmVwbGF5IiwKCQkJZGVzY3JpcHRpb24gPT4gJGZhaWxfbWVzc2FnZSwK +CQl9KTsKCQlpZiggZGVmaW5lZCAkZXZlbnQgKQoJCXsKCQkJJGV2ZW50LT5zZXRfdmFsdWUoICJw +YXJhbXMiLCBbJGFjY2Vzcy0+aWRdICk7CgkJCSRldmVudC0+Y29tbWl0OwoJCX0KCgkJaWYoICRy +ZXBvLT5jb25maWcoICJwaXJ1cyIsICJ2ZXJib3NlX2Vycm9yX2xvZ2dpbmciICkgKQoJCXsKCQkJ +JGZhaWxfbWVzc2FnZSAuPSAiXG5BY2Nlc3NJRCB0aGF0IGZhaWxlZDogIiAuICRhY2Nlc3MtPmlk +OwoJCQkkZmFpbF9tZXNzYWdlIC49ICJcblVSTCBvZiByZXF1ZXN0IHRoYXQgZmFpbGVkOiAiIC4g +JHItPnJlcXVlc3QtPnVyaTsKCQkJJHJlcG8tPmxvZyggJGZhaWxfbWVzc2FnZSApOwoJCX0KCX0K +fSk7Cg== document plugins/EPrints/Plugin/Event/PIRUS.pm inode/symlink - 967694d8b543016cfe1c4ab32a8728fd + 19d5805c1a5b1a86ee9de1da4c1c4653 MD5 - 2473 + 2672 cGFja2FnZSBFUHJpbnRzOjpQbHVnaW46OkV2ZW50OjpQSVJVUzsKCm91ciAkVkVSU0lPTiA9IHYx -LjEuMDsKCkBJU0EgPSBxdyggRVByaW50czo6UGx1Z2luOjpFdmVudCApOwoKdXNlIHN0cmljdDsK +LjIuMjsKCkBJU0EgPSBxdyggRVByaW50czo6UGx1Z2luOjpFdmVudCApOwoKdXNlIHN0cmljdDsK CiMgQGplc3VzYmFncHVzcwojIENvdW50ZXIgdjUgLSBzZW5kIGRhdGEgYWJvdXQgYWJzdHJhY3Qg cGFnZSB2aWV3cyAoaW52ZXNpdGdhdGlvbnMpIGFzIHdlbGwgYXMgZG93bmxvYWRzCgojIGJvcnJv d2VkIGZyb20gRVByaW50cyAzLjMncyBFUHJpbnRzOjpPcGVuQXJjaGl2ZXM6OmFyY2hpdmVfaWQK @@ -98,40 +107,43 @@ cG8tPmNvbmZpZyggIm9haSIsICJhcmNoaXZlX2lkIiApOwoJbXkgJHYyID0gJHJlcG8tPmNvbmZp ZyggIm9haSIsICJ2MiIsICJhcmNoaXZlX2lkIiApOwoKCSR2MSB8fD0gJHJlcG8tPmNvbmZpZygg Imhvc3QiICk7CgkkdjIgfHw9ICR2MTsKCglyZXR1cm4gJGFueSA/ICgkdjEsICR2MikgOiAkdjI7 Cn0KCgpzdWIgcmVwbGF5CnsKCW15KCAkc2VsZiwgJGFjY2Vzc2lkICkgPSBAXzsKCglteSAkcmVw -byA9ICRzZWxmLT57c2Vzc2lvbn07CgoJbG9jYWwgJFNJR3tfX0RJRV9ffTsKCWV2YWwgeyAkcmVw -by0+ZGF0YXNldCggImFjY2VzcyIgKS0+c2VhcmNoKGZpbHRlcnMgPT4gWwoJCQkJeyBtZXRhX2Zp -ZWxkcyA9PiBbcXcoIGFjY2Vzc2lkICldLCB2YWx1ZSA9PiAiJGFjY2Vzc2lkLi4iLCB9LAoJCQld -LAoJCQlsaW1pdCA9PiAxMDAwLCAjIGxldHMgbm90IGdvIGNyYXp5IC4uLgoJKS0+bWFwKHN1YiB7 -CgkJKHVuZGVmLCB1bmRlZiwgbXkgJGFjY2VzcykgPSBAXzsKCgkJbXkgJHIgPSAkc2VsZi0+bG9n -KCAkYWNjZXNzICk7CgkJZGllICJmYWlsZWRcbiIgaWYgISRyLT5pc19zdWNjZXNzOwoJCSRhY2Nl -c3NpZCA9ICRhY2Nlc3MtPmlkOwoJfSkgfTsKCWlmKCAkQCBlcSAiZmFpbGVkXG4iICkKCXsKCQkk -cmVwby0+bG9nKCAiQXR0ZW1wdCB0byByZS1zZW5kIFBJUlVTIHRyYWNrYmFjayBmYWlsZWQsIHRy -eWluZyBhZ2FpbiBpbiAyNCBob3VycyB0aW1lIiApOwoKCQlteSAkZXZlbnQgPSAkc2VsZi0+e2V2 -ZW50fTsKCQkkZXZlbnQtPnNldF92YWx1ZSggInBhcmFtcyIsIFskYWNjZXNzaWRdICk7CgkJJGV2 -ZW50LT5zZXRfdmFsdWUoICJzdGFydF90aW1lIiwgRVByaW50czo6VGltZTo6aXNvX2RhdGV0aW1l -KCB0aW1lICsgODY0MDAgKSApOwoJCSNyZXR1cm4gRVByaW50czo6Q29uc3Q6OkhUVFBfUkVTRVRf -Q09OVEVOVDsKCQlyZXR1cm4gMDsKCX0KCWVsc2lmKCAkQCApCgl7CgkJZGllICRAOwoJfQoKCXJl -dHVybjsKfQoKc3ViIGxvZwp7CglteSggJHNlbGYsICRhY2Nlc3MsICRyZXF1ZXN0X3VybCApID0g -QF87CgoJbXkgJHJlcG8gPSAkc2VsZi0+e3Nlc3Npb259OwoKCW15ICR1cmwgPSBVUkktPm5ldygK -CQkkcmVwby0+Y29uZmlnKCAicGlydXMiLCAidHJhY2tlciIgKQoJKTsKCglteSAkdXJsX3RpbSA9 -ICRhY2Nlc3MtPnZhbHVlKCAiZGF0ZXN0YW1wIiApOwoJJHVybF90aW0gPX4gcy9eKFxTKykgKFxT -KykkLyQxVCQyWi87CgoJbXkgJGFydG51bSA9IEVQcmludHM6Ok9wZW5BcmNoaXZlczo6dG9fb2Fp -X2lkZW50aWZpZXIoCgkJX2FyY2hpdmVfaWQoICRyZXBvICksCgkJJGFjY2Vzcy0+dmFsdWUoICJy -ZWZlcmVudF9pZCIgKSwKCSk7CgoJbXkgJXFmX3BhcmFtcyA9ICgKCQl1cmxfdmVyID0+ICJaMzku -ODgtMjAwNCIsCgkJdXJsX3RpbSA9PiAkdXJsX3RpbSwKCQlyZXFfaWQgPT4gInVybjppcDoiLiRh -Y2Nlc3MtPnZhbHVlKCAicmVxdWVzdGVyX2lkIiApLAoJCXJlcV9kYXQgPT4gJGFjY2Vzcy0+dmFs -dWUoICJyZXF1ZXN0ZXJfdXNlcl9hZ2VudCIgKSwKCQkncmZ0LmFydG51bScgPT4gJGFydG51bSwK -CQlyZnJfaWQgPT4gJHJlcG8tPmNvbmZpZyggImhvc3QiICkgPyAkcmVwby0+Y29uZmlnKCAiaG9z -dCIgKSA6ICRyZXBvLT5jb25maWcoICJzZWN1cmVob3N0IiApLAoJCXN2Y19kYXQgPT4gJHJlcXVl -c3RfdXJsLAoJKTsKCQoJaWYoICRhY2Nlc3MtPmlzX3NldCggInJlZmVycmluZ19lbnRpdHlfaWQi -ICkgKQoJewoJCSRxZl9wYXJhbXN7cmZyX2RhdH0gPSAkYWNjZXNzLT52YWx1ZSggInJlZmVycmlu -Z19lbnRpdHlfaWQiICk7Cgl9CgoJIyBDb3VudGVyIHY1IGlzIGludGVyZXN0ZWQgaW4gc3VtbWFy -eSBwYWdlIHZpZXdzIGFzIHdlbGwgYXMgZG93bmxvYWRzLgoJaWYoICRhY2Nlc3MtPmlzX3NldCgg -InNlcnZpY2VfdHlwZV9pZCIgKSApCgl7CgkJJHFmX3BhcmFtc3tyZnRfZGF0fSA9ICRhY2Nlc3Mt -PnZhbHVlKCAic2VydmljZV90eXBlX2lkIiApIGVxICI/ZnVsbHRleHQ9eWVzIiA/ICJSZXF1ZXN0 -IiA6ICJJbnZlc3RpZ2F0aW9uIjsKCX0KCQoJJHVybC0+cXVlcnlfZm9ybSggJXFmX3BhcmFtcyAp -OwoKCW15ICR1YSA9ICRyZXBvLT5jb25maWcoICJwaXJ1cyIsICJ1YSIgKTsKCglyZXR1cm4gJHVh -LT5oZWFkKCAkdXJsICk7Cn0KCjE7Cg== +byA9ICRzZWxmLT57c2Vzc2lvbn07CglteSAkZmFpbF9tZXNzYWdlOwoKCWxvY2FsICRTSUd7X19E +SUVfX307CglldmFsIHsgJHJlcG8tPmRhdGFzZXQoICJhY2Nlc3MiICktPnNlYXJjaChmaWx0ZXJz +ID0+IFsKCQkJCXsgbWV0YV9maWVsZHMgPT4gW3F3KCBhY2Nlc3NpZCApXSwgdmFsdWUgPT4gIiRh +Y2Nlc3NpZC4uIiwgfSwKCQkJXSwKCQkJbGltaXQgPT4gMTAwMCwgIyBsZXRzIG5vdCBnbyBjcmF6 +eSAuLi4KCSktPm1hcChzdWIgewoJCSh1bmRlZiwgdW5kZWYsIG15ICRhY2Nlc3MpID0gQF87CgoJ +CW15ICRyID0gJHNlbGYtPmxvZyggJGFjY2VzcyApOwoJCWlmKCAhJHItPmlzX3N1Y2Nlc3MgKQoJ +CXsKCQkJJGZhaWxfbWVzc2FnZSA9ICRyLT5hc19zdHJpbmc7CgkJCWRpZSAiZmFpbGVkXG4iOwoJ +CX0KCQkkYWNjZXNzaWQgPSAkYWNjZXNzLT5pZDsKCX0pIH07CglpZiggJEAgZXEgImZhaWxlZFxu +IiApCgl7CgkJJHJlcG8tPmxvZyggIkF0dGVtcHQgdG8gcmUtc2VuZCBQSVJVUyB0cmFja2JhY2sg +ZmFpbGVkLCB0cnlpbmcgYWdhaW4gaW4gMjQgaG91cnMgdGltZSIgKTsKCQkkcmVwby0+bG9nKCAi +UElSVVMgcmVwbGF5IGV2ZW50IGZhaWxlZCB3aXRoIHRoZSByZXNwb25zZTpcbiRmYWlsX21lc3Nh +Z2UiICk7CgoJCW15ICRldmVudCA9ICRzZWxmLT57ZXZlbnR9OwoJCSRldmVudC0+c2V0X3ZhbHVl +KCAicGFyYW1zIiwgWyRhY2Nlc3NpZF0gKTsKCQkkZXZlbnQtPnNldF92YWx1ZSggInN0YXJ0X3Rp +bWUiLCBFUHJpbnRzOjpUaW1lOjppc29fZGF0ZXRpbWUoIHRpbWUgKyA4NjQwMCApICk7CgkJJGV2 +ZW50LT5zZXRfdmFsdWUoICJkZXNjcmlwdGlvbiIsICRmYWlsX21lc3NhZ2UgKTsKCQkjcmV0dXJu +IEVQcmludHM6OkNvbnN0OjpIVFRQX1JFU0VUX0NPTlRFTlQ7CgkJcmV0dXJuIDA7Cgl9CgllbHNp +ZiggJEAgKQoJewoJCWRpZSAkQDsKCX0KCglyZXR1cm47Cn0KCnN1YiBsb2cKewoJbXkoICRzZWxm +LCAkYWNjZXNzLCAkcmVxdWVzdF91cmwgKSA9IEBfOwoKCW15ICRyZXBvID0gJHNlbGYtPntzZXNz +aW9ufTsKCglteSAkdXJsID0gVVJJLT5uZXcoCgkJJHJlcG8tPmNvbmZpZyggInBpcnVzIiwgInRy +YWNrZXIiICkKCSk7CgoJbXkgJHVybF90aW0gPSAkYWNjZXNzLT52YWx1ZSggImRhdGVzdGFtcCIg +KTsKCSR1cmxfdGltID1+IHMvXihcUyspIChcUyspJC8kMVQkMlovOwoKCW15ICRhcnRudW0gPSBF +UHJpbnRzOjpPcGVuQXJjaGl2ZXM6OnRvX29haV9pZGVudGlmaWVyKAoJCV9hcmNoaXZlX2lkKCAk +cmVwbyApLAoJCSRhY2Nlc3MtPnZhbHVlKCAicmVmZXJlbnRfaWQiICksCgkpOwoKCW15ICVxZl9w +YXJhbXMgPSAoCgkJdXJsX3ZlciA9PiAiWjM5Ljg4LTIwMDQiLAoJCXVybF90aW0gPT4gJHVybF90 +aW0sCgkJcmVxX2lkID0+ICJ1cm46aXA6Ii4kYWNjZXNzLT52YWx1ZSggInJlcXVlc3Rlcl9pZCIg +KSwKCQlyZXFfZGF0ID0+ICRhY2Nlc3MtPnZhbHVlKCAicmVxdWVzdGVyX3VzZXJfYWdlbnQiICks +CgkJJ3JmdC5hcnRudW0nID0+ICRhcnRudW0sCgkJcmZyX2lkID0+ICRyZXBvLT5jb25maWcoICJo +b3N0IiApID8gJHJlcG8tPmNvbmZpZyggImhvc3QiICkgOiAkcmVwby0+Y29uZmlnKCAic2VjdXJl +aG9zdCIgKSwKCQlzdmNfZGF0ID0+ICRyZXF1ZXN0X3VybCwKCSk7CgkKCWlmKCAkYWNjZXNzLT5p +c19zZXQoICJyZWZlcnJpbmdfZW50aXR5X2lkIiApICkKCXsKCQkkcWZfcGFyYW1ze3Jmcl9kYXR9 +ID0gJGFjY2Vzcy0+dmFsdWUoICJyZWZlcnJpbmdfZW50aXR5X2lkIiApOwoJfQoKCSMgQ291bnRl +ciB2NSBpcyBpbnRlcmVzdGVkIGluIHN1bW1hcnkgcGFnZSB2aWV3cyBhcyB3ZWxsIGFzIGRvd25s +b2Fkcy4KCWlmKCAkYWNjZXNzLT5pc19zZXQoICJzZXJ2aWNlX3R5cGVfaWQiICkgKQoJewoJCSRx +Zl9wYXJhbXN7cmZ0X2RhdH0gPSAkYWNjZXNzLT52YWx1ZSggInNlcnZpY2VfdHlwZV9pZCIgKSBl +cSAiP2Z1bGx0ZXh0PXllcyIgPyAiUmVxdWVzdCIgOiAiSW52ZXN0aWdhdGlvbiI7Cgl9CgkKCSR1 +cmwtPnF1ZXJ5X2Zvcm0oICVxZl9wYXJhbXMgKTsKCglteSAkdWEgPSAkcmVwby0+Y29uZmlnKCAi +cGlydXMiLCAidWEiICk7CgoJcmV0dXJuICR1YS0+aGVhZCggJHVybCApOwp9CgoxOwo= @@ -2722,7 +2734,7 @@ rkJggg== coverimage - 1.2.1 + 1.2.2 @@ -2750,9 +2762,9 @@ rkJggg== https://orcid.org/0000-0002-8611-8266 - 2019-03-29 12:55:09 + 2019-11-26 11:48:23 PIRUS/IRUS-UK PUSH Implementation - The aim of the PIRUS2 Project is to enable publishers, repositories and other organizations to generate and share authoritative, trustworthy usage statistics for the individual articles and other items that they host. v1.2.0 is COUNTER R5 compliant. + The aim of the PIRUS2 Project is to enable publishers, repositories and other organizations to generate and share authoritative, trustworthy usage statistics for the individual articles and other items that they host. v1.2.0+ is COUNTER R5 compliant. Requires 3.2.3 for TRIGGER and COUNTER robots list. http://github.com/eprintsug/irus images/epm/icon_irus.png diff --git a/irus.epmi b/irus.epmi index b2ba6a7..7cf2053 100644 --- a/irus.epmi +++ b/irus.epmi @@ -15,16 +15,16 @@ cfg.d/pirus.pl inode/symlink - 8ce08e43a4ff811693797650900b37a7 + 67c7393025b548cd2fa1f4b5f114bb00 MD5 - 2883 + 3367 plugins/EPrints/Plugin/Event/PIRUS.pm inode/symlink - 967694d8b543016cfe1c4ab32a8728fd + 19d5805c1a5b1a86ee9de1da4c1c4653 MD5 - 2473 + 2672 static/images/epm/icon_irus.png @@ -54,7 +54,7 @@ coverimage - 1.2.1 + 1.2.2 @@ -82,9 +82,9 @@ https://orcid.org/0000-0002-8611-8266 - 2019-03-29 12:55:09 + 2019-11-26 11:48:23 PIRUS/IRUS-UK PUSH Implementation - The aim of the PIRUS2 Project is to enable publishers, repositories and other organizations to generate and share authoritative, trustworthy usage statistics for the individual articles and other items that they host. v1.2.0 is COUNTER R5 compliant. + The aim of the PIRUS2 Project is to enable publishers, repositories and other organizations to generate and share authoritative, trustworthy usage statistics for the individual articles and other items that they host. v1.2.0+ is COUNTER R5 compliant. Requires 3.2.3 for TRIGGER and COUNTER robots list. http://github.com/eprintsug/irus images/epm/icon_irus.png diff --git a/lib/cfg.d/pirus.pl b/lib/cfg.d/pirus.pl index 44852f9..9e5de92 100644 --- a/lib/cfg.d/pirus.pl +++ b/lib/cfg.d/pirus.pl @@ -2,51 +2,26 @@ =head1 PIRUS 'PUSH' implementation -Provide data for COUNTER-compliant usage statistics. +The official location for this EPrints extension is L. -Copyright 2012 University of Southampton +Please consult the README there for details about this implementation. + +If there are any problems or bugs, please open an issue in that GitHub repository. Released to the public domain (or CC0 depending on your juristiction). USE OF THIS EXTENSION IS ENTIRELY AT YOUR OWN RISK -=head2 Installation - -Copy this file into your repository's cfg.d/ directory and restart Apache. - -=head2 Implementation - -This code will PING the configured tracker server whenever a full-text object -is requested from EPrints. - -These pings can be aggregated together with data from other sources -(publishers, other repositories) to create a fuller picture of the usage of -individual articles. - - -The data transferred are: - - - eprint.eprintid - the eprint's internal identifier - - eprint.datestamp - the datetime the access started - - IP address - the user's IP address - - User Agent - the user's browser user agent - - eprint.date - the publication date - -And either (if id_number is defined): +=head2 Installation / Implementation - - eprint.id_number - the DOI - -Or: - - - eprint.creators_name - first named author - - eprint.title - eprint title - - eprint.jtitle - publication title - - eprint.issn - publication ISSN - - eprint.volume - publication volume - - eprint.issue - publication issue +Please see the L +or L sections +of the README. =head2 Changes +For recent changes, please see L + 1.05 Sebastien Francois Conform to 2014 guidelines (see Event::PIRUS.pm) @@ -82,6 +57,19 @@ =head2 Changes conn_cache => LWP::ConnCache->new, ); +# If you need to go via a proxy to communicate with the tracker, +# add the following line to a local config file +#$c->{pirus}->{ua}->proxy('https', 'FULL-URL-TO-YOUR-PROXY-SERVER'); + +# This config value controls whether failed requests are logged into the +# Apache error log. +# By default some basic details are included in the description of the replay event. +# If you need additional debugging, copy the following line into a repository-specific +# config file, uncomment it, restart Apache and see what is in the logs. +# should get added +# $c->{pirus}->{verbose_error_logging} = 1; + +# Enable the Event plugin for replays $c->{plugins}->{"Event::PIRUS"}->{params}->{disable} = 0; ############################################################################## @@ -98,15 +86,24 @@ =head2 Changes if( defined $r && !$r->is_success ) { + my $fail_message = "PIRUS dataset trigger failed to send data to tracker.\n " . $r->as_string; my $event = $repo->dataset( "event_queue" )->dataobj_class->create_unique( $repo, { eventqueueid => Digest::MD5::md5_hex( "Event::PIRUS::replay" ), pluginid => "Event::PIRUS", action => "replay", + description => $fail_message, }); if( defined $event ) { $event->set_value( "params", [$access->id] ); $event->commit; } + + if( $repo->config( "pirus", "verbose_error_logging" ) ) + { + $fail_message .= "\nAccessID that failed: " . $access->id; + $fail_message .= "\nURL of request that failed: " . $r->request->uri; + $repo->log( $fail_message ); + } } }); diff --git a/lib/plugins/EPrints/Plugin/Event/PIRUS.pm b/lib/plugins/EPrints/Plugin/Event/PIRUS.pm index e918b62..dcac99e 100644 --- a/lib/plugins/EPrints/Plugin/Event/PIRUS.pm +++ b/lib/plugins/EPrints/Plugin/Event/PIRUS.pm @@ -1,6 +1,6 @@ package EPrints::Plugin::Event::PIRUS; -our $VERSION = v1.1.0; +our $VERSION = v1.2.2; @ISA = qw( EPrints::Plugin::Event ); @@ -29,6 +29,7 @@ sub replay my( $self, $accessid ) = @_; my $repo = $self->{session}; + my $fail_message; local $SIG{__DIE__}; eval { $repo->dataset( "access" )->search(filters => [ @@ -39,16 +40,22 @@ sub replay (undef, undef, my $access) = @_; my $r = $self->log( $access ); - die "failed\n" if !$r->is_success; + if( !$r->is_success ) + { + $fail_message = $r->as_string; + die "failed\n"; + } $accessid = $access->id; }) }; if( $@ eq "failed\n" ) { $repo->log( "Attempt to re-send PIRUS trackback failed, trying again in 24 hours time" ); + $repo->log( "PIRUS replay event failed with the response:\n$fail_message" ); my $event = $self->{event}; $event->set_value( "params", [$accessid] ); $event->set_value( "start_time", EPrints::Time::iso_datetime( time + 86400 ) ); + $event->set_value( "description", $fail_message ); #return EPrints::Const::HTTP_RESET_CONTENT; return 0; }