Commit 83e6d528 authored by Roque Porchetto's avatar Roque Porchetto

erp5_wendelin_telecom_ingestion: new windows ebulk tool and handling of ingestions

- tool new name 'ebulk': both windows and unix scripts updated
- handling of interrupted split ingestions (check reference and delete old pending ingestions)
parent 89b7cf0e
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
</item> </item>
<item> <item>
<key> <string>_EtagSupport__etag</string> </key> <key> <string>_EtagSupport__etag</string> </key>
<value> <string>ts29496012.5</string> </value> <value> <string>ts30096004.06</string> </value>
</item> </item>
<item> <item>
<key> <string>_Modify_portal_content_Permission</string> </key> <key> <string>_Modify_portal_content_Permission</string> </key>
...@@ -74,7 +74,7 @@ ...@@ -74,7 +74,7 @@
</item> </item>
<item> <item>
<key> <string>filename</string> </key> <key> <string>filename</string> </key>
<value> <string>download_tool.zip</string> </value> <value> <string>ebulk_v2.0.zip</string> </value>
</item> </item>
<item> <item>
<key> <string>id</string> </key> <key> <string>id</string> </key>
...@@ -92,7 +92,7 @@ ...@@ -92,7 +92,7 @@
</item> </item>
<item> <item>
<key> <string>size</string> </key> <key> <string>size</string> </key>
<value> <int>18069</int> </value> <value> <int>18091</int> </value>
</item> </item>
<item> <item>
<key> <string>title</string> </key> <key> <string>title</string> </key>
...@@ -212,7 +212,7 @@ ...@@ -212,7 +212,7 @@
</item> </item>
<item> <item>
<key> <string>serial</string> </key> <key> <string>serial</string> </key>
<value> <string>968.22405.18950.11076</string> </value> <value> <string>968.32513.26976.42410</string> </value>
</item> </item>
<item> <item>
<key> <string>state</string> </key> <key> <string>state</string> </key>
...@@ -230,7 +230,7 @@ ...@@ -230,7 +230,7 @@
</tuple> </tuple>
<state> <state>
<tuple> <tuple>
<float>1529496012.51</float> <float>1530096004.06</float>
<string>UTC</string> <string>UTC</string>
</tuple> </tuple>
</state> </state>
...@@ -299,322 +299,323 @@ ...@@ -299,322 +299,323 @@
<pickle> <pickle>
<global name="PersistentString" module="Products.ERP5Type.BTreeData"/> <global name="PersistentString" module="Products.ERP5Type.BTreeData"/>
</pickle> </pickle>
<pickle> <string encoding="base64">UEsDBBQDAAAAAC5v1EwAAAAAAAAAAAAAAAANAAAAZGF0YXNldF90b29sL1BLAwQUAwAACACVa9NM <pickle> <string encoding="base64">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 vnXL9UWth+a4OCwIeFm6VB6Q/SOi6kkuiNSG03BfRI39r6lIp7+iIlq421CrqX9fQzVsv08JNFSp
VEJDXim1AP+1THT2/8jkaDg5Gb64cLLYG9bj8ZOT46EVjztUmmMXkt21CS0NGqTak0bL4iJKtQwW wfP516Sg0/9ACieD8WxwfOmEsDelJ6Ons9OBFYg7HOrjE+Ld9Qct8TU2zYmhZX4Zl6rVF96vvm30
3q+5pYT+O6IL18IBD0WlDYECjrqxA5sptLc8Ry77WzKtN1Kl9O6KnJOtffc78bxkJqNPT4a5A6hT /HdIF6eFgxryUhtCA1yXRg5eptDe1lw72d+Cab2RKrHvtp452dp3v7/OC2ZS+vT0zx0yrQpF29AT
g2npPSWZeI3SX6lkiYoKSqXAflOIwHPzbQmDOXTENmzo9fxp7yLSlcN/hRsUKeZchHvN+ToovZ6L UoTXIf0VShaoqKBECuzWhQi8MN+WKZhDR2XNf6fjT20Xka4O/qu3QZFgxkXFQ88F/ToonY6L9wVN
90Wb2k3tV/rUau27jWos/0indo3Slb0lo4JOLhOWO3MQtILuV/vmo5lsXipc8XPofLYlk8Hf6WwD zcb1Mzw16vouUbXlb2FqR5Qu7W0XFbQyGbPMmYOgFbS/ypuPZtJ5oXDFL6D12bZLBn+G2RqAX6K2
wG+1tolyoLfU2h94Ano+AVBLAwQUAwAAAAAub9RMAAAAAAAAAAAAAAAAFAAAAGRhdGFzZXRfdG9v jnKAW6L2B56Ank9QSwMEFAMAAAAAWGTbTAAAAAAAAAAAAAAAABIAAABlYnVsa190b29sL2NvbmZp
bC9jb25maWcvUEsDBBQDAAAIAJVr00wxPrAHwAAAAPUAAAAwAAAAZGF0YXNldF90b29sL2NvbmZp Zy9QSwMEFAMAAAgAUnLaTLg+wPWgAAAA6gAAAC4AAABlYnVsa190b29sL2NvbmZpZy9kb3dubG9h
Zy9kb3dubG9hZC1jb25maWdfdGVtcGxhdGUueW1sRc7LqsIwEAbgfZ8iiwPuWo54weyKFRRFwQsu ZC1jb25maWdfdGVtcGxhdGUueW1sfc69CoMwFAXg3afI0Bfo0CWbVKGlouAPHS/BXDFoY0hu0Pbp
QzRTEtQ0ZCZWfXqnIrib+WZ++OEBZykyIW76ochG0Aal+O/AedUkCokUabx81HnJF3oGkKIFb+Dq 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 IiPewpiLF9ZeJaz8jcNccixdFtTKF95mHpoQr/YTUEsDBBQDAAAAAGJk20wAAAAAAAAAAAAAAAAo
AwQUAwAAAAAub9RMAAAAAAAAAAAAAAAAKgAAAGRhdGFzZXRfdG9vbC9lbWJ1bGstd2VuZGVsaW4t AAAAZWJ1bGtfdG9vbC9lbWJ1bGstd2VuZGVsaW4tZGF0YXNldC10b29sL1BLAwQUAwAACABgeL5K
ZGF0YXNldC10b29sL1BLAwQUAwAACABgeL5K8SL7BCYAAAAnAAAAMQAAAGRhdGFzZXRfdG9vbC9l 8SL7BCYAAAAnAAAALwAAAGVidWxrX3Rvb2wvZW1idWxrLXdlbmRlbGluLWRhdGFzZXQtdG9vbC9H
bWJ1bGstd2VuZGVsaW4tZGF0YXNldC10b29sL0dlbWZpbGUrzi8tSk5VUM8oKSkottLXLypNqkxP ZW1maWxlK84vLUpOVVDPKCkpKLbS1y8qTapMT80t1ssvStdX5wIxC1KTuQBQSwMEFAMAAAgAYHi+
zS3Wyy9K11fnAjELUpO5AFBLAwQUAwAACABgeL5KYZXLYksCAAANBAAANQAAAGRhdGFzZXRfdG9v SmGVy2JLAgAADQQAADMAAABlYnVsa190b29sL2VtYnVsay13ZW5kZWxpbi1kYXRhc2V0LXRvb2wv
bC9lbWJ1bGstd2VuZGVsaW4tZGF0YXNldC10b29sL0xJQ0VOU0UudHh0VFFbasQwDPz3KcR+tRDo TElDRU5TRS50eHRUUVtqxDAM/PcpxH61EOh/b1BoodC9gGMrsYpjBUtu2NvX8j5gvwye0Yxm5L4+
f29QaKHQvYBjK7GKYwVLbtjb1/I+YL8MntGMZuS+Ps7wSQGLoHPfWDcSIS5AAgkrzhdYqy+KcYKl zvBJAYugc99YNxIhLkACCSvOF1irL4pxgqUiAi8Qkq8rTqAMvlxgxyp9gGf1VKiszkPg/WJMTSQg
IgIvEJKvK06gDL5cYMcqfYBn9VSorM5D4P1iTE0kILzo4St2cgQvwoF814PIoW1Y1Kv5LZRR4EUT vOjhK3ZyBC/CgXzXg8ihbVjUq/ktlFHgRRO6089t4vQ6TCL6DFSgY3CH4CBN3BQqilYKpjF1Usgt
utPPbeL0Okwi+gxUoGNwh+AgTdwUKopWCqYxdVLILdoOdzjTRjcHG6+0JhUTbYLT2HOCjSMt9uKI 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 2ZeqTD2eWq9cdnGZuvSrT/3FX69Kw3+PGxCPUEsDBBQDAAAIAGB4vkrhAf1hMQAAADIAAAAwAAAA
GxCPUEsDBBQDAAAIAGB4vkrhAf1hMQAAADIAAAAyAAAAZGF0YXNldF90b29sL2VtYnVsay13ZW5k ZWJ1bGtfdG9vbC9lbWJ1bGstd2VuZGVsaW4tZGF0YXNldC10b29sL1Jha2VmaWxlK0otLM0sSlVQ
ZWxpbi1kYXRhc2V0LXRvb2wvUmFrZWZpbGUrSi0szSxKVVBKKs1LyUkt0k9PzY0vSSzOLlbi4gLR SirNS8lJLdJPT82NL0kszi5W4uIC0QopqWmJpTklVgpWSaWZOSlcAFBLAwQUAwAACAASd9xKimUi
CimpaYmlOSVWClZJpZk5KVwAUEsDBBQDAAAIABJ33EqKZSL5AAIAAA0EAABOAAAAZGF0YXNldF90 +QACAAANBAAATAAAAGVidWxrX3Rvb2wvZW1idWxrLXdlbmRlbGluLWRhdGFzZXQtdG9vbC9lbWJ1
b29sL2VtYnVsay13ZW5kZWxpbi1kYXRhc2V0LXRvb2wvZW1idWxrLXdlbmRlbGluLWRhdGFzZXQt bGstd2VuZGVsaW4tZGF0YXNldC10b29sLmdlbXNwZWONkuFq2zAUhf/nKS4eI8m2yMmPjRFIGSyh
dG9vbC5nZW1zcGVjjZLhatswFIX/5ykuHiPJtsjJj40RSBksoQTWpKTdoGSbq9jXtlZZUiU5Iazb BNakpN2gZJur2Ne2VllSJTkhrNuzT7Jnu6Wl1GAJdO/57tFBvVMsptMLhTFLWUwtk4IIPEAi4c64
s0+yZ7ulpdRgCXTv+e7RQb1TLKbTC4UxS1lMLZOCCDxAIuHOuNO7HoDfiaAFQvvNIMBiV/Kb0QFF 07segN+JoAVC+80gwGJX8pvRAUWCnIlRQi01aEdWSh40qj1q45CdakwmZNyWaWlzqU1b3gYbeVsi
gpyJUUItNWhHVkoeNKo9auOQnWpMJmTclmlpc6lNW94GG3lbIpxLHedorQx+NK2mLAqqjx1pKVRp nEsd52itDH40raYsCqqPHWkpVGlDWVq3geJlxgSkUgMTGRp/jzCRB8ElTUCm8N+dASvDVMsCGt+t
Q1lat4HiZcYEpFIDExkaf48wkQfBJU1ApvDfnQErw1TLAhrfrZcETayZ8sp6wBcnNaAxltrtlShl lwRNrJnyynrAFyc1oDGW2u2VKGWp+zkacMO4jCkHY6WmGQIVCRh0i82xcFPaAbBnFHJrFYHHxMdd
qfs5GnDDuIwpB2OlphkCFQkYdIvNsXBT2gGwZxRyaxWBx8THXR5UQbEi1VP4kbQ+saCMA9zLTPvM HlRBsSLVU/iRtD6xoIwD3MtM+8xUE9mnzDeQWBZdeJzFKAyaTnO2vKzKr+ByPV+DQevGMTOt+3NZ
VBPZp8w3kFgWXXicxSgMmk5ztrysyq/gcj1fg0HrxjEzrftzWaCiGbZhe2dmGoYZs3m58/Dw4dTw oKIZtmF7Z2Yahhmzebnz8PDh1PD559AYqcPrzF87IHAzqs6viVGc2UHwXQRDeAtzprdBzKkxito8
+efQGKnD68xfOyBwM6rOr4lRnNlB8F0EQ3gLc6a3QcypMYraPHxDflHd3cmisVHLm93jk0yjGrzW fEN+Ud3dyaKxUcub3eOTTKMavNa/fw58U/WOh+GfYaPUeFsyjZGnmioNznYO7OOon2WSRAkqfxUR
v38OfFP1jofhn2Gj1HhbMo2Rp5oqDc52DuzjqJ9lkkQJKn8VER+hf7X+uolOF2fRfHG+WM0Xq89X H6F/tf66iU4XZ9F8cb5YzRerz1f9d7Dt/z2BJ0rRt8XmYrle9SurHW+PXKoChX3ArnOrcCczGJOP
/Xew7f89gSdK0bfF5mK5XvUrqx1vj1yqAoV9wK5zq3AnMxiTj2Ty/mXKXSkSjrqRTshkTD68TKrp ZPL+ZcpdKRKOupFOyGRMPrxMqukNNjqnGjuVq/X+AVBLAwQUAwAAAABYZNtMAAAAAAAAAAAAAAAA
DTY6pxo7lav1/gFQSwMEFAMAAAAALm/UTAAAAAAAAAAAAAAAAC4AAABkYXRhc2V0X3Rvb2wvZW1i LAAAAGVidWxrX3Rvb2wvZW1idWxrLXdlbmRlbGluLWRhdGFzZXQtdG9vbC9saWIvUEsDBBQDAAAA
dWxrLXdlbmRlbGluLWRhdGFzZXQtdG9vbC9saWIvUEsDBBQDAAAAAC5v1EwAAAAAAAAAAAAAAAA1 AH1k20wAAAAAAAAAAAAAAAAzAAAAZWJ1bGtfdG9vbC9lbWJ1bGstd2VuZGVsaW4tZGF0YXNldC10
AAAAZGF0YXNldF90b29sL2VtYnVsay13ZW5kZWxpbi1kYXRhc2V0LXRvb2wvbGliL2VtYnVsay9Q b29sL2xpYi9lbWJ1bGsvUEsDBBQDAAAIAAVr2kw9wP/1yQIAAK4GAABAAAAAZWJ1bGtfdG9vbC9l
SwMEFAMAAAgAQFbSTKsxx7i9AgAAnAYAAEIAAABkYXRhc2V0X3Rvb2wvZW1idWxrLXdlbmRlbGlu bWJ1bGstd2VuZGVsaW4tZGF0YXNldC10b29sL2xpYi9lbWJ1bGsvZmlsZWxvZ2dlci5yYp1UUW/a
LWRhdGFzZXQtdG9vbC9saWIvZW1idWxrL2ZpbGVsb2dnZXIucmKdVFFv2jAQfu+vOBkxQIJU29uQ MBB+51ecjBig0VTb25Dajg3oKpUyAdM0rRPykgtYJHbmOGsZzX/f2UlKSVdpbR6S+O783ffdna3x
uo4N6CqVMgHTNE0T8pILWCR2ZjtrGc1/39kJINJVWpuHJL47f/d9d2dr/JULjdAyQq4StEq2zs4a VyY0QjsVchWhUbLdaDTBj3iagsZEY4rSkA84hCJCiNRqhbpRBFyq1YRLbg0AQvpRFiDMK6QGGS+u
ECbcGNCYaTQoLfmAQywShEStVqjPyoAbtZpwyZ0BQMgwySOE+R7pjIzXt+MpXABzX0br0Ww2nTmD xlM4AWa/jNaj2Ww6swb3Yy1fB7Mra7Dfi6tza7qcni+HFy6M0qXHzCIFGFIKYQSPxB/sdMkEINUN
/3GWr4PZrTO47/XtlTPdTK+Ww2sfRunMOXNIEcaUQljBE/EH2x0yAUh1R1ELkWJAv4GxOra0aLNm RS1EjB79eqnRoaFFh7WCo1Z81PrGijgRUqiBMSnwAtLrG6W3Z50yUREDMBTaizfkrxg4O8rAfd9b
1GumveY3VsaJmEItjElBEJHe0Cq9vWxXicoYgKHQQboh/56Bt6OM/Pe90y95io5XY+fyWbU0RUAc /ZLHaHk1dzafUcs094gjKyISbtaFtwTIm7v7bTlrOLBKTIpmXLo6VOdQ3HafRikC8mUdDwpNKkHZ
WRmRcbsuvRVA0dgdthUU5MEqMQbtuHK1qc6xuO88jVIGFMs6HpSaVIay7Td2ocVbHdjBg4t7gNi5 cRt70ObtLuzgzsbdQWjdSWZSYEfPfBi8BnatryWD/JC6kKHqxJim1PoeJFpIczIeXM5HhQIqSM3b
s9waYL1nPgyKU8ZCxqqdojHU8S5kWkh7MR7czEclcapDzdsFu83wwjW/cwp1x7V8CZSbkhoUaq30 A7NN8MROQfcQ6oZr+RIoOy41KNRa6ZdguVmsgfGfSptyymz53I/TzT7Pph9H8zkMPkxni9GQ7YOg
S7D8CNbA+E+lbTVcrmr+x+tmn2fTj6P5HAYfprPFaMiOQVD3QR/GSkOqNBKq5dSDyKPolFuhJPFI 7oM+jJWGWGkkVMOpGYFD0TE3QkniESFPEai9qMEoMGt3xorD1m7uXFPzNjskgrfoExGtfNLjbUQU
kBsE6ipqsArs2h+t8oy1Gjvfy6LFTongPYZERKuQ9AQbkSTwtgv7dSYieHce4e9zmZPnzbtXr1lN wbseVOtEBHB6HODvY5mR5+3pqzesJo9STDMzDSdI3LYjVznHAaWPTlBZTrYgQgE3HPx1JjeQ0uED
HqWY5nYaT5C4bUe+cp4DyhC9oKqcbEGEIm45hOtcbsDQmQNhiKqChOsVBj6ty1vWjASSPGjsDnBF kRJVBRHXK/RcWpu3qBkJJHnQ3N3D5R6rurGYfRl1H5bSqe8RNvobp32NUQK0fzYaDCcjLw5sUfws
wPbdWMy+uGYcS+nVdwkbw43XvsYkA9o/Gw2Gk1GQRq4oYW6sSimzDzkSqQPXJQ605tt9z41fnXS+ NSqmzC5kT6QOXJc40Jpvq56nbnXQ+YLKgd9D7q/t8Smtd0+OTRfyRwn/OX214Xe3URlHrZPBUoVn
pHLiD5CHa3dqKuvDk2PTgeJRwn9OX234/SVUxVHrZLRU8WXbJy/d8Ih6nbR/NNpcy5ObScRlIC2O HZe8cMMj6nXS7tFoMi0PrigRFoG02I/k9+bObst/UE9KvJxV2/7vFoXWp35r0m/NWdfdeeVuo7f3
I/m9sXPbih/UkwqvYPtt/3d5QvNTvznpN+es46+6arfV28MVWAD0AKpU0D/kevbt5GGPpXWvv1BL d2EOcARQpoL+w1zVNfLM+8rh72tsX38BUEsDBBQDAAAAAINk20wAAAAAAAAAAAAAAAA5AAAAZWJ1
AwQUAwAAAAA6b9RMAAAAAAAAAAAAAAAAOwAAAGRhdGFzZXRfdG9vbC9lbWJ1bGstd2VuZGVsaW4t bGtfdG9vbC9lbWJ1bGstd2VuZGVsaW4tZGF0YXNldC10b29sL2xpYi9lbWJ1bGsvaW5wdXQvUEsD
ZGF0YXNldC10b29sL2xpYi9lbWJ1bGsvaW5wdXQvUEsDBBQDAAAIAK1u1EzxjX4VUAgAAJwZAABB BBQDAAAIAJBh20xkghelXQgAANwZAAA/AAAAZWJ1bGtfdG9vbC9lbWJ1bGstd2VuZGVsaW4tZGF0
AAAAZGF0YXNldF90b29sL2VtYnVsay13ZW5kZWxpbi1kYXRhc2V0LXRvb2wvbGliL2VtYnVsay9p YXNldC10b29sL2xpYi9lbWJ1bGsvaW5wdXQvZmlmLnJirVlZj9MwEH5uf8UQEG2hBJbrAVHu5RCn
bnB1dC9maWYucmKtGdmO0zDwuf2KISDaQgk3D4hyL4c4xfEAq6pyk0kbSJxiO0CB/jszdpxsNqEs OB5gVVVuMmkDiVMch6Xs9r8zY8f1ZhPKIhGJbWPP5ZlvDheF36tU4UxhJnT6A2EQhleTNMOsWCxQ
EpG2STyn53ZW4ZcyVbhQmAmTfkUYheHFJM0wK1YrVKPhMC/iMkM4yJdl9nkIUL0/lZvSDOkdIMqE Dfr9vIirDGE/n1fZtz5A/f5Crirdp3eAKBNlCU/TJOU1uGv33mXVIpWGAMC+hAoXaalRzQzlMEjS
1vAoTVJeg1sO9jorV6m0CADuJVS4SrVBtbCY4yBJk2AKGrNkMqwwD149ghkEdAuqlQdP3r98tnj7 JBhDiVky6teU+2+fwgQC+gjqlcfPP715Ofvw4ss+bexdsw+c37uWz2uK1/vPHvq9evHD4+f7r3n5
9OMBAa5fchecvn4pX1YYLw4e3yPYZQeqFt8+eHLwgpcPh4MB/AykyDGY3Q50udlkKSoSHJjtxq0Z oN/rwVEgRY7B5F5QVqtVlqIixYFer+yaVqlcBJtxkzQWWsxK1GcgZZedgQx/apRlWsizao+Wlfx2
lcpVsJtCGzcWRiw0mpPgstFOgoffDUqdFrIXuUd+tC7l5xMgY5H0YQ2hfc29pWNMrOnJK3nxFd/g FsFF0kXVh+YzdW6OMTF+p5DkxQ98jysUGuOndIxyuBJ6WY76PT4UKyjJi2YtzMUKjuCYX47NUliS
BoXB+BHtQ483wqz1ZDjgXbEATYa0a2EuNvATfvHLL7sUarInOfNiMDm8cHkOu+FAVbwWR8nr55Ck MymSV4PRwZW9KWz6PVXLmp1k334PSStGmqX8PD6xHBWV1MOfI7gHe7CBsJLp934vTUAWGtoiQ8xX
YmSYy/dfR5ajopRm/H0Ct+Ey7CAsZfplOEgTkIWBLssQ843Z3hkOACiYNN/vuqgNvwklx8G7NSqE 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 JbAPWEiHGc/nIXapB7OXsMT9NdLVa8dNBf7b5uqjHSTUZHyElTxKHTZ/GqsFVSpHX2KoLkTvMWCs
F+7uxH/ZSLFjXefgRC9P7Jm0cbRTLwa3g4t1zfXGHmwqhV2Ja57uLu03Kpv7b7/13w9QSwMEFAMA o2Pes1crRRyXQuh7vVLo+KxEoVEJH29T2wGhKqI2NPviIDzm8UcleAxERTCRLJg8e/X4YMoeoxZc
AAAALm/UTAAAAAAAAAAAAAAAADwAAABkYXRhc2V0X3Rvb2wvZW1idWxrLXdlbmRlbGluLWRhdGFz DbAEFE8zghzsbpZ0mYKCqU0xLQlTBbUaKLy6ZfEX7n4tdIWVz0GY4JDfi5cpJLsagfZvs+HpbcGJ
ZXQtdG9vbC9saWIvZW1idWxrL291dHB1dC9QSwMEFAMAAAgAzYPOTGxshE2rAgAAJgYAAEIAAABk tRg/1jjHfujXH2ZN2jk6qJeCO8GlpuV6YJdtaoMtxLVXdw/HW8hm/5tv/fcTUEsDBBQDAAAAAGJk
YXRhc2V0X3Rvb2wvZW1idWxrLXdlbmRlbGluLWRhdGFzZXQtdG9vbC9saWIvZW1idWxrL291dHB1 20wAAAAAAAAAAAAAAAA6AAAAZWJ1bGtfdG9vbC9lbWJ1bGstd2VuZGVsaW4tZGF0YXNldC10b29s
dC9maWYucmKFU9uK2zAQfY6/YvBD49CgbUvpw9Ltje5Coe2W0j4twSjSKBGRJVeS90Kz/96x5TgJ L2xpYi9lbWJ1bGsvb3V0cHV0L1BLAwQUAwAACACOctpM0befDqoCAAAlBgAAQAAAAGVidWxrX3Rv
8VKBjTRzdObMjMbjn0Z7hOmSB3zzepr1htKj4VHfkoexM6UNGrdaoZ9mWeVkYxAuq2VjNhlAf75u b2wvZW1idWxrLXdlbmRlbGluLWRhdGFzZXQtdG9vbC9saWIvZW1idWxrL291dHB1dC9maWYucmKF
Yt3ELANawvAQ4Eor1xnhbe/9YZqVthl0Kx2Yx5UOEX2ZsEWutMrnENCoWdZDJarOwKLnNnARtbOF U9uK2zAQfV5/xeCHxqZB25bSh6Xpje5Coe2W0j4twSjSKBGRJVeS90Kz/96x5TgJyVKBjaQ5OnNm
cFbpFSHFGis+B+EaG+fwjOzROzPLJh+SZriAr271jVtOB6ZtiNwKLGYZ9CvysCHQX8iThrLmcZ3D pOPxT6s9wmTBA755PcmGjcqj4VHfUoSxc6UNGrdcop9kWe1kaxAu60Vr1hnAsL5uY9PGLAMawvAQ
xTtIMVjNPa+KI+8czkP02pIAOCd9vDGxvWG1mcHjJJtoRQUwyKT2KKLzD++LNs7N9IBluiCVaAL2 4Eor12/C2yH6w7RLbTPoR1owj0sdIvoqYYtcaZVPIaBRZTZAJap+g0XPbeAiamcL4azSS0KKFdZ8
UiYAvWaG3jtf5KluMJCAdREUZSoZSahJQLz49fP3JfHs7/Kl87Foqa08SpK6WpMrULIPGo3sFO3r CsK1Nk7hGe1H70yZnX1ImmEGX93yG7ecFkzbELkVWJQZDCPysCbQX8iThqrhcZXD7B2kHKzhntfF
YPE+linlUmql2po8Dl6PsfH2BNT7KdRht7TVkRpwkCuRdfkfVXHx3yaN0wvjAo67uJRFTSSU/hK7 QXQKFyF6bUkAXJA+3prYnbDalPCYnWlF9RtkUnsU0fmH90WX5mayRzKZk0g0AQclZwCDZIbeO1/k
1zas1syQizVIB1uPwnm5zSYpOYUeKSLpSI6bF4vkkjzyUqwbuyHfp25MmCSIpE3RY18uZgfggLEc qW0wkoB1ERQVKhkpaCh/nP36+fuSeHZn+cL5WHTUVh7UWHlsKBSo1geNRvaKdm2weB+rVHEltVJd
OkaXjsrwfMf/akH7vNzdOMsTg1Ztj0/ezilxikjrs/as2pD9aRBaOeQJF/tsmcdb9AFZaJZFXua7 Sx7HqMfYensEGuKUav+ytNWR+r9XK5H19R80cf7fOzpNL4wLeDrEpSwaIqHyF9g/tnF02wy5WIF0
8xxyNhxmR6hB/XPCEy5PIZJgV6MdUdElreYw5cvpjOZsqwi8hfbP7ryOWOyLPIPdkxuEewyiQbi8 sPEonJeb7CwVp9AjZSQdKXDzYp5CkkdeiVVr1xT71LuESYJImhQD9uW83AMHjNXuxmZw0IbnW/5X
F1i3o9/OGQIMsJOp+Wih24ETovEeJdytKRa0sWhkU+Dj+XmSDNmSi030XGCXKTUyQH7z5fvV9QKu c5rn1fbEeZ4YtOru+OjtHBOnjDQ+a8/qNe0/DUIrxzphtquWebxFH5CFdlHkVb5dTyFn46I8QI3q
KEblPILEyIlUgrbK+Yq3MonfIA+Yyg3RQVwjGLeLn+Zz9BErbXVYj/u66R53CVdVOo6N/NgoD/4T nxOecHlKkQS7Bu0JFX3RagoTvpiUZLONIvAGuj+78zpisWtyCdsnNwr3GESLcHkvsOmc39kMAUbY
vrRJ//b7B1BLAwQUAwAACACDTs9M0deGuaECAACNBgAARwAAAGRhdGFzZXRfdG9vbC9lbWJ1bGst kWs+Wuhn4IRovUcJdyvKBV0ucmxKfOifJ8mQLbhYR88F9pXSRQbIb758v7qewxXlqJ1HkBg5kUrQ
d2VuZGVsaW4tZGF0YXNldC10b29sL2xpYi9lbWJ1bGsvb3V0cHV0L3dlbmRlbGluLnJihZTfb9Mw Vjlf804m8RvkAVO7ITqIKwTjtvmTP08+YkX+CavTsd7dT9jC1bWOpyx/yspj/IgvTdK/+/4BUEsD
EMefl7/ilAeWiCgw2HioKBtCewOBEIiHaYpc59KaOnawz6wT5X8ndpO4VYsWqWr8/d597vwrBn85 BBQDAAAIAMdh20zTzkaPkgIAAHwGAABFAAAAZWJ1bGtfdG9vbC9lbWJ1bGstd2VuZGVsaW4tZGF0
YRDOF8zim8vzZBAqg5KR+N07ZfniAVWNUqiKS4GKzpOk1bWTCLftwsl1AjCMPzvqHCW9AMAlsxZ+ YXNldC10b29sL2xpYi9lbWJ1bGsvb3V0cHV0L3dlbmRlbGluLnJihZRNb9NAEIbP9a8Y+UBtyTIU
DKnwdjC/SLcUKoHw7AalwaWwhKbSISRLx4JpARZlkydDfI1NEEoyTFnGSWiVca0asewj+QpbVgDX Wg4RoZVQbyC4cagia7MeO0vWs2Y/aCvCf8frr41VIyxFid935pnZ3dlo/OmERrjcM4Pvry+jUSg0
TlEBz3qdjJZ5AsNDzK5hDn8mASBF011VzsgU5u9gRyo7ZlibRauAmSUj1DIv9lOdRXOcFuSYUvie SmbFr87J89ePSCVKQQWXAsleRlGjSicR7pu9k8cIYHz/6mzrbNQJAFwyY+D7mAofRvObdLWgCPpn
HZM0AyXkIaBj1j5oUx9DonUIYu4/IFpVncFGbE6xoruPg9kA9BmHyL8HS1YZ7LQhC3N4FCjrzItx eMk11sJY1IXqQ5J4KhhnYFBWaTTGl1j1Qm41I8O4FYoSrqgSdRfJD9iwDLhyZDN41elWK5lGMD6W
VRVuqNpVrGrRNH6FI8AgOaOOggYfVb2/tUIJmjK5wRoVCSbtIfJm3Jhe9q3cxZ26T85u/PpPjh/0 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 bGtfdG9vbC9SRUFETUUubWRQSwECPwMUAwAAAABYZNtMAAAAAAAAAAAAAAAAEgAAAAAAAAAAABCA
YXRhc2V0X3Rvb2wvY29uZmlnL2Rvd25sb2FkLWNvbmZpZ190ZW1wbGF0ZS55bWxQSwECPwMUAwAA /UG4BAAAZWJ1bGtfdG9vbC9jb25maWcvUEsBAj8DFAMAAAgAUnLaTLg+wPWgAAAA6gAAAC4AAAAA
CACVa9NMU+tEHfgAAABdAQAAMQAAAAAAAAAAACCAtIH9BQAAZGF0YXNldF90b29sL2NvbmZpZy9p AAAAAAAggLSB6AQAAGVidWxrX3Rvb2wvY29uZmlnL2Rvd25sb2FkLWNvbmZpZ190ZW1wbGF0ZS55
bmdlc3Rpb24tY29uZmlnX3RlbXBsYXRlLnltbFBLAQI/AxQDAAAIAGeT00wkYbkaxAgAAMkbAAAZ bWxQSwECPwMUAwAACAAFa9pMrDbAKsAAAAAMAQAALwAAAAAAAAAAACCAtIHUBQAAZWJ1bGtfdG9v
AAAAAAAAAAAAIIC0gUQHAABkYXRhc2V0X3Rvb2wvZGF0YXNldC10b29sUEsBAj8DFAMAAAAALm/U bC9jb25maWcvaW5nZXN0aW9uLWNvbmZpZ190ZW1wbGF0ZS55bWxQSwECPwMUAwAACADbhtpMCv+D
TAAAAAAAAAAAAAAAACoAAAAAAAAAAAAQgP1BPxAAAGRhdGFzZXRfdG9vbC9lbWJ1bGstd2VuZGVs VBcJAAAvHAAAEAAAAAAAAAAAACCAtIHhBgAAZWJ1bGtfdG9vbC9lYnVsa1BLAQI/AxQDAAAAAGJk
aW4tZGF0YXNldC10b29sL1BLAQI/AxQDAAAIAGB4vkrxIvsEJgAAACcAAAAxAAAAAAAAAAAAIIC0 20wAAAAAAAAAAAAAAAAoAAAAAAAAAAAAEID9QSYQAABlYnVsa190b29sL2VtYnVsay13ZW5kZWxp
gYcQAABkYXRhc2V0X3Rvb2wvZW1idWxrLXdlbmRlbGluLWRhdGFzZXQtdG9vbC9HZW1maWxlUEsB bi1kYXRhc2V0LXRvb2wvUEsBAj8DFAMAAAgAYHi+SvEi+wQmAAAAJwAAAC8AAAAAAAAAAAAggLSB
Aj8DFAMAAAgAYHi+SmGVy2JLAgAADQQAADUAAAAAAAAAAAAggLSB/BAAAGRhdGFzZXRfdG9vbC9l bBAAAGVidWxrX3Rvb2wvZW1idWxrLXdlbmRlbGluLWRhdGFzZXQtdG9vbC9HZW1maWxlUEsBAj8D
bWJ1bGstd2VuZGVsaW4tZGF0YXNldC10b29sL0xJQ0VOU0UudHh0UEsBAj8DFAMAAAgAV3fcSkQ8 FAMAAAgAYHi+SmGVy2JLAgAADQQAADMAAAAAAAAAAAAggLSB3xAAAGVidWxrX3Rvb2wvZW1idWxr
jMKxAQAAbgcAADMAAAAAAAAAAAAggLSBmhMAAGRhdGFzZXRfdG9vbC9lbWJ1bGstd2VuZGVsaW4t LXdlbmRlbGluLWRhdGFzZXQtdG9vbC9MSUNFTlNFLnR4dFBLAQI/AxQDAAAIAFd33EpEPIzCsQEA
ZGF0YXNldC10b29sL1JFQURNRS5tZFBLAQI/AxQDAAAIAGB4vkrhAf1hMQAAADIAAAAyAAAAAAAA AG4HAAAxAAAAAAAAAAAAIIC0gXsTAABlYnVsa190b29sL2VtYnVsay13ZW5kZWxpbi1kYXRhc2V0
AAAAIIC0gZwVAABkYXRhc2V0X3Rvb2wvZW1idWxrLXdlbmRlbGluLWRhdGFzZXQtdG9vbC9SYWtl LXRvb2wvUkVBRE1FLm1kUEsBAj8DFAMAAAgAYHi+SuEB/WExAAAAMgAAADAAAAAAAAAAAAAggLSB
ZmlsZVBLAQI/AxQDAAAIABJ33EqKZSL5AAIAAA0EAABOAAAAAAAAAAAAIIC0gR0WAABkYXRhc2V0 exUAAGVidWxrX3Rvb2wvZW1idWxrLXdlbmRlbGluLWRhdGFzZXQtdG9vbC9SYWtlZmlsZVBLAQI/
X3Rvb2wvZW1idWxrLXdlbmRlbGluLWRhdGFzZXQtdG9vbC9lbWJ1bGstd2VuZGVsaW4tZGF0YXNl AxQDAAAIABJ33EqKZSL5AAIAAA0EAABMAAAAAAAAAAAAIIC0gfoVAABlYnVsa190b29sL2VtYnVs
dC10b29sLmdlbXNwZWNQSwECPwMUAwAAAAAub9RMAAAAAAAAAAAAAAAALgAAAAAAAAAAABCA/UGJ ay13ZW5kZWxpbi1kYXRhc2V0LXRvb2wvZW1idWxrLXdlbmRlbGluLWRhdGFzZXQtdG9vbC5nZW1z
GAAAZGF0YXNldF90b29sL2VtYnVsay13ZW5kZWxpbi1kYXRhc2V0LXRvb2wvbGliL1BLAQI/AxQD cGVjUEsBAj8DFAMAAAAAWGTbTAAAAAAAAAAAAAAAACwAAAAAAAAAAAAQgP1BZBgAAGVidWxrX3Rv
AAAAAC5v1EwAAAAAAAAAAAAAAAA1AAAAAAAAAAAAEID9QdUYAABkYXRhc2V0X3Rvb2wvZW1idWxr b2wvZW1idWxrLXdlbmRlbGluLWRhdGFzZXQtdG9vbC9saWIvUEsBAj8DFAMAAAAAfWTbTAAAAAAA
LXdlbmRlbGluLWRhdGFzZXQtdG9vbC9saWIvZW1idWxrL1BLAQI/AxQDAAAIAEBW0kyrMce4vQIA AAAAAAAAADMAAAAAAAAAAAAQgP1BrhgAAGVidWxrX3Rvb2wvZW1idWxrLXdlbmRlbGluLWRhdGFz
AJwGAABCAAAAAAAAAAAAIIC0gSgZAABkYXRhc2V0X3Rvb2wvZW1idWxrLXdlbmRlbGluLWRhdGFz ZXQtdG9vbC9saWIvZW1idWxrL1BLAQI/AxQDAAAIAAVr2kw9wP/1yQIAAK4GAABAAAAAAAAAAAAA
ZXQtdG9vbC9saWIvZW1idWxrL2ZpbGVsb2dnZXIucmJQSwECPwMUAwAAAAA6b9RMAAAAAAAAAAAA IIC0gf8YAABlYnVsa190b29sL2VtYnVsay13ZW5kZWxpbi1kYXRhc2V0LXRvb2wvbGliL2VtYnVs
AAAAOwAAAAAAAAAAABCA/UFFHAAAZGF0YXNldF90b29sL2VtYnVsay13ZW5kZWxpbi1kYXRhc2V0 ay9maWxlbG9nZ2VyLnJiUEsBAj8DFAMAAAAAg2TbTAAAAAAAAAAAAAAAADkAAAAAAAAAAAAQgP1B
LXRvb2wvbGliL2VtYnVsay9pbnB1dC9QSwECPwMUAwAACACtbtRM8Y1+FVAIAACcGQAAQQAAAAAA JhwAAGVidWxrX3Rvb2wvZW1idWxrLXdlbmRlbGluLWRhdGFzZXQtdG9vbC9saWIvZW1idWxrL2lu
AAAAACCAtIGeHAAAZGF0YXNldF90b29sL2VtYnVsay13ZW5kZWxpbi1kYXRhc2V0LXRvb2wvbGli cHV0L1BLAQI/AxQDAAAIAJBh20xkghelXQgAANwZAAA/AAAAAAAAAAAAIIC0gX0cAABlYnVsa190
L2VtYnVsay9pbnB1dC9maWYucmJQSwECPwMUAwAACABijtJMCs+0lQoJAACmHAAARgAAAAAAAAAA b29sL2VtYnVsay13ZW5kZWxpbi1kYXRhc2V0LXRvb2wvbGliL2VtYnVsay9pbnB1dC9maWYucmJQ
ACCAtIFNJQAAZGF0YXNldF90b29sL2VtYnVsay13ZW5kZWxpbi1kYXRhc2V0LXRvb2wvbGliL2Vt SwECPwMUAwAACACFdtpMIjZ7qo8JAADBHgAARAAAAAAAAAAAACCAtIE3JQAAZWJ1bGtfdG9vbC9l
YnVsay9pbnB1dC93ZW5kZWxpbi5yYlBLAQI/AxQDAAAAAC5v1EwAAAAAAAAAAAAAAAA8AAAAAAAA bWJ1bGstd2VuZGVsaW4tZGF0YXNldC10b29sL2xpYi9lbWJ1bGsvaW5wdXQvd2VuZGVsaW4ucmJQ
AAAAEID9QbsuAABkYXRhc2V0X3Rvb2wvZW1idWxrLXdlbmRlbGluLWRhdGFzZXQtdG9vbC9saWIv SwECPwMUAwAAAABiZNtMAAAAAAAAAAAAAAAAOgAAAAAAAAAAABCA/UEoLwAAZWJ1bGtfdG9vbC9l
ZW1idWxrL291dHB1dC9QSwECPwMUAwAACADNg85MbGyETasCAAAmBgAAQgAAAAAAAAAAACCAtIEV bWJ1bGstd2VuZGVsaW4tZGF0YXNldC10b29sL2xpYi9lbWJ1bGsvb3V0cHV0L1BLAQI/AxQDAAAI
LwAAZGF0YXNldF90b29sL2VtYnVsay13ZW5kZWxpbi1kYXRhc2V0LXRvb2wvbGliL2VtYnVsay9v AI5y2kzRt58OqgIAACUGAABAAAAAAAAAAAAAIIC0gYAvAABlYnVsa190b29sL2VtYnVsay13ZW5k
dXRwdXQvZmlmLnJiUEsBAj8DFAMAAAgAg07PTNHXhrmhAgAAjQYAAEcAAAAAAAAAAAAggLSBIDIA ZWxpbi1kYXRhc2V0LXRvb2wvbGliL2VtYnVsay9vdXRwdXQvZmlmLnJiUEsBAj8DFAMAAAgAx2Hb
AGRhdGFzZXRfdG9vbC9lbWJ1bGstd2VuZGVsaW4tZGF0YXNldC10b29sL2xpYi9lbWJ1bGsvb3V0 TNPORo+SAgAAfAYAAEUAAAAAAAAAAAAggLSBiDIAAGVidWxrX3Rvb2wvZW1idWxrLXdlbmRlbGlu
cHV0L3dlbmRlbGluLnJiUEsBAj8DFAMAAAgALGHTTJ9xGJ61BQAAUhAAAEcAAAAAAAAAAAAggLSB LWRhdGFzZXQtdG9vbC9saWIvZW1idWxrL291dHB1dC93ZW5kZWxpbi5yYlBLAQI/AxQDAAAIAKpe
JjUAAGRhdGFzZXRfdG9vbC9lbWJ1bGstd2VuZGVsaW4tZGF0YXNldC10b29sL2xpYi9lbWJ1bGsv 20xB23PssgUAAGQQAABFAAAAAAAAAAAAIIC0gX01AABlYnVsa190b29sL2VtYnVsay13ZW5kZWxp
d2VuZGVsaW5fY2xpZW50LnJiUEsBAj8DFAMAAAgAlWvTTFGA+vv+AQAAzwQAABQAAAAAAAAAAAAg bi1kYXRhc2V0LXRvb2wvbGliL2VtYnVsay93ZW5kZWxpbl9jbGllbnQucmJQSwECPwMUAwAACADb
gLSBQDsAAGRhdGFzZXRfdG9vbC9oZWxwLm1kUEsBAj8DFAMAAAAAhEvUTAAAAAAAAAAAAAAAABMA htpMqhb0L/0BAACxBAAAEgAAAAAAAAAAACCAtIGSOwAAZWJ1bGtfdG9vbC9oZWxwLm1kUEsBAj8D
AAAAAAAAAAAQgP1BcD0AAGRhdGFzZXRfdG9vbC9pbnB1dC9QSwUGAAAAABgAGADeCAAAoT0AAAAA</string> </pickle> FAMAAAAAhEvUTAAAAAAAAAAAAAAAABEAAAAAAAAAAAAQgP1Bvz0AAGVidWxrX3Rvb2wvaW5wdXQv
UEsFBgAAAAAYABgApwgAAO49AAAAAA==</string> </pickle>
</record> </record>
</ZopeData> </ZopeData>
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -31,3 +31,30 @@ for data_array in portal_catalog(**kw_dict): ...@@ -31,3 +31,30 @@ for data_array in portal_catalog(**kw_dict):
log("Ivalid Data Array: " + str(data_array.getReference())) log("Ivalid Data Array: " + str(data_array.getReference()))
context.logEntry("Ivalid Data Array: " + str(data_array.getReference())) context.logEntry("Ivalid Data Array: " + str(data_array.getReference()))
portal.ERP5Site_invalidateIngestionObjects(data_array.getReference()) portal.ERP5Site_invalidateIngestionObjects(data_array.getReference())
# invalidate old (more than 10min) pending ingestions (split ingestions that were canceled/interrumped)
from DateTime import DateTime
now = DateTime()
now_minus_max = now - 1.0/24/60*9999
now_minus_10 = now - 1.0/24/60*10
catalog_kw = {'creation_date': {'query': (now_minus_max, now_minus_10), 'range': 'minmax'}, 'simulation_state': 'planned'}
for data_ingestion in portal_catalog(portal_type="Data Ingestion", **catalog_kw):
# invalidate related Data Stream
kw_dict = {"portal_type": "Data Stream",
"reference": data_ingestion.getReference(),
"validation_state": "Validated"}
for data_stream in portal_catalog(**kw_dict):
if not data_stream.getReference().endswith("_invalid"):
log("%s %s (id:%s) invalidated" % (data_stream.getPortalType(), data_stream.getReference(), data_stream.getId()))
data_stream.setReference(data_stream.getReference() + "_invalid")
try:
data_stream.invalidate()
except:
pass # fails if it's already invalidated
data_ingestion.cancel()
log("%s %s (id:%s) invalidated and canceled" % (data_ingestion.getPortalType(), data_ingestion.getReference(), data_ingestion.getId()))
data_ingestion.setReference(data_ingestion.getReference() + "_invalid")
...@@ -14,7 +14,8 @@ try: ...@@ -14,7 +14,8 @@ try:
context.logEntry("Attempt to do a new ingestion with reference: %s" % reference) context.logEntry("Attempt to do a new ingestion with reference: %s" % reference)
# remove supplier and eof from reference # remove supplier and eof from reference
data_ingestion_reference = '_'.join(reference.split('.')[1:]) data_ingestion_reference = '_'.join(reference.split('.')[1:-1])
EOF = reference.split('.')[-1]
data_ingestion = portal_catalog.getResultValue( data_ingestion = portal_catalog.getResultValue(
portal_type = 'Data Ingestion', portal_type = 'Data Ingestion',
...@@ -24,6 +25,12 @@ try: ...@@ -24,6 +25,12 @@ try:
return FALSE return FALSE
if data_ingestion.getSimulationState() == 'planned': if data_ingestion.getSimulationState() == 'planned':
try:
if EOF != "EOF" and int(EOF) == 1:
# The user has restarted a split ingestion that is already being processed
return TRUE
except:
pass
return FALSE return FALSE
context.logEntry("[ERROR] Data Ingestion reference %s already exists" % data_ingestion_reference) context.logEntry("[ERROR] Data Ingestion reference %s already exists" % data_ingestion_reference)
......
...@@ -10,3 +10,4 @@ portal_ingestion_policies/wendelin_embulk ...@@ -10,3 +10,4 @@ portal_ingestion_policies/wendelin_embulk
portal_categories/function/** portal_categories/function/**
portal_categories/use/big_data/ingestion/batch_ingestion portal_categories/use/big_data/ingestion/batch_ingestion
data_stream_module/embulk_download_script data_stream_module/embulk_download_script
data_stream_module/embulk_download_script_win
\ No newline at end of file
...@@ -10,3 +10,4 @@ portal_ingestion_policies/wendelin_embulk ...@@ -10,3 +10,4 @@ portal_ingestion_policies/wendelin_embulk
portal_categories/function/** portal_categories/function/**
portal_categories/use/big_data/ingestion/batch_ingestion portal_categories/use/big_data/ingestion/batch_ingestion
data_stream_module/embulk_download_script data_stream_module/embulk_download_script
data_stream_module/embulk_download_script_win
\ No newline at end of file
...@@ -4,6 +4,7 @@ data_product_module/fif_array ...@@ -4,6 +4,7 @@ data_product_module/fif_array
data_product_module/fif_data data_product_module/fif_data
data_product_module/fif_descriptor data_product_module/fif_descriptor
data_stream_module/embulk_download_script data_stream_module/embulk_download_script
data_stream_module/embulk_download_script_win
data_supply_module/** data_supply_module/**
data_transformation_module/** data_transformation_module/**
person_module/** person_module/**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment