<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 03:34:53 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>Whamcloud Community JIRA</title>
    <link>https://jira.whamcloud.com</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.4.14</version>
        <build-number>940014</build-number>
        <build-date>05-12-2023</build-date>
    </build-info>


<item>
            <title>[LU-17370] simplify &apos;lfs --help&apos; text output</title>
                <link>https://jira.whamcloud.com/browse/LU-17370</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;Currently, the usage and &lt;tt&gt;&amp;#45;&amp;#45;help&lt;/tt&gt; text output for &quot;&lt;tt&gt;lfs COMMAND&lt;/tt&gt;&quot; is inconsistent and can produce a &lt;b&gt;lot&lt;/b&gt; of output.  This often includes detailed descriptions of the options, their parameters, and different usage modes.  For example, if a bad parameter is given to &quot;&lt;tt&gt;lfs setstripe&lt;/tt&gt;&quot; it will generate 104 lines of output:&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;$ lfs setstripe --bad foo
lfs setstripe setstripe: unrecognized option &apos;--bad&apos;
To create a file with specified striping/composite layout, or
create/replace the default layout on an existing directory:
usage: setstripe [--component-end|-E &amp;lt;comp_end&amp;gt;]
                 [--stripe-count|-c &amp;lt;stripe_count&amp;gt;]
                 [--overstripe-count|-C &amp;lt;stripe_count&amp;gt;]
                 [--stripe-index|-i &amp;lt;start_ost_idx&amp;gt;]
                 [--stripe-size|-S &amp;lt;stripe_size&amp;gt;]
                 [--compress|-Z &amp;lt;compr_type&amp;gt;[:&amp;lt;compr_level&amp;gt;]
                 [--compress-type=&amp;lt;compress_type&amp;gt;
                 [--compress-level=&amp;lt;compress_level&amp;gt;
                 [--compress-chunk=&amp;lt;chunk_size&amp;gt;]
                 [--extension-size|--ext-size|-z]
                 [--layout|-L &amp;lt;pattern&amp;gt;]
                 [--mirror-count|-N[mirror_count]]
                 [--ost|-o &amp;lt;ost_indices&amp;gt;]
                 [--pool|-p &amp;lt;pool_name&amp;gt;]
                 [--yaml|-y &amp;lt;yaml_template_file&amp;gt;]
                 [--copy=&amp;lt;lustre_src&amp;gt;]
                 [--mode &amp;lt;mode&amp;gt;]
                 &amp;lt;directory|filename&amp;gt;
 or
To add component(s) to an existing composite file:
usage: setstripe --component-add [--component-end|-E &amp;lt;comp_end&amp;gt;]
                 [--stripe-count|-c &amp;lt;stripe_count&amp;gt;]
                 [--overstripe-count|-C &amp;lt;stripe_count&amp;gt;]
                 [--stripe-index|-i &amp;lt;start_ost_idx&amp;gt;]
                 [--stripe-size|-S &amp;lt;stripe_size&amp;gt;]
                 [--compress|-Z &amp;lt;compr_type&amp;gt;[:&amp;lt;compr_level&amp;gt;]
                 [--compress-type=&amp;lt;compress_type&amp;gt;
                 [--compress-level=&amp;lt;compress_level&amp;gt;
                 [--compress-chunk=&amp;lt;chunk_size&amp;gt;]
                 [--extension-size|--ext-size|-z]
                 [--layout|-L &amp;lt;pattern&amp;gt;]
                 [--mirror-count|-N[mirror_count]]
                 [--ost|-o &amp;lt;ost_indices&amp;gt;]
                 [--pool|-p &amp;lt;pool_name&amp;gt;]
                 [--yaml|-y &amp;lt;yaml_template_file&amp;gt;]
                 [--copy=&amp;lt;lustre_src&amp;gt;]
	stripe_count: Number of OSTs to stripe on (0=fs default, -1 all)
	              Using -C instead of -c allows overstriping, which
	              will place more than one stripe per OST if
	              stripe_count is greater than the number of OSTs.
	start_ost_idx: OST index of first stripe (-1=default round robin)
	stripe_size:  Number of bytes on each OST (0=fs default)
	              Optional K, M, or G suffix (for KB, MB, GB
	              respectively).  Must be a multiple of 64KiB.
	compress:
	              Compression algorithm &amp;lt;type&amp;gt; and compress &amp;lt;level&amp;gt;.
	              The compress level showed in getstripe could be 
	              not exactly the one input here.
	compress-chunk:
	              Compression data chunk size in KiB, the value
	              will be adjusted to power-of-two multiples of the
	              base 64KiB.
	extension_size:
	              Number of bytes the previous component is extended
	              each time. Optional K, M, or G suffix (for KB,
	              MB, GB respectively)
	pool_name:    Name of OST pool to use (default none)
	layout:       stripe pattern type: raid0, mdt (default raid0)
	ost_indices:  List of OST indices, can be repeated multiple times
	              Indices be specified in a format of:
	                -o &amp;lt;ost_1&amp;gt;,&amp;lt;ost_i&amp;gt;-&amp;lt;ost_j&amp;gt;,&amp;lt;ost_n&amp;gt;
	              Or:
	                -o &amp;lt;ost_1&amp;gt; -o &amp;lt;ost_i&amp;gt;-&amp;lt;ost_j&amp;gt; -o &amp;lt;ost_n&amp;gt;
	              If --pool is set with --ost then the OSTs
	              must be the members of the pool.
	comp_end:     Extent end of component, start after previous end.
	              Optional K, M, or G suffix (for KiB, MiB, GiB), or
	              -1 or &apos;eof&apos; for max file size). Must be a multiple
	              of stripe_size and a multiple of 64KiB.
	yaml_template_file:
	              YAML layout template file, can&apos;t be used with -c,
	              -i, -S, -p, -o, or -E arguments.
	lustre_src:   Lustre file/dir whose layout info is used to set
	              another lustre file or directory, can&apos;t used with
	              -c, -i, -S, -p, -o, or -E arguments.
To totally delete the default striping from an existing directory:
usage: setstripe [--delete|-d] &amp;lt;directory&amp;gt;
 or
To create a mirrored file or set s default mirror layout on a directory:
usage: setstripe {--mirror-count|-N}[mirror_count] [SETSTRIPE_OPTIONS] &amp;lt;directory|filename&amp;gt;
 or
To delete the last component(s) from an existing composite file
(note that this will also delete any data in those components):
usage: setstripe --component-del [--component-id|-I &amp;lt;comp_id&amp;gt;]
                               [--component-flags|-F &amp;lt;comp_flags&amp;gt;]
                               &amp;lt;filename&amp;gt;
	comp_id:     Unique component ID to delete
	comp_flags:  &apos;init&apos; indicating all instantiated components
	             &apos;^init&apos; indicating all uninstantiated components
	-I and -F cannot be specified at the same time
 or
To set or clear flags on a specific component
(note that this command can only be applied to mirrored files:
usage: setstripe --comp-set {-I comp_id|--comp-flags=comp_flags}
                            &amp;lt;filename&amp;gt;
 or
To create a file with a foreign (free format) layout:
usage: setstripe --foreign[=&amp;lt;foreign_type&amp;gt;]
                 --xattr|-x &amp;lt;layout_string&amp;gt; [--flags &amp;lt;hex&amp;gt;]
                 [--mode &amp;lt;mode&amp;gt;] &amp;lt;filename&amp;gt;
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Unfortunately, this large number of lines will scroll the important error message off the top of the terminal screen and show only relatively useless information about obscure usage options at the end.&lt;/p&gt;

&lt;p&gt;The &quot;&lt;tt&gt;lfs&lt;/tt&gt;&quot; commands usage/help text should be changed to print a single line description of the command and a list of &lt;b&gt;all&lt;/b&gt; command-line options.  This will keep the important usage error message visible on the screen, and makes the rest of the text much more readable.&lt;/p&gt;

&lt;p&gt;Also, the &lt;tt&gt;bash_completion&lt;/tt&gt; functionality (&lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13225&quot; title=&quot;add bash completion for lfs&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13225&quot;&gt;&lt;del&gt;LU-13225&lt;/del&gt;&lt;/a&gt;) runs the command with &quot;&lt;tt&gt;help&lt;/tt&gt;&quot; to generate a list of short/long options for tab completion (e.g. &quot;&lt;tt&gt;lfs setstripe &amp;#45;&amp;#45;&amp;lt;TAB&amp;gt;&amp;lt;TAB&amp;gt;&lt;/tt&gt;&quot;) so having the command-line options shown properly for all commands (in particular &quot;&lt;tt&gt;lfs mirror&lt;/tt&gt;&quot; and &quot;&lt;tt&gt;lfs migrate&lt;/tt&gt;&quot;) instead of by reference (e.g. &quot;&lt;tt&gt;SETSTRIPE_OPTIONS&lt;/tt&gt;&quot;) simplifies the implementation of these tools.&lt;/p&gt;</description>
                <environment></environment>
        <key id="79615">LU-17370</key>
            <summary>simplify &apos;lfs --help&apos; text output</summary>
                <type id="4" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11310&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="4" iconUrl="https://jira.whamcloud.com/images/icons/priorities/minor.svg">Minor</priority>
                        <status id="5" iconUrl="https://jira.whamcloud.com/images/icons/statuses/resolved.png" description="A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.">Resolved</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="1">Fixed</resolution>
                                        <assignee username="aioffe">Alexandre Ioffe</assignee>
                                    <reporter username="adilger">Andreas Dilger</reporter>
                        <labels>
                    </labels>
                <created>Fri, 15 Dec 2023 19:26:51 +0000</created>
                <updated>Sun, 4 Feb 2024 14:49:29 +0000</updated>
                            <resolved>Sun, 4 Feb 2024 14:49:29 +0000</resolved>
                                                    <fixVersion>Lustre 2.16.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>3</watches>
                                                                            <comments>
                            <comment id="397033" author="adilger" created="Fri, 15 Dec 2023 19:52:37 +0000"  >&lt;p&gt;For &quot;&lt;tt&gt;lfs setstripe&lt;/tt&gt;&quot;, I think a reasonable output would be:&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;Create a file with specified striping/composite layout, or
set the default layout on an existing directory:
usage: setstripe [--component-add|--component-del|--delete|-d]
                 [--component-set --component-id|-I COMP_ID|--component-flags=COMP_FLAGS]
                 [--mirror-count|-N[MIRROR_COUNT]] [--component-end|-E COMP_END]
                 [--stripe-count|-c STRIPE_COUNT|--overstripe-count|-C STRIPE_COUNT]
                 [--stripe-index|-i START_OST_IDX] [--stripe-size|-S STRIPE_SIZE]
                 [--compress|-Z COMPR_TYPE[:COMPR_LEVEL]]
                 [--compress-type=COMPR_TYPE] [--compress-level=COMPR_LEVEL]
                 [--compress-chunk=CHUNK_SIZE]
                 [--extension-size|--ext-size|-z EXT_SIZE] 
                 [--foreign=FOREIGN_TYPE --xattr|-x LAYOUT]
                 [--layout|-L PATTERN] [--mode FILE_MODE]
                 [--ost|-o OST_INDEX,[OST_INDEX,...]] [--pool|-p POOL_NAME]
                 [--copy=SOURCE_LAYOUT_FILE|--yaml|-y YAML_TEMPLATE_FILE]
                 FILENAME|DIRECTORY
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;All of the variable arguments should be displayed in UPPERCASE instead of in angle brackets (i.e. use &quot;&lt;tt&gt;STRIPE_COUNT&lt;/tt&gt;&quot; instead of &quot;&lt;tt&gt;&amp;lt;stripe_count&lt;/tt&gt;&quot;).&lt;/p&gt;

&lt;p&gt;The full set of command-line options should also be printed for &quot;&lt;tt&gt;lfs mirror create/extend&lt;/tt&gt;&quot; and &quot;&lt;tt&gt;lfs migrate&lt;/tt&gt;&quot;, and remove the special case for &lt;tt&gt;mirror&lt;/tt&gt; and &lt;tt&gt;migrate&lt;/tt&gt; in &lt;tt&gt;lustre/scripts/bash-completion/lustre&lt;/tt&gt;.  &lt;/p&gt;

&lt;p&gt;This should be done by modifying the &lt;tt&gt;SSM_CMD_COMMON()&lt;/tt&gt; macro to print all of the common options, and related macros &lt;tt&gt;MIRROR_EXTEND_USAGE&lt;/tt&gt; and &lt;tt&gt;MIGRATE_USAGE&lt;/tt&gt; to print options specific to those commands.&lt;/p&gt;</comment>
                            <comment id="397040" author="adilger" created="Fri, 15 Dec 2023 20:01:54 +0000"  >&lt;p&gt;It would be useful to have separate patches to clean up the usage messages for other sub-commands, such as &quot;&lt;tt&gt;lfs getstripe&lt;/tt&gt;&quot;, &quot;&lt;tt&gt;lfs setdirstripe&lt;/tt&gt;&quot;, &quot;&lt;tt&gt;lfs find&lt;/tt&gt;&quot;, etc. to remove excess descriptive text, and to capitalize the arguments for each option.&lt;/p&gt;

&lt;p&gt;Please confirm that argument descriptions that are removed from the &quot;&lt;tt&gt;lfs SUBCOMMAND&lt;/tt&gt;&quot; usage message are included in the corresponding &quot;&lt;tt&gt;lfs-SUBCOMMAND.1&lt;/tt&gt;&quot; man page, if not already present.&lt;/p&gt;</comment>
                            <comment id="398197" author="gerrit" created="Fri, 29 Dec 2023 05:46:33 +0000"  >&lt;p&gt;&quot;Alexandre Ioffe &amp;lt;aioffe@ddn.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/53564&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/53564&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-17370&quot; title=&quot;simplify &amp;#39;lfs --help&amp;#39; text output&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-17370&quot;&gt;&lt;del&gt;LU-17370&lt;/del&gt;&lt;/a&gt; utils: simplify lfs help text&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 6c3dae58eddc2e3c7caf35599733b2e59ebeb657&lt;/p&gt;</comment>
                            <comment id="398534" author="gerrit" created="Thu, 4 Jan 2024 04:10:06 +0000"  >&lt;p&gt;&quot;Alexandre Ioffe &amp;lt;aioffe@ddn.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/53583&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/53583&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-17370&quot; title=&quot;simplify &amp;#39;lfs --help&amp;#39; text output&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-17370&quot;&gt;&lt;del&gt;LU-17370&lt;/del&gt;&lt;/a&gt; utils: simplify lfs help text&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: afd12210a559467eca417d732e17ccbcbecf2cb9&lt;/p&gt;</comment>
                            <comment id="399084" author="gerrit" created="Wed, 10 Jan 2024 07:29:38 +0000"  >&lt;p&gt;&quot;Oleg Drokin &amp;lt;green@whamcloud.com&amp;gt;&quot; merged in patch &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/53564/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/53564/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-17370&quot; title=&quot;simplify &amp;#39;lfs --help&amp;#39; text output&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-17370&quot;&gt;&lt;del&gt;LU-17370&lt;/del&gt;&lt;/a&gt; utils: simplify lfs help text&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: b6deb420a81f86a70312ae1de507066a89f92268&lt;/p&gt;</comment>
                            <comment id="400099" author="gerrit" created="Wed, 17 Jan 2024 20:43:28 +0000"  >&lt;p&gt;&quot;Alexandre Ioffe &amp;lt;aioffe@ddn.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/53719&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/53719&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-17370&quot; title=&quot;simplify &amp;#39;lfs --help&amp;#39; text output&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-17370&quot;&gt;&lt;del&gt;LU-17370&lt;/del&gt;&lt;/a&gt; utils: simplify lfs-mirror-extend help text&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 2a71d159d4ac98a3252f12796b8688bfa4d6df50&lt;/p&gt;</comment>
                            <comment id="402564" author="gerrit" created="Sun, 4 Feb 2024 08:32:42 +0000"  >&lt;p&gt;&quot;Oleg Drokin &amp;lt;green@whamcloud.com&amp;gt;&quot; merged in patch &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/53719/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/53719/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-17370&quot; title=&quot;simplify &amp;#39;lfs --help&amp;#39; text output&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-17370&quot;&gt;&lt;del&gt;LU-17370&lt;/del&gt;&lt;/a&gt; utils: simplify lfs-mirror-extend help text&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: bac650ff56f95cc81d1ce6571ef78cbb065b6f2e&lt;/p&gt;</comment>
                            <comment id="402587" author="pjones" created="Sun, 4 Feb 2024 14:49:29 +0000"  >&lt;p&gt;Merged for 2.16&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10120">
                    <name>Blocker</name>
                                            <outwardlinks description="is blocking">
                                                        </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="25084">LU-5170</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="58033">LU-13225</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="12688">LU-930</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                            <customfield id="customfield_10890" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10390" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|i0454n:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10090" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10060" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Severity</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10022"><![CDATA[3]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                        </customfields>
    </item>
</channel>
</rss>