def test_creation_and_deletion(self, resource_group, location, storage_account, storage_account_key): """Tests basic use-case scenario. 1. Create cluster 2. Execute a task on the host 3. Execute a task in a docker container 4. Delete cluster """ cluster = Helpers.create_cluster( self.client, location, resource_group.name, self.cluster_name, 'STANDARD_D1', 1, storage_account.name, storage_account_key) self.assertEqual(cluster.name, self.cluster_name) self.assertIsNone(cluster.errors) self.assertEqual(cluster.vm_size, 'STANDARD_D1') # Verify that the cluster is reported in the list of clusters Helpers.assert_existing_clusters_are(self, self.client, resource_group.name, [self.cluster_name]) # Verify that one node is allocated and become available self.assertEqual( Helpers.wait_for_nodes(self.is_live, self.client, resource_group.name, self.cluster_name, 1, Helpers.NODE_STARTUP_TIMEOUT_SEC), 1) Helpers.assert_remote_login_info_reported_for_nodes(self, self.client, resource_group.name, self.cluster_name, 1) # Verify that the cluster able to run tasks. self.assertCanRunJobOnHost(resource_group, location, cluster.id) self.assertCanRunJobInContainer(resource_group, location, cluster.id) # Test cluster deletion self.client.clusters.delete(resource_group.name, Helpers.DEFAULT_WORKSPACE_NAME, self.cluster_name).result() Helpers.assert_existing_clusters_are(self, self.client, resource_group.name, [])
def assertCanResizeCluster(self, resource_group, target): self.client.clusters.update(resource_group.name, Helpers.DEFAULT_WORKSPACE_NAME, self.cluster_name, scale_settings=models.ScaleSettings( manual=models.ManualScaleSettings(target_node_count=target))) self.assertEqual( Helpers.wait_for_nodes(self.is_live, self.client, resource_group.name, self.cluster_name, target, Helpers.NODE_STARTUP_TIMEOUT_SEC), target) Helpers.assert_remote_login_info_reported_for_nodes(self, self.client, resource_group.name, self.cluster_name, target)
def test_cluster_resizing(self, resource_group, location, storage_account, storage_account_key): """Tests manual cluster resizing""" cluster = Helpers.create_cluster( self.client, location, resource_group.name, self.cluster_name, 'STANDARD_D1', 1, storage_account.name, storage_account_key) # Verify that one node is allocated and become available self.assertEqual( Helpers.wait_for_nodes(self.is_live, self.client, resource_group.name, self.cluster_name, 1, Helpers.NODE_STARTUP_TIMEOUT_SEC), 1) Helpers.assert_remote_login_info_reported_for_nodes(self, self.client, resource_group.name, self.cluster_name, 1) self.assertCanResizeCluster(resource_group, 0) self.assertCanResizeCluster(resource_group, 1) # Verify that cluster able to run tasks after resizing. self.assertCanRunJobOnHost(resource_group, location, cluster.id) self.client.clusters.delete(resource_group.name, Helpers.DEFAULT_WORKSPACE_NAME, self.cluster_name).result()