Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Step:15-SP4
s390-tools.18357
s390-tools-sles15sp2-01-zdev-Introduce-read-onl...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File s390-tools-sles15sp2-01-zdev-Introduce-read-only-attributes.patch of Package s390-tools.18357
Subject: [PATCH] [FEAT SAN1810] zdev: Introduce read-only attributes From: Fedor Loshakov <loshakov@linux.ibm.com> Summary: zdev: report FC Endpoint Security of zfcp devices Description: Report FC Endpoint Security of zfcp devices, which includes: 1. Add support to report Fibre Channel (FC) Endpoint Security related information for zfcp-host and zfcp-lun devices. 2. Format and print HBA FC Endpoint Security trace records Upstream-ID: c063273b145c1f182968f318c04d3d8ea4dc0d9f Problem-ID: SAN1810 Upstream-Description: zdev: Introduce read-only attributes Add support for defining read-only attributes in the chzdev/lszdev tools. These attributes can be used to provide online documentation for specific attributes via the --help-attribute and --list-attributes tool functions. Signed-off-by: Peter Oberparleiter <oberpar@linux.ibm.com> Reviewed-by: Jens Remus <jremus@linux.ibm.com> Reviewed-by: Fedor Loshakov <loshakov@linux.ibm.com> Reviewed-by: Benjamin Block <bblock@linux.ibm.com> Signed-off-by: Jan Hoeppner <hoeppner@linux.ibm.com> Signed-off-by: Fedor Loshakov <loshakov@linux.ibm.com> --- zdev/include/attrib.h | 4 +++- zdev/src/device.c | 9 ++++++++- zdev/src/export.c | 4 +++- zdev/src/table_attribs.c | 14 +++++++++----- 4 files changed, 23 insertions(+), 8 deletions(-) --- a/zdev/include/attrib.h +++ b/zdev/include/attrib.h @@ -1,7 +1,7 @@ /* * zdev - Modify and display the persistent configuration of devices * - * Copyright IBM Corp. 2016, 2017 + * Copyright IBM Corp. 2016, 2019 * * s390-tools is free software; you can redistribute it and/or modify * it under the terms of the MIT license. See LICENSE for details. @@ -181,6 +181,7 @@ struct value_map { * @activeonly: This attribute should only be changed in the active config * @unstable: The value read is not the last value written * @writeonly: This attribute cannot be read from + * @readonly: This attribute cannot be written to * @rewrite: Writing the same value multiple times has side-effects * @mandatory: This attribute cannot be removed from a configured device * @newline: There must be a newline when writing to this attribute @@ -211,6 +212,7 @@ struct attrib { unsigned int activeonly :1; unsigned int unstable :1; unsigned int writeonly :1; + unsigned int readonly :1; unsigned int rewrite :1; unsigned int mandatory :1; unsigned int newline :1; --- a/zdev/src/device.c +++ b/zdev/src/device.c @@ -215,6 +215,9 @@ static exit_code_t apply_setting(struct /* Check for known attribute. */ a = subtype_find_dev_attrib(st, key); if (a) { + /* Check for read-only attribute. */ + if (a->readonly) + goto err_readonly; /* Check for acceptable value of known attribute. */ if (!force && !attrib_check_value(a, value)) goto err_invalid_forceable; @@ -307,6 +310,10 @@ err_int_noactive: delayed_err("Internal attribute '%s' cannot be set in the active config\n", key); return EXIT_INVALID_SETTING; + +err_readonly: + delayed_err("Cannot modify read-only attribute: %s\n", key); + return EXIT_INVALID_SETTING; } /* Apply device settings from strlist to device. */ @@ -521,7 +528,7 @@ void device_read_active_settings(struct a = attrib_find(st->dev_attribs, name); s = setting_list_apply_actual(dev->active.settings, a, name, value); - if (link || (scope == scope_all && + if ((a && a->readonly) || link || (scope == scope_all && util_path_is_readonly_file("%s", path))) s->readonly = 1; if (link) --- a/zdev/src/export.c +++ b/zdev/src/export.c @@ -1,7 +1,7 @@ /* * zdev - Modify and display the persistent configuration of devices * - * Copyright IBM Corp. 2016, 2017 + * Copyright IBM Corp. 2016, 2019 * * s390-tools is free software; you can redistribute it and/or modify * it under the terms of the MIT license. See LICENSE for details. @@ -71,6 +71,8 @@ static bool is_exportable(struct setting if (!a) return true; + if (a->readonly) + return false; if (a->mandatory) return true; if (SCOPE_ACTIVE(config)) { --- a/zdev/src/table_attribs.c +++ b/zdev/src/table_attribs.c @@ -1,7 +1,7 @@ /* * zdev - Modify and display the persistent configuration of devices * - * Copyright IBM Corp. 2016, 2017 + * Copyright IBM Corp. 2016, 2019 * * s390-tools is free software; you can redistribute it and/or modify * it under the terms of the MIT license. See LICENSE for details. @@ -186,13 +186,15 @@ static void table_attribs_show_details_o indent(j, "The default value is '%s'.\n", a->defval); } - printf("\n"); - indent(i, "ACCEPTED VALUES\n"); - attrib_print_acceptable(a, j); + if (!a->readonly) { + printf("\n"); + indent(i, "ACCEPTED VALUES\n"); + attrib_print_acceptable(a, j); + } if (!(a->multi || a->activeonly || a->unstable || a->writeonly || a->rewrite || a->mandatory || a->newline || a->activerem || - a->nounload || a->check)) + a->nounload || a->check || a->readonly)) return; printf("\n"); @@ -211,6 +213,8 @@ static void table_attribs_show_details_o } if (a->writeonly) indent(j, "- You cannot read this attribute\n"); + if (a->readonly) + indent(j, "- You cannot write to this attribute\n"); if (a->rewrite) { indent(j, "- Setting the same value multiple times may have " "additional effects\n");
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor