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

Warning while loading Kube-shell #83

Open
iamshreeram opened this issue Jul 24, 2020 · 4 comments
Open

Warning while loading Kube-shell #83

iamshreeram opened this issue Jul 24, 2020 · 4 comments

Comments

@iamshreeram
Copy link

On load of kube-shell, Seeing below WARING message. Is there any way to supress this?

/Applications/anaconda3/lib/python3.7/site-packages/kubernetes/config/kube_config.py:280: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
  config_dict=yaml.load(f),
/Applications/anaconda3/lib/python3.7/site-packages/kubeshell/kubeshell.py:43: YAMLLoadWarning: calling yaml.load_all() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
  for doc in docs:
@ningblue
Copy link

@iamshreeram
Copy link
Author

@ningblue , Thanks for looking into this. We might need to accept a parameter (a switch) to suppress these warnings. Something like --suppress-warnings that will set the above PYTHONWARNINGS.

What do you think?

@RamazanKara
Copy link

Can we please have this warning just disabled by default in kube-shell?

yaml.warnings({'YAMLLoadWarning': False})

@chmodshubham
Copy link

chmodshubham commented Feb 14, 2023

To resolve the warning messages, you can modify the code to specify the Loader parameter with the FullLoader implementation while calling the yaml.load() and yaml.load_all() functions.

in kubernetes/config/kube_config.py file,
modify the config_dict = yaml.load(f) with config_dict = yaml.load(f, Loader=yaml.FullLoader)

and in kubeshell/kubeshell.py file,
modify the for doc in docs: with for doc in yaml.load_all(fd, Loader=yaml.FullLoader):

The location of the kubernetes/config and kubeshell/ directory depends on how you installed the Kubernetes client library. If you installed the library using pip, the directory is typically located in the site-packages directory of your Python installation.

To find the location, you can use the following command in a terminal:

pip show kubernetes | grep Location
## Location: /usr/local/lib/python3.8/dist-packages

To Change:

sed  -i "s/config_dict = yaml.load(f)/config_dict = yaml.load(f, Loader=yaml.FullLoader)/g" /usr/local/lib/python3.8/dist-packages/kubernetes/config/kube_config.py

sed -i "s/for doc in docs:/for doc in yaml.load_all(fd, Loader=yaml.FullLoader):/g" /usr/local/lib/python3.8/dist-packages/kubeshell/kubeshell.py

Note: Change the location with yours.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants