def test_PreServiceConfigOpts_kwargs(self): config = StringIO(""" [Meta] version=1 [Config] master_env=TMPDIR modules=powerlevel/9001,scouter/1.0 services=scouter.conf config_writer=hod.config.writer.scouter_yaml directories=/dfs/name,/dfs/data [scouter.yaml] wibble=abc wibble.class=super """) precfg = hcc.PreServiceConfigOpts(config, workdir='dbz-quotes', modules='dbz/episode-28') self.assertEqual(precfg.modules, ['powerlevel/9001', 'scouter/1.0', 'dbz/episode-28']) for x in precfg.service_files: self.assertTrue(basename(x) in ['scouter.conf']) self.assertTrue('scouter.yaml' in precfg.service_configs.keys()) self.assertEqual(precfg.directories, ['/dfs/name', '/dfs/data']) self.assertEqual(hcc.invalid_fields(precfg), []) self.assertEqual(precfg.workdir, 'dbz-quotes')
def test_PreServiceConfigOpts_autogen_hadoop_override(self): config = StringIO(""" [Meta] version=1 [Config] master_env=TMPDIR modules=powerlevel/9001,scouter/1.0 services=scouter.conf workdir=/tmp config_writer=hod.config.writer.scouter_yaml directories=/dfs/name,/dfs/data autogen=hadoop [yarn-site.xml] yarn.nodemanager.hostname = 192.167.0.1 """) precfg = hcc.PreServiceConfigOpts(config) self.assertEqual(len(precfg.service_configs), 1) node = dict(fqdn='hosty.domain.be', network='ib0', pid=1234, cores=24, totalcores=24, usablecores=range(24), num_nodes=1, memory=dict(meminfo=dict(memtotal=68719476736), ulimit='unlimited')) with patch('hod.node.node.Node.go', return_value=node): precfg.autogen_configs() self.assertEqual(len(precfg.service_configs), 4) self.assertTrue('core-site.xml' in precfg.service_configs) self.assertTrue('mapred-site.xml' in precfg.service_configs) self.assertTrue('yarn-site.xml' in precfg.service_configs) yarncfg = precfg.service_configs['yarn-site.xml'] self.assertTrue('yarn.nodemanager.hostname' in yarncfg) self.assertEqual(yarncfg['yarn.nodemanager.hostname'], '192.167.0.1') self.assertTrue('yarn.resourcemanager.hostname' in yarncfg) self.assertEqual(yarncfg['yarn.resourcemanager.hostname'], '$masterdataname')
def test_PreServiceConfigOpts_merge(self): config1 = StringIO(""" [Meta] version=1 [Config] master_env=TMPDIR1 modules=powerlevel/9001,scouter/1.0 services=scouter.conf workdir=/tmp config_writer=hod.config.writer.scouter_yaml directories=/dfs/name,/dfs/data [scouter.yaml] wibble=abc wibble.class=super """) config2 = StringIO(""" [Meta] version=1 [Config] master_env=TMPDIR2 modules=Tackle/3.0,HydroPump/2.0 workdir=/tmp config_writer=something_else directories=/dfs/name,/dfs/data [scouter.yaml] wibble=abc wibble.class=not-so-super [other-service.yaml] launch-code=1234 missile-type=tomahawk """) precfg1 = hcc.PreServiceConfigOpts(config1) precfg2 = hcc.PreServiceConfigOpts(config2) precfg = hcc.merge(precfg1, precfg2) self.assertEqual(precfg.master_env, precfg1.master_env + precfg2.master_env) self.assertEqual(precfg.modules, precfg1.modules + precfg2.modules) self.assertEqual(precfg.directories, precfg1.directories + precfg2.directories) self.assertEqual(precfg.workdir, precfg2.workdir) self.assertEqual(precfg.service_configs['scouter.yaml']['wibble.class'], 'not-so-super') self.assertEqual(precfg.service_configs['other-service.yaml']['launch-code'], '1234')
def test_PreServiceConfigOpts_invalid(self): config = StringIO(""" [Meta] version= [Config] master_env=TMPDIR modules=powerlevel/9001,scouter/1.0 services= workdir= config_writer=hod.config.writer.scouter_yaml directories=/dfs/name,/dfs/data [scouter.yaml] wibble=abc wibble.class=super """) precfg = hcc.PreServiceConfigOpts(config) self.assertEqual(hcc.invalid_fields(precfg), ['version', 'workdir', 'service_files'])