fa89064933
Adds specific disk file classes for EC policy types. The new ECDiskFile and ECDiskFileWriter classes are used by the ECDiskFileManager. ECDiskFileManager is registered with the DiskFileRouter for use with EC_POLICY type policies. Refactors diskfile tests into BaseDiskFileMixin and BaseDiskFileManagerMixin classes which are then extended in subclasses for the legacy replication-type DiskFile* and ECDiskFile* classes. Refactor to prefer use of a policy instance reference over a policy_index int to refer to a policy. Add additional verification to DiskFileManager.get_dev_path to validate the device root with common.constraints.check_dir, even when mount_check is disabled for use in on a virtual swift-all-in-one. Co-Authored-By: Thiago da Silva <thiago@redhat.com> Co-Authored-By: John Dickinson <me@not.mn> Co-Authored-By: Clay Gerrard <clay.gerrard@gmail.com> Co-Authored-By: Tushar Gohad <tushar.gohad@intel.com> Co-Authored-By: Paul Luse <paul.e.luse@intel.com> Co-Authored-By: Samuel Merritt <sam@swiftstack.com> Co-Authored-By: Christian Schwede <christian.schwede@enovance.com> Co-Authored-By: Yuan Zhou <yuan.zhou@intel.com> Change-Id: I22f915160dc67a9e18f4738c1ddf068344e8ad5d
74 lines
1.7 KiB
Python
74 lines
1.7 KiB
Python
# Copyright (c) 2010-2013 OpenStack, LLC.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
# implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
import unittest
|
|
|
|
from test.unit.proxy import test_server
|
|
from test.unit.proxy.test_server import teardown
|
|
|
|
from swift.obj import mem_server
|
|
|
|
|
|
def setup():
|
|
test_server.do_setup(mem_server)
|
|
|
|
|
|
class TestController(test_server.TestController):
|
|
pass
|
|
|
|
|
|
class TestProxyServer(test_server.TestProxyServer):
|
|
pass
|
|
|
|
|
|
class TestObjectController(test_server.TestObjectController):
|
|
def test_PUT_no_etag_fallocate(self):
|
|
# mem server doesn't call fallocate(), believe it or not
|
|
pass
|
|
|
|
# these tests all go looking in the filesystem
|
|
def test_policy_IO(self):
|
|
pass
|
|
|
|
def test_PUT_ec(self):
|
|
pass
|
|
|
|
def test_PUT_ec_multiple_segments(self):
|
|
pass
|
|
|
|
def test_PUT_ec_fragment_archive_etag_mismatch(self):
|
|
pass
|
|
|
|
|
|
class TestContainerController(test_server.TestContainerController):
|
|
pass
|
|
|
|
|
|
class TestAccountController(test_server.TestAccountController):
|
|
pass
|
|
|
|
|
|
class TestAccountControllerFakeGetResponse(
|
|
test_server.TestAccountControllerFakeGetResponse):
|
|
pass
|
|
|
|
|
|
if __name__ == '__main__':
|
|
setup()
|
|
try:
|
|
unittest.main()
|
|
finally:
|
|
teardown()
|