diff --git a/manila/share/drivers/qnap/qnap.py b/manila/share/drivers/qnap/qnap.py
index ab056df137..98a4b1b907 100644
--- a/manila/share/drivers/qnap/qnap.py
+++ b/manila/share/drivers/qnap/qnap.py
@@ -74,9 +74,10 @@ class QnapShareDriver(driver.ShareDriver):
1.0.5 - Fix bug #1773761, when user tries to manage share, the size
of managed share should not be changed.
1.0.6 - Add support for QES fw 2.1.0.
+ 1.0.7 - Add support for QES fw on TDS series NAS model.
"""
- DRIVER_VERSION = '1.0.6'
+ DRIVER_VERSION = '1.0.7'
def __init__(self, *args, **kwargs):
"""Initialize QnapShareDriver."""
@@ -131,10 +132,10 @@ class QnapShareDriver(driver.ShareDriver):
model_type = matches.group(1)
ts_model_types = (
- "TS", "SS", "IS", "TVS", "TDS", "TBS"
+ "TS", "SS", "IS", "TVS", "TBS"
)
tes_model_types = (
- "TES",
+ "TES", "TDS"
)
es_model_types = (
"ES",
diff --git a/manila/tests/share/drivers/qnap/fakes.py b/manila/tests/share/drivers/qnap/fakes.py
index 98d08d5764..3522c3430a 100644
--- a/manila/tests/share/drivers/qnap/fakes.py
+++ b/manila/tests/share/drivers/qnap/fakes.py
@@ -173,6 +173,62 @@ FAKE_RES_DETAIL_DATA_GETBASIC_INFO_TES_ES_2_2_0 = """
"""
+FAKE_RES_DETAIL_DATA_GETBASIC_INFO_TDS_TS_4_0_0 = """
+
+
+
+
+
+
+
+
+ """
+
+FAKE_RES_DETAIL_DATA_GETBASIC_INFO_TDS_TS_4_3_0 = """
+
+
+
+
+
+
+
+
+ """
+
+FAKE_RES_DETAIL_DATA_GETBASIC_INFO_TDS_ES_1_1_1 = """
+
+
+
+
+
+
+
+
+ """
+
+FAKE_RES_DETAIL_DATA_GETBASIC_INFO_TDS_ES_2_1_0 = """
+
+
+
+
+
+
+
+
+ """
+
+FAKE_RES_DETAIL_DATA_GETBASIC_INFO_TDS_ES_2_2_0 = """
+
+
+
+
+
+
+
+
+ """
+
+
FAKE_RES_DETAIL_DATA_GETBASIC_INFO_ERROR = """
@@ -625,6 +681,56 @@ class FakeGetBasicInfoResponseTesEs_2_2_0(object):
return FAKE_RES_DETAIL_DATA_GETBASIC_INFO_TES_ES_2_2_0
+class FakeGetBasicInfoResponseTdsTs_4_0_0(object):
+ """Fake GetBasicInfoTS response from TS nas."""
+
+ status = 'fackStatus'
+
+ def read(self):
+ """Mock response.read."""
+ return FAKE_RES_DETAIL_DATA_GETBASIC_INFO_TDS_TS_4_0_0
+
+
+class FakeGetBasicInfoResponseTdsTs_4_3_0(object):
+ """Fake GetBasicInfoTS response from TS nas."""
+
+ status = 'fackStatus'
+
+ def read(self):
+ """Mock response.read."""
+ return FAKE_RES_DETAIL_DATA_GETBASIC_INFO_TDS_TS_4_3_0
+
+
+class FakeGetBasicInfoResponseTdsEs_1_1_1(object):
+ """Fake GetBasicInfoTS response from ES nas."""
+
+ status = 'fackStatus'
+
+ def read(self):
+ """Mock response.read."""
+ return FAKE_RES_DETAIL_DATA_GETBASIC_INFO_TDS_ES_1_1_1
+
+
+class FakeGetBasicInfoResponseTdsEs_2_1_0(object):
+ """Fake GetBasicInfoTS response from ES nas."""
+
+ status = 'fackStatus'
+
+ def read(self):
+ """Mock response.read."""
+ return FAKE_RES_DETAIL_DATA_GETBASIC_INFO_TDS_ES_2_1_0
+
+
+class FakeGetBasicInfoResponseTdsEs_2_2_0(object):
+ """Fake GetBasicInfoTS response from ES nas."""
+
+ status = 'fackStatus'
+
+ def read(self):
+ """Mock response.read."""
+ return FAKE_RES_DETAIL_DATA_GETBASIC_INFO_TDS_ES_2_2_0
+
+
class FakeGetBasicInfoResponseError(object):
"""Fake GetBasicInfoTS response from TS nas."""
diff --git a/manila/tests/share/drivers/qnap/test_qnap.py b/manila/tests/share/drivers/qnap/test_qnap.py
index 878c953feb..0f252e35f5 100644
--- a/manila/tests/share/drivers/qnap/test_qnap.py
+++ b/manila/tests/share/drivers/qnap/test_qnap.py
@@ -159,6 +159,12 @@ class QnapShareDriverLoginTestCase(QnapShareDriverBaseTestCase):
}, {
'fake_basic_info': fakes.FakeGetBasicInfoResponseTesEs_2_1_0(),
'expect_result': api.QnapAPIExecutor
+ }, {
+ 'fake_basic_info': fakes.FakeGetBasicInfoResponseTdsTs_4_3_0(),
+ 'expect_result': api.QnapAPIExecutorTS
+ }, {
+ 'fake_basic_info': fakes.FakeGetBasicInfoResponseTdsEs_2_1_0(),
+ 'expect_result': api.QnapAPIExecutor
}, {
'fake_basic_info': fakes.FakeGetBasicInfoResponseEs_1_1_3(),
'expect_result': api.QnapAPIExecutor
@@ -194,6 +200,15 @@ class QnapShareDriverLoginTestCase(QnapShareDriverBaseTestCase):
}, {
'fake_basic_info': fakes.FakeGetBasicInfoResponseTesEs_2_2_0(),
'expect_result': exception.ShareBackendException
+ }, {
+ 'fake_basic_info': fakes.FakeGetBasicInfoResponseTdsTs_4_0_0(),
+ 'expect_result': exception.ShareBackendException
+ }, {
+ 'fake_basic_info': fakes.FakeGetBasicInfoResponseTdsEs_1_1_1(),
+ 'expect_result': exception.ShareBackendException
+ }, {
+ 'fake_basic_info': fakes.FakeGetBasicInfoResponseTdsEs_2_2_0(),
+ 'expect_result': exception.ShareBackendException
}, {
'fake_basic_info': fakes.FakeGetBasicInfoResponseEs_1_1_1(),
'expect_result': exception.ShareBackendException
diff --git a/releasenotes/notes/qnap-tds-support-qes-24704313a0881c8c.yaml b/releasenotes/notes/qnap-tds-support-qes-24704313a0881c8c.yaml
new file mode 100644
index 0000000000..1c161164aa
--- /dev/null
+++ b/releasenotes/notes/qnap-tds-support-qes-24704313a0881c8c.yaml
@@ -0,0 +1,4 @@
+---
+features:
+ - |
+ QNAP Manila driver supports QES FW on TDS series NAS.