2020-05-04 21:19:04 +00:00
|
|
|
|
|
|
|
# The 'implements' tool
|
|
|
|
|
|
|
|
implements is a small-ish tool created to compare the Ceph C APIs with
|
|
|
|
go-ceph implmeents.
|
|
|
|
|
2020-05-04 21:39:34 +00:00
|
|
|
## Build
|
2020-05-04 21:19:04 +00:00
|
|
|
|
2020-05-04 21:39:34 +00:00
|
|
|
In the go-ceph repository run `make implmeents` to create a standalone
|
|
|
|
binary for the `implements` cli tool.
|
|
|
|
|
|
|
|
## Run
|
|
|
|
|
|
|
|
```
|
|
|
|
./implements [--verbose] [--json] [--list] [pkg...]
|
|
|
|
```
|
|
|
|
|
|
|
|
The --verbose option causes verbose details about the source scan to be
|
|
|
|
printed.
|
|
|
|
|
|
|
|
The tool can produce either plain-text output, or JSON with the --json option.
|
|
|
|
|
|
|
|
The --list option produces a list of all covered and missing functions from
|
|
|
|
the Ceph library. The listing also provides information about each function's
|
|
|
|
status.
|
|
|
|
|
|
|
|
`DIR` should be a directory containing go-ceph sources. If running the command from the root of the go-ceph git checkout, `.` is sufficient.
|
|
|
|
|
|
|
|
`pkg` is one or more package names such as: "cephfs", "rados", or "rbd".
|
|
|
|
The packages may be indicated by directory, such as "./cephfs".
|
|
|
|
The tool will output a section pertaining to each named package.
|
|
|
|
|
|
|
|
|
|
|
|
Examples:
|
|
|
|
|
|
|
|
```
|
|
|
|
# Quickly summarize all packages
|
|
|
|
./implements cephfs rados rbd
|
|
|
|
|
|
|
|
# List missing and present functions in rbd
|
|
|
|
./implements --list ./rbd
|
|
|
|
|
|
|
|
# Print debugging info while processing rados
|
|
|
|
./implements --verbose rados
|
|
|
|
|
|
|
|
# Full analysis of everything in JSON
|
|
|
|
./implements --json --list ./cephfs ./rados ./rbd
|
|
|
|
|
|
|
|
```
|