diff --git a/software/caddy-frontend/buildout.hash.cfg b/software/caddy-frontend/buildout.hash.cfg index 0520f5eebd6d665a18350b1666b337d4f9e5290e..307d760bb4c7812a8256080661ccb6a76452e61b 100644 --- a/software/caddy-frontend/buildout.hash.cfg +++ b/software/caddy-frontend/buildout.hash.cfg @@ -30,7 +30,7 @@ md5sum = 5dabdbf51d20bf9e9e277e5b84d58b7e [template-slave-list] _update_hash_filename_ = templates/apache-custom-slave-list.cfg.in -md5sum = be95a8ff3b0c2db22d80aa07c47504e3 +md5sum = 6349bf609716ef77a1c0af0ad6cdc312 [template-replicate-publish-slave-information] _update_hash_filename_ = templates/replicate-publish-slave-information.cfg.in diff --git a/software/caddy-frontend/templates/apache-custom-slave-list.cfg.in b/software/caddy-frontend/templates/apache-custom-slave-list.cfg.in index 27cf8df87c11c6cccb5dba70e10e780236f7ec92..8babfcbb0ff6ac605906385eef78e1aeb605ed78 100644 --- a/software/caddy-frontend/templates/apache-custom-slave-list.cfg.in +++ b/software/caddy-frontend/templates/apache-custom-slave-list.cfg.in @@ -278,7 +278,9 @@ recipe = slapos.cookbook:publish {%- else %} {%- do slave_instance_information_list.append(slave_publish_dict) %} {%- endif %} -{%- do backend_slave_list.append(slave_instance) %} +{%- if slave_type != 'redirect' %} +{%- do backend_slave_list.append(slave_instance) %} +{%- endif %} {%- endfor %} {# Slave iteration ends for slave_instance in slave_instance_list #} [slave-log-directories] diff --git a/software/caddy-frontend/test/test.py b/software/caddy-frontend/test/test.py index b28c43a98bc581315c1931ec40dcdf189b1f1232..f2b8ba81a7cb7d5980f8464e4b5794150f75b6a5 100644 --- a/software/caddy-frontend/test/test.py +++ b/software/caddy-frontend/test/test.py @@ -1310,6 +1310,11 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin): 'url': cls.backend_url, 'type': 'redirect', }, + 'type-redirect-custom_domain': { + 'url': cls.backend_url, + 'type': 'redirect', + 'custom_domain': 'customdomaintyperedirect.example.com', + }, 'enable_cache': { 'url': cls.backend_url, 'enable_cache': True, @@ -1554,9 +1559,9 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin): 'monitor-base-url': 'https://[%s]:8401' % self._ipv6_address, 'backend-client-caucase-url': 'http://[%s]:8990' % self._ipv6_address, 'domain': 'example.com', - 'accepted-slave-amount': '55', + 'accepted-slave-amount': '56', 'rejected-slave-amount': '0', - 'slave-amount': '55', + 'slave-amount': '56', 'rejected-slave-dict': { } } @@ -3152,6 +3157,43 @@ class TestSlave(SlaveHttpFrontendTestCase, TestDataMixin): result.headers['Location'] ) + def test_type_redirect_custom_domain(self): + reference = 'type-redirect-custom_domain' + hostname = 'customdomaintyperedirect' + parameter_dict = self.parseSlaveParameterDict(reference) + self.assertLogAccessUrlWithPop(parameter_dict) + self.assertKedifaKeysWithPop(parameter_dict, '') + self.assertEqual( + { + 'domain': '%s.example.com' % (hostname,), + 'replication_number': '1', + 'url': 'http://%s.example.com' % (hostname, ), + 'site_url': 'http://%s.example.com' % (hostname, ), + 'secure_access': 'https://%s.example.com' % (hostname, ), + 'public-ipv4': self._ipv4_address, + 'backend-client-caucase-url': 'http://[%s]:8990' % self._ipv6_address, + }, + parameter_dict + ) + + result = fakeHTTPSResult( + parameter_dict['domain'], parameter_dict['public-ipv4'], + 'test-path/deep/.././deeper') + + self.assertEqual( + self.certificate_pem, + der2pem(result.peercert)) + + self.assertEqual( + httplib.FOUND, + result.status_code + ) + + self.assertEqual( + '%stest-path/deeper' % (self.backend_url,), + result.headers['Location'] + ) + def test_ssl_proxy_verify_ssl_proxy_ca_crt_unverified(self): parameter_dict = self.parseSlaveParameterDict( 'ssl-proxy-verify_ssl_proxy_ca_crt-unverified') diff --git a/software/caddy-frontend/test/test_data/test.TestSlave.test_file_list_log-CADDY.txt b/software/caddy-frontend/test/test_data/test.TestSlave.test_file_list_log-CADDY.txt index ce268c6d21dd97d8823983ca7c240b9230eb6da0..3f173df56d4638e7ea3c78b1559b74a1ff727e1e 100644 --- a/software/caddy-frontend/test/test_data/test.TestSlave.test_file_list_log-CADDY.txt +++ b/software/caddy-frontend/test/test_data/test.TestSlave.test_file_list_log-CADDY.txt @@ -87,6 +87,8 @@ T-2/var/log/httpd/_ssl_ca_crt_only_access_log T-2/var/log/httpd/_ssl_ca_crt_only_error_log T-2/var/log/httpd/_type-notebook_access_log T-2/var/log/httpd/_type-notebook_error_log +T-2/var/log/httpd/_type-redirect-custom_domain_access_log +T-2/var/log/httpd/_type-redirect-custom_domain_error_log T-2/var/log/httpd/_type-redirect_access_log T-2/var/log/httpd/_type-redirect_error_log T-2/var/log/httpd/_type-websocket-websocket-path-list-websocket-transparent-false_access_log diff --git a/software/caddy-frontend/test/test_data/test.TestSlaveGlobalDisableHttp2.test_file_list_log-CADDY.txt b/software/caddy-frontend/test/test_data/test.TestSlaveGlobalDisableHttp2.test_file_list_log-CADDY.txt index ce268c6d21dd97d8823983ca7c240b9230eb6da0..3f173df56d4638e7ea3c78b1559b74a1ff727e1e 100644 --- a/software/caddy-frontend/test/test_data/test.TestSlaveGlobalDisableHttp2.test_file_list_log-CADDY.txt +++ b/software/caddy-frontend/test/test_data/test.TestSlaveGlobalDisableHttp2.test_file_list_log-CADDY.txt @@ -87,6 +87,8 @@ T-2/var/log/httpd/_ssl_ca_crt_only_access_log T-2/var/log/httpd/_ssl_ca_crt_only_error_log T-2/var/log/httpd/_type-notebook_access_log T-2/var/log/httpd/_type-notebook_error_log +T-2/var/log/httpd/_type-redirect-custom_domain_access_log +T-2/var/log/httpd/_type-redirect-custom_domain_error_log T-2/var/log/httpd/_type-redirect_access_log T-2/var/log/httpd/_type-redirect_error_log T-2/var/log/httpd/_type-websocket-websocket-path-list-websocket-transparent-false_access_log