lib/knapsack_pro/allocator.rb in knapsack_pro-0.17.0 vs lib/knapsack_pro/allocator.rb in knapsack_pro-0.18.0
- old
+ new
@@ -6,34 +6,48 @@
@ci_node_index = args.fetch(:ci_node_index)
@repository_adapter = args.fetch(:repository_adapter)
end
def test_file_paths
- encrypted_test_files = KnapsackPro::Crypto::Encryptor.call(test_files)
- action = KnapsackPro::Client::API::V1::BuildDistributions.subset(
- commit_hash: repository_adapter.commit_hash,
- branch: repository_adapter.branch,
- node_total: ci_node_total,
- node_index: ci_node_index,
- test_files: encrypted_test_files,
- )
- connection = KnapsackPro::Client::Connection.new(action)
+ connection = KnapsackPro::Client::Connection.new(build_action)
response = connection.call
if connection.success?
raise ArgumentError.new(response) if connection.errors?
- decrypted_test_files = KnapsackPro::Crypto::Decryptor.call(test_files, response['test_files'])
- KnapsackPro::TestFilePresenter.paths(decrypted_test_files)
+ prepare_test_files(response)
else
- test_flat_distributor = KnapsackPro::TestFlatDistributor.new(test_files, ci_node_total)
- test_files_for_node_index = test_flat_distributor.test_files_for_node(ci_node_index)
- KnapsackPro::TestFilePresenter.paths(test_files_for_node_index)
+ fallback_test_files
end
end
private
attr_reader :test_files,
:ci_node_total,
:ci_node_index,
:repository_adapter
+
+ def encrypted_test_files
+ KnapsackPro::Crypto::Encryptor.call(test_files)
+ end
+
+ def build_action
+ KnapsackPro::Client::API::V1::BuildDistributions.subset(
+ commit_hash: repository_adapter.commit_hash,
+ branch: repository_adapter.branch,
+ node_total: ci_node_total,
+ node_index: ci_node_index,
+ test_files: encrypted_test_files,
+ )
+ end
+
+ def prepare_test_files(response)
+ decrypted_test_files = KnapsackPro::Crypto::Decryptor.call(test_files, response['test_files'])
+ KnapsackPro::TestFilePresenter.paths(decrypted_test_files)
+ end
+
+ def fallback_test_files
+ test_flat_distributor = KnapsackPro::TestFlatDistributor.new(test_files, ci_node_total)
+ test_files_for_node_index = test_flat_distributor.test_files_for_node(ci_node_index)
+ KnapsackPro::TestFilePresenter.paths(test_files_for_node_index)
+ end
end
end