This is an automated email from the ASF dual-hosted git repository. tomaz pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/libcloud.git
commit b98cc6a99f344ff1bee7ece7ad5071320ae4c9ec Author: Rob Zimmerman <[email protected]> AuthorDate: Thu Oct 10 13:16:55 2019 -0400 More async additions Adding async options for node start/stop operations. --- libcloud/compute/drivers/gce.py | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/libcloud/compute/drivers/gce.py b/libcloud/compute/drivers/gce.py index f2e9fd6..ec68303 100644 --- a/libcloud/compute/drivers/gce.py +++ b/libcloud/compute/drivers/gce.py @@ -6726,34 +6726,49 @@ class GCENodeDriver(NodeDriver): self.connection.async_request(request, method='POST', data=body) return True - def ex_start_node(self, node): + def ex_start_node(self, node, sync=True): """ Start a node that is stopped and in TERMINATED state. :param node: Node object to start :type node: :class:`Node` + :keyword sync: If true, do not return until destroyed or timeout + :type sync: ``bool`` + :return: True if successful :rtype: ``bool`` """ request = '/zones/%s/instances/%s/start' % (node.extra['zone'].name, node.name) - self.connection.async_request(request, method='POST') + + if sync: + self.connection.async_request(request, method='POST') + else: + self.connection.request(request, method='POST') + return True - def ex_stop_node(self, node): + def ex_stop_node(self, node, sync=True): """ Stop a running node. :param node: Node object to stop :type node: :class:`Node` + :keyword sync: If true, do not return until destroyed or timeout + :type sync: ``bool`` + :return: True if successful :rtype: ``bool`` """ request = '/zones/%s/instances/%s/stop' % (node.extra['zone'].name, node.name) - self.connection.async_request(request, method='POST') + if sync: + self.connection.async_request(request, method='POST') + else: + self.connection.request(request, method='POST') + return True def ex_destroy_instancegroupmanager(self, manager):
