Beispiel #1
0
def test_normalize_hostname_regression_11156():
    # The issue here was that we used "rstrip" which works on characters,
    # not substrings. Having the domain (example.com) start with an eee
    # causes the hostname to get stripped of it's "eee"s ending in an
    # empty hostname accidentally.
    e = Environment('name')
    e.hosts['eee.example.com'] = host = Mock()
    e.host_domain = 'example.com'
    assert host == e.get_host('eee')
Beispiel #2
0
class Deployment(object):

    environment = None

    def __init__(self,
                 env_name,
                 host_name,
                 overrides,
                 secret_files,
                 secret_data,
                 host_data,
                 timeout,
                 platform,
                 os_env=None):
        self.env_name = env_name
        self.host_name = host_name
        self.overrides = overrides
        self.host_data = host_data
        self.secret_files = secret_files
        self.secret_data = secret_data
        self.timeout = timeout
        self.platform = platform
        self.os_env = os_env

    def load(self):
        from batou.environment import Environment

        if self.os_env:
            os.environ.update(self.os_env)
        self.environment = Environment(self.env_name, self.timeout,
                                       self.platform)
        self.environment.deployment = self
        self.environment.load()
        self.environment.overrides = self.overrides
        for hostname, data in self.host_data.items():
            self.environment.hosts[hostname].data.update(data)
        self.environment.secret_files = self.secret_files
        self.environment.secret_data = self.secret_data
        self.environment.configure()

    def deploy(self, root, predict_only):
        host = self.environment.get_host(self.host_name)
        root = self.environment.get_root(root, host)
        root.component.deploy(predict_only)
Beispiel #3
0
def test_get_host_without_subdomain_also_works():
    e = Environment('name')
    e.hosts['example.com'] = host = Mock()
    e.host_domain = 'example.com'
    assert host == e.get_host('example.com')
Beispiel #4
0
def test_get_host_normalizes_hostname():
    e = Environment('name')
    e.hosts['asdf.example.com'] = host = Mock()
    e.host_domain = 'example.com'
    assert host == e.get_host('asdf')
    assert host == e.get_host('asdf.example.com')
Beispiel #5
0
def test_get_host_raises_keyerror_if_unknown():
    e = Environment('name')
    with pytest.raises(KeyError):
        e.get_host('asdf')
Beispiel #6
0
def test_get_host_without_subdomain_also_works():
    e = Environment("name")
    e.hosts["example.com"] = host = Mock()
    e.host_domain = "example.com"
    assert host == e.get_host("example.com")
Beispiel #7
0
def test_get_host_normalizes_hostname():
    e = Environment("name")
    e.hosts["asdf.example.com"] = host = Mock()
    e.host_domain = "example.com"
    assert host == e.get_host("asdf")
    assert host == e.get_host("asdf.example.com")