Use cached IP for google driver
GetIP
gets called every time GetSSHHostname
is called which is
called to run every ssh command to the machine. GetIP
is sending a
request to the API every time we request it.
Check if the in-memory IP is available before sending a request to the API, and save it at the end as well if it's not present.
Adding tests is quite difficult here since the client for accessing the
Google API is created within GetIP
so it's not something that can be
mocked easily. To make it testable we require a lot of changes to the
google driver which will be riskier the not adding tests.
Below are some metrics on how many times we used to call the API for the IP address when creating and removing a machine:
Before Patch:
Number of GetIP
Calls: 21
Number of Instance.Get
Calls: 21
After Patch:
Number of GetIP
Calls: 21
Number of Instance.Get
Calls: 1