¡@

Home 

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