Skip to content
This repository has been archived by the owner on Oct 10, 2020. It is now read-only.

[merged] Various syscontainers fixes #497

Closed

Conversation

giuseppe
Copy link
Collaborator

No description provided.

# 1) Load it from libc.
# 2) Run "sync --file-system", supported by coreutils sync.
# 3) Use os.sync, available from Python 3.3.
# 4) Run "sync".
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Holy sync batman! Do we really need any strategy other than the libc one? Why wouldn't ctypes work everywhere?

BTW I think we really want syncfs and not sync because the latter doesn't actually report errors.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am using a fallback to sync, since sync --file-system FILE is a GNU extension that probably is not present on other implementations.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hm...ostree is pretty aggressive about using linux extensions although I could imagine some BSD port for the core filesystem bits. But we hard require linux for runc/bubblewrap, so I don't see an issue with hard requiring syncfs to be available in libc either, right?

@cgwalters
Copy link
Member

syncfs aside I scanned this and the high level looks sane to me.

@giuseppe
Copy link
Collaborator Author

I have pushed a new version where I use only syncfs.

I have not used a fixup patch as I wanted to try out signed git commits and that wouldn't work with it

@giuseppe giuseppe force-pushed the various-syscontainers-fixes branch from fdff99a to 233d8ad Compare July 22, 2016 15:02
@cgwalters
Copy link
Member

Unfortunately, because Homu rewrites/rebases it conflicts with signed commits.

@giuseppe giuseppe force-pushed the various-syscontainers-fixes branch from 233d8ad to 337ffdc Compare July 23, 2016 11:23
@giuseppe
Copy link
Collaborator Author

@rhatdan are you fine with these changes? They fix a few outstanding issues

@@ -306,6 +346,19 @@ def get_system_containers(self):
ret.append(container)
return ret

def delete_image(self, image):
repo = self._get_ostree_repo()
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would prefer that this not return true/false, since it should really throw an exception on failure. And caller should not call if it is not an ostree image.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

are you fine if I add an allow_no_image parameter? I would like that the delete_image does not need a time of check to time of use race condition, that can happen if another process deletes the same image between the time the caller check its existence and deletes it.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am fine with catching the IMAGE DOES NOT EXIST and returning success. If the intent is to remove an object and the object does not exist, I consider that a success.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok thanks, I have pushed a new version which implements this (and removed the allow_no_image parameter). We don't report the IMAGE DOES NOT EXIST anymore and attempt to delete the image from OSTree after checking there is one.

@giuseppe giuseppe force-pushed the various-syscontainers-fixes branch 3 times, most recently from e104d01 to 15feab7 Compare July 25, 2016 13:14
@rh-atomic-bot
Copy link

☔ The latest upstream changes (presumably 45c0902) made this pull request unmergeable. Please resolve the merge conflicts.

@giuseppe giuseppe force-pushed the various-syscontainers-fixes branch from 15feab7 to 44c087c Compare July 25, 2016 19:51
@giuseppe
Copy link
Collaborator Author

rebased ⬆️

@rh-atomic-bot
Copy link

☔ The latest upstream changes (presumably #499) made this pull request unmergeable. Please resolve the merge conflicts.

@giuseppe giuseppe force-pushed the various-syscontainers-fixes branch from 44c087c to 36fe6ab Compare July 26, 2016 12:34
@giuseppe
Copy link
Collaborator Author

and rebased once again ⬆️ :)

@rhatdan is there anything more that should be changed?

@rhatdan
Copy link
Member

rhatdan commented Jul 26, 2016

@rh-atomic-bot r+

@rh-atomic-bot
Copy link

📌 Commit 36fe6ab has been approved by rhatdan

@rh-atomic-bot
Copy link

⌛ Testing commit 36fe6ab with merge d05a66b...

rh-atomic-bot pushed a commit that referenced this pull request Jul 26, 2016
 A3TEmZ3rCcIY/YQWqo/k+h95fil4sQ8SXFQzzFkkXgsQ89zMVyZdR0hpOZd7SMoC
 IzNi+uCu3ctRNEZLAij2vXAIF1+UIobSoPcSUl9rQhi6qEUAftzAjico9yfgQ7rW
 AzCqf/LzOzq2ER3yRSsLOaorj6ACfqmFNn/EpPqO8AtAnhTSimvFJ0rJG/taGpcZ
 nAu/7o0CNojh1ikk5UlNv6ouPxGpfWLVusnDRVI6y9Ntfh+B3g/OPfRS+xKUO0pm
 i62Tqi8bFDT6nZ9E0YkLSoE5O60s5sea75G1DSZxVzUdEzhmw6O3n79i7eTFPHtx
 pBP2FINpojIj4b6vM6aUDCkUrcbwl3xMZ8wcY/zc5DirFrhklzlEqt5N6wyE2qyY
 i0PyLO/3ZbFNYKEbE0Hc+2mLI9TCSX+lzSHGsZLJ7Jqyu5Nv4r7k5uvuQQU0FUmd
 JJJwODJPUnenkYyaCxdWtzM9gyIY1Ybw8OO28Mg+VG5Z2JL35j523GH3+7ysHpc6
 7O5KwVU25mWMafl4+dEiADmTIs875tQhs3OneeuP1i/1UQ7/SOqUFB91cw4swRM+
 UxzAt1HnirPhpmDunoj1VHJN2bbYCB2OsaFWVp5jTV2OFh/V3inTSX5GaKrr0+sR
 1jslwLWuep8+9+hWa+pb
 =0Nj6
 -----END PGP SIGNATURE-----

