1012eedc3f
All contributions to this charm where made under Canonical copyright; switch to Apache-2.0 license as agreed so we can move forward with official project status. Change-Id: Ibaa7c300be9d7de7d227f56b3ea85f2bfbd0470b
81 lines
2.6 KiB
Python
81 lines
2.6 KiB
Python
# Copyright 2016 Canonical Ltd
|
|
#
|
|
# 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.
|
|
|
|
from mock import patch, call
|
|
import os
|
|
import cinder_utils as cinder_utils
|
|
|
|
from test_utils import (
|
|
CharmTestCase,
|
|
)
|
|
|
|
TO_PATCH = [
|
|
# helpers.core.hookenv
|
|
'relation_ids',
|
|
'service_name',
|
|
# storage_utils
|
|
'get_os_codename_package',
|
|
'templating',
|
|
'install_alternative',
|
|
'mkdir'
|
|
]
|
|
|
|
|
|
MOUNTS = [
|
|
['/mnt', '/dev/vdb']
|
|
]
|
|
|
|
|
|
class TestCinderUtils(CharmTestCase):
|
|
|
|
def setUp(self):
|
|
super(TestCinderUtils, self).setUp(cinder_utils, TO_PATCH)
|
|
self.service_name.return_value = 'cinder-ceph'
|
|
|
|
@patch('os.path.exists')
|
|
def test_register_configs_ceph(self, exists):
|
|
exists.return_value = True
|
|
self.get_os_codename_package.return_value = 'grizzly'
|
|
self.relation_ids.return_value = ['ceph:0']
|
|
configs = cinder_utils.register_configs()
|
|
calls = []
|
|
for conf in [cinder_utils.ceph_config_file()]:
|
|
calls.append(
|
|
call(conf,
|
|
cinder_utils.CONFIG_FILES[conf]['hook_contexts'])
|
|
)
|
|
configs.register.assert_has_calls(calls, any_order=True)
|
|
self.mkdir.assert_has_calls([
|
|
call(os.path.dirname(cinder_utils.ceph_config_file())),
|
|
call(os.path.dirname(cinder_utils.CEPH_CONF))
|
|
])
|
|
self.install_alternative.assert_called_with(
|
|
os.path.basename(cinder_utils.CEPH_CONF),
|
|
cinder_utils.CEPH_CONF, cinder_utils.ceph_config_file()
|
|
)
|
|
|
|
def test_set_ceph_kludge(self):
|
|
pass
|
|
"""
|
|
def set_ceph_env_variables(service):
|
|
# XXX: Horrid kludge to make cinder-volume use
|
|
# a different ceph username than admin
|
|
env = open('/etc/environment', 'r').read()
|
|
if 'CEPH_ARGS' not in env:
|
|
with open('/etc/environment', 'a') as out:
|
|
out.write('CEPH_ARGS="--id %s"\n' % service)
|
|
with open('/etc/init/cinder-volume.override', 'w') as out:
|
|
out.write('env CEPH_ARGS="--id %s"\n' % service)
|
|
"""
|