Bryan Boreham
c20f895fa8
Expand description of goroutine+netns problems
2016-11-17 15:45:38 +00:00
Casey Callendrello
8c6f6e0a60
testing: test invocation of newer plugins with an older libcni
2016-10-25 16:33:35 +02:00
Gabe Rosenhouse
8be31e1c6f
skel tests: correct name of CNI_CONTAINERID in tests of env vars
2016-10-16 17:18:57 -07:00
Gabe Rosenhouse
51b51a0182
testing: adds basic test of backwards compatibility
2016-10-02 22:18:53 -07:00
Gabe Rosenhouse
5b696f3307
skel: use named constant for Incompatible CNI Version error code
2016-09-19 13:25:33 -07:00
Gabe Rosenhouse
fba37620e0
versioning: plugins require version match with config
...
infer version 0.1.0 when config is missing an explicit "cniVersion" field
2016-09-19 13:00:49 -07:00
Gabe Rosenhouse
64bbcd8cf7
versioning: add basic version decode for network config
2016-09-19 12:57:08 -07:00
Gabe Rosenhouse
fd150a4c97
skel: Plugins require a cniVersion in the NetConf
2016-09-18 21:30:57 -07:00
Gabe Rosenhouse
7958b9f0cc
versioning: revert spec version to 0.2.0
2016-09-06 15:37:42 -04:00
Gabe Rosenhouse
d5e2e375d4
versioning: misc cleanups
...
highlights:
- NetConf struct finally includes cniVersion field
- improve test coverage of current version report behavior
- godoc a few key functions
- allow tests to control version list reported by no-op plugin
2016-09-06 15:35:58 -04:00
Gabe Rosenhouse
bf31ed1591
invoke: better name and unit test coverage for GetVersionInfo
2016-09-02 16:39:01 -04:00
Gabe Rosenhouse
97192fc979
invoke: correctly infer version for 0.1.0-vintage plugins
...
Older plugins return a known error when issued the VERSION command.
Capture this error and report it as a 0.1.0 version plugin.
2016-09-02 16:02:07 -04:00
Gabe Rosenhouse
deb4466041
versioning: adds tooling to compile a program against a given old CNI version
...
Allows us to write tests that cover interactions between components of
differing versions
2016-09-02 16:02:02 -04:00
Gabe Rosenhouse
dea1c6e44d
pkg/invoke: refactor plugin exec and backfill unit tests
2016-09-02 15:59:25 -04:00
Gabe Rosenhouse
adf28a84c6
versioning: document meaning of 'Legacy' version support
2016-09-02 11:26:17 -04:00
Gabe Rosenhouse
536cb5b99b
versioning: plugins report a list of supported versions
...
Further progress on versioning support (Issue #266 ).
Bump CNI spec version to 0.3.0
2016-09-02 11:26:17 -04:00
Gabe Rosenhouse
c5e39a87f7
Merge pull request #293 from rosenhouse/backfill-invoke-exec-tests
...
Backfill tests for plugin execution
2016-08-31 20:49:08 -04:00
Dan Williams
e0ea82b229
Merge pull request #290 from asridharan/dcos
...
Fixed the check for network namespace path.
2016-08-31 18:19:02 -05:00
Avinash Sridharan
7281d5792a
pkg/ns: fixed the check for network namespace path.
...
The expectation on older kernels (< 3.19) was to have the network
namespace always be a directory. This is not true if the network
namespace is bind mounted to a file, and will make the plugin fail
erroneously in such cases. The fix is to remove this assumption
completely and just do a basic check on the file system types being
returned.
Fixes #288
2016-08-31 21:41:00 +00:00
Tom Denham
726c6b4578
pkg/ip: Ensure that SetupVeth returns correct hostVeth
...
The veth is moved from the container NS to the host NS.
This is handled by the code that sets the link to UP but the wrong
hostVeth is returned to the calling code.
2016-08-31 14:17:25 -07:00
Gabe Rosenhouse
d3ecadb860
invoke: backfill tests for plugin execution
2016-08-30 23:52:47 -04:00
Tom Denham
349d66d51c
Merge pull request #267 from rosenhouse/version-cmd
...
Adds VERSION command
2016-08-12 15:06:22 -07:00
Prateek Gogia
ad8a052dd3
pkg/ip: Return correct error if container name provided exists, and test cases
...
If interface name for a container provided by a user is already present,
Veth creation fails with incorrect error.
If os.IsExist error is returned by makeVethPair:
* Check for peer name, if exists generate another random peer name,
* else, IsExist error is due to container interface present, return error.
Fixes #155
2016-08-11 18:51:03 +00:00
Stefan Junker
c0ac3913a1
pkg/utils/hwaddr tests: cover v4 in v6 addr
2016-08-01 16:50:40 -07:00
Stefan Junker
f68cea27bc
pkg/ip link_test: ensure SetHWAddrByIP has an effect
2016-07-22 15:34:54 -07:00
Stefan Junker
7d19c01818
pkg/ip: use iface name in SetHWAddrByIP
2016-07-22 15:34:53 -07:00
Stefan Junker
8e1c215116
pkg/ip tests: cover SetupVeth and DelLinkByName*
2016-07-22 15:34:53 -07:00
Stefan Junker
924b30b57d
plugins: set MAC addresses based on IP
...
This will give deterministic MAC addresses for all interfaces CNI
creates and manages the IP for:
* bridge: container veth and host bridge
* macvlan: container veth
* ptp: container veth and host veth
2016-07-22 15:34:53 -07:00
Stefan Junker
3a1354cff6
pkg/utils/hwaddr: migrate code from IPAM pkg
2016-07-22 15:18:38 -07:00
Stefan Junker
96867eae05
pkg/ipam{,test}: improve error handling and tests
...
* _suite.go and _test.go file should be in the same package, using the
_test package for that, which requires some fields and methods to be
exported
* Introduce error type for cleaner error handling
* test adaptions for error type checking
2016-07-22 15:17:22 -07:00
Minhan Xia
1c1424c472
add tests for generateHardwardAddr
2016-07-22 15:01:57 -07:00
Minhan Xia
b2e53181d1
configure mac address based on assigned ip
2016-07-22 14:57:52 -07:00
Gabe Rosenhouse
5835c2bbb1
plugins: adds new no-op plugin that may be used as a test-double
...
Plugin can be configured to record all inputs and to respond with
arbitrary stdout or error message. Will support upcoming integration
testing.
2016-07-15 12:48:02 -07:00
Gabe Rosenhouse
a2aff8c6a8
misc: fix up copyright dates
2016-07-14 16:09:27 -07:00
Gabe Rosenhouse
63755d7c57
pkg/skel: plugins now respond to VERSION command
...
To support CNI spec versioning, plugins must be able to report version
information to container runtimes.
2016-07-14 00:24:32 -04:00
Gabe Rosenhouse
f436418525
pkg/skel: improve error message for missing CNI_COMMAND env var
...
This makes the error message for missing CNI_COMMAND consistent with
that of other required environment variables.
2016-07-14 00:24:32 -04:00
Gabe Rosenhouse
c17e700759
pkg/skel: missing env var log lines appear in stderr
...
Previously, the log lines appeared in stdout before the JSON encoding of
the error message. That would break JSON parsing of stdout. Instead, we use
stderr for these unstructured logs, consistent with the CNI spec.
2016-07-14 00:24:27 -04:00
Gabe Rosenhouse
791d259e55
pkg/skel: refactor to use dependency injection
...
Extract dependencies on os to enable more complete unit test coverage
2016-07-14 00:06:58 -04:00
Pengfei Ni
0136a73037
pkg/ns: fix misspelling in comment
2016-06-14 09:52:58 -07:00
Stefan Junker
3476000725
pkg/types: cover string for unmarshal tests
2016-06-13 18:18:36 -07:00
Tom Denham
031567c216
pkg/types: Add UnmarshallableString type
...
Allow strings to be unmarshalled for CNI_ARGS
CNI_ARGS uses types.LoadArgs to populate a struct.
The fields in the struct must meet the TextUnmarshaler interface.
This code adds a UnmarshallableString type to assist with this.
2016-06-09 14:45:58 -07:00
Stefan Junker
35f3a090b2
pkg/ns: introduce error types indicate NS verification
2016-05-27 13:50:16 +02:00
Stefan Junker
d582c9ce8f
skel/test: add case for empty NETNS
2016-05-27 12:26:42 +02:00
Stefan Junker
72337159c1
plugins: don't require CNI_NETNS for DEL command
...
This will allow to free up the IPAM allocations when the caller doesn't
have access to the network namespace anymore, e.g. due to a reboot.
2016-05-27 10:57:39 +02:00
Stefan Junker
7f90f9d559
pkg/skel: allow arg requriements specified by CMD
2016-05-27 10:56:24 +02:00
Stefan Junker
3bab8a2805
pkg/ns: consider PROCFS during NS verification
...
This is an attempt to bring compatibility with Kernel <3.19, where NSFS
where PROCFS was used for network namespaces.
2016-05-26 12:42:50 +02:00
Stefan Junker
d6751cea24
pkg/ns: test IsNSFS()
2016-05-24 22:30:49 +02:00
Stefan Junker
c43ccc703a
pkg/ns: test case for rejecting a non-ns nspath
2016-05-24 22:30:49 +02:00
Stefan Junker
76ea259ff9
pkg/ns: verify netns when initialized with GetNS
2016-05-24 22:30:49 +02:00
Stefan Junker
2de97b7e98
pkg/ns: add tests cases for Close()'d NS
2016-05-24 21:15:51 +02:00