OpenStack Study: hus_backend.py
OpenStack Index
**** CubicPower OpenStack Study ****
# Copyright (c) 2013 Hitachi Data Systems, Inc. # Copyright (c) 2013 OpenStack Foundation # All Rights Reserved. # # 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. # """ Hitachi Unified Storage (HUS) platform. Backend operations. """ from cinder.openstack.common import log as logging from cinder import utils LOG = logging.getLogger("cinder.volume.driver")
**** CubicPower OpenStack Study **** class HusBackend: """Back end. Talks to HUS."""
**** CubicPower OpenStack Study **** def get_version(self, cmd, ver, ip0, ip1, user, pw): out, err = utils.execute(cmd, '--driver-version', ver, '--ip0', ip0, '--ip1', ip1, '--user', user, '--password', pw, '--version', '1', run_as_root=True, check_exit_code=True) LOG.debug('get_version: ' + out + ' -- ' + err) return out
**** CubicPower OpenStack Study **** def get_iscsi_info(self, cmd, ver, ip0, ip1, user, pw): out, err = utils.execute(cmd, '--driver-version', ver, '--ip0', ip0, '--ip1', ip1, '--user', user, '--password', pw, '--iscsi', '1', check_exit_code=True) LOG.debug('get_iscsi_info: ' + out + ' -- ' + err) return out
**** CubicPower OpenStack Study **** def get_hdp_info(self, cmd, ver, ip0, ip1, user, pw): out, err = utils.execute(cmd, '--driver-version', ver, '--ip0', ip0, '--ip1', ip1, '--user', user, '--password', pw, '--hdp', '1', check_exit_code=True) LOG.debug('get_hdp_info: ' + out + ' -- ' + err) return out
**** CubicPower OpenStack Study **** def create_lu(self, cmd, ver, ip0, ip1, user, pw, id, hdp, start, end, size): out, err = utils.execute(cmd, '--driver-version', ver, '--ip0', ip0, '--ip1', ip1, '--user', user, '--password', pw, '--create-lun', '1', '--array-id', id, '--hdp', hdp, '--start', start, '--end', end, '--size', size, check_exit_code=True) LOG.debug('create_lu: ' + out + ' -- ' + err) return out
**** CubicPower OpenStack Study **** def delete_lu(self, cmd, ver, ip0, ip1, user, pw, id, lun): out, err = utils.execute(cmd, '--driver-version', ver, '--ip0', ip0, '--ip1', ip1, '--user', user, '--password', pw, '--delete-lun', '1', '--array-id', id, '--lun', lun, '--force', 1, check_exit_code=True) LOG.debug('delete_lu: ' + out + ' -- ' + err) return out
**** CubicPower OpenStack Study **** def create_dup(self, cmd, ver, ip0, ip1, user, pw, id, src_lun, hdp, start, end, size): out, err = utils.execute(cmd, '--driver-version', ver, '--ip0', ip0, '--ip1', ip1, '--user', user, '--password', pw, '--create-dup', '1', '--array-id', id, '--pvol', src_lun, '--hdp', hdp, '--start', start, '--end', end, '--size', size, check_exit_code=True) LOG.debug('create_dup: ' + out + ' -- ' + err) return out
**** CubicPower OpenStack Study **** def extend_vol(self, cmd, ver, ip0, ip1, user, pw, id, lun, new_size): out, err = utils.execute(cmd, '--driver-version', ver, '--ip0', ip0, '--ip1', ip1, '--user', user, '--password', pw, '--extend-lun', '1', '--array-id', id, '--lun', lun, '--size', new_size, check_exit_code=True) LOG.debug('extend_vol: ' + out + ' -- ' + err) return out
**** CubicPower OpenStack Study **** def add_iscsi_conn(self, cmd, ver, ip0, ip1, user, pw, id, lun, ctl, port, iqn, initiator): out, err = utils.execute(cmd, '--driver-version', ver, '--ip0', ip0, '--ip1', ip1, '--user', user, '--password', pw, '--add-iscsi-connection', '1', '--array-id', id, '--lun', lun, '--ctl', ctl, '--port', port, '--target', iqn, '--initiator', initiator, check_exit_code=True) LOG.debug('add_iscsi_conn: ' + out + ' -- ' + err) return out
**** CubicPower OpenStack Study **** def del_iscsi_conn(self, cmd, ver, ip0, ip1, user, pw, id, lun, ctl, port, iqn, initiator): out, err = utils.execute(cmd, '--driver-version', ver, '--ip0', ip0, '--ip1', ip1, '--user', user, '--password', pw, '--delete-iscsi-connection', '1', '--array-id', id, '--lun', lun, '--ctl', ctl, '--port', port, '--target', iqn, '--initiator', initiator, '--force', 1, check_exit_code=True) LOG.debug('del_iscsi_conn: ' + out + ' -- ' + err) return out
|