Skip to content

Fix wrong bool argument parsing in upgrade_image.py script#9452

Merged
yejianquan merged 1 commit intosonic-net:masterfrom
wangxin:fix-bool-arg
Aug 15, 2023
Merged

Fix wrong bool argument parsing in upgrade_image.py script#9452
yejianquan merged 1 commit intosonic-net:masterfrom
wangxin:fix-bool-arg

Conversation

@wangxin
Copy link
Copy Markdown
Collaborator

@wangxin wangxin commented Aug 15, 2023

Description of PR

Summary:
Fixes # (issue)

Type of change

  • Bug fix
  • Testbed and Framework(new/improvement)
  • Test case(new/improvement)

Back port request

  • 201911
  • 202012
  • 202205

Approach

What is the motivation for this PR?

The upgrade_image.py script defined some bool type arguments. However, "action" is not specified while defining these arguments.

The result is that if user pass in arguments like below, the argument will be still be evaluated to True as python by default casting string "False" to bool value True.

./upgrade_image.py --enable-fips Flase

How did you do it?

The fix is to take advantage of setuptools.distutils.util.strtobool.

With tool, any values like below passed in to this type of arguments would be evaluated to integer 0:

"n", "no", "No", "NO", "False", "false", "FALSE", "FaLsE", ...

Any argument value like below would be evaluated to integer 1:

"y", "yes", "Yes", "YES", "True", "true", "TRUE", "TrUe", ...

How did you verify/test it?

Any platform specific information?

Supported testbed topology if it's a new test case?

Documentation

The upgrade_image.py script defined some bool  type arguments.
However, "action" is not specified while defining these arguments.

The result is that if user pass in arguments like below, the argument
will be still be evaluated to True as python by default casting
string "False" to bool value True.

./upgrade_image.py --enable-fips Flase

The fix is to take advantage of setuptools.distutils.util.strtobool.

With tool, any values like below passed in to this type of arguments
would be evaluated to integer 0:
"n", "no", "No", "NO", "False", "false", "FALSE", "FaLsE", ...

Any argument value like below would be evaluated to integer 1:
"y", "yes", "Yes", "YES", "True", "true", "TRUE", "TrUe", ...

Signed-off-by: Xin Wang <xiwang5@microsoft.com>
Copy link
Copy Markdown
Collaborator

@yejianquan yejianquan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@mssonicbld
Copy link
Copy Markdown
Collaborator

Cherry-pick PR to 202205: #9454

mssonicbld pushed a commit to mssonicbld/sonic-mgmt that referenced this pull request Aug 15, 2023
…#9452)

Approach
What is the motivation for this PR?
The upgrade_image.py script defined some bool type arguments. However, "action" is not specified while defining these arguments.

The result is that if user pass in arguments like below, the argument will be still be evaluated to True as python by default casting string "False" to bool value True.

./upgrade_image.py --enable-fips Flase
How did you do it?
The fix is to take advantage of setuptools.distutils.util.strtobool.

With tool, any values like below passed in to this type of arguments would be evaluated to integer 0:

"n", "no", "No", "NO", "False", "false", "FALSE", "FaLsE", ...
Any argument value like below would be evaluated to integer 1:

"y", "yes", "Yes", "YES", "True", "true", "TRUE", "TrUe", ...

Signed-off-by: Xin Wang <xiwang5@microsoft.com>

co-authorized by: jianquanye@microsoft.com
mssonicbld pushed a commit to mssonicbld/sonic-mgmt that referenced this pull request Aug 15, 2023
…#9452)

Approach
What is the motivation for this PR?
The upgrade_image.py script defined some bool type arguments. However, "action" is not specified while defining these arguments.

The result is that if user pass in arguments like below, the argument will be still be evaluated to True as python by default casting string "False" to bool value True.

./upgrade_image.py --enable-fips Flase
How did you do it?
The fix is to take advantage of setuptools.distutils.util.strtobool.

With tool, any values like below passed in to this type of arguments would be evaluated to integer 0:

"n", "no", "No", "NO", "False", "false", "FALSE", "FaLsE", ...
Any argument value like below would be evaluated to integer 1:

"y", "yes", "Yes", "YES", "True", "true", "TRUE", "TrUe", ...

Signed-off-by: Xin Wang <xiwang5@microsoft.com>

co-authorized by: jianquanye@microsoft.com
mssonicbld pushed a commit to mssonicbld/sonic-mgmt that referenced this pull request Aug 15, 2023
…#9452)

Approach
What is the motivation for this PR?
The upgrade_image.py script defined some bool type arguments. However, "action" is not specified while defining these arguments.

The result is that if user pass in arguments like below, the argument will be still be evaluated to True as python by default casting string "False" to bool value True.

./upgrade_image.py --enable-fips Flase
How did you do it?
The fix is to take advantage of setuptools.distutils.util.strtobool.

With tool, any values like below passed in to this type of arguments would be evaluated to integer 0:

"n", "no", "No", "NO", "False", "false", "FALSE", "FaLsE", ...
Any argument value like below would be evaluated to integer 1:

"y", "yes", "Yes", "YES", "True", "true", "TRUE", "TrUe", ...

Signed-off-by: Xin Wang <xiwang5@microsoft.com>

co-authorized by: jianquanye@microsoft.com
@mssonicbld
Copy link
Copy Markdown
Collaborator

Cherry-pick PR to 202012: #9456

@mssonicbld
Copy link
Copy Markdown
Collaborator

Cherry-pick PR to 202305: #9455

mssonicbld pushed a commit that referenced this pull request Aug 15, 2023
Approach
What is the motivation for this PR?
The upgrade_image.py script defined some bool type arguments. However, "action" is not specified while defining these arguments.

The result is that if user pass in arguments like below, the argument will be still be evaluated to True as python by default casting string "False" to bool value True.

./upgrade_image.py --enable-fips Flase
How did you do it?
The fix is to take advantage of setuptools.distutils.util.strtobool.

With tool, any values like below passed in to this type of arguments would be evaluated to integer 0:

"n", "no", "No", "NO", "False", "false", "FALSE", "FaLsE", ...
Any argument value like below would be evaluated to integer 1:

"y", "yes", "Yes", "YES", "True", "true", "TRUE", "TrUe", ...

Signed-off-by: Xin Wang <xiwang5@microsoft.com>

co-authorized by: jianquanye@microsoft.com
mssonicbld pushed a commit that referenced this pull request Aug 15, 2023
Approach
What is the motivation for this PR?
The upgrade_image.py script defined some bool type arguments. However, "action" is not specified while defining these arguments.

The result is that if user pass in arguments like below, the argument will be still be evaluated to True as python by default casting string "False" to bool value True.

./upgrade_image.py --enable-fips Flase
How did you do it?
The fix is to take advantage of setuptools.distutils.util.strtobool.

With tool, any values like below passed in to this type of arguments would be evaluated to integer 0:

"n", "no", "No", "NO", "False", "false", "FALSE", "FaLsE", ...
Any argument value like below would be evaluated to integer 1:

"y", "yes", "Yes", "YES", "True", "true", "TRUE", "TrUe", ...

Signed-off-by: Xin Wang <xiwang5@microsoft.com>

co-authorized by: jianquanye@microsoft.com
yejianquan pushed a commit that referenced this pull request Aug 16, 2023
…9455)




Approach
What is the motivation for this PR?
The upgrade_image.py script defined some bool type arguments. However, "action" is not specified while defining these arguments.

The result is that if user pass in arguments like below, the argument will be still be evaluated to True as python by default casting string "False" to bool value True.

./upgrade_image.py --enable-fips Flase
How did you do it?
The fix is to take advantage of setuptools.distutils.util.strtobool.

With tool, any values like below passed in to this type of arguments would be evaluated to integer 0:

"n", "no", "No", "NO", "False", "false", "FALSE", "FaLsE", ...
Any argument value like below would be evaluated to integer 1:

"y", "yes", "Yes", "YES", "True", "true", "TRUE", "TrUe", ...

co-authorized by: jianquanye@microsoft.com
AharonMalkin pushed a commit to AharonMalkin/sonic-mgmt that referenced this pull request Jan 25, 2024
…#9452)

Approach
What is the motivation for this PR?
The upgrade_image.py script defined some bool type arguments. However, "action" is not specified while defining these arguments.

The result is that if user pass in arguments like below, the argument will be still be evaluated to True as python by default casting string "False" to bool value True.

./upgrade_image.py --enable-fips Flase
How did you do it?
The fix is to take advantage of setuptools.distutils.util.strtobool.

With tool, any values like below passed in to this type of arguments would be evaluated to integer 0:

"n", "no", "No", "NO", "False", "false", "FALSE", "FaLsE", ...
Any argument value like below would be evaluated to integer 1:

"y", "yes", "Yes", "YES", "True", "true", "TRUE", "TrUe", ...

Signed-off-by: Xin Wang <xiwang5@microsoft.com>

co-authorized by: jianquanye@microsoft.com
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants