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)
Example #3
0
 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)
Example #7
0
    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" ')
Example #13
0
 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()
Example #14
0
 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')