prune: always prune OSTree references

4abc3eb changed this to be done only
when there are Docker images that are pruned as well.  Change it back to
the previous behavior.

Closes: #496

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #497
Approved by: rhatdan
rh-atomic-bot pushed a commit that referenced this pull request Jul 26, 2016
 Tf6TLf1SaIrycct426WWKTPXi4huKIpiI9XU/o3ykfJ0W7aIX4iMSmi8IXEz8pGz
 VIhy1L31F/vCjDIazKWw1GeJH/psKZ03Ijr7nUqyTut1+V/mIoHduCG/HiD+tKlA
 YGU753iBRpUlSKlTf/hIMEt17VD2lWYs13P4EzHB8RAy6PwjZCGUVlgn6NeHR9T7
 r1IhvowY0w7SqAeVGLFYMkC7GWuS3E9WBa6ASWOc2ZivNuk+wVuq2Q6sXRJPEwpQ
 3S4LIQY1CzHknNX7SVBp4DnAlb00KQ3oKDif1EDBn7D6S61wpuMCUVS0NLz7EhcC
 cK+NXAy58yCVEW0LR3Q7QTSXKp4FmJL05w4RHwzfzvawxYvVeCe7e62c6NYizf5c
 tuRLXPbXY/3uDMrtvggfwmdUeVNWzNqVG4SJGD0HO305IBP9WwFZn4DTfXlsuwPX
 tMkwXhf8bMzczXb/rPTBV3u4APLI3ccHragvtBWxIM2GnIuluBxd6twXJ1HA6py3
 mBagyzkJGmVoP/+v3BzPRisim5b0T3VdVinUloMsG1XL/Elv7qFcsv3hE7q3m2Vm
 HaO5X32izmnhoq5ff9HZj9zWd8VmpAm4QAnUqLxWxMTjwBHcFLE3wKmBuDaN7Z1q
 gqJS5K+YMh1R3o21/Ux1
 =Ipwq
 -----END PGP SIGNATURE-----

syscontainers: use temporarily CLI ostree for checkouts

This is required to process Docker whiteouts files in OSTree, which are
not enabled by this patch.

There is an issue in the way the RepoCheckoutOptions object is mapped by
glib, as the C struct is using bit fields that are not supported by the
introspection, so use the CLI version of OSTree for now.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #497
Approved by: rhatdan
rh-atomic-bot pushed a commit that referenced this pull request Jul 26, 2016
 v1BI03pE251TSzi8oOqqTi6a65vB3Ly9k0uNvDtJd1clEINjbeBjPyS8YmmHhuiB
 DilctyQoa8p3b5Ld89jCjQHZQDuz+Th5rhNz/0T8bYfkNcfFxj1/MDXXp6zbWEu4
 vzCGUcZRTl/NlFuL3jRgQQyLpqcsN9IfqlB/FdzJ5yTcswk9E2JIF1jhlYC/4ViM
 uenORlOlHYeyvvej31E7tW5PhRWvIhJ9iuabcUJ/2llBEMmZSe+yQyzr79lwQwub
 kzqCw8rGHk22ZXeBiKJhjmxeahjhAJ48kLyFbWWHKS2PoS3kXSqtP0usQHP/CrRv
 9O8gsr52yKuX2F8AC+d7j6o2YeAxNn6L5PNLu0+HZxdo1y2bsu5pkOeyVnnB1Rkw
 E7EB8keAzGoS0yGMmdRf/wszCuJx3Hw4r76lKkgEq5vtnvV4LbZWWBEILZU4atwK
 cI0DeT8CITy6MVfBg4PfxdNkhDNub4Ib4V+TH0furyrkZtt8rae5F4345dqzkQ71
 x8fwQnldFb8MwxKfgadcW4Z6arD/+ba793c8BW6AA5naXXDM2inNDR+BeKmVq8Ad
 egcufDXq/PmIQI/C4OV/tsXxfL3ZPD/IgWjYaK+nOVx9z4M2nzp+P2HY8v/kc7j0
 w6eccMMfvV68NYNnV5Gd
 =rg33
 -----END PGP SIGNATURE-----

syscontainers: use syncfs for checkouts from OSTree

By default OSTree uses `fsync' after each file is checked out. Disable
`fsync' and use `syncfs' after every layer was checked out to the file
system.

Closes: #491

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #497
Approved by: rhatdan
rh-atomic-bot pushed a commit that referenced this pull request Jul 26, 2016
 mI3fTo4Z5yDKHQ1zpVaqjMRuDxMe94uRhfii4RIQuXpeFj/f4n1TZ/j32mVk8EwB
 UszEe6Tx/nzFXoW7FD5gomf1zvlxYwPRxJGJ6lzeNdi5ShhoeUelD6qWibCK19DC
 cZSEAklCzwgF8WpSTK6ABSiffVTLiug5K7mK2bsYd2JcxaZmXv3VhiOW3Q+zxMT9
 U/ocVoJRayr45Z/6UWUnxhwqIq9djFDMu9E4RootRZezp+eSBm5qE/iMFhYLTxMw
 hRtjlhE/jMM7ZAi/w3zFblvhjPfdra1Nv5TxVkCEc+3ruFKCpHKOiLiRd6YizDJX
 AZR7Z4+4poqA+9OrsEJ8z/r1DuF+XpxsFYxT+mnCnsLhkLsUPNka0thLTWh7cWy3
 vf9zmbJCPwc+wrfoonlJphdX8FO6s2JkpOuCN/0eHLRHFc2UgaMY1Jwx2+DfLgkV
 3ncUlNBw/zWYUvB3UiAYVFf+LarAIwrSGI0EMQez8OoXxU+llRn6Yx1fGsCg68/G
 uuCeIZgN760lqb6JCfRZQxYhmnWElQrw7b3GPgRNJ5GBL0zPE0VP47WUaW4bgS2D
 TNxeMIydshqOj6mAuQILzI5Yrn9+1wExGPiP8tUlJC+v02SA9BszRq6X0Q400Dzk
 MllAi/MhHJVu2TIjdGF0
 =qCpS
 -----END PGP SIGNATURE-----

syscontainers: do not leave broken symlink on uninstall

