# -*- mode: python -*- Import("env") # # Schema and backward compatibility code for "config" collections. # env.Library('base', ['mongo_version_range.cpp', 'type_actionlog.cpp', 'type_collection.cpp', 'type_database.cpp', 'type_locks.cpp', 'type_lockpings.cpp', 'type_settings.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', '$BUILD_DIR/mongo/db/common']) 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', '$BUILD_DIR/mongo/db/common']) 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', '$BUILD_DIR/mongo/db/common']) 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', '$BUILD_DIR/mongo/db/common']) 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', '$BUILD_DIR/mongo/db/common']) # # Support for maintaining persistent sharding state and data. # env.Library('metadata', [ 'collection_metadata.cpp', 'metadata_loader.cpp' ], LIBDEPS=[ 'base', '$BUILD_DIR/mongo/bson', '$BUILD_DIR/mongo/base/base', '$BUILD_DIR/mongo/client/clientdriver', '$BUILD_DIR/mongo/range_arithmetic', '$BUILD_DIR/mongo/s/catalog/catalog_types' ]) env.CppUnitTest('chunk_diff_test', 'chunk_diff_test.cpp', LIBDEPS=['metadata', '$BUILD_DIR/mongo/db/common']) env.CppUnitTest('collection_metadata_test', 'collection_metadata_test.cpp', LIBDEPS=['metadata', '$BUILD_DIR/mongo/mocklib', '$BUILD_DIR/mongo/db/common']) env.CppUnitTest('metadata_loader_test', 'metadata_loader_test.cpp', LIBDEPS=['metadata', '$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='batch_write_types_test', source=[ 'write_ops/batched_command_response_test.cpp', 'write_ops/batched_delete_request_test.cpp', 'write_ops/batched_insert_request_test.cpp', 'write_ops/batched_request_metadata_test.cpp', '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', ], LIBDEPS=[ '$BUILD_DIR/mongo/bson', '$BUILD_DIR/mongo/client/clientdriver', 'batch_write_types', '$BUILD_DIR/mongo/synchronization' ], ) env.CppUnitTest( target='cluster_ops_test', source=[ 'write_ops/write_op_test.cpp', 'write_ops/batch_write_op_test.cpp', 'write_ops/batch_write_exec_test.cpp', ], LIBDEPS=[ 'cluster_ops', '$BUILD_DIR/mongo/db/common', '$BUILD_DIR/mongo/range_arithmetic', ] ) # 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='cluster_write_op_conversion_test', source=[ 'write_ops/batch_upconvert_test.cpp', '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/client/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_explain.cpp', 'cluster_write.cpp', 'dbclient_shard_resolver.cpp', ], LIBDEPS=[ '$BUILD_DIR/mongo/bson', '$BUILD_DIR/mongo/s/catalog/legacy/catalog_manager_legacy', '$BUILD_DIR/mongo/s/client/sharding_client', 'cluster_ops', 'cluster_write_op_conversion', ], ) env.CppUnitTest( target='chunk_manager_targeter_test', source=[ 'chunk_manager_targeter_test.cpp', ], LIBDEPS=[ '$BUILD_DIR/mongo/coredb', '$BUILD_DIR/mongo/coreserver', '$BUILD_DIR/mongo/coreshard', '$BUILD_DIR/mongo/mongocommon', '$BUILD_DIR/mongo/mongoscore', ] )