Skip to content

Instantly share code, notes, and snippets.

@phil-hildebrand
Created February 8, 2017 22:46
Show Gist options
  • Save phil-hildebrand/ae758418e1d69d5bbd14b35a1701954e to your computer and use it in GitHub Desktop.
Save phil-hildebrand/ae758418e1d69d5bbd14b35a1701954e to your computer and use it in GitHub Desktop.
pytest multi environment setup
---
env:
- travis:
namenode-primary: localhost
namenode-backup: localhost
journalnode: localhost
zookeeperserver: localhost
resourcemanager: localhost
historyserver: localhost
httpfs: localhost
hbase-master: localhost
hbase-regionserver localhost
worker: localhost
pig: localhost
spark-master: localhost
spark-worker: localhost
- vagrant
namenode-primary: 192.168.1.10
namenode-backup: 192.168.1.10
journalnode: 192.168.1.10
zookeeperserver: 192.168.1.10
resourcemanager: 192.168.1.10
historyserver: 192.168.1.10
httpfs: 192.168.1.10
hbase-master: 192.168.1.10
hbase-regionserver 192.168.1.10
worker: 192.168.1.10
pig: 192.168.1.10
spark-master: 192.168.1.10
spark-worker: 192.168.1.10
- vcluster
namenode-primary: 192.168.1.10
namenode-backup: 192.168.1.11
journalnode:
- 192.168.1.10
- 192.168.1.11
zookeeperserver:
- 192.168.1.10
- 192.168.1.11
resourcemanager:
- 192.168.1.10
- 192.168.1.11
historyserver: 192.168.1.11
httpfs:
- 192.168.1.10
- 192.168.1.11
hbase-master:
- 192.168.1.10
- 192.168.1.11
hbase-regionserver 192.168.1.10
worker: 192.168.1.10
pig: 192.168.1.10
spark-master: 192.168.1.10
spark-worker: 192.168.1.12
- dev
namenode-primary: daldevhadoopnn01.dal.moz.com
namenode-backup: daldevhadoopnn02.dal.moz.com
journalnode:
- daldevhadoopnn01.dal.moz.com
- daldevhadoopnn02.dal.moz.com
zookeeperserver:
- daldevhadoopnn01.dal.moz.com
- daldevhadoopnn02.dal.moz.com
resourcemanager:
- daldevhadoopnn01.dal.moz.com
- daldevhadoopnn02.dal.moz.com
historyserver: daldevmozhadoopnn02.dal.moz.com
httpfs: localhost
- daldevhadoop01.dal.moz.com
- daldevhadoop02.dal.moz.com
- daldevhadoop03.dal.moz.com
hbase-master:
- daldevhadoopnn01.dal.moz.com
- daldevhadoopnn02.dal.moz.com
hbase-regionserver:
- daldevhadoop01.dal.moz.com
- daldevhadoop02.dal.moz.com
- daldevhadoop03.dal.moz.com
worker:
- daldevhadoop01.dal.moz.com
- daldevhadoop02.dal.moz.com
- daldevhadoop03.dal.moz.com
pig:
- daldevhadoop01.dal.moz.com
- daldevhadoop02.dal.moz.com
- daldevhadoop03.dal.moz.com
spark-master:
- daldevhadoop01.dal.moz.com
spark-worker:
- daldevhadoop01.dal.moz.com
- daldevhadoop02.dal.moz.com
- daldevhadoop03.dal.moz.com
class TestPlaybooks():
config = {}
environments = {}
def verify_file(self, f):
return(os.path.exists(f))
def read_config(self, conf):
if verify_file(self, conf):
with open(conf) as f:
try:
self.config = yaml.load(f)
self.environments = config.get('env')
except Exception:
print ('Failed to read config file: %s (%s)' % (f, e))
raise
else:
raise valueError ('Config File %s not found' % f)
def setup_class(self):
'''Setup all variables after reading environment config'''
config_file = 'environment.yml'
self.read_config(config_file)
conn = self.get_httpfs_connection(nn1)
@pytest.mark.order3
def test_zookeeper(self):
'''We should be able to connect to zookeeper'''
for zoo_node in self.environments[env_name]['zookeeperserver']:
zoo = zoo_node + ':2181'
zk = KazooClient(hosts=zoo)
zk.start()
assert (zk.state is 'CONNECTED')
zk.stop()
@b4hand
Copy link

b4hand commented Feb 8, 2017

    # Runs for all environments
    @pytest.mark.parametrize("environment", self.environments['env'].items())
    def test_zookeeper(self, environment):
        '''We should be able to connect to zookeeper'''
        for zoo_node in environment['zookeeperserver']
            zoo = zoo_node + ':2181'
            zk = KazooClient(hosts=zoo)
            zk.start()
            assert (zk.state is 'CONNECTED')
            zk.stop()

    import os

    # Assumes ENVIRONMENT=prod
    @pytest.mark.parametrize("zoo_node", self.environments[os.environ['ENVIRONMENT']]['zookeeperserver'])
    def test_zookeeper(self, zoo_node):
        '''We should be able to connect to zookeeper'''
        zoo = zoo_node + ':2181'
        zk = KazooClient(hosts=zoo)
        zk.start()
        assert (zk.state is 'CONNECTED')
        zk.stop()

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment