Merge pull request #6 from openstack-charmers/lp1836108

Lp1836108
This commit is contained in:
Liam Young 2019-08-30 16:12:04 +01:00 committed by GitHub
commit 11904aaa31
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 20 additions and 14 deletions

0
README.md Normal file
View File

View File

@ -10,9 +10,12 @@ charm.
To use:
juju deploy cinder
juju deploy cinder-purestorage
juju deploy cinder-purestorage --config driver-source="ppa:narindergupta/purestorage"
juju add-relation cinder-purestorage cinder
Until purestorage packages went into Canonical repository plese use the driver
source from PPA narindergupta/purestorage.
Configuration
=============

View File

@ -1,5 +1,4 @@
import charms_openstack.charm
import charmhelpers.core.hookenv as ch_hookenv
charms_openstack.charm.use_defaults('charm.default-select-release')
@ -14,20 +13,19 @@ class CinderpurestorageCharm(
stateless = True
# Specify any config that the user *must* set.
mandatory_config = [
('san_ip', self.config.get('san-ip')),
('pure_api_token', self.config.get('pure-api-token'))
]
'san-ip', 'pure-api-token', 'protocol', 'volume-backend-name']
def cinder_configuration(self):
drivers = {
'iscsi': 'cinder.volume.drivers.pure.PureISCSIDriver',
'fc': 'cinder.volume.drivers.pure.PureFCDriver',
}
service = self.config.get('volume-backend-name') or service_name()
service = self.config.get('volume-backend-name')
volumedriver = drivers.get(self.config.get('protocol'))
driver_options = [
('san_ip', self.config.get('san-ip')),
('pure_api_token', self.config.get('pure-api-token')),
('volume_driver', drivers[self.config.get('protocol').lower()]),
('volume_driver', volumedriver),
('volume_backend_name', service)]
return driver_options

View File

@ -16,8 +16,10 @@ import charms_openstack.charm
import charms.reactive
# This charm's library contains all of the handler code associated with
# this charm -- we need to import it to get the definitions for the charm.
import charm.openstack.cinder_purestorage
# this charm -- we will use the auto-discovery feature of charms.openstack
# to get the definitions for the charm.
import charms_openstack.bus
charms_openstack.bus.discover()
charms_openstack.charm.use_defaults(
'charm.installed',
@ -29,5 +31,5 @@ charms_openstack.charm.use_defaults(
@charms.reactive.when('config.changed.driver-source')
def reinstall():
with charms_openstack.charm.provide_charm_instance() as charm:
charm.install()
with charms_openstack.charm.provide_charm_instance() as purestorage:
purestorage.install()

View File

@ -9,7 +9,7 @@ envlist = pep8,py3
setenv = VIRTUAL_ENV={envdir}
PYTHONHASHSEED=0
TERM=linux
LAYER_PATH={toxinidir}/layers
CHARM_LAYERS_DIR={toxinidir}/layers
JUJU_REPOSITORY={toxinidir}/build
passenv = http_proxy https_proxy INTERFACE_PATH
install_command =
@ -76,4 +76,4 @@ commands = {posargs}
[flake8]
# E402 ignore necessary for path append before sys module import in actions
ignore = E402
ignore = E402

View File

@ -46,4 +46,7 @@ class TestCinderpurestorageCharm(test_utils.PatchHelper):
charm = self._patch_config_and_charm({'a': 'b'})
config = charm.cinder_configuration()
# Add check here that configuration is as expected.
# self.assertEqual(config, {})
self.assertEqual(config, [('san_ip', None),
('pure_api_token', None),
('volume_driver', None),
('volume_backend_name', None)])