Commit Graph

140 Commits

Author SHA1 Message Date
Aaron Crickenberger
9a6600f9f4 add import-alias for k8s.io/api/storage/v1 2019-06-20 11:40:57 -07:00
SataQiu
332be4b1e3 refactor: replace framework.Failf with e2elog.Failf 2019-06-19 17:52:35 +08:00
Kubernetes Prow Robot
7abf2832bf
Merge pull request #78614 from liggitt/remove-beta-e2e-use
Move test/e2e use to v1 APIs
2019-06-14 07:58:38 -07:00
Jordan Liggitt
8229af31d2 Move test/e2e use to v1 APIs 2019-06-03 14:46:08 -04:00
Jorge Alarcon Ochoa
4969a05327 Refactored pod-related functions from framework/util.go
This a refactoring of framework/utils.go into framework/pod.

Signed-off-by: Jorge Alarcon Ochoa <alarcj137@gmail.com>
2019-05-30 09:30:26 -04:00
draveness
d6c600dac0 fix: use framework.ExpectNoError instead of gomega 2019-05-29 23:46:35 +08:00
SataQiu
01d38fec16 fix golint failures of test/e2e/storage 2019-05-11 23:30:17 +08:00
danielqsj
629ec7e113 replace test error checking with more readable way 2019-05-10 13:58:09 +08:00
danielqsj
1058877fbf remove dot imports in e2e/storage 2019-05-10 13:56:26 +08:00
John Schnake
a6f5ebf831 Move storage tests to use the framework/log package
This is part of the transition to using framework/log instead
of the Logf inside the framework package. This will help with
import size/cycles when importing the framework or subpackages.
2019-05-04 12:50:38 -05:00
Hemant Kumar
0eb68c5a22 Fix blockvolume expansion 2019-05-01 18:25:54 -04:00
Hemant Kumar
6fee8a7727 Skip pvc protection tests if no default SC is found
Other tests that check for default storageclass also
check for cloudprovider such as gce, aws and openstack
and hence are already skipped in bare metal environments.

But this particular test keeps failing because no such check exists.
2019-04-22 14:51:04 -04:00
John Schnake
028df0451d Refactor of e2e/framework/authorizer_util.go
- moves these helper functions into e2e/framework/auth
 - removes logging from helper functions
 - in some cases explicitly returns errors that were implicitly
ignored/logged. In the situations where they should be ignored,
we explicitly check that the condition is met before ignoring it.
 - fixes references of these methods to use the right package and
return values
2019-04-17 16:39:37 -05:00
Masaki Kimura
b474b28f7b Use framework.ExpectNoError() for rest of under test/e2e/storage 2019-04-04 18:51:51 +00:00
Michelle Au
634be030a8 Fix provisioning tests to allow delayed binding 2019-03-29 15:00:26 -07:00
Kubernetes Prow Robot
e05be44808
Merge pull request #74693 from mkimuram/issue/74545
Add e2e tests for multiAttach
2019-03-26 20:44:48 -07:00
Jing Xu
221c673f31 Skip GlusterDynamicProvisioner test in GKE
The GlusterDynamicProvisioner test will not work on GKE because master
node is in a different project and cannot talk to the pod running on
node which is used for gluster provisioner. So add the code to skip the
test on GKE
2019-03-20 12:07:50 -07:00
Masaki Kimura
b4c88acec6 Add e2e tests for multiAttach 2019-03-09 00:26:00 +00:00
Kubernetes Prow Robot
07cf5fa08e
Merge pull request #72434 from pohly/storage-volume-testsuites-config
e2e/storage: delay CreateDriver, simplify APIs and test definition
2019-02-20 05:37:45 -08:00
Kenichi Omichi
a01381a7d2 Call getRandomClusterZone() only if necessary
e2e test "[It] should provision storage with different parameters"
depends on cloud providers as gce/gke, aws, openstack, vsphere and
azure. If the other cloud providers like local, the test is skipped.
However getRandomClusterZone() was called before the above cloud
provider check, and if the zone label is not found the test was failed.
This makes the test call getRandomClusterZone() only if necessary
to avoid such unnecessary failures.

