예제 #1
0
    def test_provision_should_not_fail_if_you_run_it_twice(self):
        config = HopConfig({
            'name': 'testhop',
            'provider': {
                'network': 'hoptest-network',
                'server': {
                    'name': 'hoptest-server',
                    'http_port': 3553,
                    'https_port': 3554
                },
                'agents': {
                    'prefix': 'hoptest-agent',
                    'instances': 1
                }
            }
        })

        local_docker.provision(config)
        local_docker.provision(config)

        containers = self.client.containers.list(all=True)
        server = next(c for c in containers if c.name == 'hoptest-server')
        agent = next(c for c in containers if c.name == 'hoptest-agent-0')

        self.assertEquals(server.status, 'running')
        self.assertEquals(agent.status, 'running')
예제 #2
0
    def test_destroy(self, https_url_mock):
        config = HopConfig({
            'name': 'testhop',
            'provider': {
                'network': 'hoptest-network',
                'server': {
                    'name': 'hoptest-server',
                    'http_port': 3553,
                    'https_port': 3554
                },
                'agents': {
                    'prefix': 'hoptest-agent',
                    'instances': 1
                }
            }
        })
        https_url_mock.__get__ = Mock(return_value='https://{}:3554'.format(get_host_name()))
        local_docker.provision(config)

        # when
        local_docker.destroy(Namespace(), config)

        # then
        containers = self.client.containers.list(all=True)
        maybe_server = [c for c in containers if c.name == 'hoptest-server']
        maybe_agents = [c for c in containers if c.name == 'hoptest-agent-0']

        self.assertTrue(len(maybe_server) == 0)
        self.assertTrue(len(maybe_agents) == 0)
예제 #3
0
    def test_provision_should_scale_up_and_down(self, https_url_mock):
        hop_config = HopConfig({
            'name': 'testhop',
            'provider': {
                'network': 'hoptest-network',
                'server': {
                    'name': 'hoptest-server',
                    'http_port': 3553,
                    'https_port': 3554
                },
                'agents': {
                    'prefix': 'hoptest-agent',
                    'instances': 3
                }
            }
        })
        https_url_mock.__get__ = Mock(return_value='https://{}:3554'.format(get_host_name()))

        local_docker.provision(hop_config)
        self.assertServerAndAgents(num_of_agents=3)

        # scaling down
        hop_config['provider']['agents']['instances'] = 1
        local_docker.provision(hop_config)
        self.assertServerAndAgents(num_of_agents=1)

        # scaling up again
        hop_config['provider']['agents']['instances'] = 2
        local_docker.provision(hop_config)
        self.assertServerAndAgents(num_of_agents=2)
예제 #4
0
 def execute(self):
     hop_dir = Path(self.args.dest_dir)
     hop_dir.mkdir(parents=True)
     hop_config = hop_dir / 'hop.yml'
     config = generate_hop_config(hop_config,
                                  installation_name=hop_dir.name)
     hop_config = HopConfig(config)
     get_admin_password(hop_dir, hop_config)
예제 #5
0
def execute(args, **kwargs):  # pylint: disable=unused-argument
    hop_dir = Path(args.dest_dir)
    hop_dir.mkdir(parents=True)
    hop_config = hop_dir / 'hop.yml'
    config = generate_hop_config(hop_config, installation_name=hop_dir.name)
    hop_config = HopConfig(config)
    if args.create_passwd:
        get_admin_password(hop_dir, hop_config)
예제 #6
0
def hop_config(args):
    hop_config_path = os.path.join(os.getcwd(), args.hop_config or 'hop.yml')
    return HopConfig(config_dict=read_yaml(hop_config_path))
예제 #7
0
 def __init__(self, config):
     HopConfig.__init__(self, config)
예제 #8
0
def hop_config(args):
    if args.command == 'init':
        return
    hop_config_path = os.path.join(os.getcwd(), 'hop.yml')
    return HopConfig(config_dict=read_yaml(hop_config_path))