From f34f93bc0bc625de9df0cfe3f36e2544be83b741 Mon Sep 17 00:00:00 2001 From: Jeffrey Townsend Date: Thu, 25 Aug 2016 19:23:17 +0000 Subject: [PATCH] Support multiple environmental output formats. --- .../src/python/onl/platform/base.py | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/packages/base/all/vendor-config-onl/src/python/onl/platform/base.py b/packages/base/all/vendor-config-onl/src/python/onl/platform/base.py index 2b93898e..5d3cede9 100644 --- a/packages/base/all/vendor-config-onl/src/python/onl/platform/base.py +++ b/packages/base/all/vendor-config-onl/src/python/onl/platform/base.py @@ -257,10 +257,22 @@ class OnlPlatformBase(object): # is ma1 and lo return 2 - def environment(self): - yamlstr = subprocess.check_output(['/bin/onlpd', '-r', '-y']) - data = yaml.load(yamlstr); - return data + def environment(self, fmt='user'): + if fmt not in [ 'user', 'yaml', 'dict', 'json' ]: + raise ValueError("Unsupported format '%s'" % fmt) + + if fmt == 'user': + return subprocess.check_output(['/bin/onlpd', '-r']) + else: + yamlstr = subprocess.check_output(['/bin/onlpd', '-r', '-y']) + if fmt == 'yaml': + return yamlstr + else: + data = yaml.load(yamlstr) + if data == 'json': + return json.dumps(data, indent=2) + else: + return data def __str__(self): s = """Model: %s