add setlc_raw to the cli

This allows the devstack_localrc command from grenade be ported to
dsconf.

Change-Id: Iea8e826205ad402d0cf6fd6688860171b6f0a391
This commit is contained in:
Sean Dague 2017-01-19 08:26:54 -05:00
parent de7019bd28
commit 20ab477eae
3 changed files with 36 additions and 3 deletions

View File

@ -46,6 +46,10 @@ def setlc(local_conf, args):
local_conf.set_local(args.name, args.value)
def setlc_raw(local_conf, args):
local_conf.set_raw(" ".join(args.items))
def setlc_conf(local_conf, args):
local_conf.set(args.group, args.conf, args.section, args.name, args.value)
@ -115,8 +119,14 @@ def parse_args(argv):
parser_setlc.add_argument('name')
parser_setlc.add_argument('value')
parser_setlc_raw = subparsers.add_parser(
'setlc_raw', help='set raw line at the end of localrc in local.conf')
parser_setlc_raw.set_defaults(func=setlc_raw)
parser_setlc_raw.add_argument('local_conf')
parser_setlc_raw.add_argument('items', nargs="+")
parser_setlc_conf = subparsers.add_parser(
'setlc_conf', help='set variable in localrc of local.conf')
'setlc_conf', help='set variable in ini section of local.conf')
parser_setlc_conf.set_defaults(func=setlc_conf)
parser_setlc_conf.add_argument('local_conf')
parser_setlc_conf.add_argument('group')

View File

@ -233,11 +233,11 @@ class LocalConf(object):
if not os.path.exists(self.fname):
with open(self.fname, "w+") as writer:
writer.write("[[local|localrc]]\n")
writer.write("%s" % line)
writer.write("%s\n" % line.lstrip())
return
def _do_set(writer, no_line):
writer.write("%s" % line)
writer.write("%s\n" % line.lstrip())
self._at_insert_point_local(line, _do_set)
def _at_insert_point(self, group, conf, section, name, func):

View File

@ -62,6 +62,21 @@ global_physnet_mtu=1450
compute = auto
"""
RESULT3 = """
[[local|localrc]]
a=b
c=d
f=1
enable_plugin foo http://foo branch
enable_plugin bar http://foo branch
[[post-config|$NEUTRON_CONF]]
[DEFAULT]
global_physnet_mtu=1450
[[post-config|$NOVA_CONF]]
[upgrade_levels]
compute = auto
"""
class TestLcSet(testtools.TestCase):
@ -85,3 +100,11 @@ class TestLcSet(testtools.TestCase):
with open(self._path) as f:
content = f.read()
self.assertEqual(content, RESULT2)
def test_set_raw(self):
conf = dsconf.LocalConf(self._path)
conf.set_local_raw("enable_plugin foo http://foo branch")
conf.set_local_raw("enable_plugin bar http://foo branch")
with open(self._path) as f:
content = f.read()
self.assertEqual(content, RESULT3)