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))
Esempio n. 2
0
 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")
Esempio n. 3
0
 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)
Esempio n. 4
0
 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)
Esempio n. 5
0
 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)
Esempio n. 6
0
 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)
Esempio n. 7
0
 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)