def test_use_certificate(self): sv1 = apache.VirtualHost(ssl_template) self.assertEqual('/etc/aws/keys/ssl/https.crt', sv1.ssl_cert_path) self.assertEqual('/etc/aws/keys/ssl/https.key', sv1.ssl_key_path) with self.assertRaises(NoPathError): print sv1.ssl_chain_path custom_certificate = apache.SSLCertificate(1) cert_path = custom_certificate.cert_path key_path = custom_certificate.key_path chain_path = custom_certificate.chain_path sv1.use_certificate(cert_path, key_path, chain_path) self.assertEqual('/etc/scalr/private.d/keys/https_1.crt', sv1.ssl_cert_path) self.assertEqual('/etc/scalr/private.d/keys/https_1.key', sv1.ssl_key_path) self.assertEqual('/etc/scalr/private.d/keys/https_1-ca.crt', sv1.ssl_chain_path) default_certificate = apache.SSLCertificate() sv1.use_certificate(default_certificate.cert_path, default_certificate.key_path) self.assertEqual('/etc/scalr/private.d/keys/https.crt', sv1.ssl_cert_path) self.assertEqual('/etc/scalr/private.d/keys/https.key', sv1.ssl_key_path) with self.assertRaises(NoPathError): print sv1.ssl_chain_path v1 = apache.VirtualHost(simple_template) with self.assertRaises(apache.ApacheError): v1.use_certificate(default_certificate.cert_path, default_certificate.key_path)
def test_parse_ssl_template(self): sv1 = apache.VirtualHost(ssl_template) self.assertTrue(sv1.body) self.assertTrue('/etc/aws/' in sv1.body) self.assertEqual(443, sv1.port) self.assertEqual('secure.dima.com', sv1.server_name) self.assertEqual('/var/log/http-dima.com-access.log', sv1.custom_log_path) self.assertEqual('/var/log/http-dima.com-ssl.log', sv1.error_log_path) self.assertEqual(['/var/www'], sv1.document_root_paths) self.assertEqual('/etc/aws/keys/ssl/https.crt', sv1.ssl_cert_path) self.assertEqual('/etc/aws/keys/ssl/https.key', sv1.ssl_key_path) with self.assertRaises(NoPathError): print sv1.ssl_chain_path
def test_parse_simple_template(self): v1 = apache.VirtualHost(simple_template) self.assertTrue(v1.body) self.assertEqual(80, v1.port) v1.port = 8080 self.assertEqual(8080, v1.port) self.assertEqual('dima.com', v1.server_name) v1.server_name = 'new.dima.com' self.assertEqual(v1.server_name, 'new.dima.com') self.assertEqual('/var/log/http-dima.com-access.log', v1.custom_log_path) self.assertEqual(['/var/www'], v1.document_root_paths) with self.assertRaises(NoPathError): print v1.error_log_path print v1.ssl_cert_path print v1.ssl_key_path print v1.ssl_chain_path
def _test_virtual_host_lifecycle(self): #TODO: Enable when all system objects are mocked #creating objects path = self.api.create_vhost('dima.com', 80, simple_template, ssl=False) cv_path = self.api.create_vhost('custom.dima.com', 8080, custom_template, ssl=False) ov_path = self.api.create_vhost('old.dima.com', 443, old_ssl_template, ssl=True) sv_path = self.api.create_vhost(hostname='secure.dima.com', port=443, template=ssl_template, ssl=True, ssl_certificate_id=1) #files created self.assertTrue(os.path.exists(path)) self.assertTrue(os.path.exists(cv_path)) self.assertTrue(os.path.exists(ov_path)) self.assertTrue(os.path.exists(sv_path)) #reading created files template = open(path, 'r').read().strip() cv_template = open(cv_path, 'r').read().strip() ov_template = open(ov_path, 'r').read().strip() sv_template = open(sv_path, 'r').read().strip() #re-creating objects v_host = apache.VirtualHost(template) cv_host = apache.VirtualHost(cv_template) old_v_host = apache.VirtualHost(ov_template) ssl_v_host = apache.VirtualHost(sv_template) #asserting ports self.assertEqual(80, v_host.port) self.assertEqual(8080, cv_host.port) self.assertEqual(443, old_v_host.port) self.assertEqual(443, ssl_v_host.port) #asserting bodies self.assertEqual(simple_template, v_host.body) self.assertEqual(custom_template, cv_host.body) #ssl cert paths changed self.assertNotEqual(old_ssl_template, v_host.body) self.assertNotEqual(ssl_template, cv_host.body) #asserting created paths self.assertTrue(os.path.exists(v_host.custom_log_path)) self.assertTrue(os.path.exists( cv_host.custom_log_path)) # TODO: USE DIFFERENT PATHS self.assertTrue(os.path.exists(old_v_host.custom_log_path)) self.assertTrue(os.path.exists(ssl_v_host.custom_log_path)) self.assertTrue(os.path.exists(v_host.document_root_paths[0])) self.assertTrue(os.path.exists(cv_host.document_root_paths[0])) self.assertTrue(os.path.exists(old_v_host.document_root_paths[0])) self.assertTrue(os.path.exists(ssl_v_host.document_root_paths[0])) self.assertTrue(os.path.exists(old_v_host.error_log_path)) self.assertTrue(os.path.exists(ssl_v_host.error_log_path)) #each virtual host is served by apache self.assertTrue( os.path.basename(path) in self.api.list_served_virtual_hosts()) self.assertTrue( os.path.basename(cv_path) in self.api.list_served_virtual_hosts()) self.assertTrue( os.path.basename(ov_path) in self.api.list_served_virtual_hosts()) self.assertTrue( os.path.basename(sv_path) in self.api.list_served_virtual_hosts()) #TODO: check apache.conf for port #TODO: check if service restart occured svh_data = ['dima.com', 80, simple_template, False] ovh_data = ['old.dima.com', 443, old_ssl_template, True] data = ovh_data, svh_data self.api.reconfigure(data) #Files of removed virtual hosts no longer exist. self.assertFalse(os.path.exists(cv_path)) self.assertFalse(os.path.exists(sv_path)) #Removed virtual hosts are no longer served by apache self.assertFalse( os.path.basename(cv_path) in self.api.list_served_virtual_hosts()) self.assertFalse( os.path.basename(sv_path) in self.api.list_served_virtual_hosts()) #TODO: expand check on reconfigure #But reconfigured virtual hosts stil healthy. self.assertTrue(os.path.exists(path)) self.assertTrue(os.path.exists(ov_path)) #TODO: Update two virtual hosts left #removing all created virtual hosts signature1 = (v_host.server_name, v_host.port) signature2 = (old_v_host.server_name, old_v_host.port) hosts_to_remove = (signature1, signature2) self.api.delete_vhosts(hosts_to_remove, reload=True) #Files of removed virtual hosts no longer exist. self.assertFalse(os.path.exists(path)) self.assertFalse(os.path.exists(ov_path)) #Removed virtual hosts are no longer served by apache self.assertFalse( os.path.basename(path) in self.api.list_served_virtual_hosts()) self.assertFalse( os.path.basename(ov_path) in self.api.list_served_virtual_hosts())