Change in libosmocore[master]: vty/command: reflect global attributes in the XML reference

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

fixeria gerrit-no-reply at lists.osmocom.org
Tue Sep 29 06:11:55 UTC 2020


fixeria has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/19577 )

Change subject: vty/command: reflect global attributes in the XML reference
......................................................................

vty/command: reflect global attributes in the XML reference

Given that commands with either/both of the following attributes:

  - CMD_ATTR_DEPRECATED,
  - CMD_ATTR_HIDDEN,

never end up in the XML reference, only CMD_ATTR_IMMEDIATE would
be reflected for commands taking effect immediately as follows:

  <command id='foo'>
    <!-- Global attributes -->
    <attributes scope='global'>
      <attribute doc='This command applies immediately' />
    </attributes>

    <!-- Application specific attributes -->
    <attributes scope='application'>
      <!-- ... -->
    </attributes>

    <params>
      <!-- ... -->
    </params>
  </command>

Change-Id: I8476c1163c23a9a52641987acf3df0b8c49d8f7b
Related: SYS#4937
---
M src/vty/command.c
1 file changed, 26 insertions(+), 0 deletions(-)

Approvals:
  Jenkins Builder: Verified
  dexter: Looks good to me, approved; Verified
  pespin: Looks good to me, but someone else must approve



diff --git a/src/vty/command.c b/src/vty/command.c
index bad2688..30c39a7 100644
--- a/src/vty/command.c
+++ b/src/vty/command.c
@@ -622,6 +622,13 @@
 
 typedef int (*print_func_t)(void *data, const char *fmt, ...);
 
+static const struct value_string cmd_attr_desc[] = {
+	{ CMD_ATTR_DEPRECATED,		"This command is deprecated" },
+	{ CMD_ATTR_HIDDEN,		"This command is hidden" },
+	{ CMD_ATTR_IMMEDIATE,		"This command applies immediately" },
+	{ 0, NULL }
+};
+
 /*
  * Write one cmd_element as XML via a print_func_t.
  */
@@ -632,6 +639,25 @@
 
 	print_func(data, "    <command id='%s'>%s", xml_string, newline);
 
+	/* Print global attributes and their description */
+	if (cmd->attr != 0x00) { /* ... if at least one flag is set */
+		print_func(data, "      <attributes scope='global'>%s", newline);
+
+		for (i = 0; i < ARRAY_SIZE(cmd_attr_desc) - 1; i++) {
+			char *xml_att_desc;
+
+			if (~cmd->attr & cmd_attr_desc[i].value)
+				continue;
+
+			xml_att_desc = xml_escape(cmd_attr_desc[i].str);
+			print_func(data, "        <attribute doc='%s' />%s",
+				   xml_att_desc, newline);
+			talloc_free(xml_att_desc);
+		}
+
+		print_func(data, "      </attributes>%s", newline);
+	}
+
 	/* Print application specific attributes and their description */
 	if (cmd->usrattr != 0x00) { /* ... if at least one flag is set */
 		print_func(data, "      <attributes scope='application'>%s", newline);

-- 
To view, visit https://gerrit.osmocom.org/c/libosmocore/+/19577
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Change-Id: I8476c1163c23a9a52641987acf3df0b8c49d8f7b
Gerrit-Change-Number: 19577
Gerrit-PatchSet: 2
Gerrit-Owner: fixeria <vyanitskiy at sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: dexter <pmaier at sysmocom.de>
Gerrit-Reviewer: fixeria <vyanitskiy at sysmocom.de>
Gerrit-Reviewer: laforge <laforge at osmocom.org>
Gerrit-Reviewer: pespin <pespin at sysmocom.de>
Gerrit-MessageType: merged
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20200929/d45c3e04/attachment.htm>


More information about the gerrit-log mailing list