From bc2a18eee50b7b8e0b4678b74d5bd0f0f755e9d2 Mon Sep 17 00:00:00 2001 From: Chris Yang Date: Tue, 1 Jan 2019 14:20:40 +0800 Subject: [PATCH] QNAP: Support QES FW on TDS series NAS Support both QTS and QES FW on TDS series NAS models. Change-Id: I87129fae531b6d50b8490785badcb054a9dd9397 --- manila/share/drivers/qnap/qnap.py | 7 +- manila/tests/share/drivers/qnap/fakes.py | 106 ++++++++++++++++++ manila/tests/share/drivers/qnap/test_qnap.py | 15 +++ ...qnap-tds-support-qes-24704313a0881c8c.yaml | 4 + 4 files changed, 129 insertions(+), 3 deletions(-) create mode 100644 releasenotes/notes/qnap-tds-support-qes-24704313a0881c8c.yaml 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.