From 7969f782b12ecc92f5df9f7b7c93bb97a86c6b7d Mon Sep 17 00:00:00 2001 From: Eric O Date: Sat, 16 Nov 2024 15:15:13 -0500 Subject: [PATCH 1/3] Update fcrepo3-s3-server and s3-url-protocol jars from v0.1 to v0.2 --- ...rver-0.1.jar => fcrepo3-s3-server-0.2.jar} | Bin 29764 -> 29764 bytes docker/fedora/cul/s3-url-protocol-0.1.jar | Bin 3290 -> 0 bytes docker/fedora/cul/s3-url-protocol-0.2.jar | Bin 0 -> 3290 bytes docker/fedora/setup-and-start.sh | 4 ++-- 4 files changed, 2 insertions(+), 2 deletions(-) rename docker/fedora/cul/{fcrepo3-s3-server-0.1.jar => fcrepo3-s3-server-0.2.jar} (66%) delete mode 100644 docker/fedora/cul/s3-url-protocol-0.1.jar create mode 100644 docker/fedora/cul/s3-url-protocol-0.2.jar diff --git a/docker/fedora/cul/fcrepo3-s3-server-0.1.jar b/docker/fedora/cul/fcrepo3-s3-server-0.2.jar similarity index 66% rename from docker/fedora/cul/fcrepo3-s3-server-0.1.jar rename to docker/fedora/cul/fcrepo3-s3-server-0.2.jar index 485276cbd668fb0277b7f1ee15a81e957f2b6e99..fd090c0ed3bb3efea0dd291f325267f2e101e9f5 100644 GIT binary patch delta 6724 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 F{{bjvT&e&7 delta 6762 zcmZ9R2Q*w=+xPX}OLQT`=!8+C4Z&!mMeijf7(}nbNFs@dKDy{-w9$L7BWiS_i-;CP ziRfN&fA{-*&pT_K_1kB!|FzHF*R{@BYyMZyCT7njCaI1FHVzR60RaI9u03HaX)5+# z6mw$#vLlQgyMKoxuD?JqV+!06f+=>#P)xZy_F^jBQ5y@0Xm`dZ{<|Iq0S3n37;P-Y zzY8J~uz2s-g$24J4z}*!nCg#&FY)dM#@Kwg1h-0)tcgu!M3bl`W;lWYXvpyQ)&>Iu z!~XXA&sP72&I&GLlHCqWGBG`{cWE#%9K;c^1U!g#LRtVR#S6ys+k47H{b#^x@}mq4W1*(Eb|p)NjRl#bOqEQwoPgl38W$J+|S)iZ6rJ{#p!~XwQ6!FWtyNr*{5NLL4tt_aR&94_m9n_6m`7P*_<~apULi4K*`Bbbt`9AN&Jaqt#1LD7Npc>Jp3Gid%^E z$#)Td{-haN#`5D|%Hya%zj|M1jSVKb1u>L=2OP}BdthZf1csyK|gXUz)_(6X#m6g#yXQ<`|%Q6wM4*KYg{J}@H}r^4Z|c3)C}YN7R$kh+1>ms&7hu_@zFD$f;mIJrSv&_&f%=e?gl|t zI5A^0e+e{jR0JW-VKYHw>fISr&77u@sA3yCsa}v^&>g1tWQzfwZEaKEf1p250vy`S{Ep-LzgtZer-JZ}Ip;`5=sMUo-_?N}d4@coHbv(aCXpQ=H z{2%0Q_yCRLK92?ZbK8g3zwyggh+Hl>n74t;K6gs~E&R3wUC{z#(o3`#Fq1^X-_ew! ziRx-=Q1>pju-XeMvANJ$qc4dcJTG9IcJP&H?EX17IhHCW=>DV^hu&C5Hz&qq#lwc< zUbM1xZ|u&HWNvdr-+9}_>CmsH4%Go zay=I~zd5A&+SehK<~~=m-XW#kT7?DgY}vLZ=Nh4CN_e5M*E-?WytU9WcFAo1*vHg( z6>^9?H*$03h9x#25uR&T_XV<~Ba=>&27M5huo2}0HsN&eZc14qt)?%ooMAK+Qa4DE zES#9%+?8tm=sLb7*m5WU;~OwaU+%m8h6SgCI_@h8lpMW34H>CFdLN5=C;EnCp(s6{ zB7D~r8p~UGZwrRMTy&&zDws}wsN#K14>w14Pm*U&pSfO#!nGvEnNqZ(doDRNeipwK z3vRdyZ@mCs=Z(BSWsL;oA0f{y)A!c`IjbhOU?5P|#MN=gNakvw*WMbwcW~JK=`Frv z;6zI$--}N^)oZ~J;HgpX#F!wQKjRRfNzl9Cc>ZVasD$%v)JXI%3?jaIXdyRfCm ziRL&ixucc=@PtLL;0VxQjoak#@be)E;}~iTRd#Ss~YgTNyyI8M-R5{y`x_WzEd?4X< z%>~!kczNWTysgaz+Br5mXW?Ww6{7+-%#fUP5yU@K1?wU;>x+|gL^dxi7$>*<&(lWw zP6MUj@Jx8t1ZeYZWrS0yE%CbLD^tS0Zp}xYzE}#RCuJRuPn%C_8ck29v{yyA9x%XCCU=%7x=!> z5M;;4ig+?#s8Hn_&U#)aJNlT|wh$B+v@`kO>%&O_1rGs``4}Zu&~qX!;R9g{$)(MV zem`i0@DBsm40}#0UB5!%dlB8iPiqsgN)EKWu6b@Eikw>d(;R)+>nXPK1wKfFX3pqf zbm7V>O#|as#3y@ZZr?DjG=jB0{V~b{=u5~k&793#GJT?@7!Dq6SL`o4+JC4Z{t1T4 znt-=+T3jh?fDSXgu0?N@H`))6q;4W_$__wY!LM$Lj&4+cUeYZW9khD~$6E1j?sDjd zK5M7$OC2iwij7dz6^{zy=vo;)$NXgf!O0di-rfUHCH}cYZTl2j(YwvCD{7@qamq66$O*}8nxQC`S(nv#hUQ=*LX@Idgw&SSVF zahxvJ$ER8pI4RT@$CVDYbU7WkKdc6PbitLsEVZHyXSpQ&W^cuo`QYUu_|6 z!@BN4_%QvR9t<7ypuXXlyP8*V^RvL&QNuO-Izu${OrxU@5phr%8+qOm7e+>+Fwqxw z29p(~GH(W(%T&b0o>@o+N9>$@<=Ib){Kl1~iERX3%MsRm+~x-{d64e3<@&QmU%tWG zIiT;5f`x4ckT&G1XtCO$=T6&))L*ywHJDJrN3|10SB68hB$x{ktHcJZkOAOA^MKXf zx23KT(!66(DlR6qIV+(Ney_)wfBX&WCL?Z$tP-t+uMgE8Yis=m=IQ~B*?#|InlXxa zB-F3Hg`S&FW3ihHjH|a5uR!E+20j9+L5$NQJ`q=JsXK5We*C_P7U6S?mdgi-PCGm< zYV^f=&4lT$??klJ0hLyk+-ZhCB;Lpe0W59R)<<`txe0{n2DqU<_NxSqY$_gcs~jHE zbP+vocDEdA9=*`_jo}@!s5QWm6?-FJwnjLXhb^K>X=@eHwq$q&F^z=w&m*Pb?}Z!t%P@ zOGzIap=NICg*xc8~+G(lx2yYsL>CD6qI}Ka^5B7Ca5EvXjYxmCd4b4s1MdPlX%r_n1FwrTd~@>q_gWAAL=gs;22h3{RlbV_MTf|Gp*;L1oQ};Ex6*j zJ|?M%vP@HaMm(JF9X=Ak^fYnA-$ZJ|e(Tf5C{L?2yMPf{@2&KdV{=&=1 zxjfZlmgPLodz??=13 z%mP-a>)#z5->*gdv9W=}tJC=n7E1Phmapms^wrIZ!prhJw|Gqzj3%6FppHxy>g7l> zk%|YUc`Nw727bYltDYqs(NCKq!Vs zrMgpOJwrwq^QtXEJ5z(D@E@3A$R`+J*Zfi|mO7`$t&;&y3BOMrmlIr9L5CEHLH(PTzZ#|g9&fa}jX|9qqVHx%luXHJs zc8;nzJ8)BP0CMso(g75dy63Hwr>m=;d*KvsCo@YGk|$w(7#z@18O0GLDHVLJ7 zD%IjG$cViS6csk;Cf3P$%PE>#)Qu%#Vg7?*lpm{W;uTrN1=fkmOIbsZvmHh@wGj}* zj#aoa9nD9LWBbmeLe#!N){9w<>MVeCmc=o*><@yQhb;+NF7NWqXIG?@UWhgHt|YDo z`D;dXPU+*tN8&~e91~?iV+`*h99DAhd|e{H$g0xODcY8Xap&Wykk^5NDW3USA1nGv z%TKJ{_Z&T^{E8LEqd_TT$Yxop&_mHBZOsF>ADxvwHpwsg!B0GV-0&thB_k_0yz{y0 z3Xe5k=f3B$zc7tFtU8d7ZC@zFv3@*5OId(1=)m9*di*fIjY|GhWSXuY05aq3wJa6v zU8s~7Gu}mlZBD6T-yhD&*9x~13C>NfWCVr?q9N&Dc0EZ)x8G3_YP7{EnCdB!&auN& z=T;8eg~1dW?mE?QOrq&inH@d zNS!WR(NLlIDFp1Xam-sY7;QF&y#zj;fonv$aax_TBE#N|`zX8|U&2DE@g4bgLG3L~ zQ<4mS*?@OLWNw`(2opW_m}pNqN~2dD=&T@3p;G%8$@^D zkztQhD(zw_ZE=L0aB~MS*T@k%Wy%MGh(2q-s`}CyE=Nw(hB0{dKse~b-aA1Mwk9k1 zg8TRkD4Y9pORgAWL9OGOgE01 z`{U92B$5UEb0cNnn#9ZQzi?O6E#OtF&D_b50YUrcN&r zK?m}ccV+=BAk4suu!qH2YrFK8R{^;f9y zHc|2hqz2j9!eld-)D;4kwvICz(=McTA?M%VqF=$^q;u=H$~pBX8@b?<{Nd?VVD;?B zpVJ$BDJ}SSk8^CJ@yt`;IbWvY7f-RP^rTVZ1*MxGJ^`dOEuYx~K9mLf#saie1c z@&u`EiY`?%b1)oXjC73orE{H`?Z6e9Lqt3BvuQ~2l2;SKi{^k!t>|N?bvB0PIDRAg z9BhF}zg0WI%~KX*)g}MNG9y*53!*2&ITbj~V^c7;Y>+&tuimu`+Qh}5KkDGBRiQrB zkX75Nb28o@!JM12eDkxZx$~j^q^(D^_T|r};5lL`#s&DM6-fTV6)BS0{JM=jac^&s z6=Oul#_`?=om}zCSK!BuQIm>VwlDd_{;XnER=Ta@Xw>Tl3!FLqK!?Xyh--YHVV2=_ zk`&d@lk|(10hIKwxh;F1EIfXn#YOu`t>2sMz+IAH^7_;GiN^L>6}a4bT#l)gh^9Py zyfQ(?>Qx8OB)19{;_8=N@Ucu1nP?WV0iQ&#-4N?&;1m4EG5x=$>J_;^;hi5F2HdA4 zh`n`JRV~+fs@sL7FySytylAl>)+&oZ^i@OhPcDXZDEphNm1Xerz)JWFL~mf#4Gm+2 zZ{DN`yiF{RrsJV|R3{}CAEcw-XO7C*UzW@H!`4W?CNw1}9%0g@KSZ;5pq~x6Uw9Ur z$-8F?mRRJWbV(R2GSAib|Lai9i zCb+}kQ$*z-f@qIZ1dX!kuZRg4u4c;dq;^{}#28|FfbqE+Wc}`%e7-zcT+V&Z7K(kN?|t z_(zQOLxq)$5CbEG76U{6-)G-4@6`?0t(X~+^-|<+)waN@JQyVg1`YrNL-oIefx`d0 zg++J%|9uk?ZEp9lT%O#XL59lD#aTz=KjrwFei9EREC=PgNG*?lx-}neGxQRCH#O+` z&(xj=6C%X}fDrb4beF{7+bCSKJ4uHJ-`&P|G5gK5Z%+_)djjeI+E|Vi;=mJx*mEVi d6aJ)TKqGDiOSjjP{}P%yB3^ld5yD-O3A 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 literal 0 HcmV?d00001 diff --git a/docker/fedora/setup-and-start.sh b/docker/fedora/setup-and-start.sh index 7bde316de..963c30335 100644 --- a/docker/fedora/setup-and-start.sh +++ b/docker/fedora/setup-and-start.sh @@ -20,10 +20,10 @@ rm /opt/fedora/tomcat/webapps/fedora/WEB-INF/lib/httpcore-4*.jar rm /opt/fedora/tomcat/webapps/fedora/WEB-INF/lib/httpclient-4*.jar cp /opt/jars/apache-http/*.jar /opt/fedora/tomcat/webapps/fedora/WEB-INF/lib/ rm /opt/fedora/tomcat/webapps/fedora/WEB-INF/lib/s3-url-protocol-*.jar -cp /opt/jars/cul/s3-url-protocol-0.1.jar /opt/fedora/tomcat/webapps/fedora/WEB-INF/lib/ +cp /opt/jars/cul/s3-url-protocol-*.jar /opt/fedora/tomcat/webapps/fedora/WEB-INF/lib/ cp /opt/jars/awssdk/*.jar /opt/fedora/tomcat/webapps/fedora/WEB-INF/lib/ rm /opt/fedora/tomcat/webapps/fedora/WEB-INF/lib/fcrepo3-s3-server-*.jar -cp /opt/jars/cul/fcrepo3-s3-server-0.1.jar /opt/fedora/tomcat/webapps/fedora/WEB-INF/lib/ +cp /opt/jars/cul/fcrepo3-s3-server-*.jar /opt/fedora/tomcat/webapps/fedora/WEB-INF/lib/ echo "Done overriding Fedora 3 libraries; setting new FCFG config" cp /opt/fedora.delegating-external.fcfg /opt/fedora/server/config/fedora.fcfg cp /opt/permit-all-s3-resolution.xml /opt/fedora/data/fedora-xacml-policies/repository-policies/default/permit-all-s3-resolution.xml From 051ee7d8bb10f69ff088f0ca1846c1aa5c298cc2 Mon Sep 17 00:00:00 2001 From: Eric O Date: Thu, 21 Nov 2024 10:21:39 -0500 Subject: [PATCH 2/3] Updated permit-all-s3-resolution.xml --- docker/fedora/permit-all-s3-resolution.xml | 23 +++++++++++----------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/docker/fedora/permit-all-s3-resolution.xml b/docker/fedora/permit-all-s3-resolution.xml index ac7d5d3ef..45539dcb0 100644 --- a/docker/fedora/permit-all-s3-resolution.xml +++ b/docker/fedora/permit-all-s3-resolution.xml @@ -9,7 +9,13 @@ - + + + ^s3://.*$ + + + @@ -20,21 +26,14 @@ - - - - ^s3://.*$ - - - - + + administrator - + - \ No newline at end of file + From eeb8b26ed2c0f954a52975716866943e906c9f49 Mon Sep 17 00:00:00 2001 From: Eric O Date: Fri, 22 Nov 2024 14:56:52 -0500 Subject: [PATCH 3/3] Fedora Docker setup updates, plus Fedora object read test --- docker/fedora/Dockerfile | 1 + .../fedora/deny-unallowed-file-resolution.xml | 42 +++++++++++ docker/fedora/setup-and-start.sh | 69 +++++++++++++------ docker/templates/docker-compose.test.yml | 3 + lib/tasks/hyacinth/docker.rake | 2 +- .../features/digital_object_editor_ui_spec.rb | 4 +- spec/integration/fedora_read_spec.rb | 40 +++++++++++ 7 files changed, 137 insertions(+), 24 deletions(-) create mode 100644 docker/fedora/deny-unallowed-file-resolution.xml create mode 100644 spec/integration/fedora_read_spec.rb diff --git a/docker/fedora/Dockerfile b/docker/fedora/Dockerfile index 0ba564d12..6cc3093b8 100644 --- a/docker/fedora/Dockerfile +++ b/docker/fedora/Dockerfile @@ -17,6 +17,7 @@ COPY ./install.properties /opt/install.properties COPY ./setup-and-start.sh /opt/setup-and-start.sh COPY ./fedora.delegating-external.fcfg /opt/fedora.delegating-external.fcfg COPY ./permit-all-s3-resolution.xml /opt/permit-all-s3-resolution.xml +COPY ./deny-unallowed-file-resolution.xml /opt/deny-unallowed-file-resolution.xml RUN curl -L https://github.com/fcrepo3/fcrepo/releases/download/v3.8.1/fcrepo-installer-3.8.1.jar -o /opt/fcrepo-installer.jar diff --git a/docker/fedora/deny-unallowed-file-resolution.xml b/docker/fedora/deny-unallowed-file-resolution.xml new file mode 100644 index 000000000..5e2a574ef --- /dev/null +++ b/docker/fedora/deny-unallowed-file-resolution.xml @@ -0,0 +1,42 @@ + + + deny any file datastream resolution if not in FEDORA_HOME/demo/succeed + + + + + + + + ^file:/.*$ + + + + + + + + urn:fedora:names:fedora:2.1:action:id-retrieveFile + + + + + + + + + ^file:/opt/fixtures/.*$ + s + + + + + + + + diff --git a/docker/fedora/setup-and-start.sh b/docker/fedora/setup-and-start.sh index 963c30335..eeadfd01b 100644 --- a/docker/fedora/setup-and-start.sh +++ b/docker/fedora/setup-and-start.sh @@ -5,27 +5,54 @@ if [ ! -f /opt/fedora/tomcat/bin/catalina.sh ]; then java -jar /opt/fcrepo-installer.jar /opt/install.properties echo 'Done running installer jar...' -fi -echo "Manually unpacking WAR to override libraries" -mkdir -p /opt/fedora/webapp-tmp/fedora -mv /opt/fedora/tomcat/webapps/fedora.war /opt/fedora/webapp-tmp/fedora/ -cd /opt/fedora/webapp-tmp/fedora -jar -xvf fedora.war -cd /opt -mv /opt/fedora/webapp-tmp/fedora /opt/fedora/tomcat/webapps/ - -rm /opt/fedora/tomcat/webapps/fedora/WEB-INF/lib/httpclient-4*.jar -rm /opt/fedora/tomcat/webapps/fedora/WEB-INF/lib/httpcore-4*.jar -rm /opt/fedora/tomcat/webapps/fedora/WEB-INF/lib/httpclient-4*.jar -cp /opt/jars/apache-http/*.jar /opt/fedora/tomcat/webapps/fedora/WEB-INF/lib/ -rm /opt/fedora/tomcat/webapps/fedora/WEB-INF/lib/s3-url-protocol-*.jar -cp /opt/jars/cul/s3-url-protocol-*.jar /opt/fedora/tomcat/webapps/fedora/WEB-INF/lib/ -cp /opt/jars/awssdk/*.jar /opt/fedora/tomcat/webapps/fedora/WEB-INF/lib/ -rm /opt/fedora/tomcat/webapps/fedora/WEB-INF/lib/fcrepo3-s3-server-*.jar -cp /opt/jars/cul/fcrepo3-s3-server-*.jar /opt/fedora/tomcat/webapps/fedora/WEB-INF/lib/ -echo "Done overriding Fedora 3 libraries; setting new FCFG config" -cp /opt/fedora.delegating-external.fcfg /opt/fedora/server/config/fedora.fcfg -cp /opt/permit-all-s3-resolution.xml /opt/fedora/data/fedora-xacml-policies/repository-policies/default/permit-all-s3-resolution.xml + echo "Manually unpacking WAR to override libraries" + mkdir -p /opt/fedora/webapp-tmp/fedora + mv /opt/fedora/tomcat/webapps/fedora.war /opt/fedora/webapp-tmp/fedora/ + cd /opt/fedora/webapp-tmp/fedora + jar -xvf fedora.war + cd /opt + mv /opt/fedora/webapp-tmp/fedora /opt/fedora/tomcat/webapps/ + + # # Temporarily switch Fedora port 8080 to 8081 so that the CI task process + # # monitoring Fedora startup doesn't think that Fedora is ready yet. + sed -i.bak 's/port="8080"/port="8081"/' /opt/fedora/tomcat/conf/server.xml + + # # Start Fedora up for the first time (which sets up various files and directories) + /opt/fedora/tomcat/bin/catalina.sh start + + # # Give Fedora some time to start up (and create various first-time startup files) + sleep 10 + + # Stop Fedora so that we can apply some overrides + /opt/fedora/tomcat/bin/catalina.sh stop + + # Give Fedora some time to stop + sleep 10 + + # Revert server.xml change so that Fedora will run on port 8080 the next time we start it up. + rm /opt/fedora/tomcat/conf/server.xml + mv /opt/fedora/tomcat/conf/server.xml.bak /opt/fedora/tomcat/conf/server.xml + + echo "Overriding Fedora 3 libraries" + rm /opt/fedora/tomcat/webapps/fedora/WEB-INF/lib/httpclient-4*.jar + rm /opt/fedora/tomcat/webapps/fedora/WEB-INF/lib/httpcore-4*.jar + rm /opt/fedora/tomcat/webapps/fedora/WEB-INF/lib/httpclient-4*.jar + cp /opt/jars/apache-http/*.jar /opt/fedora/tomcat/webapps/fedora/WEB-INF/lib/ + rm /opt/fedora/tomcat/webapps/fedora/WEB-INF/lib/s3-url-protocol-*.jar + cp /opt/jars/cul/s3-url-protocol-*.jar /opt/fedora/tomcat/webapps/fedora/WEB-INF/lib/ + cp /opt/jars/awssdk/*.jar /opt/fedora/tomcat/webapps/fedora/WEB-INF/lib/ + rm /opt/fedora/tomcat/webapps/fedora/WEB-INF/lib/fcrepo3-s3-server-*.jar + cp /opt/jars/cul/fcrepo3-s3-server-*.jar /opt/fedora/tomcat/webapps/fedora/WEB-INF/lib/ + echo "Done overriding Fedora 3 libraries; setting new FCFG config" + cp /opt/fedora.delegating-external.fcfg /opt/fedora/server/config/fedora.fcfg + + # NOTE: The /opt/fedora/data/fedora-xacml-policies/repository-policies/ directory and the default content + # inside of it doesn't exist immediately after Fedora installation. This content is created only after + # Fedora starts up for the first time. + cp /opt/permit-all-s3-resolution.xml /opt/fedora/data/fedora-xacml-policies/repository-policies/default/permit-all-s3-resolution.xml + cp /opt/deny-unallowed-file-resolution.xml /opt/fedora/data/fedora-xacml-policies/repository-policies/default/deny-unallowed-file-resolution.xml +fi +# Start Fedora in the foreground /opt/fedora/tomcat/bin/catalina.sh run diff --git a/docker/templates/docker-compose.test.yml b/docker/templates/docker-compose.test.yml index be3e03fdb..91431c4e7 100644 --- a/docker/templates/docker-compose.test.yml +++ b/docker/templates/docker-compose.test.yml @@ -32,6 +32,9 @@ services: - '9080:8080' volumes: - fedora-install-dir:/opt/fedora + - type: bind + source: ../spec/fixtures + target: /opt/fixtures - type: bind source: ./fedora/apache-http target: /opt/jars/apache-http diff --git a/lib/tasks/hyacinth/docker.rake b/lib/tasks/hyacinth/docker.rake index 91e5c81bd..a8bf99d83 100644 --- a/lib/tasks/hyacinth/docker.rake +++ b/lib/tasks/hyacinth/docker.rake @@ -35,7 +35,7 @@ namespace :hyacinth do expected_port = docker_compose_config['services']['fedora']['ports'][0].split(':')[0] url_to_check = "http://localhost:#{expected_port}/fedora/describe" puts "Waiting for Fedora to become available (at #{url_to_check})..." - Timeout.timeout(20, Timeout::Error, 'Timed out during Fedora startup check.') do + Timeout.timeout(60, Timeout::Error, 'Timed out during Fedora startup check.') do loop do begin sleep 0.25 diff --git a/spec/features/digital_object_editor_ui_spec.rb b/spec/features/digital_object_editor_ui_spec.rb index 4285910bb..62c957cc5 100644 --- a/spec/features/digital_object_editor_ui_spec.rb +++ b/spec/features/digital_object_editor_ui_spec.rb @@ -1,7 +1,7 @@ require 'rails_helper' describe "Digital Object Editor UI" do - + before(:each) do feature_spec_sign_in_admin_user wait_for_ajax @@ -9,6 +9,6 @@ it "can create a new Digital Object", :js => true do expect(page).to have_content 'New Digital Object' - + end end diff --git a/spec/integration/fedora_read_spec.rb b/spec/integration/fedora_read_spec.rb new file mode 100644 index 000000000..ac243aaf3 --- /dev/null +++ b/spec/integration/fedora_read_spec.rb @@ -0,0 +1,40 @@ +require 'rails_helper' + +describe "Fedora content ds read tests" do + describe "creating an Asset and attempting to download the bytes directly from Fedora" do + let(:pid) { 'sample:123' } + let(:docker_mounted_fixture_file_location) { '/opt/fixtures/files/lincoln.jpg' } + + it "works" do + generic_resource = GenericResource.new(pid: pid) + content_ds = generic_resource.create_datastream( + ActiveFedora::Datastream, + 'content', + controlGroup: 'E', + mimeType: BestType.mime_type.for_file_name(docker_mounted_fixture_file_location), + dsLabel: File.basename(docker_mounted_fixture_file_location), + versionable: true + ) + content_ds.dsLocation = "file://#{docker_mounted_fixture_file_location}" + generic_resource.add_datastream(content_ds) + + generic_resource.save + + expect(generic_resource.datastreams['content'].dsLocation).to eq("file://#{docker_mounted_fixture_file_location}") + expect(generic_resource.datastreams['content'].content.length).to be_positive + end + + # Uncomment this "test" when debugging Fedora errors: + # it "reads the fedora log to find out what went wrong", focus: true do + # puts 'reading fedora log now...' + # sleep 20 + # puts `docker container list` + # fedora_container_id = `docker container list | grep fedora | awk '{print $1}'`.strip + # puts "fedora_container_id: #{fedora_container_id}" + # puts `docker exec #{fedora_container_id} ls -la /opt/fedora/server/logs/fedora.log` + # fedora_log_content = `docker exec #{fedora_container_id} cat /opt/fedora/server/logs/fedora.log` + # puts "fedora_log_content: #{fedora_log_content}" + # expect(fedora_log_content).to eq('') + # end + end +end