def test_cloud_exceptions(self): for error in [Exception("test exception"), IOError("test exception"), ssl.SSLError("test exception"), cloud_types.LibcloudError("test exception")]: self.assertTrue(azure.ComputeNodeDriver.is_cloud_exception(error), "{} not flagged as cloud exception".format(error))
def shutdown_node(self): if self._cloud.destroy_node(self.cloud_node): self._logger.info("Cloud node %s shut down.", self.cloud_node.id) self.success = True self._finished() else: # Force a retry. raise cloud_types.LibcloudError("destroy_node failed")
def test_create_can_raise_exception_after_timeout(self): driver = self.new_driver() arv_node = arvados_node_mock() create_method = self.driver_mock().create_node create_method.side_effect = cloud_types.LibcloudError("fake timeout") list_method = self.driver_mock().list_nodes list_method.return_value = [] with self.assertRaises(cloud_types.LibcloudError) as exc_test: driver.create_node(MockSize(1), arv_node) self.assertIs(create_method.side_effect, exc_test.exception)
def shutdown_node(self): if not self._cloud.destroy_node(self.cloud_node): # Force a retry. raise cloud_types.LibcloudError("destroy_node failed") self._logger.info("Cloud node %s shut down.", self.cloud_node.id) arv_node = self._arvados_node() if arv_node is None: self._finished(success_flag=True) else: self._later.clean_arvados_node(arv_node)
def test_create_can_find_node_after_timeout(self, create_kwargs={}, node_extra={}): driver = self.new_driver(create_kwargs=create_kwargs) arv_node = arvados_node_mock() cloud_node = cloud_node_mock(**node_extra) cloud_node.name = driver.create_cloud_name(arv_node) create_method = self.driver_mock().create_node create_method.side_effect = cloud_types.LibcloudError("fake timeout") list_method = self.driver_mock().list_nodes list_method.return_value = [cloud_node] actual = driver.create_node(MockSize(1), arv_node) self.assertIs(cloud_node, actual)
def check_node_found_after_timeout_has_fixed_size(self, size, cloud_node, create_kwargs={}): # This method needs to be called explicitly by driver test suites # that need it. self.driver_mock().list_sizes.return_value = [size] driver = self.new_driver(create_kwargs=create_kwargs) arv_node = arvados_node_mock() cloud_node.name = driver.create_cloud_name(arv_node) create_method = self.driver_mock().create_node create_method.side_effect = cloud_types.LibcloudError("fake timeout") self.driver_mock().list_nodes.return_value = [cloud_node] actual = driver.create_node(size, arv_node) self.assertIs(size, actual.size)
def shutdown_node(self): self._logger.info("Starting shutdown") arv_node = self._arvados_node() if not self._cloud.destroy_node(self.cloud_node): if self._cloud.broken(self.cloud_node): self._later.cancel_shutdown(self.NODE_BROKEN) return else: # Force a retry. raise cloud_types.LibcloudError("destroy_node failed") self._logger.info("Shutdown success") if arv_node is None: self._finished(success_flag=True) else: self._later.clean_arvados_node(arv_node)