[
https://issues.apache.org/jira/browse/CASSANDRA-20478?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17943264#comment-17943264
]
Brad Schoening commented on CASSANDRA-20478:
--------------------------------------------
[Brandon
Williams|https://issues.apache.org/jira/secure/ViewProfile.jspa?name=brandon.williams]
[Josh
McKenzie|https://issues.apache.org/jira/secure/ViewProfile.jspa?name=jmckenzie]
[~johnny15676] I reviewed the history here, and yes, it seems the intent to
drop Windows support included CQLSH. The lack of a CI environment for CQLSH
with Windows was a important part of that discussion.
As a practical matter, CQLSH works great on Windows. We have hundreds of users
running CQLSH on Windows and [AxonOps
Workbench|https://github.com/axonops/axonops-workbench] includes a binary CQLSH
for Windows.
This small issue can be fixed in a platform agnostic way by just including
os.getuid() within the exception handler block:
{quote}def is_file_secure(filename):
try:
st = os.stat(filename)
except OSError as e:
if e.errno != errno.ENOENT:
raise
# the file doesn't exist, the security of it is irrelevant
return True
uid = os.getuid() {color:#4c9aff}<--- add to try-except block{color}
{quote}
Adding official Windows support for CQLSH would require a CI environment. I've
got some thoughts on that, but that's a much bigger issue. Any objections to
resolving this so it doesn't break on Windows but in a platform agnostic way?
I created a provisional PR with a two-line change:
https://github.com/apache/cassandra/pull/4076
> CQLSH throws an exception loading .cqlshrc on Windows
> -----------------------------------------------------
>
> Key: CASSANDRA-20478
> URL: https://issues.apache.org/jira/browse/CASSANDRA-20478
> Project: Apache Cassandra
> Issue Type: Bug
> Components: CQL/Interpreter
> Reporter: Brad Schoening
> Priority: Low
> Time Spent: 10m
> Remaining Estimate: 0h
>
> {quote} File
> "C:\JPMC\DEV\TMP\ds\tools\python3.11\latest\Lib\site-packages\cqlshlib\util.py",
> line 125, in is_file_secure
> uid = os.getuid()
> ^^^^^^^^^
> AttributeError: module 'os' has no attribute 'getuid'. Did you mean: 'getpid'?
> {quote}
> The utility function is_file_secure() calls the function os.getuid() which is
> only implemented on Unix/Linux. See
> [https://docs.python.org/3/library/os.html#os.getuid].
> This can be reproduced by:
> * First, create an empty file on Windows 'foo'
> {quote}python
> >>> from cqlshlib.util import is_file_secure
> >>> is_file_secure('foo')
> {quote}
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]