Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Merged
merged 1 commit into from
Aug 15, 2023

Conversation

wangxin
Copy link
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
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
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
Collaborator

Cherry-pick PR to 202012: #9456

@mssonicbld
Copy link
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