Fixes: #73771
2019-02-15 20:07:11 +00:00
Patrick Ohly
05cc31697f e2e/storage: speed up skipping, simplify APIs and test definition
CreateDriver (now called SetupTest) is a potentially expensive
operation, depending on the driver. Creating and tearing down a
framework instance also takes time (measured at 6 seconds on a fast
machine) and produces quite a bit of log output.

Both can be avoided for tests that skip based on static
information (like for instance the current OS, vendor, driver and test
pattern) by making the test suite responsible for creating framework
and driver.

The lifecycle of the TestConfig instance was confusing because it was
stored inside the DriverInfo, a struct which conceptually is static,
while the TestConfig is dynamic. It is cleaner to separate the two,
even if that means that an additional pointer must be passed into some
functions. Now CreateDriver is responsible for initializing the
PerTestConfig that is to be used by the test.

To make this approach simpler to implement (= less functions which
need the pointer) and the tests easier to read, the entire setup and
test definition is now contained in a single function. This is how it
is normally done in Ginkgo. This is easier to read because one can see
at a glance where variables are set, instead of having to trace values
though two additional structs (TestResource and TestInput).

Because we are changing the API already, also other changes are made:
- some function prototypes get simplified
- the naming of functions is changed to match their purpose
  (tests aren't executed by the test suite, they only get defined
  for later execution)
- unused methods get removed (TestSuite.skipUnsupportedTest is redundant)
2019-02-15 11:01:05 +01:00
Kubernetes Prow Robot
f9af7e94a9
Merge pull request #73962 from wongma7/glusterfs-sc
Fix glusterfs e2e not using correct storageclass
2019-02-13 14:32:16 -08:00
Kubernetes Prow Robot
812016fa23
Merge pull request #73818 from gnufied/add-e2e-for-no-expand
add e2e test when expansion is disabled
2019-02-13 12:16:09 -08:00
Kubernetes Prow Robot
1250237316
Merge pull request #73995 from humblec/fix-e2e
Use correct server url in dynamic provisioning tests
2019-02-13 09:45:15 -08:00
Hemant Kumar
7d823e5df0 also remove slow tag from resizing tests 2019-02-13 10:48:49 -05:00
Humble Chirammal
a078ebf246 Set correct server uri on e2e dynamic provisioner
Signed-off-by: Humble Chirammal <hchiramm@redhat.com>
2019-02-13 13:52:38 +05:30
Kubernetes Prow Robot
2aedcbc7ca
Merge pull request #73761 from andrewsykim/remove-cloud-provider-volume-deps
remove cloud provider dependencies to pkg/volume
2019-02-12 18:45:24 -08:00
Matthew Wong
6d73de1154 Fix glusterfs e2e not using correct storageclass 2019-02-12 11:31:29 -05:00
Patrick Ohly
ca42cf4993 e2e/storage: test provisioned volume on multiple nodes
Whether the read test after writing was done on the same node was
random for drivers that weren't locked onto a single node. Now it is
deterministic: it always happens on the same node.

The case with reading on another node is covered separately for test
configurations that support it (not locked onto a single node, more
than one node in the test cluster).

As before, the TestConfig.ClientNodeSelector is ignored by the
provisioning testsuite.
2019-02-12 09:21:50 +01:00
Patrick Ohly
54d8f1648f e2e/storage: improve PV checking
TestDynamicProvisioning had multiple ways of choosing additional
checks:
- the PvCheck callback
- the builtin write/read check controlled by a boolean
- the snapshot testing

