mongo 2.0.0.rc → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +2 -1
- data/README.md +1 -4
- data/lib/mongo/client.rb +1 -1
- data/lib/mongo/collection.rb +1 -1
- data/lib/mongo/collection/view.rb +1 -1
- data/lib/mongo/collection/view/writable.rb +26 -10
- data/lib/mongo/database.rb +1 -1
- data/lib/mongo/grid/file.rb +12 -0
- data/lib/mongo/grid/file/chunk.rb +1 -1
- data/lib/mongo/grid/file/metadata.rb +13 -0
- data/lib/mongo/operation/aggregate.rb +1 -1
- data/lib/mongo/operation/write.rb +1 -5
- data/lib/mongo/operation/write/bulk.rb +17 -0
- data/lib/mongo/operation/write/{bulk_delete.rb → bulk/bulk_delete.rb} +1 -1
- data/lib/mongo/operation/{bulk_delete → write/bulk/bulk_delete}/result.rb +3 -0
- data/lib/mongo/operation/write/{bulk_insert.rb → bulk/bulk_insert.rb} +1 -1
- data/lib/mongo/operation/{bulk_insert → write/bulk/bulk_insert}/result.rb +3 -0
- data/lib/mongo/operation/write/{bulk_mergable.rb → bulk/bulk_mergable.rb} +0 -0
- data/lib/mongo/operation/write/{bulk_update.rb → bulk/bulk_update.rb} +1 -1
- data/lib/mongo/operation/{bulk_update → write/bulk/bulk_update}/result.rb +8 -1
- data/lib/mongo/operation/write/{legacy_bulk_mergable.rb → bulk/legacy_bulk_mergable.rb} +0 -0
- data/lib/mongo/operation/write/delete.rb +2 -0
- data/lib/mongo/operation/write/delete/result.rb +40 -0
- data/lib/mongo/operation/write/insert.rb +2 -0
- data/lib/mongo/operation/write/insert/result.rb +32 -0
- data/lib/mongo/operation/write/update.rb +9 -4
- data/lib/mongo/operation/write/update/result.rb +160 -0
- data/lib/mongo/server/connectable.rb +11 -0
- data/lib/mongo/server/connection.rb +1 -0
- data/lib/mongo/server/connection_pool.rb +1 -1
- data/lib/mongo/server/connection_pool/queue.rb +1 -1
- data/lib/mongo/server/monitor.rb +16 -0
- data/lib/mongo/server/monitor/connection.rb +1 -0
- data/lib/mongo/socket/ssl.rb +30 -8
- data/lib/mongo/version.rb +1 -1
- data/lib/mongo/write_concern/acknowledged.rb +1 -1
- data/lib/mongo/write_concern/unacknowledged.rb +1 -1
- data/spec/certificates/ca.pem +17 -0
- data/spec/certificates/client.pem +101 -0
- data/spec/certificates/crl.pem +10 -0
- data/spec/certificates/crl_client_revoked.pem +12 -0
- data/spec/certificates/password_protected.pem +51 -0
- data/spec/certificates/server.pem +34 -0
- data/spec/mongo/collection/view/writable_spec.rb +175 -0
- data/spec/mongo/crud_spec.rb +42 -0
- data/spec/mongo/grid/file/metadata_spec.rb +23 -0
- data/spec/mongo/grid/file_spec.rb +34 -0
- data/spec/mongo/operation/write/delete_spec.rb +8 -0
- data/spec/mongo/operation/write/insert_spec.rb +21 -8
- data/spec/mongo/operation/write/update_spec.rb +52 -1
- data/spec/mongo/server/connection_spec.rb +33 -10
- data/spec/mongo/server/monitor_spec.rb +14 -0
- data/spec/spec_helper.rb +2 -17
- data/spec/support/crud.rb +203 -0
- data/spec/support/crud/read.rb +144 -0
- data/spec/support/crud/write.rb +214 -0
- data/spec/support/crud_tests/read/aggregate.yml +43 -0
- data/spec/support/crud_tests/read/count.yml +37 -0
- data/spec/support/crud_tests/read/distinct.yml +33 -0
- data/spec/support/crud_tests/read/find.yml +50 -0
- data/spec/support/crud_tests/write/deleteMany.yml +36 -0
- data/spec/support/crud_tests/write/deleteOne.yml +49 -0
- data/spec/support/crud_tests/write/findOneAndDelete.yml +54 -0
- data/spec/support/crud_tests/write/findOneAndReplace.yml +153 -0
- data/spec/support/crud_tests/write/findOneAndUpdate.yml +161 -0
- data/spec/support/crud_tests/write/insertMany.yml +24 -0
- data/spec/support/crud_tests/write/insertOne.yml +19 -0
- data/spec/support/crud_tests/write/replaceOne.yml +96 -0
- data/spec/support/crud_tests/write/updateMany.yml +83 -0
- data/spec/support/crud_tests/write/updateOne.yml +80 -0
- metadata +64 -20
- metadata.gz.sig +0 -0
- data/spec/mongo_orchestration_spec.rb +0 -70
- data/spec/support/mongo_orchestration.rb +0 -61
- data/spec/support/mongo_orchestration/requestable.rb +0 -109
- data/spec/support/mongo_orchestration/standalone.rb +0 -57
@@ -1,109 +0,0 @@
|
|
1
|
-
# Copyright (C) 2009-2014 MongoDB, Inc.
|
2
|
-
#
|
3
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
-
# you may not use this file except in compliance with the License.
|
5
|
-
# You may obtain a copy of the License at
|
6
|
-
#
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
-
#
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
-
# See the License for the specific language governing permissions and
|
13
|
-
# limitations under the License.
|
14
|
-
|
15
|
-
require 'httparty'
|
16
|
-
|
17
|
-
module MongoOrchestration
|
18
|
-
|
19
|
-
# Encapsulates behavior of a Mongo Orchestration resource.
|
20
|
-
#
|
21
|
-
# @since 2.0.0
|
22
|
-
module Requestable
|
23
|
-
include HTTParty
|
24
|
-
|
25
|
-
# @return [ String ] base_path The path used to connect to the MO service.
|
26
|
-
attr_reader :base_path
|
27
|
-
alias_method :path, :base_path
|
28
|
-
|
29
|
-
# Initialize a Mongo Orchestration resource.
|
30
|
-
#
|
31
|
-
# @example Initialize a Mongo Orchestration resource.
|
32
|
-
# MongoOrchestration::Standalone.new
|
33
|
-
#
|
34
|
-
# @param [ Hash ] options Options for creating the resource.
|
35
|
-
#
|
36
|
-
# @option options [ String ] :path The path to use for Mongo Orchestration.
|
37
|
-
#
|
38
|
-
# @since 2.0.0
|
39
|
-
def initialize(options = {})
|
40
|
-
@base_path = options[:path] || MongoOrchestration::DEFAULT_BASE_URI
|
41
|
-
create(options)
|
42
|
-
end
|
43
|
-
|
44
|
-
# Is the Mongo Orchestration resource still available?
|
45
|
-
#
|
46
|
-
# @example Check if the Mongo Orchestration resource is available.
|
47
|
-
# standalone.alive?
|
48
|
-
#
|
49
|
-
# @return [ true, false ] If the resource is available.
|
50
|
-
#
|
51
|
-
# @since 2.0.0
|
52
|
-
def alive?
|
53
|
-
begin
|
54
|
-
get("servers/#{id}")
|
55
|
-
rescue ServiceNotAvailable
|
56
|
-
return false
|
57
|
-
end
|
58
|
-
!!(@config = @response if @response &&
|
59
|
-
@response['procInfo'] &&
|
60
|
-
@response['procInfo']['alive'])
|
61
|
-
end
|
62
|
-
|
63
|
-
# Send a request to Mongo Orchestration, specifying the request type.
|
64
|
-
#
|
65
|
-
# @example Get a list of servers.
|
66
|
-
# standalone.request('GET', 'servers')
|
67
|
-
#
|
68
|
-
# @param [ String ] method The request type.
|
69
|
-
# @param [ String ] path The path for the request.
|
70
|
-
# @param [ Hash ] options Options for the request.
|
71
|
-
#
|
72
|
-
# @return [ HTTParty::Response ] The response from the request.
|
73
|
-
#
|
74
|
-
# @since 2.0.0
|
75
|
-
def request(method, path, options = {})
|
76
|
-
http_request(method, path, options)
|
77
|
-
end
|
78
|
-
|
79
|
-
private
|
80
|
-
|
81
|
-
def http_request(method, path = nil, options = {})
|
82
|
-
dispatch do
|
83
|
-
method = method.downcase.to_sym unless method.class == Symbol
|
84
|
-
options[:body] = options[:body].to_json if options.has_key?(:body)
|
85
|
-
HTTParty.send(method, [@base_path, path].compact.join('/'), options)
|
86
|
-
end
|
87
|
-
end
|
88
|
-
|
89
|
-
def get(path = nil, options = {})
|
90
|
-
http_request(__method__, path, options)
|
91
|
-
end
|
92
|
-
|
93
|
-
def post(path = nil, options = {})
|
94
|
-
http_request(__method__, path, options)
|
95
|
-
end
|
96
|
-
|
97
|
-
def dispatch
|
98
|
-
begin
|
99
|
-
@response = yield
|
100
|
-
rescue ArgumentError, Errno::ECONNREFUSED
|
101
|
-
raise ServiceNotAvailable.new unless ok?
|
102
|
-
end
|
103
|
-
end
|
104
|
-
|
105
|
-
def ok?
|
106
|
-
@response && @response.code/100 == 2
|
107
|
-
end
|
108
|
-
end
|
109
|
-
end
|
@@ -1,57 +0,0 @@
|
|
1
|
-
# Copyright (C) 2009-2014 MongoDB, Inc.
|
2
|
-
#
|
3
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
-
# you may not use this file except in compliance with the License.
|
5
|
-
# You may obtain a copy of the License at
|
6
|
-
#
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
-
#
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
-
# See the License for the specific language governing permissions and
|
13
|
-
# limitations under the License.
|
14
|
-
|
15
|
-
module MongoOrchestration
|
16
|
-
class Standalone
|
17
|
-
include Requestable
|
18
|
-
|
19
|
-
attr_reader :client
|
20
|
-
attr_reader :id
|
21
|
-
|
22
|
-
# Stop this resource.
|
23
|
-
#
|
24
|
-
# @since 2.0.0
|
25
|
-
def stop
|
26
|
-
request_content = { body: { action: 'stop' } }
|
27
|
-
@config = post("#{orchestration}/#{id}", request_content)
|
28
|
-
self
|
29
|
-
end
|
30
|
-
|
31
|
-
private
|
32
|
-
|
33
|
-
def create(options = {})
|
34
|
-
unless alive?
|
35
|
-
@config = post(orchestration,
|
36
|
-
{ body: initialize_config[:request_content] })
|
37
|
-
@id = @config['id']
|
38
|
-
@client = Mongo::Client.new("#{@config['mongodb_uri']}")
|
39
|
-
end
|
40
|
-
self
|
41
|
-
end
|
42
|
-
|
43
|
-
def orchestration
|
44
|
-
initialize_config[:orchestration]
|
45
|
-
end
|
46
|
-
|
47
|
-
def initialize_config
|
48
|
-
{
|
49
|
-
orchestration: 'servers',
|
50
|
-
request_content: {
|
51
|
-
name: 'mongod',
|
52
|
-
procParams: { journal: true }
|
53
|
-
}
|
54
|
-
}
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|