Use `os.path.lexists' to verify its presence.  Delete the symlink before
the deployments, so that the container doesn't look installed while its
being deleted.

Closes: #495

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #497
Approved by: rhatdan
rh-atomic-bot pushed a commit that referenced this pull request Jul 26, 2016
 lZN5mdin3VR+3IiBK0o2txmeiTAgI23gcOQjeGckauomZwHuagqrCRB7HF8GMOPa
 MHTdY7OeylEhdUzMm5ow8PdJb6N+l/EyZvY1VjrA6WNHNqxK7D4Fr15OoJrdhZnS
 ELi512pi8+1erLygqpyydQE4stbVx8KD1bVLpmxLZQ8qsSdOU1niFW1SFGl6R7Nm
 wsWUzRwhTrzLhoLB870OVxyDpnIWFSrIZlmYdS5ldXVU2qR3GWNqr1yiJoh0wDso
 6sVhgcCg+PYxvBhoVYE4CNHdJ3pybH/Tmyyh0cskKy8qei9jMbHtKD8wuTFpMpoq
 tT4nuClsSIB6kP534IQ0+cqFemsO3dOCPs4RxW8q6YX30w+W7IF3GlX8ASlzDbcZ
 jmEVTPwzsYEbvNKel1AxGI/cDJE/5ejTxd70FD1lnEKLqBhAZi+OzhTRh6Vofy6V
 BJfDsvqwvMcCZ6NJeerLw+Ufy9vSdQopfRyd3momrKAkxnpHwSYSo+zzkiIjdlU/
 DMA5DZ+O1DqezzaIKUfYziFsIOrlOuSfM/zhDRFkl3dYcjlI31H/SDGmjRfMtwl+
 ArrYT9QPSVfcLWlPA7RelbXVm22+hWCQbz/Yl/Pi9jKZKrjm1O6/xmvEI2XNgu9H
 CdxWQp81tBkxMNjyivU4
 =L9KB
 -----END PGP SIGNATURE-----

ps: do not raise an error on crashed containers

Do not stop processing containers when encountering a container which
was not started up correctly, so that has not runc state.

Also fixes a "the JSON object must be str, not 'bytes'" error with
Python3.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #497
Approved by: rhatdan
rh-atomic-bot pushed a commit that referenced this pull request Jul 26, 2016
 RXOrkMzFoex9IXtdspTPMnUFgp4/uauvDuYyVGVRs3kl0zB99Zw9JKjpivO+swss
 5GWBTfNJaIbFYB3k9Fi+JZpY8utFhUGxMldjYFtgVRqmzKI6My4mbko2kQ3YYTEr
 I0B+2XzbnbdGwVukSBg1Zzo5KK0JqJY9ctWfRiwXDiqfR3BNSNf0bPz9G7BtiBBC
 tfYDbXrEYRSGnsNyDmtxF+VYvIAZJRKQhR3/kOSPjJHVSP9Rnakq/Oxl+B6tOtjE
 jJGGgGDGv+xJp/6MPzhD9rJEwnhVJbVloMOrIglrNWVLIdQpSgaelcfaVxd9/ejP
 4APftwYadxW0zycaki6T8l5P5PgM6jH9aBqsPaIaiAuub9v3T2BTyqMkxrInwjVm
 a0dUr3bhshDW+5PqvmVHBlnHuM0LWvZ+E0RdpOxN/sY8ZiIEVBMz67vQhld7rd6y
 iovEZBA/No2I6BKlcn+gHpsv6Ev+X+h71PAPP33SMiM3Jg3DFlZL4IUTl/3EPYlA
 cVCXMksVNwPKNlIGoS6R2glrP6+WfYGt6zE2aZRkt3sdkZKLcVMjDSPICYt6M/u1
 oH95FaXBEmsHEpLJPzXKVW9VDLUEdC+4WDbon3wd3bOTEmL9PzO42MIdyYILfn3i
 oZWqNETd6qDP6uQslAK8
 =5FFQ
 -----END PGP SIGNATURE-----

delete: support images from the OSTree repository

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #497
Approved by: rhatdan
rh-atomic-bot pushed a commit that referenced this pull request Jul 26, 2016
 djKyBqDEP4/0k3eKy1rPkVs+veFXyzsRaL0pYNRpOfRLtp9O6eVky/xL3CDrIhgG
 g57sfQ1DB+WPWXuMJcmQk/tGIoRxTylyyVT+DsMKUCGwfCIgXDyu8KY7tkw8dwN2
 r7663ErNMxQdN99dj9iy0pPFrC1tQV5YoThchImPcBwEJpP8q/3GM8Gy+Axxu1SW
 eCuzRo9IzBV6VNtpqHlEbRaZ05gzE4+tzeGP3ZrrPZ8n79UQmkfWgSlby5IejAsj
 jkPT8jdAPusLVAm/SzaGUqn22FnxVracCZN3nBrFC0zMhHVbhQkOlzHSdBb6l5Ap
 L22Mm0Ai1AfTa+h6UgRsFbfztjulIPrNO5j8TRbFdU6MWMmzxLL3JwzJbZvvwYA1
 yuX1EnF0a7zInZUB9Coh5gZfBzScuhTVzX83NvaKayzx3PzvARosg6MmnhvUmV+x
 hBjjvWIbhQsPRycc8Z2HcYu6iaxfN2cRjP8THcy8b2QIZq80nroGTkcrEi9WGe6W
 aAwgKgDkvNXLJd2TszLc8mE52CMCpvL9WzpYg9Wn+ZdaABFAqhU9oubn36xppc79
 1b7VQ/IRkY1J9ImhZBHMp0e2vRFBUxpo0QJJF5FbJ6bwozZAsB+TxG6CVE4K1mGO
 ZYzHoC9WcT62M8mJUPot
 =OREu
 -----END PGP SIGNATURE-----

syscontainers: 'pull' always create the metadata commit

If we had all the data layers, we would skip the creation of the
metadata commit, so that the sequence:

atomic images delete foo
atomic images pull foo

would not create the image foo to be again present in the repository,
unless a prune would happen in between the two operations.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #497
Approved by: rhatdan
rh-atomic-bot pushed a commit that referenced this pull request Jul 26, 2016
 CK1nAuVJer54y1qWuq19/Whnd21m2iiwyNDZLQ1YV5sGHX6zf/yoVAC1+IFprKcj
 mokPHagfulwHxrUHsP5ghieDFaBtSSu04n5yhE/+j0elFFxTJtBdVVG9pqizOtGd
 oZiRgEujCq7NaxiSgKwYgtzzpPS60KfIvOh2BlGFwTvLQI4AKpQdIH4WjEjIff6C
 wuSlFzYLs3ftgD/kgQF/s8ChU5lU4bjbM68d1jkhIqlfsj8/K7gq+cT+cNBrDVAe
 uf0szZgL2zw5UZzlAERdVhmXANPlSkM7uzQaeSBLMGIfSoEfpnOXCh3RF9NWEF14
 k/9rWvAuWVRmpTqTsut47rcwZil8mHbcnKc1FWTXBkze5ygqA/yKO4S8X3vlFn/A
 VsZCBmjIGaBhUP3QUJGfmKCNSE4+FjO8sPf+/K8ZMo6AcVl3jRQ3utqzZht8mADR
 NzSV10j2kF2pMqkOAptbHaGw4AuvhoRSGcMkSBTmQgbJHInLy7KToOnn1gb/1DY6
 PiMEsZzhLeW5i6PIn0Rz4mRpGzdIAk33iuwjTSKUkle/FRtCMzIH/5VgFxCtyWk7
 G1lIlSVDWYTQSBqLy2XZuYLMNoYNIiCq242ElvttM7BT2LbTZeL2KqG/PqeeyGrW
 4F/7ArMhGHNG80rB8VeV
 =ir0e
 -----END PGP SIGNATURE-----

tests: write to file before using grep

It avoids some random SIGPIPEs during the tests

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #497
Approved by: rhatdan
@rh-atomic-bot
Copy link

💔 Test failed - status-atomicjenkins

@jlebon
Copy link
Contributor

jlebon commented Jul 26, 2016

@rh-atomic-bot retry

Do not stop processing containers when encountering a container which
was not started up correctly, so that has not runc state.

Also fixes a "the JSON object must be str, not 'bytes'" error with
Python3.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
If we had all the data layers, we would skip the creation of the
metadata commit, so that the sequence:

atomic images delete foo
atomic images pull foo

would not create the image foo to be again present in the repository,
unless a prune would happen in between the two operations.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
It avoids some random SIGPIPEs during the tests

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
@giuseppe giuseppe force-pushed the various-syscontainers-fixes branch from 36fe6ab to 0165fa5 Compare July 26, 2016 15:41
@giuseppe
Copy link
Collaborator Author

@jlebon @cgwalters rebased again ⬆️

@jlebon
Copy link
Contributor

jlebon commented Jul 26, 2016

@rh-atomic-bot r+ 0165fa5

@rh-atomic-bot
Copy link

⌛ Testing commit 0165fa5 with merge 1645062...

rh-atomic-bot pushed a commit that referenced this pull request Jul 26, 2016
 rooLwowNuHbfjNn+r+eo2C6cl91jUDcyOFlSuk1YNiH2INRams25Ap4a5u7vPkmN
 6FiXjXjKHbFYLW7WryevJ5Ac22lfW7bRUM5cb3d3VcwVjvwxJj2BR27e/AxNJZSY
 V4h7DRl9948W+aFmbtkhBuAOIMttJ8jfwvMevSmNXnvWeW8WygfpPOrDVPg99By0
 uNjL/OFR8Gl7zhTsVm5XMh7gxDPSSkYrObitG+6VL6Jtem9/dkiVtHshEQrF3S8W
 XgZXowJ1+6HXl9H3bX2zGB+n44dtNm10jxxqZhxOQIkNlVrkbP5CieveRNwra8Fl
 dJ76lLCA14OSLF8ZqrEalyQeqow7EexcW0ikdgHBqerL6rQ/5CRRMd/DpPfXKvkX
 MVT+7tPl9DVD21PDa7kRHGWkrhT0yjNF+NKAlE2fS8nmnHKV6FE0rnvq1Jfyxkva
 f4gXfv9WLS1cHHm7ba3ZaqSxv8zCn3QL4CtvzYKHrVXLhoQ2+TYmpVkiaiqffDKq
 gYcOnR1J12wcqxCIHmk55Kr+/pwJWvW6W4fQo3WauY1EYiD8Vd+Bfeq9Yge/0s5v
 6KX4Wzf35+lNQ8hJ3TRszmxKMPGa3GdDvIrcCKF165o1CU42lNpg7T6Ema99vEg+
 z7D+ZZ38jXIPtR1zLnef
 =JzHT
 -----END PGP SIGNATURE-----

syscontainers: use temporarily CLI ostree for checkouts

This is required to process Docker whiteouts files in OSTree, which are
not enabled by this patch.

There is an issue in the way the RepoCheckoutOptions object is mapped by
glib, as the C struct is using bit fields that are not supported by the
introspection, so use the CLI version of OSTree for now.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #497
Approved by: jlebon
rh-atomic-bot pushed a commit that referenced this pull request Jul 26, 2016
 JYf67DScCVjWe8tns7JqdT3Oa+XyQ3xTSLl6uzmQPEhfQfHozgDF+BoFKoo2GnzO
 ZGgPNGCKzEjcKYy8o/Q4mkk65s/VzyfmgeHwZyrzLxXkou2e24z67sXtV+094I4+
 3S0Gsqf/W0svelQHmTfZZKdPXWKRMOan6P1UJbY+6usU5PBJ5dJletIrY4eteGlJ
 goEAvjnD1cfHZY+4Alh6CcOu0X8meGzR5q1CMEFC7hQCH6nsDCPHFnzy86n5KSf8
 s2sQwMXHiyNx1IwUUc0pljhJBQOPozrvkMPcyhBOHYGKO4ENT+qxdWpkWl0ldV5+
 JeH3DydqZMVHcfLsL3KsV6/JSQW3JL30OyK6HC3hOuFTHlYMQp2hx5P4R0+XUX9O
 WK+fcOUZon1S0Q5sFYgqxyIWvM/7RQCCKVA8uAJOSuA4t5D160NiXhLblOJ59fjU
 JDpDeNveys98Sfinq8w/968GD5jejK6Wg1zGjLLoMVeLo6yfPOfqmtUvpHoC0N6H
 9LIImVBOLqRPxYrUYo7rB5unWwevaL95yLtijp1x2m3VDgRFnEaCPt3xw9mrwN9I
 8NO8CucfEI0ejlzKsvzowRN9G7Z7u4kq+TK761KAJ6W121wLqRhocNBozN/eFmbt
 I0gugpGWrbTrx/aXvaie
 =14hg
 -----END PGP SIGNATURE-----

syscontainers: use syncfs for checkouts from OSTree

By default OSTree uses `fsync' after each file is checked out. Disable
`fsync' and use `syncfs' after every layer was checked out to the file
system.

