def test_hadoop_xml_bad_file(self): tr = hct.TemplateResolver(somename="potato", workdir='') vals = {"fs.defaultFs": "file:///", "yarn.option.nested": "123", "templated.value": "$somename" } self.assertRaises(RuntimeError, hcw.hadoop_xml, 'file.ini', vals, tr)
def test_hadoop_xml(self): tr = hct.TemplateResolver(somename="potato", workdir='') vals = {"fs.defaultFs": "file:///", "yarn.option.nested": "123", "templated.value": "$somename" } expected = """<?xml version="1.0" encoding="utf-8"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <property> <name>fs.defaultFs</name> <value>file:///</value> </property> <property> <name>templated.value</name> <value>potato</value> </property> <property> <name>yarn.option.nested</name> <value>123</value> </property> </configuration>""" output = hcw.hadoop_xml('file.xml', vals, tr) print "\"%s\"" % expected print "\"%s\"" % output self.assertEqual(output, expected)
def test_ConfiguredService_prepare_work_cfg(self): cfg = hcc.ConfigOpts.from_file(_mk_slave_config(), hct.TemplateResolver(workdir='/tmp')) cs = hwc.ConfiguredService(cfg) localworkdir = '/tmp/label.node1234.user.123' with patch('hod.work.config_service.os.makedirs', side_effect=lambda *args: None): with patch('hod.config.template.mklocalworkdir', side_effect=lambda *args, **kwargs: localworkdir): cs.prepare_work_cfg() self.assertEqual(cs.controldir, os.path.join(localworkdir, 'controldir'))
def test_ConfigOpts_ConfigParser_replacement(self): config = StringIO(""" [Unit] Name=testconfig RunsOn=master [Service] daemon=$$MYPATH ExecStart=%(daemon)s/starter ExecStop=%(daemon)s/stopper [Environment] SOME_ENV=123""") cfg = hcc.ConfigOpts.from_file(config, hct.TemplateResolver(workdir='')) self.assertEqual(cfg.start_script, '$MYPATH/starter') self.assertEqual(cfg.stop_script, '$MYPATH/stopper') params = cfg.to_params(workdir='', modulepaths='', modules='', master_template_args=dict()) cfg2 = hcc.ConfigOpts.from_params(params, hct.TemplateResolver(workdir='')) self.assertEqual(cfg2.start_script, '$MYPATH/starter') self.assertEqual(cfg2.stop_script, '$MYPATH/stopper')
def test_spark_defaults_conf(self): tr = hct.TemplateResolver(somename="potato", workdir='') vals = {"fs.defaultFs": "file:///", "yarn.option.nested": "123", "templated.value": "$somename" } expected = """fs.defaultFs file:/// templated.value potato yarn.option.nested 123 """ output = hcw.hadoop_xml('spark-defaults.conf', vals, tr) self.assertEqual(output, expected)
def test_hadoop_xml_log4j_properties(self): tr = hct.TemplateResolver(somename="potato", workdir='') vals = {"fs.defaultFs": "file:///", "yarn.option.nested": "123", "templated.value": "$somename" } expected = """fs.defaultFs=file:/// templated.value=$somename yarn.option.nested=123 """ output = hcw.hadoop_xml('file.properties', vals, tr) print "\"%s\"" % expected print "\"%s\"" % output self.assertEqual(output, expected)
def run(self, args): """Run 'help-template' subcommand.""" setup_diagnostic_environment() _ = HelpTemplateOptions(go_args=args, envvar_prefix=self.envvar_prefix, usage=self.usage_txt) reg = mk_registry() resolver = hct.TemplateResolver(**reg.to_kwargs()) print 'Hanythingondemand template parameters' headers = ('Parameter name', 'Value', 'Documentation') formatted_rows = format_rows(reg.fields, resolver) print ht.format_table(formatted_rows, headers) return 0
def test_ConfigOpts_env(self): config = StringIO(""" [Unit] Name=testconfig RunsOn=master [Service] ExecStart=$BINDIR/starter ExecStop=$BINDIR/stopper [Environment] SOME_ENV=123""") with patch('hod.config.template.os.environ', dict(BINDIR='/usr/bin')): cfg = hcc.ConfigOpts.from_file(config, hct.TemplateResolver(workdir='')) self.assertEqual(cfg.start_script, '/usr/bin/starter') self.assertEqual(cfg.stop_script, '/usr/bin/stopper')
def test_ConfigOpts_runs_on_ALL(self): config = StringIO(""" [Unit] Name=testconfig RunsOn=all [Service] ExecStart=starter ExecStop=stopper [Environment] SOME_ENV=123""") cfg = hcc.ConfigOpts.from_file(config, hct.TemplateResolver(workdir='')) self.assertEqual(cfg.name, 'testconfig') self.assertEqual(cfg._runs_on, hcc.RUNS_ON_ALL) self.assertEqual(cfg.runs_on(0, [0, 1, 2]), [0, 1, 2])
def test_ConfigOpts_pickles(self): config = StringIO(""" [Unit] Name=testconfig RunsOn=master [Service] ExecStart=starter ExecStop=stopper [Environment] SOME_ENV=123""") cfg = hcc.ConfigOpts.from_file(config, hct.TemplateResolver(workdir='')) remade_cfg = loads(dumps(cfg)) self.assertEqual(cfg.name, remade_cfg.name) self.assertEqual(cfg.start_script, remade_cfg.start_script) self.assertEqual(cfg.stop_script, remade_cfg.stop_script)
def test_ConfigOptsParams_pickles(self): config = StringIO(""" [Unit] Name=testconfig RunsOn=master [Service] ExecStart=starter ExecStop=stopper [Environment] SOME_ENV=123""") cfg = hcc.ConfigOpts.from_file(config, hct.TemplateResolver(workdir='')) cfgparams = cfg.to_params('workdir', 'modulepaths', 'modules', dict(master='template_args')) remade_cfg = loads(dumps(cfgparams)) self.assertEqual(cfgparams.name, remade_cfg.name) self.assertEqual(cfgparams.start_script, remade_cfg.start_script) self.assertEqual(cfgparams.stop_script, remade_cfg.stop_script)
def test_ConfigOpts_runs_on_MASTER(self): config = StringIO(""" [Unit] Name=testconfig RunsOn=master [Service] ExecStart=starter ExecStop=stopper [Environment] SOME_ENV=123""") cfg = hcc.ConfigOpts.from_file(config, hct.TemplateResolver(workdir='')) self.assertEqual(cfg.name, 'testconfig') self.assertEqual(cfg._runs_on, hcc.RUNS_ON_MASTER) self.assertEqual(cfg.runs_on(0, [0, 1, 2, 3]), [0]) self.assertEqual(cfg.start_script, 'starter') self.assertEqual(cfg.stop_script, 'stopper') self.assertTrue('SOME_ENV' in cfg.env) self.assertEqual(cfg.env['SOME_ENV'], '123') self.assertTrue(isinstance(cfg.env['SOME_ENV'], basestring)) self.assertEqual(hcc.env2str(cfg.env), 'SOME_ENV="123" ')
def test_ConfiguredService_stop_work_service(self): '''Test ConfiguredService stop method''' cfg = hcc.ConfigOpts.from_file(_mk_master_config(), hct.TemplateResolver(workdir='/tmp')) cs = hwc.ConfiguredService(cfg) cs.stop_work_service()
def test_ConfiguredService_init(self): '''Test creation of the ConfiguredService''' cfg = hcc.ConfigOpts.from_file(_mk_master_config(), hct.TemplateResolver(workdir='/tmp')) cs = hwc.ConfiguredService(cfg)
def test_TemplateResolver(self): with patch('hod.config.template.os.environ', dict(BINDIR='/usr/bin')): tr = hct.TemplateResolver(workdir='someval', greeting='hello') self.assertEqual(tr('$workdir $greeting joey joe joe', ), 'someval hello joey joe joe') self.assertEqual(tr('$BINDIR/wibble'), '/usr/bin/wibble')