.. code:: bash
- $ ceph nfs cluster create <type> <clusterid> [<placement>]
+ $ ceph nfs cluster create <clusterid> [<placement>]
This creates a common recovery pool for all NFS Ganesha daemons, new user based on
``clusterid``, and a common NFS Ganesha config RADOS object.
Currently, NFS Ganesha daemon deployed by cephadm listens on the standard
port. So only one daemon will be deployed on a host.
-``<type>`` signifies the export type, which corresponds to the NFS Ganesha file
-system abstraction layer (FSAL). Permissible values are ``"cephfs`` or
-``rgw``, but currently only ``cephfs`` is supported.
-
``<clusterid>`` is an arbitrary string by which this NFS Ganesha cluster will be
known.
'''
# Disable any running nfs ganesha daemon
self._check_nfs_server_status()
- self._nfs_cmd('cluster', 'create', self.export_type, self.cluster_id)
+ self._nfs_cmd('cluster', 'create', self.cluster_id)
# Check for expected status and daemon name (nfs.<cluster_id>)
self._check_nfs_cluster_status('running', 'NFS Ganesha cluster deployment failed')
'''
Test idempotency of cluster create and delete commands.
'''
- self._test_idempotency(self._test_create_cluster, ['nfs', 'cluster', 'create', self.export_type,
- self.cluster_id])
+ self._test_idempotency(self._test_create_cluster, ['nfs', 'cluster', 'create', self.cluster_id])
self._test_idempotency(self._test_delete_cluster, ['nfs', 'cluster', 'delete', self.cluster_id])
def test_create_cluster_with_invalid_cluster_id(self):
'''
try:
invalid_cluster_id = '/cluster_test' # Only [A-Za-z0-9-_.] chars are valid
- self._nfs_cmd('cluster', 'create', self.export_type, invalid_cluster_id)
+ self._nfs_cmd('cluster', 'create', invalid_cluster_id)
self.fail(f"Cluster successfully created with invalid cluster id {invalid_cluster_id}")
except CommandFailedError as e:
# Command should fail for test to pass
if e.exitstatus != errno.EINVAL:
raise
- def test_create_cluster_with_invalid_export_type(self):
- '''
- Test nfs cluster deployment failure with invalid export type.
- '''
- try:
- invalid_export_type = 'rgw' # Only cephfs is valid
- self._nfs_cmd('cluster', 'create', invalid_export_type, self.cluster_id)
- self.fail(f"Cluster successfully created with invalid export type {invalid_export_type}")
- except CommandFailedError as e:
- # Command should fail for test to pass
- if e.exitstatus != errno.EINVAL:
- raise
-
def test_create_and_delete_export(self):
'''
Test successful creation and deletion of the cephfs export.
f"{self.pool_ns}")
@cluster_setter
- def create_nfs_cluster(self, export_type, cluster_id, placement):
- if export_type != 'cephfs':
- return -errno.EINVAL, "", f"Invalid export type: {export_type}"
+ def create_nfs_cluster(self, cluster_id, placement):
try:
pool_list = [p['pool_name'] for p in self.mgr.get_osdmap().dump().get('pools', [])]
},
{
'cmd': 'nfs cluster create '
- 'name=type,type=CephString '
f'name=clusterid,type=CephString,goodchars={goodchars} '
'name=placement,type=CephString,req=false ',
'desc': "Create an NFS Cluster",
@mgr_cmd_wrap
def _cmd_nfs_cluster_create(self, inbuf, cmd):
- return self.nfs.create_nfs_cluster(cluster_id=cmd['clusterid'], export_type=cmd['type'],
+ return self.nfs.create_nfs_cluster(cluster_id=cmd['clusterid'],
placement=cmd.get('placement', None))
@mgr_cmd_wrap
ceph_adm mgr module enable test_orchestrator
ceph_adm orch set backend test_orchestrator
ceph_adm test_orchestrator load_data -i $CEPH_ROOT/src/pybind/mgr/test_orchestrator/dummy_data.json
- prun ceph_adm nfs cluster create cephfs $cluster_id
+ prun ceph_adm nfs cluster create $cluster_id
prun ceph_adm nfs export create cephfs "a" $cluster_id "/cephfs"
for name in a b c d e f g h i j k l m n o p
pseudo_path="/cephfs"
if [ "$cephadm" -gt 0 ]; then
cluster_id="vstart"
- prun ceph_adm nfs cluster create cephfs $cluster_id
+ prun ceph_adm nfs cluster create $cluster_id
prun ceph_adm nfs export create cephfs "a" $cluster_id $pseudo_path
port="2049"
else