Closes: #491

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #497
Approved by: jlebon
rh-atomic-bot pushed a commit that referenced this pull request Jul 26, 2016
 eHdqnMTRA0tvlZoGFiM0orGIGa1TKS4nWwuTfks6W4z9Ldh0qEowhHmbCzsS5M0c
 N9ToecgT7tlPJ8q3XO+0AyMjGZ65Wc61FKuboHH/IRiOSmlgqkwkAORtps7y+1p6
 NkZ6Oml+lYXhmMIUmiHOool22zi9zv4DJutyj3gSIptbcvBMyOXOsIjRMcvU9Jrb
 bWgZtgfA1wJtAkABqTJAbA3NsZ5FbT2goGk4TI/lz4yqEI0urADGW/x3McGAA6td
 SIXePJvQEm1rLp0luYx5Ap6m78Sf7reUsFPbWt7iTsF8P80U1oyMQrW+iNeh3JDm
 WU3PJXSALyPKO+3Gjnh+swtJURU2pdGfqbmFmyqohjSshYBtRJ3mI81PjiE1Or+A
 F6q+LkTDTa/Am4UFaebJYBviNtkuLPSy1M8n7G9q9lebGX0KDcHfheAlKGBM+PrH
 hBqyL70Pk7YU968MKN47Z+TKwuai+hcu+rkA+JPF178iIy8Z4z5cTPVZ1KvCF/q4
 smrL/zWaFsGTehEL8Xv5uVOBNPz8ziCR+n7c0TNPYU2VlabyNheNFBH57R8GqCQq
 ZU099W5RuDINGNcQFyA6jHnTbeDBXI4p9TGNO+yuFg8BivdZIP1aLi9aB+htJ71F
 nfL6weQb0O7E6PVG1orz
 =5ADz
 -----END PGP SIGNATURE-----

