diff options
author | Chuck Short <chucks@redhat.com> | 2018-07-04 15:35:37 -0400 |
---|---|---|
committer | Chuck Short <chucks@redhat.com> | 2018-07-05 08:11:01 -0400 |
commit | 5c1b5cbad720b3d309152aaa0f54ad0bedb01aac (patch) | |
tree | 0ee2f2afea535db4485697ca2aaf9ba871321482 /cinder/privsep | |
parent | 52deeff8d2519c1700aa880d3fae0bb0e83ea86c (diff) | |
download | cinder-5c1b5cbad720b3d309152aaa0f54ad0bedb01aac.tar.gz |
Port nvmet driver to use privsep
Now that we have privsep support in cinder,
we can start using privsep in various drivers
so we can drop rootwrap support.
Change-Id: I3cff61b4cde16e00ad23d534c5281a2f1afcd29f
Signed-off-by: Chuck Short <chucks@redhat.com>
Diffstat (limited to 'cinder/privsep')
-rw-r--r-- | cinder/privsep/nvmcli.py | 41 | ||||
-rw-r--r-- | cinder/privsep/utils.py | 39 |
2 files changed, 80 insertions, 0 deletions
diff --git a/cinder/privsep/nvmcli.py b/cinder/privsep/nvmcli.py new file mode 100644 index 000000000..95f5b1c56 --- /dev/null +++ b/cinder/privsep/nvmcli.py @@ -0,0 +1,41 @@ +# Copyright 2018 Red Hat, Inc +# Copyright 2017 Rackspace Australia +# Copyright 2018 Michael Still and Aptira +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +""" +Helpers for nvmetcli related routines. +""" + +from oslo_concurrency import processutils + +import cinder.privsep + + +@cinder.privsep.sys_admin_pctxt.entrypoint +def restore(path): + cmd = [ + 'nvmetcli', + 'restore', + path] + return processutils.execute(*cmd) + + +@cinder.privsep.sys_admin_pctxt.entrypoint +def save(path): + cmd = [ + 'nvmetcli', + 'save', + path] + return processutils.execute(*cmd) diff --git a/cinder/privsep/utils.py b/cinder/privsep/utils.py new file mode 100644 index 000000000..fc76c6e6c --- /dev/null +++ b/cinder/privsep/utils.py @@ -0,0 +1,39 @@ +# Copyright 2018 Red Hat, Inc +# Copyright 2017 Rackspace Australia +# Copyright 2018 Michael Still and Aptira +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +""" +Helpers for cgroup related routines. +""" + +import os + +from cinder import exception +import cinder.privsep + + +@cinder.privsep.sys_admin_pctxt.entrypoint +def readfile(path): + if not os.path.exists(path): + raise exception.FileNotFound(file_path=path) + with open(path, 'r') as f: + return f.read() + + +@cinder.privsep.sys_admin_pctxt.entrypoint +def removefile(path): + if not os.path.exists(path): + raise exception.FileNotFound(file_path=path) + os.unlink(path) |