diff --git a/confluent_client/bin/nodeconfig b/confluent_client/bin/nodeconfig index 07f6431f..e6f46e35 100755 --- a/confluent_client/bin/nodeconfig +++ b/confluent_client/bin/nodeconfig @@ -55,6 +55,11 @@ argparser.add_option('-x', '--exclude', dest='exclude', action='store_true', default=False, help='Treat positional arguments as items to not ' 'examine, compare, or restore default') +argparser.add_option('-a', '--advanced', dest='advanced', + action='store_true', default=False, + help='Include advanced settings, which are normally not ' + 'intended to be used without direction from the ' + 'relevant server vendor.') (options, args) = argparser.parse_args() cfgpaths = { @@ -209,7 +214,11 @@ else: if printsys or options.exclude: if printsys == 'all': printsys = [] - path = '/noderange/{0}/configuration/system/all'.format(noderange) + if printsys == [] and not options.advanced: + path = '/noderange/{0}/configuration/system/all'.format(noderange) + else: + path = '/noderange/{0}/configuration/system/advanced'.format( + noderange) rcode = client.print_attrib_path(path, session, printsys, options) sys.exit(rcode) \ No newline at end of file diff --git a/confluent_server/confluent/core.py b/confluent_server/confluent/core.py index 576c23f8..11e791db 100644 --- a/confluent_server/confluent/core.py +++ b/confluent_server/confluent/core.py @@ -201,6 +201,10 @@ def _init_core(): 'pluginattrs': ['hardwaremanagement.method'], 'default': 'ipmi', }), + 'advanced': PluginRoute({ + 'pluginattrs': ['hardwaremanagement.method'], + 'default': 'ipmi', + }), }, }, '_console': { diff --git a/confluent_server/confluent/plugins/hardwaremanagement/ipmi.py b/confluent_server/confluent/plugins/hardwaremanagement/ipmi.py index 630ed598..beb2a9cc 100644 --- a/confluent_server/confluent/plugins/hardwaremanagement/ipmi.py +++ b/confluent_server/confluent/plugins/hardwaremanagement/ipmi.py @@ -533,6 +533,8 @@ class IpmiHandler(object): return self.handle_ntp() elif self.element[1:3] == ['system', 'all']: return self.handle_sysconfig() + elif self.element[1:3] == ['system', 'advanced']: + return self.handle_sysconfig(True) raise Exception('Not implemented') def decode_alert(self): @@ -1025,10 +1027,11 @@ class IpmiHandler(object): self.ipmicmd.set_domain_name(dn) return - def handle_sysconfig(self): + def handle_sysconfig(self, advanced=False): if 'read' == self.op: self.output.put(msg.ConfigSet( - self.node, self.ipmicmd.get_system_configuration())) + self.node, self.ipmicmd.get_system_configuration( + hideadvanced=not advanced))) elif 'update' == self.op: self.ipmicmd.set_system_configuration( self.inputdata.get_attributes(self.node))