mirror of
https://github.com/valitydev/salt.git
synced 2024-11-07 17:09:03 +00:00
d612bd27e4
This moves mislocated tests to their proper locations to match the files they test, merging tests into existing modules where necessary.
116 lines
5.5 KiB
Python
116 lines
5.5 KiB
Python
# -*- coding: utf-8 -*-
|
|
'''
|
|
:codeauthor: :email:`Eric Radman <ericshane@eradman.com>`
|
|
'''
|
|
|
|
# Import Python libs
|
|
from __future__ import absolute_import
|
|
|
|
# Import Salt Testing libs
|
|
from tests.support.unit import skipIf, TestCase
|
|
from tests.support.mock import (
|
|
MagicMock,
|
|
patch,
|
|
NO_MOCK,
|
|
NO_MOCK_REASON,
|
|
)
|
|
|
|
# Import Salt libs
|
|
import salt.cloud
|
|
|
|
EXAMPLE_PROVIDERS = {
|
|
'nyc_vcenter': {'vmware': {'driver': 'vmware',
|
|
'password': '123456',
|
|
'profiles': {'nyc-vm': {'cluster': 'nycvirt',
|
|
'datastore': 'datastore1',
|
|
'devices': {'disk': {'Hard disk 1': {'controller': 'SCSI controller 1',
|
|
'size': 20}},
|
|
'network': {'Network Adapter 1': {'mac': '44:44:44:44:44:42',
|
|
'name': 'vlan50',
|
|
'switch_type': 'standard'}},
|
|
'scsi': {'SCSI controller 1': {'type': 'paravirtual'}}},
|
|
'extra_config': {'mem.hotadd': 'yes'},
|
|
'folder': 'coreinfra',
|
|
'image': 'rhel6_64Guest',
|
|
'memory': '8GB',
|
|
'num_cpus': 2,
|
|
'power_on': True,
|
|
'profile': 'nyc-vm',
|
|
'provider': 'nyc_vcenter:vmware',
|
|
'resourcepool': 'Resources'}},
|
|
'url': 'vca1.saltstack.com',
|
|
'user': 'root'}}
|
|
}
|
|
|
|
EXAMPLE_PROFILES = {
|
|
'nyc-vm': {'cluster': 'nycvirt',
|
|
'datastore': 'datastore1',
|
|
'devices': {'disk': {'Hard disk 1': {'controller': 'SCSI controller 1',
|
|
'size': 20}},
|
|
'network': {'Network Adapter 1': {'mac': '44:44:44:44:44:42',
|
|
'name': 'vlan50',
|
|
'switch_type': 'standard'}},
|
|
'scsi': {'SCSI controller 1': {'type': 'paravirtual'}}},
|
|
'extra_config': {'mem.hotadd': 'yes'},
|
|
'folder': 'coreinfra',
|
|
'image': 'rhel6_64Guest',
|
|
'memory': '8GB',
|
|
'num_cpus': 2,
|
|
'power_on': True,
|
|
'profile': 'nyc-vm',
|
|
'provider': 'nyc_vcenter:vmware',
|
|
'resourcepool': 'Resources'}
|
|
}
|
|
|
|
EXAMPLE_MAP = {
|
|
'nyc-vm': {'db1': {'cpus': 4,
|
|
'devices': {'disk': {'Hard disk 1': {'size': 40}},
|
|
'network': {'Network Adapter 1': {'mac': '22:4a:b2:92:b3:eb'}}},
|
|
'memory': '16GB',
|
|
'name': 'db1'}}
|
|
}
|
|
|
|
|
|
@skipIf(NO_MOCK, NO_MOCK_REASON)
|
|
class MapConfTest(TestCase):
|
|
'''
|
|
Validate evaluation of salt-cloud map configuration
|
|
'''
|
|
|
|
def test_cloud_map_merge_conf(self):
|
|
'''
|
|
Ensure that nested values can be selectivly overridden in a map file
|
|
'''
|
|
with patch('salt.config.check_driver_dependencies', MagicMock(return_value=True)), \
|
|
patch('salt.cloud.Map.read', MagicMock(return_value=EXAMPLE_MAP)):
|
|
self.maxDiff = None
|
|
opts = {'extension_modules': '/var/cache/salt/master/extmods',
|
|
'providers': EXAMPLE_PROVIDERS, 'profiles': EXAMPLE_PROFILES}
|
|
cloud_map = salt.cloud.Map(opts)
|
|
merged_profile = {
|
|
'create': {'db1': {'cluster': 'nycvirt',
|
|
'cpus': 4,
|
|
'datastore': 'datastore1',
|
|
'devices': {'disk': {'Hard disk 1': {'controller': 'SCSI controller 1',
|
|
'size': 40}},
|
|
'network': {'Network Adapter 1': {'mac': '22:4a:b2:92:b3:eb',
|
|
'name': 'vlan50',
|
|
'switch_type': 'standard'}},
|
|
'scsi': {'SCSI controller 1': {'type': 'paravirtual'}}},
|
|
'driver': 'vmware',
|
|
'extra_config': {'mem.hotadd': 'yes'},
|
|
'folder': 'coreinfra',
|
|
'image': 'rhel6_64Guest',
|
|
'memory': '16GB',
|
|
'name': 'db1',
|
|
'num_cpus': 2,
|
|
'password': '123456',
|
|
'power_on': True,
|
|
'profile': 'nyc-vm',
|
|
'provider': 'nyc_vcenter:vmware',
|
|
'resourcepool': 'Resources',
|
|
'url': 'vca1.saltstack.com',
|
|
'user': 'root'}}
|
|
}
|
|
self.assertEqual(cloud_map.map_data(), merged_profile)
|