Complicating matters further, that builtin write/read test had been
more customizable with new fields `NodeSelector` and
`ExpectUnschedulable` which were only set by one particular test (see
https://github.com/kubernetes/kubernetes/pull/70941).

That is confusing and will only get more confusing when adding more
checks in the future. Therefore the write/read check is now a separate
function that must be enabled explicitly by tests that want to run it.
The snapshot checking is also defined only for the snapshot test.

The test that expects unschedulable pods now also checks for that
particular situation itself. Instead of testing it with two pods (the
behavior from the write/read check) that both fail to start, only a
single unschedulable pod is created.

Because node name, node selector and the `ExpectUnschedulable` were
only used for checking, it is possible to simplify `StorageClassTest`
by removing all of these fields.

Expect(err).NotTo(HaveOccurred()) is an anti-pattern in Ginkgo testing
because a test failure doesn't explain what failed (see
https://github.com/kubernetes/kubernetes/issues/34059). We avoid it
now by making the check function itself responsible for checking
errors and including more information in those checks.
2019-02-09 14:20:17 +01:00
Andrew Kim
ca6a051b00 remove cloud provider dependencies to pkg/volume
Co-authored-by: Weibin Lin <linweibin1@huawei.com>
2019-02-09 01:16:55 -05:00
Davanum Srinivas
b975573385
move pkg/kubelet/apis/well_known_labels.go to staging/src/k8s.io/api/core/v1/
Co-Authored-By: Weibin Lin <linweibin1@huawei.com>

Change-Id: I163b2f2833e6b8767f72e2c815dcacd0f4e504ea
2019-02-05 13:39:07 -05:00
Jan Safranek
9ed73a948c Pass the test if event is not delivered 2019-01-21 17:03:10 +01:00
Cheng Xing
12ece9dacb CSI topology e2e tests 2019-01-11 18:36:06 -08:00
Deep Debroy
923df464fb Add multi PVC versions of tests for delayed binding
Signed-off-by: Deep Debroy <ddebroy@docker.com>
2018-11-09 12:17:31 -08:00
Masaki Kimura
6afcaccf7d Move the provisioning test for retain policy back to volume_provisioning.go
Provisioning test for retain policy requires each driver's backend volume
deletion logic. Without it, volume leakage happens. Move this test back
to volume_provisioning.go and test it only for gce, until general
backend volume deletion code for each driver becomes available.

Fixes: #70191
2018-10-24 19:21:28 +00:00
Masaki Kimura
4fcb36e205 Move minimum set of dynamic provisioning e2e test to testsuites 2018-10-22 16:04:43 +00:00
Patrick Ohly
8b17db7e0c e2e: modular framework
Not all users of the E2E framework want to run cloud-provider specific
tests. By splitting out the code it becomes possible to decide in
a E2E test suite which providers are supported.

This is achieved in two ways:
- the framework calls certain functions through a provider
  interface instead of calling specific cloud provider functions
  directly
- tests that are cloud-provider specific directly import the
  new provider packages

The ingress test utilities are only needed by a few tests. Splitting
them out into a separate package makes the framework simpler for test
suites not using those tests.

Fixes: #66649
2018-10-11 11:16:11 +02:00
Michelle Au
b1594f3cd1 Move storage tests that take longer than 2 minutes to slow suite 2018-09-20 15:29:00 -07:00
Matthew Wong
5d877436bf Update external provisioner test to use latest nfs-provisioner 2018-08-31 16:26:02 -04:00
Kubernetes Submit Queue
39ea20a5bf
Merge pull request #68034 from msau42/remove-feature-tag
Automatic merge from submit-queue (batch tested with PRs 67764, 68034, 67836). If you want to cherry-pick this change to another branch, please follow the instructions here: https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md.

Remove feature tag from dynamic provisioning topology tests

**What this PR does / why we need it**:
Now that the feature has been moved to beta, remove feature tag to let it run in the standard CI suite.

**Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*:
Fixes #

**Special notes for your reviewer**:

**Release note**:

```release-note
NONE
```
2018-08-30 09:59:30 -07:00
Kubernetes Submit Queue
9ca7ffdf59
Merge pull request #66577 from mkimuram/issue/66571
Automatic merge from submit-queue (batch tested with PRs 66577, 67948, 68001, 67982). If you want to cherry-pick this change to another branch, please follow the instructions here: https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md.

Refactor volume test in a similar way to csi tests

Refactoring for non-csi e2e test similar to below commit in csi e2e test.
4d11dab272 (diff-0d9ecaa3e6a0297186ad33f57aad472e)

Scopes for this refactoring are below three files:
  - test/e2e/storage/volumes.go
  - test/e2e/storage/volume_io.go
  - test/e2e/storage/persistent_volumes-volumemode.go



**What this PR does / why we need it**:

**Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*:
Fixes #66571

**Special notes for your reviewer**:
/sig storage
@davidz627 @msau42 @jsafrane  

**Release note**:

```release-note
NONE
```
2018-08-29 16:33:31 -07:00
Michelle Au
a1154682da Remove feature tag from dynamic provisioning topology tests 2018-08-29 13:43:53 -07:00
Masaki Kimura
877ed5c22d Refactor volume test in a similar way to csi tests
Refactoring for non-csi e2e test similar to below commit in csi e2e test.
4d11dab272 (diff-0d9ecaa3e6a0297186ad33f57aad472e)

Scopes for this refactoring are below four files:
  - test/e2e/storage/volumes.go
  - test/e2e/storage/volume_io.go
  - test/e2e/storage/persistent_volumes-volumemode.go
  - test/e2e/storage/subpath.go

fixes: #66571
2018-08-29 14:39:01 +00:00
Deep Debroy
10f652abec E2E tests for allowedTopologies and waitForConsumer for GCE PD and RePD
Signed-off-by: Deep Debroy <ddebroy@docker.com>
2018-08-28 12:35:43 -07:00
Deep Debroy
0417b21d50 End2End tests for DynamicVolumeProvisioning for EBS
Signed-off-by: Deep Debroy <ddebroy@docker.com>
2018-08-10 16:33:46 -07:00
Davanum Srinivas
6cd8bd62fe
e2e test harness - use busybox from dockerhub
Use the same pattern everywhere in the e2e test
harness, use busybox (from dockerhub) instead
of using the one from k8s.gcr.io registry.

Change-Id: I57c3b867408c1f9478a8909c26744ea0368ff003
2018-08-07 11:22:16 -04:00
Krunal Jain
539b3693f4 Reverting commit #56600 as GCE PD is allocated in chunks of GiB instead of GBs
Fixing comments and importing constant from util

Importing constant from util

Fixing comment in volume_provisioning.go
2018-07-16 11:55:57 -07:00
Matthew Wong
c968beceb1 Re-enable write-read pv check in volume provisioning tests 2018-07-10 16:20:58 -04:00
Kubernetes Submit Queue
18b16be622
Merge pull request #65223 from jsafrane/aws-inaccessible-key
Automatic merge from submit-queue (batch tested with PRs 65187, 65206, 65223, 64752, 65238). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Fixed detection of inaccessible AWS encryption key.

AWS provisioner now checks if created encrypted volume gets "Available" or it gets silently deleted by AWS because StorageClass referenced invalid (e.g. non-existing) KMS key for encryption.

This seems to be the only way how to detect such invalid key, because Kubernetes may not have enough permission to check if the key exists.

**Which issue(s) this PR fixes**
Fixes #62171

**Special notes for your reviewer**:

**Release note**:

```release-note
AWS now checks for validity of ecryption key when creating encrypted volumes. Dynamic provisioning of encrypted volume may get slower due to these checks.
```

/sig aws
/sig storage
@kubernetes/sig-aws-misc
2018-06-21 19:48:10 -07:00
Jan Safranek
7bbe309d8d Fixed detection of inaccessible AWS encryption key. 2018-06-19 10:11:47 +02:00
Jan Safranek
a15a2af085 Enable dynamic provisioning tests on AWS.
The tests are not slow, they finish on GCE under 1.5 minutes and on AWS
under 3 minutes.
2018-06-13 13:09:25 +02:00
Jan Safranek
408f62ca4e e2e test for block volume provisioning 2018-05-30 11:35:58 +02:00
Humble Chirammal
92928845d2 Enable GCE/GKE e2e tests for GlusterFS Dynamic Provisioner.
Signed-off-by: Humble Chirammal <hchiramm@redhat.com>
2018-05-07 23:04:36 +05:30
Kubernetes Submit Queue
34706b79e4
Merge pull request #59879 from humblec/gluster-dp-test-latest_1
Automatic merge from submit-queue. If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Add tests for GlusterFS dynamic provisioner.

This bring up a heketi server pod and the server will be running
    in mock mode, the PVC creation should work, however the volume
    attachment to a pod and read/write is not part of this test. Due
    to the same reason the tests are marked as [fast].


Signed-off-by: Humble Chirammal <hchiramm@redhat.com>



**What this PR does / why we need it**:

**Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*:
Fixes #

**Special notes for your reviewer**:

**Release note**:

```release-note

```
2018-04-30 06:09:52 -07:00
Humble Chirammal
b550134dfe This bring up a heketi server pod and the server will be running
in mock mode, the PVC creation should work, however the volume
attachment to a pod and read/write is not part of this test. Due
to the same reason the tests are marked as [fast].

Signed-off-by: Humble Chirammal <hchiramm@redhat.com>
2018-04-27 09:24:25 +05:30
Yecheng Fu
27e2e32b00 Use shorter timeout if possible.
- Add PodStartShortTimeout and ClaimProvisionShortTimeout constants.
- Change framework.PodStartTimeout to framework.PodStartShortTimeout in
  persistent_volumes-local.go. Busybox image is very small, no need to
  wait for a long time.
2018-04-19 10:07:59 +08:00
xiangpengzhao
1f80008f41 Remove the use of storage class beta annotations in e2e tests. 2018-04-10 15:29:08 +08:00
Jan Safranek
97fae903a6 Add e2e test for deletion 2018-03-05 09:25:51 +01:00
Cheng Xing
c08abb719f multi-zone PD e2e tests 2018-02-22 14:24:08 -08:00
Kubernetes Submit Queue
7dbb709413
Merge pull request #56509 from lpabon/csi-e2e
Automatic merge from submit-queue (batch tested with PRs 57266, 58187, 58186, 46245, 56509). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

e2e: CSI Tests

**What this PR does / why we need it**:
This e2e test tests the CSI external attacher with a mock CSI plugin driver.

**Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*: https://github.com/kubernetes/features/issues/178

**Special notes for your reviewer**:
* Tests features in https://github.com/kubernetes/features/issues/178
* Tests implementation of https://github.com/kubernetes/community/pull/1258
* Tests VolumeAttachment Object: https://github.com/kubernetes/kubernetes/pull/54463

**Release note**:
```release-note
NONE
```
2018-01-12 20:34:56 -08:00
Bowei Du
301488b235 Expose all GCE cloud proivder services versions, not just the GA API 2017-12-22 11:24:10 -08:00
Matthew Wong
9247ff7e21 Update nfsprovisioner image to v1.0.9 to fix annotation race with pv controller 2017-12-20 17:52:06 -05:00
Kubernetes Submit Queue
7ede2a012e
Merge pull request #56600 from edisonxiang/fixvolumesize
Automatic merge from submit-queue (batch tested with PRs 56600, 56814). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>.

Fix volume size allocation in gcd_pd

**What this PR does / why we need it**:
GCE PDs are allocated in chunks of GBs not GiB but CreateVolume function incorrectly creates volume in chunks of GiB.  
1 GiB = 1024 * 1024 * 1024 Bytes
1 GB = 1000 * 1000 * 1000 Bytes

**Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*:
Fixes #56081

**Special notes for your reviewer**:

**Release note**:

```release-note
Fixed dynamic provisioning of GCE PDs to round to the next GB instead of GiB
```
2017-12-19 14:08:38 -08:00
Luis Pabón
d1eb8a6163 e2e: CSI Volume tests
This e2e test tests the CSI volume plugin in kubernetes with
a CSI hostPath driver. It is also setup to be able to be
tested with more drivers in the future.
2017-12-18 22:04:52 -05:00
Rohit Jog
015e20cb15 e2e test layout changes for vsphere (#398) 2017-12-18 10:19:18 -08:00
edisonxiang
d80dbe7fea Fix GCE CreateVolume allocates in chunks of GiB incorrectly 2017-12-17 19:43:37 +08:00
David Zhu
e5aec8645d Changed GetAllZones to only get zones with nodes that are currently
running (renamed to GetAllCurrentZones). Added E2E test to confirm this
behavior.

Added node informer to cloud-provider controller to keep track of zones
with k8s nodes in them.
2017-11-20 16:04:18 -08:00
Dr. Stefan Schimanski
012b085ac8 pkg/apis/core: mechanical import fixes in dependencies 2017-11-09 12:14:08 +01:00
Di Xu
f7f3577035 use multi-arch busybox for e2e 2017-10-19 10:36:31 +08:00
Cheng Xing
fbeb07aeac Fixed nil dereference in dynamic provisioning e2e tests 2017-09-20 16:08:23 -07:00
Matthew Wong
a836cc35ba Add mount options e2e test 2017-09-19 20:47:05 -04:00
Matthew Wong
69b51a685a Add e2e test for storageclass.reclaimpolicy 2017-09-13 10:59:42 -04:00
Manjunath A Kumatagi
ee4d54c70c Port e2e tests for multi architecture 2017-09-01 05:40:52 +05:30
Jordan Liggitt
dd7be70a4a
Add rbac.authorization.k8s.io/v1 2017-08-09 17:04:54 -04:00
Michelle Au
e53ba82702 Cleanup storage e2e test names by removing redundant [sig-storage] tags and [Volume] tags 2017-07-20 11:11:40 -07:00
Jacob Simpson
29c1b81d4c Scripted migration from clientset_generated to client-go. 2017-07-17 15:05:37 -07:00
Ryan Hitchman
678ca905d6 Remove volume tags. 2017-07-12 11:11:16 -07:00
Ryan Hitchman
d4dc49ba90 Make storage e2e tests start with [sig-storage] instead of [k8s.io].
This makes understanding sig ownership from a test name very easy for
tools and humans.
2017-07-12 11:11:16 -07:00
Chao Xu
60604f8818 run hack/update-all 2017-06-22 11:31:03 -07:00
Chao Xu
cde4772928 run ./root-rewrite-all-other-apis.sh, then run make all, pkg/... compiles 2017-06-22 11:30:52 -07:00
Chao Xu
f4989a45a5 run root-rewrite-v1-..., compile 2017-06-22 10:25:57 -07:00
Kubernetes Submit Queue
b77ed78688 Merge pull request #44358 from wongma7/nfs-bump
Automatic merge from submit-queue

Bump external provisioner image to smaller version

The image is roughly half as big so this should improve speed/flakiness maybe
-->
```release-note
NONE
```
2017-06-08 04:38:27 -07:00
deads2k
954eb3ceb9 move labels to components which own the APIs 2017-05-31 10:32:06 -04:00
Huamin Chen
165d46a0a8 e2e test: test azure disk volume
Signed-off-by: Huamin Chen <hchen@redhat.com>
2017-04-28 18:51:34 +00:00
Matthew Wong
baf6b8f394 Bump external provisioner image to smaller version 2017-04-24 17:19:25 -04:00
Kubernetes Submit Queue
2e677a5f80 Merge pull request #43956 from jeffvance/e2e-helpers
Automatic merge from submit-queue (batch tested with PRs 40055, 42085, 44509, 44568, 43956)

improve error handling in e2e helpers

**What this PR does / why we need it**:
Changes most of the volume related helper funcs to return error rather than calling `Expect`. This is a better programming practice, is consistent with Go and Kubernetes, and allows helper funcs that create multiple resources to perform cleanup.

```release-note
NONE
```
2017-04-17 15:39:12 -07:00
Chao Xu
d4850b6c2b move pkg/api/v1/helpers.go to subpackage 2017-04-14 14:25:11 -07:00
Jeff Vance
0d81e4c87c improve error handling in e2e helpers by always returning error 2017-04-14 14:18:55 -07:00
Timothy St. Clair
203c0df017 Segregate storage e2es for easier assignment.
Further work is needed to isolate dependencies on shared tooling.
2017-04-12 20:39:29 -05:00