syscontainers: do not leave broken symlink on uninstall

Use `os.path.lexists' to verify its presence.  Delete the symlink before
the deployments, so that the container doesn't look installed while its
being deleted.

Closes: #495

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #497
Approved by: jlebon
rh-atomic-bot pushed a commit that referenced this pull request Jul 26, 2016
 5d9QOe0YLwkJfSEiBuGLrJ/ir7JwdrtfzbhlCizeq63FKQn1PhE2UnCUKcunoh/Y
 zSLz96X0gE647D+rEZpKQWFFKZGiJwapVbKlCC0TxLz5P/tPkmObjyPKGOSu2PC7
 qb0Dnq0isqYXPFrLrjRH2/RFhlHLUpE9RjmDXAs6OFFiXtqQbNLiZdA715RYuzIC
 j6B/Spevuo1BBIqs/to4Mq2k099Td/kg85uspAuDp5MKOzqFHHAhojy303a0Wo0c
 ds/T31+CLoStFnrKMvfg7eN9kKf7w/N7p5MReoTn4mJLe1EmbUFswqdm0UQxAkxy
 nN/CUBlK6HLlmpSpBMTH7jVQyb/01T+scHyTUOSG0SSkv5ybWzp/waZxIPEPkRJl
 rDJLRf00nv8hh9cD+NV1oU1wtl28ix23UFyIK1qsond+sVygTX9/QFMCHty0J7rb
 hV0RWC5g43jIVA4l80lyzv3/HfFUblg0aQxbGtVQk9uyw/lZttuepv6WeCwWFOkA
 spfDCknHNDidtt844vABNrpSCqniqwokqkdxVgI5VGMweksnedCf3CJ+qRPcPIa2
 WbwTWWuTG/CARcks8PrgzaorTKBYQUeko4qR91DF89ESbFGsjmvXTjRfZcoWO2eu
 UbYdSpvpCrCT6SF0nqhA
 =AxSh
 -----END PGP SIGNATURE-----

ps: do not raise an error on crashed containers

Do not stop processing containers when encountering a container which
was not started up correctly, so that has not runc state.

Also fixes a "the JSON object must be str, not 'bytes'" error with
Python3.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #497
Approved by: jlebon
rh-atomic-bot pushed a commit that referenced this pull request Jul 26, 2016
 DhhPRwdholRaXs192P0FFFPmLjNGB2VZzsNRpWhhNMt27Bkt8ivkxlcFW8OJoCmE
 3Fs/l9hAYgf5NvIUISIVNUxoN2vd5gIczgm5FH7ZNN4J4a3j9PX8dpzmz+kjzfUL
 ZZjhZdcfDnd/4rb4pDrZ248wprUlzLu0mLpm9qeUgnRZqSHfx1zvPu9VgIPMq+jK
 Bta7NVC4uVWv9tLd74KmTeGT/hfzbjfsmjutw+qdIsnp80xJ6jhvQx+VMhF6C/cN
 4f4GTV5B0t1i0Jc1vrgyfqyqCN5XpqTS1dgp8Bx80Pa36Eok1JmzGw0gsgJ/tpEE
 TiZTVe83EGDF/esZy2KfpnvAqIjoBRm/SuDMOHhQ8RnTfOmqY1eV0hQ1ZsfKyDUs
 6gHmYgOEv+EWUM0PqyZ3UfgbOjSS626u3JGPxBwVVdDbeeW3ptsST8FlEhB+6MXf
 +g0W8ho44NL7j/PN6c5mdIEIFvjwphQ8PCPKtGA2Uc489RMaHME1miMd4rl5hyBO
 ed5fKB4qp9DeC8VWIQEz0ALtj3u0UvSGYAXMlSlnvSnwl5tu8dw7xpGqiNJQEDni
 +FnBNuBwcn/6HsDDoBP6eeiMkA4uFUnsa50bJsUKiuTQM0DF7nc8Y6lrLVmK8Iur
 X0Q8d1mZ8psYHLzSh/bQ
 =blTC
 -----END PGP SIGNATURE-----

delete: support images from the OSTree repository

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #497
Approved by: jlebon
rh-atomic-bot pushed a commit that referenced this pull request Jul 26, 2016
 jbCd42RJ8NNB9M/ubtz0xNgznUEfXRbdJAdgZa8v9926ooJzBNpjjvVCmOg9Eo1z
 Q33qUGaW8s93QOH9omJVF1C6wHkJubyGZCE+yC+AphO1EZVtaAqt0tcHmFFtMA8s
 b+1JdZdrqldKTmhJPlYFI2X4J/N5/ou7vA5SqTxF8GN8MoUS0+zuYxUKMdwJ0f8v
 8XTngKcFHDApkAdlhNR7oCLsFLekmheMVDPKTU9QWFyB6oKsfyS9610heUIuLkBN
 Hy3JtpecPluGOSXFAkYRVSnXEBI3F9a0USOfx2YhFAl2T283gIaNCYFi+0yM9OIu
 rsr8BhaS2g5MqZD40gmcVlzoYxn5RUcBPvXiSM7PtADriWhuGsNYVNMSy4t0of75
 V1/kezVoB+n3yMDj/+JzoN2Ki242ZNI1ZIbDP61TuGIyz2+epOiVhCFFxmhmKUHd
 JJt6oTgel9qhQal1qb0HnPZM0EddlPUtyiFRjScMTxzALl7oEAPZKZoj7bnyVdg7
 TJPjKzxhn7ON+zJxkE7PwMFanuUvQTeSGyIKGmiFzpEAZSuln0E7NurCQEOnFvGZ
 mdunTsgDGxFvXikUxUcVA12vyzysAUKOEq20Nsxsax/CStOV1nASFV8nneei6XJt
 G+UE6nd3cQMxzOLYqaXA
 =aXZ4
 -----END PGP SIGNATURE-----

syscontainers: 'pull' always create the metadata commit

If we had all the data layers, we would skip the creation of the
metadata commit, so that the sequence:

atomic images delete foo
atomic images pull foo

would not create the image foo to be again present in the repository,
unless a prune would happen in between the two operations.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #497
Approved by: jlebon
rh-atomic-bot pushed a commit that referenced this pull request Jul 26, 2016
 6hullNIF7T05ZA5X1UyOWRiHxvN6g97jM5e9wGPYKvVgvEg655zgn+9S4SK4cerF
 Nce1hmsyZCPGtJ6JNC8LvJv732zfGOLt2VwZkcHmXOG8JEY5qYo8qa+4f7y/MwFK
 HhXttSNLi7kIkaiXiynob2jj2IZkfcNJWRJL7QDIyBceJlG/sD7xeDh80qUO5O4j
 KLOAHCQfdAcHO3ffK1YC57Z4vpibrJbbsOWmeBkT3YM7jGcPfAoGWUHfsMU348Kj
 7a/NnYUw8xDqI/kdMZbefGckc3+dpFB2k1PJUVqafaOQil3z1eqh7LpZjnmB+Ejv
 i3iHaJEGBnpSbBlc9FsZk0RP70qtddFPefY1Z2xj//zVaiJoMq7BdglwBe6qZtTN
 29bU+F0ClYEVRJ+bhqCKfjY7eAcFBAfxK0FI1TDWuBQgAPREshH7O9ozZBfL0bOa
 NyRMyqvn3Zq/e2rOc5AmSdlRkyxjgKyXQEM6Li7lvkbDzedMRCpPmt7A9eSfqgCg
 nQ33+CL8cuJk9NypcFTomzPeFxn4WA1wqjstS1YEkrISyNA290e5G5V8wnrw5yQS
 k80lUhtgd5mfFbl2QMshzCtVdm1f+p3QKhZh0Au596U99UQWA4iidbmXsVYSqq/8
 YQNPmggAAU8ZHI8Psdxd
 =S/+v
 -----END PGP SIGNATURE-----

tests: write to file before using grep

It avoids some random SIGPIPEs during the tests

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #497
Approved by: jlebon
rh-atomic-bot pushed a commit that referenced this pull request Jul 26, 2016
 gaYQToQv5ILtvl6kukQUP8msJs4JtTDULkW7fQYPwCtjhmFTbFAOFSnj0j3fnz/Q
 sm8YNA2kdrtWYnbFTCR5EwA+nYoajim8OwZlVb6ewutGHpMeK6n+p9OVaTI06qfE
 ZMpkJTZPzr0zT1/ysSf8SYmQMqgMOO5Z9t32jFZEpedRKNmjEjhL+aNTi2Z6XX6E
 UfFYUGxBjoxkkWWSgY1zu6S6/Lq5C1vae5i+GzZc70OT2qE2i+lM9EM2JDdbiGZq
 INBZKllYfbjoQE0gPsbWEghMmBMsx0vw04NVV184oCyTBhnaog5NyXmvmNgZocKU
 ftUEK862t9S2MCBSg4gN0jenbQD/uhBBpRsfZFXbBwCQgiGkPC+XppN+FPAf27Ag
 SoK4WWw4whgLvCK4CwuYD7XyWryWq6JHZPpqvuXjBIT1vIwmm4WBR3TG8Lx0/1Jj
 Izc2hO2v+7USWjEAioDKYI7Kpllvnsb2fvvpxcWBDi7Q21pYxWXNJWZHmRYNpEZ6
 EYlmoAjoBEt1iomBfHMTuwKF0vUYM9EXZ+exkQXNnQ/lQXfRZODt4gZTKKNN9Exo
 6XU6RT5tZozsheKS+v0xDPWjSnlORySs8s+XrKa0KNOjM87pedwQDJcSJ3WYh7C2
 483/CSCFnGBW+bbhYGbI
 =tmNr
 -----END PGP SIGNATURE-----

Revert "Migrate script should now work since we are after docker-1.10"

It breaks the tests suite

This reverts commit 7fcd49e.

Closes: #497
Approved by: jlebon
@rh-atomic-bot
Copy link

☀️ Test successful - status-atomicjenkins
Approved by: jlebon
Pushing 1645062 to master...

@rh-atomic-bot rh-atomic-bot changed the title Various syscontainers fixes [merged] Various syscontainers fixes Jul 26, 2016
giuseppe added a commit to giuseppe/atomic that referenced this pull request Jul 26, 2016
4abc3eb changed this to be done only
when there are Docker images that are pruned as well.  Change it back to
the previous behavior.

Closes: projectatomic#496

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: projectatomic#497
Approved by: jlebon
giuseppe added a commit to giuseppe/atomic that referenced this pull request Jul 26, 2016
This is required to process Docker whiteouts files in OSTree, which are
not enabled by this patch.

There is an issue in the way the RepoCheckoutOptions object is mapped by
glib, as the C struct is using bit fields that are not supported by the
introspection, so use the CLI version of OSTree for now.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: projectatomic#497
Approved by: jlebon
giuseppe added a commit to giuseppe/atomic that referenced this pull request Jul 26, 2016
By default OSTree uses `fsync' after each file is checked out. Disable
`fsync' and use `syncfs' after every layer was checked out to the file
system.

