1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- # -*- coding: utf-8 -*-
- '''
- :codeauthor: Nicole Thomas <nicole@saltstack.com>
- '''
- # Import Python Libs
- from __future__ import absolute_import, print_function, unicode_literals
- import logging
- # Import Salt Testing Libs
- from tests.integration.cloud.helpers.cloud_test_base import CloudTest
- from tests.support.unit import skipIf
- # Import Salt Libs
- from salt.utils.versions import LooseVersion
- try:
- import azure # pylint: disable=unused-import
- HAS_AZURE = True
- except ImportError:
- HAS_AZURE = False
- if HAS_AZURE and not hasattr(azure, '__version__'):
- import azure.common
- log = logging.getLogger(__name__)
- TIMEOUT = 1000
- REQUIRED_AZURE = '1.1.0'
- def __has_required_azure():
- '''
- Returns True/False if the required version of the Azure SDK is installed.
- '''
- if HAS_AZURE:
- if hasattr(azure, '__version__'):
- version = LooseVersion(azure.__version__)
- else:
- version = LooseVersion(azure.common.__version__)
- if LooseVersion(REQUIRED_AZURE) <= version:
- return True
- return False
- @skipIf(not HAS_AZURE, 'These tests require the Azure Python SDK to be installed.')
- @skipIf(not __has_required_azure(), 'The Azure Python SDK must be >= {}.'.format(REQUIRED_AZURE))
- class AzureTest(CloudTest):
- '''
- Integration tests for the Azure cloud provider in Salt-Cloud
- '''
- PROVIDER = 'azurearm'
- REQUIRED_PROVIDER_CONFIG_ITEMS = ('subscription_id',)
- def test_instance(self):
- '''
- Test creating an instance on Azure
- '''
- # check if instance with salt installed returned
- ret_val = self.run_cloud('-p azure-test {0}'.format(self.instance_name), timeout=TIMEOUT)
- self.assertInstanceExists(ret_val)
- self.assertDestroyInstance(timeout=TIMEOUT)
|