def test_new_clouds(): settings['CLOUD'] = 'aws' instance = Instance.new(settings=settings) assert isinstance(instance, AWSInstance) settings['CLOUD'] = 'gcp' instance = Instance.new(settings=settings) assert isinstance(instance, GCPInstance)
def test_new_bare_ip_with_port(): instance = Instance.new(settings=settings, uid='myid', ip='1.1.1.1:2022') assert isinstance(instance, BareInstance) assert instance.ip == '1.1.1.1' assert instance.port == 2022 assert instance.username == default_username assert instance.keypair == default_keypair
def create_bare(self): """ Create instances for the Bare provider """ self.instances = [] for ip in self.settings['NODES']: new_instance = Instance.new(settings=self.settings, cluster=self) new_instance.ip = ip self.instances.append(new_instance)
def test_new_bare(): instance = Instance.new(settings=settings) assert isinstance(instance, BareInstance) instance = Instance.new(settings=settings, uid='myid') assert instance.uid == 'myid' assert instance.port == 22 assert instance.username == default_username assert instance.keypair == default_keypair instance = Instance.new(settings=settings, uid='myid', ip='1.1.1.1', port=33, username='******', keypair='mykey') assert instance.ip == '1.1.1.1' assert instance.port == 33 assert instance.username == 'me' assert instance.keypair == 'mykey' assert instance.to_dict() == {'ip': '1.1.1.1', 'port': 33, 'uid': 'myid'}
def from_list(cls, values, settings): """ From a list of dicts (each dict is an instances) """ logger.debug('Creating Cluster from list') self = cls() self.settings = settings self.instances = [] for instance in values: new_instance = Instance.from_dict(instance, settings, cluster=self) self.instances.append(new_instance) return self
def from_list(cls, values, settings): """ From a list of dicts (each dict is an `Instance.to_dict`) """ logger.debug('Creating Cluster from list') self = cls() self.settings = settings self.instances = [] for instance in values: uid, ip, port = instance['uid'], instance['ip'], instance['port'] new_instance = Instance.new(settings=settings, cluster=self, uid=uid, ip=ip, port=port) self.instances.append(new_instance) return self
def create_cloud(self): instances = [] for i in range(self.settings['NUMBER_NODES']): new_instance = Instance.new(settings=self.settings, cluster=self) instances.append(new_instance) create_nodes = [instance.create(suffix=i) for i, instance in enumerate(instances)] fetch_nodes = [instance.node for instance in instances] self.driver.wait_until_running(fetch_nodes) node_ids = [node.id for node in fetch_nodes] all_nodes = self.driver.list_nodes() new_nodes = [node for node in all_nodes if node.id in node_ids] for instance, node in zip(instances, new_nodes): instance.node = node self.instances = instances
def create_cloud(self): """ Create instances for the cloud providers """ instances = [] for i in range(self.settings['NUMBER_NODES']): new_instance = Instance.new(settings=self.settings, cluster=self) instances.append(new_instance) create_nodes = [instance.create(suffix=i) for i, instance in enumerate(instances)] fetch_nodes = [instance.node for instance in instances] self.driver.wait_until_running(fetch_nodes) node_ids = [node.id for node in fetch_nodes] all_nodes = self.driver.list_nodes() new_nodes = [node for node in all_nodes if node.id in node_ids] for instance, node in zip(instances, new_nodes): instance.node = node self.instances = instances
def test_bare_new(): instance = Instance.new(settings=settings) assert isinstance(instance, BareInstance)
def test_bare_fromdict_todict(): instance = Instance.from_uid("fakeid", settings=settings) assert instance.uid == "fakeid"
def create_bare(self): self.instances = [] for ip in self.settings['NODES']: new_instance = Instance.new(settings=self.settings, cluster=self) new_instance.ip = ip self.instances.append(new_instance)
from __future__ import unicode_literals import pytest import os from datasciencebox.core import salt from datasciencebox.core.project import Project from datasciencebox.core.cloud.cluster import Cluster from datasciencebox.core.cloud.instance import Instance cluster = Cluster() cluster.instances.append( Instance(ip='0.0.0.0', username='******', keypair='/home/ubuntu/.ssh/id_rsa')) cluster.instances.append( Instance(ip='1.1.1.1:2222', username='******', keypair='/home/ubuntu/.ssh/id_rsa2')) cluster.instances.append( Instance(ip='2.2.2.2', port='3333', username='******', keypair='/home/ubuntu/.ssh/id_rsa3')) project = Project() project.cluster = cluster head_roles = ['head', 'head2', 'conda'] compute_roles = ['minion2', 'conda'] salt.HEAD_ROLES = head_roles salt.COMPUTE_ROLES = compute_roles