diff options
Diffstat (limited to 'src/mongo/s/SConscript')
| -rw-r--r-- | src/mongo/s/SConscript | 361 |
1 files changed, 313 insertions, 48 deletions
diff --git a/src/mongo/s/SConscript b/src/mongo/s/SConscript index 07b2ec020d4..a481ba8cfa8 100644 --- a/src/mongo/s/SConscript +++ b/src/mongo/s/SConscript @@ -6,51 +6,79 @@ Import("env") # Schema and backward compatibility code for "config" collections. # -env.StaticLibrary('base', [#'chunk_version.cpp', - 'field_parser.cpp', - 'mongo_version_range.cpp', - 'type_changelog.cpp', - 'type_chunk.cpp', - 'type_collection.cpp', - 'type_database.cpp', - 'type_locks.cpp', - 'type_lockpings.cpp', - 'type_settings.cpp', - 'type_shard.cpp', - 'type_config_version.cpp', - 'type_mongos.cpp', - 'type_tags.cpp'], - LIBDEPS=['$BUILD_DIR/mongo/base/base', - '$BUILD_DIR/mongo/bson']) - -env.CppUnitTest('chunk_version_test', 'chunk_version_test.cpp', LIBDEPS=['base']) - -env.CppUnitTest('field_parser_test', 'field_parser_test.cpp', LIBDEPS=['base']) +env.Library('base', ['mongo_version_range.cpp', + 'range_arithmetic.cpp', + 'type_changelog.cpp', + 'type_chunk.cpp', + 'type_collection.cpp', + 'type_database.cpp', + 'type_locks.cpp', + 'type_lockpings.cpp', + 'type_settings.cpp', + 'type_shard.cpp', + 'type_config_version.cpp', + 'type_mongos.cpp', + 'type_tags.cpp'], + LIBDEPS=['$BUILD_DIR/mongo/base/base', + '$BUILD_DIR/mongo/bson']) + +env.CppUnitTest('chunk_version_test', 'chunk_version_test.cpp', + LIBDEPS=['base', + '$BUILD_DIR/mongo/db/common']) env.CppUnitTest('mongo_version_range_test', 'mongo_version_range_test.cpp', - LIBDEPS=['base', '$BUILD_DIR/mongo/bson']) + LIBDEPS=['base', + '$BUILD_DIR/mongo/bson', + '$BUILD_DIR/mongo/db/common']) + +env.CppUnitTest('range_arithmetic_test', 'range_arithmetic_test.cpp', + LIBDEPS=['base', + '$BUILD_DIR/mongo/bson', + '$BUILD_DIR/mongo/db/common']) -env.CppUnitTest('type_changelog_test', 'type_changelog_test.cpp', LIBDEPS=['base']) +env.CppUnitTest('type_changelog_test', 'type_changelog_test.cpp', + LIBDEPS=['base', + '$BUILD_DIR/mongo/db/common']) -env.CppUnitTest('type_chunk_test', 'type_chunk_test.cpp', LIBDEPS=['base']) +env.CppUnitTest('type_chunk_test', 'type_chunk_test.cpp', + LIBDEPS=['base', + '$BUILD_DIR/mongo/db/common']) -env.CppUnitTest('type_collection_test', 'type_collection_test.cpp', LIBDEPS=['base']) +env.CppUnitTest('type_collection_test', 'type_collection_test.cpp', + LIBDEPS=['base', + '$BUILD_DIR/mongo/db/common']) -env.CppUnitTest('type_config_version_test', 'type_config_version_test.cpp', LIBDEPS=['base']) +env.CppUnitTest('type_config_version_test', 'type_config_version_test.cpp', + LIBDEPS=['base', + '$BUILD_DIR/mongo/db/common']) -env.CppUnitTest('type_database_test', 'type_database_test.cpp', LIBDEPS=['base']) +env.CppUnitTest('type_database_test', 'type_database_test.cpp', + LIBDEPS=['base', + '$BUILD_DIR/mongo/db/common']) -env.CppUnitTest('type_locks_test', 'type_locks_test.cpp', LIBDEPS=['base']) +env.CppUnitTest('type_locks_test', 'type_locks_test.cpp', + LIBDEPS=['base', + '$BUILD_DIR/mongo/db/common']) -env.CppUnitTest('type_lockpings_test', 'type_lockpings_test.cpp', LIBDEPS=['base']) +env.CppUnitTest('type_lockpings_test', 'type_lockpings_test.cpp', + LIBDEPS=['base', + '$BUILD_DIR/mongo/db/common']) -env.CppUnitTest('type_settings_test', 'type_settings_test.cpp', LIBDEPS=['base']) +env.CppUnitTest('type_settings_test', 'type_settings_test.cpp', + LIBDEPS=['base', + '$BUILD_DIR/mongo/db/common']) -env.CppUnitTest('type_shard_test', 'type_shard_test.cpp', LIBDEPS=['base']) +env.CppUnitTest('type_shard_test', 'type_shard_test.cpp', + LIBDEPS=['base', + '$BUILD_DIR/mongo/db/common']) -env.CppUnitTest('type_mongos_test', 'type_mongos_test.cpp', LIBDEPS=['base']) +env.CppUnitTest('type_mongos_test', 'type_mongos_test.cpp', + LIBDEPS=['base', + '$BUILD_DIR/mongo/db/common']) -env.CppUnitTest('type_tags_test', 'type_tags_test.cpp', LIBDEPS=['base']) +env.CppUnitTest('type_tags_test', 'type_tags_test.cpp', + LIBDEPS=['base', + '$BUILD_DIR/mongo/db/common']) # # Upgrade library for config database @@ -60,8 +88,8 @@ env.CppUnitTest('type_tags_test', 'type_tags_test.cpp', LIBDEPS=['base']) env.Library('upgrade', ['cluster_client_internal.cpp', 'config_upgrade.cpp', 'config_upgrade_helpers.cpp', - 'config_upgrade_v0_to_v4.cpp', - 'config_upgrade_v3_to_v4.cpp'], + 'config_upgrade_v0_to_v5.cpp', + 'config_upgrade_v4_to_v5.cpp'], LIBDEPS=['base', '$BUILD_DIR/mongo/mongocommon']) @@ -71,26 +99,263 @@ env.Library('upgrade', ['cluster_client_internal.cpp', # Support for maintaining persistent sharding state and data. # -env.StaticLibrary('metadata', ['collection_manager.cpp', - 'metadata_loader.cpp'], - LIBDEPS=['base', - '$BUILD_DIR/mongo/clientandshell', - '$BUILD_DIR/mongo/base/base', - '$BUILD_DIR/mongo/bson']) +env.Library('metadata', ['collection_metadata.cpp', + 'metadata_loader.cpp'], + LIBDEPS=['base', + '$BUILD_DIR/mongo/bson', + '$BUILD_DIR/mongo/base/base', + '$BUILD_DIR/mongo/clientdriver', + ]) env.CppUnitTest('chunk_diff_test', 'chunk_diff_test.cpp', - LIBDEPS=['metadata'], - NO_CRUTCH=True) + LIBDEPS=['metadata', + '$BUILD_DIR/mongo/db/common']) -env.CppUnitTest('collection_manager_test', - 'collection_manager_test.cpp', +env.CppUnitTest('collection_metadata_test', + 'collection_metadata_test.cpp', LIBDEPS=['metadata', - '$BUILD_DIR/mongo/mocklib'], - NO_CRUTCH=True) + '$BUILD_DIR/mongo/mocklib', + '$BUILD_DIR/mongo/db/common']) env.CppUnitTest('metadata_loader_test', 'metadata_loader_test.cpp', LIBDEPS=['metadata', - '$BUILD_DIR/mongo/mocklib'], - NO_CRUTCH=True); + '$BUILD_DIR/mongo/mocklib', + '$BUILD_DIR/mongo/db/common']) + +# +# Write Operations +# + +# Types for write operations +# TODO: Push upward into shared types library between mongos/mongod +env.Library( + target='batch_write_types', + source=[ + 'write_ops/batched_command_request.cpp', + 'write_ops/batched_command_response.cpp', + 'write_ops/batched_delete_request.cpp', + 'write_ops/batched_delete_document.cpp', + 'write_ops/batched_insert_request.cpp', + 'write_ops/batched_request_metadata.cpp', + 'write_ops/batched_update_request.cpp', + 'write_ops/batched_update_document.cpp', + 'write_ops/batched_upsert_detail.cpp', + 'write_ops/wc_error_detail.cpp', + 'write_ops/write_error_detail.cpp', + ], + LIBDEPS=[ + '$BUILD_DIR/mongo/base/base', + '$BUILD_DIR/mongo/bson', + ], +) + +env.CppUnitTest( + target='batched_command_response_test', + source=[ + 'write_ops/batched_command_response_test.cpp', + ], + LIBDEPS=[ + 'batch_write_types', + '$BUILD_DIR/mongo/db/common', + ] +) + +env.CppUnitTest( + target='batched_delete_request_test', + source=[ + 'write_ops/batched_delete_request_test.cpp', + ], + LIBDEPS=[ + 'batch_write_types', + '$BUILD_DIR/mongo/db/common', + ] +) + +env.CppUnitTest( + target='batched_insert_request_test', + source=[ + 'write_ops/batched_insert_request_test.cpp', + ], + LIBDEPS=[ + 'batch_write_types', + '$BUILD_DIR/mongo/db/common', + ] +) + +env.CppUnitTest( + target='batched_request_metadata_test', + source=[ + 'write_ops/batched_request_metadata_test.cpp', + ], + LIBDEPS=[ + 'batch_write_types', + '$BUILD_DIR/mongo/db/common', + ] +) + +env.CppUnitTest( + target='batched_update_request_test', + source=[ + 'write_ops/batched_update_request_test.cpp', + ], + LIBDEPS=[ + 'batch_write_types', + '$BUILD_DIR/mongo/db/common', + ] +) + +# +# State and execution of operations across multiple hosts +# +# This functionality is self-contained and independent of any network or system-level +# code. +# +env.Library( + target='cluster_ops', + source=[ + 'write_ops/write_op.cpp', + 'write_ops/batch_write_op.cpp', + 'write_ops/batch_write_exec.cpp', + 'write_ops/config_coordinator.cpp', + 'multi_host_query.cpp' + ], + LIBDEPS=[ + '$BUILD_DIR/mongo/bson', + 'batch_write_types', + '$BUILD_DIR/mongo/synchronization' + ], +) + +env.CppUnitTest( + target='write_op_test', + source=[ + 'write_ops/write_op_test.cpp', + ], + LIBDEPS=[ + 'base', + 'cluster_ops', + '$BUILD_DIR/mongo/db/common', + ] +) + +env.CppUnitTest( + target='batch_write_op_test', + source=[ + 'write_ops/batch_write_op_test.cpp', + ], + LIBDEPS=[ + 'base', + 'cluster_ops', + '$BUILD_DIR/mongo/db/common', + ] +) + +env.CppUnitTest( + target='batch_write_exec_test', + source=[ + 'write_ops/batch_write_exec_test.cpp', + ], + LIBDEPS=[ + 'base', + 'cluster_ops', + '$BUILD_DIR/mongo/db/common', + '$BUILD_DIR/mongo/clientdriver', + ], +) + +env.CppUnitTest( + target='config_coordinator_test', + source=[ + 'write_ops/config_coordinator_test.cpp', + ], + LIBDEPS=[ + 'base', + 'cluster_ops', + '$BUILD_DIR/mongo/db/common', + '$BUILD_DIR/mongo/clientdriver', + ], +) + +env.CppUnitTest( + target='multi_host_query_test', + source=[ + 'multi_host_query_test.cpp', + ], + LIBDEPS=[ + 'base', + 'cluster_ops', + '$BUILD_DIR/mongo/db/common', + '$BUILD_DIR/mongo/clientdriver', + ], +) + +# Upconvert/Downconvert write functionality for mongos +env.Library( + target='cluster_write_op_conversion', + source=[ + 'write_ops/batch_upconvert.cpp', + 'write_ops/batch_downconvert.cpp', + ], + LIBDEPS=[ + '$BUILD_DIR/mongo/bson', + 'cluster_ops', + '$BUILD_DIR/mongo/db/common', # for Message + ], +) + +env.CppUnitTest( + target='batch_upconvert_test', + source=[ + 'write_ops/batch_upconvert_test.cpp', + ], + LIBDEPS=[ + 'cluster_ops', + 'cluster_write_op_conversion', + '$BUILD_DIR/mongo/db/common', + '$BUILD_DIR/mongo/server_options', # DbMessage needs server options + "$BUILD_DIR/mongo/clientdriver", + ] +) + +env.CppUnitTest( + target='batch_downconvert_test', + source=[ + 'write_ops/batch_downconvert_test.cpp', + ], + LIBDEPS=[ + 'cluster_ops', + 'cluster_write_op_conversion', + '$BUILD_DIR/mongo/db/common', + '$BUILD_DIR/mongo/server_options', # DbMessage needs server options + "$BUILD_DIR/mongo/clientdriver", + ] +) + +# +# Implementations of components to perform cluster operations in mongos +# +# This is the glue code implementing the interfaces required by cluster ops +# in particular environments. +# +env.Library( + target='cluster_ops_impl', + source=[ + 'chunk_manager_targeter.cpp', + 'cluster_write.cpp', + 'dbclient_multi_command.cpp', + 'dbclient_shard_resolver.cpp', + 'scc_fast_query_handler.cpp', + 'write_ops/dbclient_safe_writer.cpp', + ], + LIBDEPS=[ + '$BUILD_DIR/mongo/bson', + 'batch_write_types', + 'cluster_ops', + 'cluster_write_op_conversion', + ], +) + + + |
