class TestConfiguration(TestCase): def setUp(self): self.test_path = os.path.dirname(os.path.realpath(__file__)) self.configuration1 = Configuration(os.path.join(self.test_path, 'CloudStackAIO.yml')) self.configuration2 = Configuration() def test_configuration_instances(self): self.assertNotEqual(id(self.configuration1), id(self.configuration2)) def test_shared_state(self): self.assertEqual(id(self.configuration1.CloudStackAIO), id(self.configuration2.CloudStackAIO)) def test_load_configuration(self): self.configuration1.load_config(os.path.join(self.test_path, 'Sites.yml')) self.assertEqual(id(self.configuration1.Sites), id(self.configuration2.Sites)) self.assertEqual(self.configuration1.Sites, [dict(name='EXOSCALE', adapter='CloudStack')]) self.assertEqual(self.configuration2.CloudStackAIO, {'api_key': 'asdfghjkl', 'api_secret': 'qwertzuiop'}) def test_base64_encoded_user_data(self): result = (b'I2Nsb3VkLWNvbmZpZwoKd3JpdGVfZmlsZXM6CiAgLSBwYXRoOiAvZXRjL2huc2NpY2xvdWQvc2l0ZS1pZC5jZmcKICAgIGNvbn', b'RlbnQ6IHwKICAgICAgRXhvc2NhbGUKICAgIHBlcm1pc3Npb25zOiAnMDY0NCcK') self.configuration1.load_config(os.path.join(self.test_path, 'Sites.yml')) self.assertEqual(self.configuration1.EXOSCALE.MachineTypeConfiguration.Micro.user_data, b''.join(result)) def test_access_missing_attribute(self): with self.assertRaises(AttributeError): _ = self.configuration2.FooBar
def test_update_configuration(self): with open(os.path.join(self.test_path, "OpenStack.yml"), "r") as config_file: config_file_content = yaml.safe_load(config_file) self.configuration1 = Configuration(config_file_content) self.assertEqual( self.configuration1.OpenStack, AttributeDict(api_key="qwertzuiop", api_secret="katze123"), )
def __init__(self, machine_type: str, site_name: str): self._configuration = getattr(Configuration(), site_name) self.cloud_stack_client = CloudStack( end_point=self._configuration.end_point, api_key=self._configuration.api_key, api_secret=self._configuration.api_secret, event_loop=runtime._meta_runner.runners[asyncio].event_loop, ) self._machine_type = machine_type self._site_name = site_name key_translator = StaticMapping( remote_resource_uuid="id", drone_uuid="name", resource_status="state" ) translator_functions = StaticMapping( created=lambda date: datetime.strptime(date, "%Y-%m-%dT%H:%M:%S%z"), updated=lambda date: datetime.strptime(date, "%Y-%m-%dT%H:%M:%S%z"), state=lambda x, translator=StaticMapping( Present=ResourceStatus.Booting, Running=ResourceStatus.Running, Stopped=ResourceStatus.Stopped, Expunged=ResourceStatus.Deleted, Destroyed=ResourceStatus.Deleted, ): translator[x], ) self.handle_response = partial( self.handle_response, key_translator=key_translator, translator_functions=translator_functions, )
def __init__(self, machine_type: str, site_name: str): self._configuration = getattr(Configuration(), site_name) self._machine_type = machine_type self._site_name = site_name auth = AuthPassword( auth_url=self._configuration.auth_url, username=self._configuration.username, password=self._configuration.password, project_name=self._configuration.project_name, user_domain_name=self._configuration.user_domain_name, project_domain_name=self._configuration.project_domain_name, ) self.nova = NovaClient(session=auth) key_translator = StaticMapping( remote_resource_uuid="id", drone_uuid="name", resource_status="status" ) translator_functions = StaticMapping( created=lambda date: datetime.strptime(date, "%Y-%m-%dT%H:%M:%SZ"), updated=lambda date: datetime.strptime(date, "%Y-%m-%dT%H:%M:%SZ"), status=lambda x, translator=StaticMapping( BUILD=ResourceStatus.Booting, ACTIVE=ResourceStatus.Running, SHUTOFF=ResourceStatus.Stopped, ERROR=ResourceStatus.Error, ): translator[x], ) self.handle_response = partial( self.handle_response, key_translator=key_translator, translator_functions=translator_functions, )
class TestConfiguration(TestCase): def setUp(self): self.test_path = os.path.dirname(os.path.realpath(__file__)) self.configuration1 = Configuration( os.path.join(self.test_path, "CloudStackAIO.yml")) self.configuration2 = Configuration() def test_configuration_instances(self): self.assertNotEqual(id(self.configuration1), id(self.configuration2)) def test_shared_state(self): self.assertEqual(id(self.configuration1.CloudStackAIO), id(self.configuration2.CloudStackAIO)) def test_load_configuration(self): self.configuration1.load_config( os.path.join(self.test_path, "Sites.yml")) self.assertEqual(id(self.configuration1.Sites), id(self.configuration2.Sites)) self.assertEqual( self.configuration1.Sites, [ dict(name="EXOSCALE", adapter="CloudStack"), dict(name="SLURM", adapter="Slurm"), ], ) self.assertEqual( self.configuration2.CloudStackAIO, { "api_key": "asdfghjkl", "api_secret": "qwertzuiop" }, ) def test_update_configuration(self): with open(os.path.join(self.test_path, "OpenStack.yml"), "r") as config_file: config_file_content = yaml.safe_load(config_file) self.configuration1 = Configuration(config_file_content) self.assertEqual( self.configuration1.OpenStack, AttributeDict(api_key="qwertzuiop", api_secret="katze123"), ) def test_translate_config(self): b64_result = ( b"I2Nsb3VkLWNvbmZpZwoKd3JpdGVfZmlsZXM6CiAgLSBwYXRoOiAvZXRjL2huc2NpY2xvdWQvc2l0ZS1pZC5jZmcKICAgIGNvbn", b"RlbnQ6IHwKICAgICAgRXhvc2NhbGUKICAgIHBlcm1pc3Npb25zOiAnMDY0NCcK", ) self.configuration1.load_config( os.path.join(self.test_path, "Sites.yml")) self.assertEqual( self.configuration1.EXOSCALE.MachineTypeConfiguration.Micro. user_data, b"".join(b64_result), ) executor = self.configuration1.SLURM.executor self.assertIsInstance(executor, SSHExecutor) self.assertEqual( executor._parameters, dict( host="somehost.de", username="******", client_keys=["where the private key is"], ), ) def test_access_missing_attribute(self): with self.assertRaises(AttributeError): _ = self.configuration2.FooBar
def setUp(self): self.test_path = os.path.dirname(os.path.realpath(__file__)) self.configuration1 = Configuration( os.path.join(self.test_path, "CloudStackAIO.yml")) self.configuration2 = Configuration()
# add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. # import os import sys sys.path.insert(0, os.path.abspath("../..")) from tardis import __about__ # noqa E402 # Add necessary configuration to build documentation without import errors from tardis.configuration.configuration import Configuration # noqa E402 configuration = Configuration({ "Plugins": { "SqliteRegistry": { "db_file": ":memory:" } }, "Sites": [] }) # -- Project information ----------------------------------------------------- project = __about__.__title__ copyright = __about__.__copyright__ author = __about__.__author__ # The short X.Y version version = __about__.__version__ # The full version, including alpha/beta/rc tags release = version
def __init__(self): config = Configuration() self.dummy_config = config.BatchSystem
def __init__(self): config = Configuration() self.fake_config = config.BatchSystem self._drained_machines = {}