self.assertIn(('node3', 'cluster2'), daemons)
@classmethod
- def create_export(cls, path, cluster_id, daemons, fsal):
+ def create_export(cls, path, cluster_id, daemons, fsal, sec_label_xattr=None):
if fsal == 'CEPH':
- fsal = {"name": "CEPH", "user_id":"admin", "fs_name": None}
+ fsal = {"name": "CEPH", "user_id":"admin", "fs_name": None, "sec_label_xattr": sec_label_xattr}
pseudo = "/cephfs{}".format(path)
else:
fsal = {"name": "RGW", "rgw_user_id": "admin"}
"tag": None,
"access_type": "RW",
"squash": "no_root_squash",
- "security_label": False,
+ "security_label": sec_label_xattr is not None,
"protocols": [4],
"transports": ["TCP"],
"clients": [{
exports = self._get("/api/nfs-ganesha/export")
self.assertEqual(len(exports), 0)
- data = self.create_export("/foo", 'cluster1', ['node1', 'node2'], 'CEPH')
+ data = self.create_export("/foo", 'cluster1', ['node1', 'node2'], 'CEPH', "security.selinux")
exports = self._get("/api/nfs-ganesha/export")
self.assertEqual(len(exports), 1)
class CephFSFSal(FSal):
- def __init__(self, name, user_id=None, fs_name=None, cephx_key=None):
+ def __init__(self, name, user_id=None, fs_name=None, sec_label_xattr=None,
+ cephx_key=None):
super(CephFSFSal, self).__init__(name)
self.fs_name = fs_name
self.user_id = user_id
+ self.sec_label_xattr = sec_label_xattr
self.cephx_key = cephx_key
@classmethod
return cls(fsal_block['name'],
fsal_block.get('user_id', None),
fsal_block.get('filesystem', None),
+ fsal_block.get('sec_label_xattr', None),
fsal_block.get('secret_access_key', None))
def to_fsal_block(self):
result['user_id'] = self.user_id
if self.fs_name:
result['filesystem'] = self.fs_name
+ if self.sec_label_xattr:
+ result['sec_label_xattr'] = self.sec_label_xattr
if self.cephx_key:
result['secret_access_key'] = self.cephx_key
return result
@classmethod
def from_dict(cls, fsal_dict):
return cls(fsal_dict['name'], fsal_dict['user_id'],
- fsal_dict['fs_name'], None)
+ fsal_dict['fs_name'], fsal_dict['sec_label_xattr'], None)
def to_dict(self):
return {
'name': self.name,
'user_id': self.user_id,
- 'fs_name': self.fs_name
+ 'fs_name': self.fs_name,
+ 'sec_label_xattr': self.sec_label_xattr
}
self.assertEqual(export.fsal.name, "CEPH")
self.assertEqual(export.fsal.user_id, "ganesha")
self.assertEqual(export.fsal.fs_name, "a")
+ self.assertEqual(export.fsal.sec_label_xattr, None)
self.assertEqual(len(export.clients), 2)
self.assertEqual(export.clients[0].addresses,
["192.168.0.10", "192.168.1.0/8"])
self.assertEqual(export.fsal.name, "CEPH")
self.assertEqual(export.fsal.user_id, "ganesha")
self.assertEqual(export.fsal.fs_name, "a")
+ self.assertEqual(export.fsal.sec_label_xattr, None)
self.assertEqual(len(export.clients), 2)
self.assertEqual(export.clients[0].addresses,
["192.168.0.10", "192.168.1.0/8"])
'fsal': {
'name': 'CEPH',
'user_id': 'ganesha',
- 'fs_name': 'a'
+ 'fs_name': 'a',
+ 'sec_label_xattr': None
}
})
'fsal': {
'name': 'CEPH',
'user_id': 'ganesha',
- 'fs_name': 'a'
+ 'fs_name': 'a',
+ 'sec_label_xattr': 'security.selinux'
}
})
self.assertEqual(export.fsal.name, "CEPH")
self.assertEqual(export.fsal.user_id, "ganesha")
self.assertEqual(export.fsal.fs_name, "a")
+ self.assertEqual(export.fsal.sec_label_xattr, 'security.selinux')
self.assertEqual(len(export.clients), 2)
self.assertEqual(export.clients[0].addresses,
["192.168.0.10", "192.168.1.0/8"])
self.assertEqual(export.fsal.name, "CEPH")
self.assertEqual(export.fsal.user_id, "ganesha")
self.assertEqual(export.fsal.fs_name, "a")
+ self.assertEqual(export.fsal.sec_label_xattr, None)
self.assertEqual(len(export.clients), 2)
self.assertEqual(export.clients[0].addresses,
["192.168.0.10", "192.168.1.0/8"])
'fsal': {
'name': 'CEPH',
'user_id': 'fs',
- 'fs_name': None
+ 'fs_name': None,
+ 'sec_label_xattr': 'security.selinux'
}
})
self.assertEqual(export.fsal.name, "CEPH")
self.assertEqual(export.fsal.user_id, "fs")
self.assertEqual(export.fsal.cephx_key, "fs_key")
+ self.assertEqual(export.fsal.sec_label_xattr, "security.selinux")
self.assertIsNone(export.fsal.fs_name)
self.assertEqual(len(export.clients), 0)
self.assertEqual(export.daemons, {"nodeb", "nodea"})