From: Michael Fritch Date: Mon, 8 Jun 2020 22:31:23 +0000 (-0600) Subject: python-common: Add NFSServiceSpec validate X-Git-Tag: wip-pdonnell-testing-20200918.022351~990^2~2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=45391a1270178de87c6d2305f657809d5e1e6072;p=ceph-ci.git python-common: Add NFSServiceSpec validate the ServiceSpec needs to be validated during `orch apply`, but not during `orch daemon add` Signed-off-by: Michael Fritch --- diff --git a/src/pybind/mgr/orchestrator/module.py b/src/pybind/mgr/orchestrator/module.py index 7947cdb408c..947778c70ba 100644 --- a/src/pybind/mgr/orchestrator/module.py +++ b/src/pybind/mgr/orchestrator/module.py @@ -885,7 +885,6 @@ Usage: placement=PlacementSpec.from_string(placement), ) - spec.validate_add() completion = self.add_nfs(spec) self._orchestrator_wait([completion]) raise_if_exception(completion) diff --git a/src/python-common/ceph/deployment/service_spec.py b/src/python-common/ceph/deployment/service_spec.py index 362dd1bfeb5..e9cc58b5364 100644 --- a/src/python-common/ceph/deployment/service_spec.py +++ b/src/python-common/ceph/deployment/service_spec.py @@ -509,11 +509,12 @@ class NFSServiceSpec(ServiceSpec): #: RADOS namespace where NFS client recovery data is stored in the pool. self.namespace = namespace - def validate_add(self): - servicespec_validate_add(self) + def validate(self): + super(NFSServiceSpec, self).validate() if not self.pool: - raise ServiceSpecValidationError('Cannot add NFS: No Pool specified') + raise ServiceSpecValidationError( + 'Cannot add NFS: No Pool specified') def rados_config_name(self): # type: () -> str diff --git a/src/python-common/ceph/tests/test_service_spec.py b/src/python-common/ceph/tests/test_service_spec.py index 12a8be84bfd..43bf8ee3afc 100644 --- a/src/python-common/ceph/tests/test_service_spec.py +++ b/src/python-common/ceph/tests/test_service_spec.py @@ -92,6 +92,8 @@ def test_servicespec_map_test(s_type, o_spec, s_id): "placement": dict(hosts=["host1:1.1.1.1"]) } + if s_type == 'nfs': + dict_spec['pool'] = 'pool' spec = ServiceSpec.from_json(dict_spec) assert isinstance(spec, o_spec) assert isinstance(spec.placement, PlacementSpec)