コード例 #1
0
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)
コード例 #2
0
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
コード例 #3
0
 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)
コード例 #4
0
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'}
コード例 #5
0
    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
コード例 #6
0
    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
コード例 #7
0
    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
コード例 #8
0
    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
コード例 #9
0
def test_bare_new():
    instance = Instance.new(settings=settings)
    assert isinstance(instance, BareInstance)
コード例 #10
0
def test_bare_fromdict_todict():
    instance = Instance.from_uid("fakeid", settings=settings)
    assert instance.uid == "fakeid"
コード例 #11
0
 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)
コード例 #12
0
ファイル: test_salt.py プロジェクト: aryanet/datasciencebox
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