5

The Google documentation is a little generic on this topic and I find it hard to get around the different APIs and terms they're using, so I'm wondering if someone could point me to the right direction.

I'm looking for a way to call the gcloud command directly from Python. I've installed gcloud in my Python environment and as an example to follow, I'd like to know how to do the following from Python:

gcloud compute copy-files [Source directory or file name] [destination directory of file name]

4 Answers 4

4

You should check out gcloud: https://pypi.python.org/pypi/gcloud

Sign up to request clarification or add additional context in comments.

Comments

1

There's nothing magic about uploading files to a Computer Engine VM. I ended up using paramiko to upload files.

Comments

1

You can of course call gcloud from python directly and not care about the implementation details, or you can try to see what gcloud does:

Try running gcloud compute copy-files with the --dry-run flag. That will expose the scp command it uses underneath and with what arguments. Knowing what scp params you need, you can recreate them programmatically using paramiko_scp in python. More information on this here: How to scp in python?

4 Comments

This is what I ended up doing, but I answered that already yesterday. How about other commands that are not scp related? How can these be called from gloud-python?
Don't run the gcloud command as a subprocess from Python. Instead, use google-api-client-library and see the relevant docs for how to use it, e.g., with Google Compute Engine. If you have a specific question about a particular command or API, please clarify in a separate question.
I found the google api client library in the meantime. I was wrongly assuming that gcloud is also a Python library which one could access from Python, but many commands just seem to map to other commands (like scp for instance).
@orange once you've installed gcloud (aka google-cloud-sdk), since it's Python, you can see the source so you can find out what the implementation is for any given command.
0

You can use the subprocess.run function in python to execute commands from your terminal/shell/bash. That is what I have done to execute gcloud commands from python, rather than using the Python SDK.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.