Advertisement
Guest User

Untitled

a guest
Jul 26th, 2017
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.78 KB | None | 0 0
  1. #!/usr/bin/python
  2.  
  3. from os import path
  4. from pprint import pprint
  5.  
  6. import os
  7. import unittest
  8. import yaml
  9. import sys
  10. import subprocess
  11. class KSclient(object):
  12.     def setUp(self):
  13.         try:
  14.             self.keystone_OS_USERNAME = os.environ['OS_USERNAME']
  15.             self.keystone_OS_PASSWORD = os.environ['OS_PASSWORD']
  16.             self.keystone_OS_AUTH_URL = os.environ['OS_AUTH_URL']
  17.             self.keystone_OS_TENANT_NAME = os.environ['OS_TENANT_NAME']
  18.         except Exception as e:
  19.             _e_msg = 'Unable to find all required environment variables: '\
  20.                 ' OS_USERNAME OS_PASSWORD OS_AUTH_URL OS_TENANT_NAME'
  21.             raise type(e)(_e_msg)
  22.  
  23.     def keystone_connect(self):
  24.         self.setUp()
  25.         from keystoneclient.v2_0 import client
  26.         _c = client.Client(
  27.             auth_url=self.keystone_OS_AUTH_URL,
  28.             username=self.keystone_OS_USERNAME,
  29.             password=self.keystone_OS_PASSWORD,
  30.             tenant_name=self.keystone_OS_TENANT_NAME)
  31.         return _c
  32.  
  33.     def get_srvc_catalog(self):
  34.         ks = self.keystone_connect()
  35.         sc = ks.service_catalog.get_endpoints()
  36.         return sc
  37.  
  38. class SSLTestSet(unittest.TestCase):
  39.     """SSL related unit tests"""
  40.  
  41.     def setUp(self):
  42.         """This method runs before every test"""
  43.         self.config_in = '/home/stack/user_config.yaml'
  44.         self.config_out = '/home/stack/templates/user_config.yaml'
  45.         with open(self.config_in) as f_config_in:
  46.             self.yaml_config_in = yaml.safe_load(f_config_in)
  47.         with open(self.config_out) as f_config_out:
  48.             self.yaml_config_out = yaml.safe_load(f_config_out)
  49.  
  50.     def tearDown(self):
  51.         """No need to cleanup after test execution"""
  52.         pass
  53.  
  54.     def test_config_in(self):
  55.         """Does /home/stack/user_config.yaml exists"""
  56.         self.assertTrue(path.exists(self.config_in))
  57.         self.assertTrue(path.isfile(self.config_in))
  58.  
  59.     def test_config_out(self):
  60.         """Does /home/stack/templates/user_config.yaml exists"""
  61.         self.assertTrue(path.exists(self.config_out))
  62.         self.assertTrue(path.isfile(self.config_out))
  63.  
  64.     def test_config_in_data(self):
  65.         self.assertTrue(self.yaml_config_in,
  66.                         "No data in {}".format(self.config_in))
  67.         self.assertIsInstance(self.yaml_config_in, dict,
  68.                               "Data from {} not a dict".format(self.config_in))
  69.  
  70.     def test_config_out_data(self):
  71.         self.assertTrue(self.yaml_config_out,
  72.                         "No data in {}".format(self.config_out))
  73.         self.assertIsInstance(self.yaml_config_out, dict,
  74.                               "Data from {} not a dict".format(self.config_out))
  75.  
  76.     def test_tls_enable_presence_in(self):
  77.         self.assertTrue(self.yaml_config_in['CBIS']['common']['enable_tls'])
  78.  
  79.     def test_tls_enable_presence_out(self):
  80.         self.assertTrue(self.yaml_config_out['CBIS']['common']['enable_tls'])
  81.  
  82.     def test_ssl_public(self):
  83.         with open('/home/stack/overcloudrc') as data:
  84.            lines = data.readlines()
  85.         for line in lines:
  86.            var = line.split(' ')[1].split('=')[0].strip()
  87.            val = line.split(' ')[1].split('=')[1].strip()
  88.            os.environ[var] = val
  89.         ksc = KSclient()
  90.         self.sc = ksc.get_srvc_catalog()
  91.         for service in self.sc.keys():
  92.             self.assertTrue(self.sc[service][0]['publicURL'].startswith('https://'),
  93.                 "Found a non-https endpoint for {}".format(service))
  94.  
  95.  
  96. if __name__ == '__main__':
  97.     config_in = '/home/stack/user_config.yaml'
  98.     with open(config_in) as f_config_in:
  99.         yaml_config_in = yaml.safe_load(f_config_in)
  100.     if not yaml_config_in['CBIS']['common']['enable_tls']:
  101.         sys.exit(0)
  102.     unittest.main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement