From e8231d2546496d3ac00c6a88d35b6b9127779d91 Mon Sep 17 00:00:00 2001 From: Benjamin Blanc <benjamin.blanc@tiolive.com> Date: Fri, 7 Jun 2013 13:04:32 +0000 Subject: [PATCH] Add scalability test support Add new variables used in testnode software. Add new rules to httpd, in order to make depositories accessible by obfuscation. --- slapos/recipe/erp5testnode/__init__.py | 10 +++-- .../erp5testnode/template/erp5testnode.cfg.in | 5 +++ .../erp5testnode/template/httpd.conf.in | 40 +++++++++++++++---- software/erp5testnode/instance-default.cfg | 6 ++- software/erp5testnode/software.cfg | 2 +- 5 files changed, 51 insertions(+), 12 deletions(-) diff --git a/slapos/recipe/erp5testnode/__init__.py b/slapos/recipe/erp5testnode/__init__.py index 95fa1da52..9a798a2f4 100644 --- a/slapos/recipe/erp5testnode/__init__.py +++ b/slapos/recipe/erp5testnode/__init__.py @@ -54,8 +54,9 @@ class Recipe(GenericBaseRecipe): if software_path_list: CONFIG["software_path_list"] = "[software_list]" CONFIG["software_path_list"] += \ - "\npath_list = %s" % ",".join(software_path_list) - + "\npath_list = %s" % ",".join(software_path_list) + CONFIG['computer_id'] = self.buildout['slap-connection']['computer-id'] + CONFIG['server_url'] = self.buildout['slap-connection']['server-url'] configuration_file = self.createFile( self.options['configuration-file'], self.substituteTemplate( @@ -87,6 +88,8 @@ class Recipe(GenericBaseRecipe): lock_file=self.options['httpd-lock-file'], ip=self.options['httpd-ip'], port=self.options['httpd-port'], + software_access_port=self.options['httpd-software-access-port'], + testnode_srv_directory=self.options['srv-directory'], error_log=os.path.join(self.options['httpd-log-directory'], 'httpd-error.log'), access_log=os.path.join(self.options['httpd-log-directory'], @@ -94,6 +97,7 @@ class Recipe(GenericBaseRecipe): certificate=self.options['httpd-cert-file'], key=self.options['httpd-key-file'], testnode_log_directory=self.options['log-directory'], + testnode_software_directory=self.options['software-directory'], ) config_file = self.createFile(self.options['httpd-conf-file'], self.substituteTemplate(self.getTemplateFilename('httpd.conf.in'), @@ -107,4 +111,4 @@ class Recipe(GenericBaseRecipe): # create empty html page to not allow listing of / page = open(os.path.join(self.options['log-directory'], "index.html"), "w") page.write("<html/>") - page.close() \ No newline at end of file + page.close() diff --git a/slapos/recipe/erp5testnode/template/erp5testnode.cfg.in b/slapos/recipe/erp5testnode/template/erp5testnode.cfg.in index ab38d44c7..d06997b36 100644 --- a/slapos/recipe/erp5testnode/template/erp5testnode.cfg.in +++ b/slapos/recipe/erp5testnode/template/erp5testnode.cfg.in @@ -2,8 +2,10 @@ slapos_directory = %(slapos_directory)s working_directory = %(working_directory)s test_suite_directory = %(test_suite_directory)s +software_directory = %(software_directory)s log_directory = %(log_directory)s run_directory = %(run_directory)s +srv_directory = %(srv_directory)s proxy_host = %(proxy_host)s proxy_port = %(proxy_port)s node_quantity = %(node_quantity)s @@ -13,6 +15,9 @@ ipv6_address = %(ipv6_address)s test_suite_master_url = %(test_suite_master_url)s httpd_ip = %(httpd_ip)s httpd_port = %(httpd_port)s +httpd_software_access_port = %(httpd_software_access_port)s +computer_id = %(computer_id)s +server_url = %(server_url)s # Binaries git_binary = %(git_binary)s diff --git a/slapos/recipe/erp5testnode/template/httpd.conf.in b/slapos/recipe/erp5testnode/template/httpd.conf.in index 9c75e683e..0bfcf0b7c 100644 --- a/slapos/recipe/erp5testnode/template/httpd.conf.in +++ b/slapos/recipe/erp5testnode/template/httpd.conf.in @@ -50,12 +50,38 @@ SSLHonorCipherOrder On SSLCipherSuite RC4-SHA:HIGH:!ADH SSLProxyEngine On -DocumentRoot "%(testnode_log_directory)s" +#DocumentRoot "%(testnode_log_directory)s" # Directory protection -<Directory /> - Options Indexes FollowSymLinks - IndexOptions FancyIndexing - order allow,deny - Allow from All -</Directory> \ No newline at end of file +#<Directory /> +# Options Indexes FollowSymLinks +# IndexOptions FancyIndexing +# order allow,deny +# Allow from All +#</Directory> + +# Directory protection +<VirtualHost *:%(port)s> + SSLEngine on + RewriteRule (.*) http://[%(ip)s]:%(port)s/VirtualHostBase/https/[%(ip)s]:%(port)s/VirtualHostRoot/$1 [L,P] + DocumentRoot "%(testnode_log_directory)s" + <Directory /> + Options Indexes FollowSymLinks + IndexOptions FancyIndexing + order allow,deny + Allow from All + </Directory> +</VirtualHost> + +Listen [%(ip)s]:%(software_access_port)s +<VirtualHost *:%(software_access_port)s> + SSLEngine on + RewriteRule (.*) http://[%(ip)s]:%(software_access_port)s/VirtualHostBase/https/[%(ip)s]:%(software_access_port)s/VirtualHostRoot/$1 [L,P] + DocumentRoot "%(testnode_software_directory)s" + <Directory /> + Options FollowSymLinks + IndexOptions FancyIndexing + order allow,deny + Allow from All + </Directory> +</VirtualHost> diff --git a/software/erp5testnode/instance-default.cfg b/software/erp5testnode/instance-default.cfg index 8aae80e07..62590bb5b 100644 --- a/software/erp5testnode/instance-default.cfg +++ b/software/erp5testnode/instance-default.cfg @@ -26,13 +26,14 @@ pwgen-binary = ${pwgen:location}/bin/pwgen [testnode] recipe = slapos.cookbook:erp5testnode - slapos-directory = $${directory:slapos} working-directory = $${directory:testnode} test-suite-directory = $${directory:test-suite} proxy-host = $${slap-network-information:global-ipv6} proxy-port = 5000 log-directory = $${directory:log} +srv-directory = $${rootdirectory:srv} +software-directory = $${directory:software} run-directory = $${directory:run} test-node-title = $${slap-parameter:test-node-title} node-quantity = $${slap-parameter:node-quantity} @@ -52,8 +53,10 @@ httpd-lock-file = $${basedirectory:run}/httpd.lock httpd-conf-file = $${rootdirectory:etc}/httpd.conf httpd-wrapper = $${rootdirectory:bin}/httpd httpd-port = 9080 +httpd-software-access-port = 9081 httpd-ip = $${slap-network-information:global-ipv6} httpd-log-directory = $${basedirectory:log} +httpd-software-directory = $${directory:software} httpd-cert-file = $${rootdirectory:etc}/httpd-public.crt httpd-key-file = $${rootdirectory:etc}/httpd-private.key @@ -153,6 +156,7 @@ testnode = $${rootdirectory:srv}/testnode test-suite = $${rootdirectory:srv}/test_suite log = $${basedirectory:log}/testnode run = $${basedirectory:run}/testnode +software = $${rootdirectory:srv}/software shellinabox = $${rootdirectory:srv}/shellinabox ca-dir = $${rootdirectory:srv}/ca diff --git a/software/erp5testnode/software.cfg b/software/erp5testnode/software.cfg index 3867d17b0..ccffad29a 100644 --- a/software/erp5testnode/software.cfg +++ b/software/erp5testnode/software.cfg @@ -79,7 +79,7 @@ recipe = slapos.recipe.template url = ${:_profile_base_location_}/instance-default.cfg output = ${buildout:directory}/template-default.cfg mode = 0644 -md5sum = 9881aa4e567732e1c682dbe49c8f62df +md5sum = 9858181c89a361ef93ede0eac8d56034 [networkcache] # signature certificates of the following uploaders. -- GitLab