from .config import config
from . import lockstatus as ls
from . import misc
+from teuthology.misc import get_distro
+from teuthology.misc import get_distro_version
log = logging.getLogger(__name__)
phys_host = status_info['vpshost']
if not phys_host:
return False
- from teuthology.misc import get_distro
os_type = get_distro(ctx)
- default_os_version = dict(
- ubuntu="12.04",
- fedora="18",
- centos="6.4",
- opensuse="12.2",
- sles="11-sp2",
- rhel="6.3",
- debian='6.0'
- )
+ os_version = get_distro_version(ctx)
+
createMe = decanonicalize_hostname(machine_name)
with tempfile.NamedTemporaryFile() as tmp:
try:
lcnfg = {}
distro = lcnfg.get('distro', os_type.lower())
- try:
- distroversion = ctx.config.get(
- 'os_version', default_os_version[distro])
- except AttributeError:
- distroversion = default_os_version[distro]
+ distroversion = lcnfg.get('distroversion', os_version)
file_info = {}
file_info['disk-size'] = lcnfg.get('disk-size', '30G')
return os_type
except AttributeError:
return ctx.os_type
+
+def get_distro_version(ctx):
+ default_os_version = dict(
+ ubuntu="12.04",
+ fedora="18",
+ centos="6.4",
+ opensuse="12.2",
+ sles="11-sp2",
+ rhel="6.4",
+ debian='7.0'
+ )
+ distro = get_distro(ctx)
+ try:
+ os_version = ctx.config.get('os_version', ctx.os_version)
+ except AttributeError:
+ os_version = default_os_version[distro]
+ try:
+ return ctx.config['downburst'].get('distroversion', os_type)
+ except KeyError:
+ return os_version
+ except AttributeError:
+ if ctx.os_version is not None:
+ return ctx.os_version
+ return os_version
+
--- /dev/null
+from .. import misc as teuthology
+
+class Mock: pass
+
+class TestGetDistroVersion(object):
+
+ def setup(self):
+ self.fake_ctx = Mock()
+ self.fake_ctx.config = {}
+ self.fake_ctx.os_version = '13.04'
+ self.fake_ctx_noarg = Mock()
+ self.fake_ctx_noarg.config = {}
+
+ def test_default_distro_version(self):
+ distroversion = teuthology.get_distro_version(self.fake_ctx)
+ assert distroversion == '13.04'
+
+ def test_argument_version(self):
+ self.fake_ctx.os_version = '13.04'
+ distroversion = teuthology.get_distro_version(self.fake_ctx)
+ assert distroversion == '13.04'
+
+ def test_teuth_config_version(self):
+ self.fake_ctx.config = {'os_version': '13.04'}
+ distroversion = teuthology.get_distro_version(self.fake_ctx)
+ assert distroversion == '13.04'
+
+ def test_teuth_config_downburst_version(self):
+ self.fake_ctx.config = {'downburst' : {'distroversion': '13.04'}}
+ distroversion = teuthology.get_distro_version(self.fake_ctx)
+ assert distroversion == '13.04'
+
+ def test_default_distro_noarg_version(self):
+ distroversion = teuthology.get_distro_version(self.fake_ctx_noarg)
+ #Default distro is ubuntu, default version of ubuntu is 012.04
+ assert distroversion == '12.04'
+
+ def test_teuth_config_noarg_version(self):
+ self.fake_ctx_noarg.config = {'os_version': '13.04'}
+ distroversion = teuthology.get_distro_version(self.fake_ctx_noarg)
+ assert distroversion == '13.04'
+
+ def test_teuth_config_downburst_noarg_version(self):
+ self.fake_ctx_noarg.config = {'downburst' : {'distroversion': '13.04'}}
+ distroversion = teuthology.get_distro_version(self.fake_ctx_noarg)
+ assert distroversion == '13.04'