Pass `CEPH_VERSION=minic` (or 'luminous') on the `make test-docker`
command to select building a container with a different Ceph version and
running the tests in it.
This passes the given CEPH_VERSION on to the `docker build` command as a
--build-arg, which gets used for selecting the Ceph repository during
container build.
It also sets the environment variable CEPH_VERSION, which in turn is
consumed by `entrypoint.sh` to set the `go build -tags ${CEPH_VERSION}`
option that includes/excludes certain *.go files.
See-also: https://golang.org/pkg/go/build/#hdr-Build_Constraints
Signed-off-by: Niels de Vos <ndevos@redhat.com>
When building the container image for running tests take the older of
the two current releases from Go upstream. We use the older version
in order to make sure we are testing with something supported but maybe
not everyone is on 1.13 yet.
This also enables the use of go modules to ensure we get the proper
versions of dependencies.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
Prepare for adding support for RbdImageOptions with
RBD_IMAGE_OPTION_FLATTEN that has been introduced in Ceph Mimic.
Nautilus is the most recent supported versions, so use that for testing.
Signed-off-by: Niels de Vos <ndevos@redhat.com>
A blocking message is shown when running 'make test-docker':
STEP 6: RUN add-apt-repository ppa:gophers/archive
Co-installable packages of Go 1.4 through 1.11 for supported versions
of Ubuntu -- currently Trusty, Xenial, Bionic, Cosmic and Disco.
Installing golang-1.X installs the latest point release of Go 1.X. I add
the odd patch to keep older versions of Go building with new toolchains,
but I do *not* make any effort to backport security fixes to Go releases
that are not supported by upstream. Buyer beware!
I aim to start uploading a release when its first beta is released, so
e.g. I uploaded a golang-1.7 package after 1.7 beta 1 was released. But
I don't always keep up with this.
So that these packages can be co-installable, they do not install
anything to /usr/bin. Once you have installed the golang-1.X package,
you will need to add /usr/lib/go-1.X/bin (or maybe /usr/lib/go-tip/bin)
to your $PATH, or you can just invoke /usr/lib/go-1.X/bin/go directly.
The packages all Recommend: appropriate versions of the runtime race
detector support on amd64, which are also built in this PPA
(eventually).
More info: https://launchpad.net/~gophers/+archive/ubuntu/archive
Press [ENTER] to continue or ctrl-c to cancel adding it
By passing the -y switch to add-apt-repository, this message is ignored
and the process continues.
Signed-off-by: Niels de Vos <ndevos@redhat.com>
This commit adds the following cephfs functions:
* Unmount // Unmounting is necessary to cleanup mounts
* Release // Release destroys the cmount ~ end of transaction
* RemoveDir // inverse of MakeDir
* Chown // change ownership of file or directory
* Chmod // change permissions of file or directory
Tests are included for each function.
In addition to these changes modifications to:
.travis.yml, Dockerfile, and Makefile
were made to accomodate tests to mount the ceph volume. Tests use
fuse to mount the volume which requires adding:
--device /dev/fuse --cap-add SYS_ADMIN --security-opt \
apparmor:unconfined
to the docker container (alternatively --privileged works but adds
additional permissions).
Changes to README add the above docker changes as well as point
users to the necessary ceph development libraries.
This moves Go to 1.7.1, using Debian Jessie
Uses Ceph Jewel instead of Hammer
Uses download.ceph.com
Debian Jessie does not have `uuidgen` command by default, so
also needed to install uuid-runtime.
Signed-off-by: Travis Rhoden <trhoden@gmail.com>