'fsal': fsal,
'clients': clients
}
- ret, _, err = export_mgr.apply_export(cluster_id, json.dumps(raw_ex))
- if ret == 0:
+ applied_exports = export_mgr.apply_export(cluster_id, json.dumps(raw_ex))
+ if not applied_exports.has_error:
return self._get_schema_export(
export_mgr.get_export_by_pseudo(cluster_id, pseudo))
- raise NFSException(f"Export creation failed {err}")
+ raise NFSException(f"Export creation failed {applied_exports.changes[0].msg}")
@EndpointDoc("Get an NFS-Ganesha export",
parameters={
}
export_mgr = mgr.remote('nfs', 'fetch_nfs_export_obj')
- ret, _, err = export_mgr.apply_export(cluster_id, json.dumps(raw_ex))
- if ret == 0:
+ applied_exports = export_mgr.apply_export(cluster_id, json.dumps(raw_ex))
+ if not applied_exports.has_error:
return self._get_schema_export(
export_mgr.get_export_by_pseudo(cluster_id, pseudo))
- raise NFSException(f"Failed to update export: {err}")
+ raise NFSException(f"Export creation failed {applied_exports.changes[0].msg}")
@NfsTask('delete', {'cluster_id': '{cluster_id}',
'export_id': '{export_id}'}, 2.0)
from unittest.mock import Mock, patch
from urllib.parse import urlencode
+from nfs.export import AppliedExportResults
+
from .. import mgr
from ..controllers._version import APIVersion
from ..controllers.nfs import NFSGaneshaExports, NFSGaneshaUi
"clients": []
}
+ _applied_export = AppliedExportResults()
+
@classmethod
def setUpClass(cls):
super().setUpClass()
def test_create_export(self):
export_mgr = Mock()
created_nfs_export = deepcopy(self._nfs_module_export)
+ applied_nfs_export = deepcopy(self._applied_export)
created_nfs_export['pseudo'] = 'new-pseudo'
created_nfs_export['export_id'] = 2
export_mgr.get_export_by_pseudo.side_effect = [None, created_nfs_export]
- export_mgr.apply_export.return_value = (0, '', '')
+ export_mgr.apply_export.return_value = applied_nfs_export
mgr.remote.return_value = export_mgr
export_create_body = deepcopy(self._expected_export)
del export_create_body['export_id']
export_create_body['pseudo'] = created_nfs_export['pseudo']
+ applied_nfs_export.append(export_create_body)
self._post('/api/nfs-ganesha/export',
export_create_body,
version=APIVersion(2, 0))
self.assertStatus(201)
- expected_body = export_create_body
- expected_body['export_id'] = created_nfs_export['export_id']
- self.assertJsonBody(export_create_body)
+ applied_nfs_export.changes[0]['export_id'] = created_nfs_export['export_id']
+ self.assertJsonBody(applied_nfs_export.changes[0])
def test_create_export_with_existing_pseudo_fails(self):
export_mgr = Mock()
def test_set_export(self):
export_mgr = Mock()
updated_nfs_export = deepcopy(self._nfs_module_export)
+ applied_nfs_export = deepcopy(self._applied_export)
updated_nfs_export['pseudo'] = 'updated-pseudo'
export_mgr.get_export_by_pseudo.return_value = updated_nfs_export
- export_mgr.apply_export.return_value = (0, '', '')
+ export_mgr.apply_export.return_value = applied_nfs_export
mgr.remote.return_value = export_mgr
updated_export_body = deepcopy(self._expected_export)
updated_export_body['pseudo'] = updated_nfs_export['pseudo']
+ applied_nfs_export.append(updated_export_body)
self._put('/api/nfs-ganesha/export/myc/2',
updated_export_body,
version=APIVersion(2, 0))
self.assertStatus(200)
- self.assertJsonBody(updated_export_body)
+ self.assertJsonBody(applied_nfs_export.changes[0])
def test_delete_export(self):
mgr.remote = Mock(side_effect=[self._nfs_module_export, None])