Closes: projectatomic#491

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: projectatomic#497
Approved by: jlebon
giuseppe added a commit to giuseppe/atomic that referenced this pull request Jul 26, 2016
Use `os.path.lexists' to verify its presence.  Delete the symlink before
the deployments, so that the container doesn't look installed while its
being deleted.

Closes: projectatomic#495

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: projectatomic#497
Approved by: jlebon
giuseppe added a commit to giuseppe/atomic that referenced this pull request Jul 26, 2016
Do not stop processing containers when encountering a container which
was not started up correctly, so that has not runc state.

Also fixes a "the JSON object must be str, not 'bytes'" error with
Python3.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: projectatomic#497
Approved by: jlebon
giuseppe added a commit to giuseppe/atomic that referenced this pull request Jul 26, 2016
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: projectatomic#497
Approved by: jlebon
giuseppe added a commit to giuseppe/atomic that referenced this pull request Jul 26, 2016
If we had all the data layers, we would skip the creation of the
metadata commit, so that the sequence:

atomic images delete foo
atomic images pull foo

would not create the image foo to be again present in the repository,
unless a prune would happen in between the two operations.

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: projectatomic#497
Approved by: jlebon
giuseppe added a commit to giuseppe/atomic that referenced this pull request Jul 26, 2016
It avoids some random SIGPIPEs during the tests

Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: projectatomic#497
Approved by: jlebon
giuseppe added a commit to giuseppe/atomic that referenced this pull request Jul 26, 2016
It breaks the tests suite

This reverts commit 7fcd49e.

Closes: projectatomic#497
Approved by: jlebon
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants