Atomic mount blows up do to badly Camel Case on Graphdriver
Atomic umount blows up because it was not able to remove temporary container
Atomic diff blows up since overlayfs does not mount with a rootfs.
Atomic help blows up also because there is no rootfs directory.
Cleanup atomic help for Overlayfs back end
Closes: #535
Approved by: rhatdan
Also note that for atomic_client, there was cases added to handle the other Atomic features which were already in atomic_dbus such as version, verify and storage.
Closes: #437
Approved by: rhatdan
https://github.com/projectatomic/atomic/issues/378 points out that
when an rpm diff is done with --names-only, the output messaging was
not clear enough. Reworked the man page, --help, and output message
to clarify that when --names-only is used, it only compares RPMs
based on names and NOT versions.
Nice find by Micah.
Closes: #381
Approved by: rhatdan
Previously, the raise of SelectionMatchError was not getting to
stderr so diff would fail silently. We now write the error to
stderr and clean up any mounts and dm devices created.
Closes: #368
Approved by: rhatdan
When an RPM diff was performed between two docker objects, we
previously only store the name, version, and epoch of the RPM for
comparision. It turns out versioning information is also done in
the release portion as well.
This addresses https://github.com/projectatomic/atomic/issues/315
Under the condition that you diff two images and one or both
of the images are not RPM based, no cleanup of the mounts and
dm devices was done. This was reported via BZ #1285006.
We now handle the exit and cleanup differently which counts
for this condition.
Also added a try/except for catching control-c, where if found
it will clean up the mounts and dm devices.
Set a pattern where if an atomic subfunction
is lengthy, then we can break that out into its own class.
This reduces the overall size of the Atomic class and allows
new development and debug to be cleaner.
Instead of using the func function of argparser, we pass
the Class and Function that should be run as variables. For
example, the Atomic verify subfunction would now be:
_class=Atomic.Atomic, func='verify'
The defined class is instantiated after parseargs is run. We
then perform the set_args and call the function.
Allow users to diff between two docker images|container. There
are two types of diffs that can be run -- a file diff or an
RPM diff. The file diff is always the default. The RPM diff
can be added with -r. The file diff can be excluded with -n.