libcouchbase 0.3.3 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (167) hide show
  1. checksums.yaml +4 -4
  2. data/ext/libcouchbase/CMakeLists.txt +6 -8
  3. data/ext/libcouchbase/README.markdown +2 -2
  4. data/ext/libcouchbase/RELEASE_NOTES.markdown +229 -2
  5. data/ext/libcouchbase/cmake/Modules/ConfigureDtrace.cmake +11 -0
  6. data/ext/libcouchbase/cmake/Modules/GenerateConfigDotH.cmake +18 -0
  7. data/ext/libcouchbase/cmake/Modules/GetLibcouchbaseFlags.cmake +3 -2
  8. data/ext/libcouchbase/cmake/Modules/GetVersionInfo.cmake +3 -3
  9. data/ext/libcouchbase/cmake/config-cmake.h.in +4 -0
  10. data/ext/libcouchbase/cmake/defs.mk.in +0 -2
  11. data/ext/libcouchbase/cmake/source_files.cmake +21 -5
  12. data/ext/libcouchbase/contrib/cJSON/cJSON.c +1 -1
  13. data/ext/libcouchbase/contrib/cbsasl/src/client.c +2 -0
  14. data/ext/libcouchbase/example/users/README +48 -0
  15. data/ext/libcouchbase/example/users/users.c +147 -0
  16. data/ext/libcouchbase/include/libcouchbase/auth.h +175 -31
  17. data/ext/libcouchbase/include/libcouchbase/cntl.h +82 -1
  18. data/ext/libcouchbase/include/libcouchbase/couchbase.h +45 -3
  19. data/ext/libcouchbase/include/libcouchbase/error.h +19 -1
  20. data/ext/libcouchbase/include/libcouchbase/iops.h +3 -0
  21. data/ext/libcouchbase/include/libcouchbase/n1ql.h +31 -1
  22. data/ext/libcouchbase/include/libcouchbase/plugins/io/bsdio-inl.c +4 -1
  23. data/ext/libcouchbase/include/libcouchbase/subdoc.h +36 -2
  24. data/ext/libcouchbase/include/libcouchbase/views.h +7 -1
  25. data/ext/libcouchbase/include/libcouchbase/visibility.h +1 -0
  26. data/ext/libcouchbase/include/memcached/protocol_binary.h +24 -1146
  27. data/ext/libcouchbase/packaging/parse-git-describe.pl +1 -1
  28. data/ext/libcouchbase/plugins/io/libev/libev_io_opts.h +3 -2
  29. data/ext/libcouchbase/src/README.md +0 -2
  30. data/ext/libcouchbase/src/auth-priv.h +23 -4
  31. data/ext/libcouchbase/src/auth.cc +51 -43
  32. data/ext/libcouchbase/src/bootstrap.cc +244 -0
  33. data/ext/libcouchbase/src/bootstrap.h +58 -38
  34. data/ext/libcouchbase/src/bucketconfig/bc_cccp.cc +120 -158
  35. data/ext/libcouchbase/src/bucketconfig/bc_file.cc +281 -0
  36. data/ext/libcouchbase/src/bucketconfig/bc_http.cc +526 -0
  37. data/ext/libcouchbase/src/bucketconfig/bc_http.h +50 -25
  38. data/ext/libcouchbase/src/bucketconfig/bc_static.cc +150 -0
  39. data/ext/libcouchbase/src/bucketconfig/clconfig.h +410 -386
  40. data/ext/libcouchbase/src/bucketconfig/confmon.cc +393 -0
  41. data/ext/libcouchbase/src/cbft.cc +22 -27
  42. data/ext/libcouchbase/src/cntl.cc +56 -22
  43. data/ext/libcouchbase/src/connspec.cc +47 -6
  44. data/ext/libcouchbase/src/connspec.h +27 -0
  45. data/ext/libcouchbase/src/dns-srv.cc +147 -0
  46. data/ext/libcouchbase/src/dump.cc +3 -3
  47. data/ext/libcouchbase/src/errmap.cc +173 -0
  48. data/ext/libcouchbase/src/errmap.h +198 -0
  49. data/ext/libcouchbase/src/getconfig.cc +7 -33
  50. data/ext/libcouchbase/src/handler.cc +118 -7
  51. data/ext/libcouchbase/src/hostlist.cc +0 -36
  52. data/ext/libcouchbase/src/hostlist.h +44 -62
  53. data/ext/libcouchbase/src/http/http-priv.h +125 -112
  54. data/ext/libcouchbase/src/http/http.cc +27 -35
  55. data/ext/libcouchbase/src/http/http.h +1 -34
  56. data/ext/libcouchbase/src/http/http_io.cc +28 -36
  57. data/ext/libcouchbase/src/instance.cc +131 -34
  58. data/ext/libcouchbase/src/internal.h +58 -26
  59. data/ext/libcouchbase/src/jsparse/parser.cc +136 -210
  60. data/ext/libcouchbase/src/jsparse/parser.h +84 -98
  61. data/ext/libcouchbase/src/lcbht/lcbht.cc +177 -0
  62. data/ext/libcouchbase/src/lcbht/lcbht.h +174 -163
  63. data/ext/libcouchbase/src/lcbio/connect.cc +569 -0
  64. data/ext/libcouchbase/src/lcbio/connect.h +16 -7
  65. data/ext/libcouchbase/src/lcbio/ctx.c +1 -1
  66. data/ext/libcouchbase/src/lcbio/iotable.h +101 -16
  67. data/ext/libcouchbase/src/lcbio/{ioutils.c → ioutils.cc} +30 -51
  68. data/ext/libcouchbase/src/lcbio/ioutils.h +29 -90
  69. data/ext/libcouchbase/src/lcbio/manager.cc +543 -0
  70. data/ext/libcouchbase/src/lcbio/manager.h +133 -96
  71. data/ext/libcouchbase/src/lcbio/protoctx.c +2 -2
  72. data/ext/libcouchbase/src/lcbio/timer-cxx.h +87 -0
  73. data/ext/libcouchbase/src/mc/mcreq.c +11 -2
  74. data/ext/libcouchbase/src/mc/mcreq.h +9 -2
  75. data/ext/libcouchbase/src/mcserver/mcserver.cc +175 -43
  76. data/ext/libcouchbase/src/mcserver/mcserver.h +9 -13
  77. data/ext/libcouchbase/src/mcserver/negotiate.cc +181 -62
  78. data/ext/libcouchbase/src/mcserver/negotiate.h +1 -3
  79. data/ext/libcouchbase/src/mctx-helper.h +51 -0
  80. data/ext/libcouchbase/src/n1ql/ixmgmt.cc +1 -2
  81. data/ext/libcouchbase/src/n1ql/n1ql.cc +74 -42
  82. data/ext/libcouchbase/src/netbuf/netbuf.c +4 -4
  83. data/ext/libcouchbase/src/newconfig.cc +6 -6
  84. data/ext/libcouchbase/src/nodeinfo.cc +2 -2
  85. data/ext/libcouchbase/src/operations/{cbflush.c → cbflush.cc} +7 -15
  86. data/ext/libcouchbase/src/operations/{counter.c → counter.cc} +0 -0
  87. data/ext/libcouchbase/src/operations/durability.cc +6 -26
  88. data/ext/libcouchbase/src/operations/durability_internal.h +6 -3
  89. data/ext/libcouchbase/src/operations/{get.c → get.cc} +24 -26
  90. data/ext/libcouchbase/src/operations/{observe.c → observe.cc} +68 -93
  91. data/ext/libcouchbase/src/operations/{pktfwd.c → pktfwd.cc} +0 -0
  92. data/ext/libcouchbase/src/operations/{remove.c → remove.cc} +0 -0
  93. data/ext/libcouchbase/src/operations/stats.cc +3 -8
  94. data/ext/libcouchbase/src/operations/{store.c → store.cc} +27 -32
  95. data/ext/libcouchbase/src/operations/subdoc.cc +129 -42
  96. data/ext/libcouchbase/src/operations/{touch.c → touch.cc} +0 -0
  97. data/ext/libcouchbase/src/packetutils.h +30 -2
  98. data/ext/libcouchbase/src/probes.d +1 -1
  99. data/ext/libcouchbase/src/rdb/rope.c +1 -1
  100. data/ext/libcouchbase/src/{retrychk.c → retrychk.cc} +2 -3
  101. data/ext/libcouchbase/src/retryq.cc +52 -14
  102. data/ext/libcouchbase/src/retryq.h +3 -3
  103. data/ext/libcouchbase/src/settings.c +5 -0
  104. data/ext/libcouchbase/src/settings.h +11 -0
  105. data/ext/libcouchbase/src/ssl/ssl_c.c +1 -0
  106. data/ext/libcouchbase/src/ssl/ssl_common.c +2 -0
  107. data/ext/libcouchbase/src/ssl/ssl_e.c +0 -1
  108. data/ext/libcouchbase/src/strcodecs/strcodecs.h +1 -1
  109. data/ext/libcouchbase/src/trace.h +4 -4
  110. data/ext/libcouchbase/src/vbucket/vbucket.c +6 -10
  111. data/ext/libcouchbase/src/views/{docreq.c → docreq.cc} +48 -54
  112. data/ext/libcouchbase/src/views/docreq.h +24 -30
  113. data/ext/libcouchbase/src/views/viewreq.cc +318 -0
  114. data/ext/libcouchbase/src/views/viewreq.h +43 -13
  115. data/ext/libcouchbase/tests/basic/t_connstr.cc +88 -50
  116. data/ext/libcouchbase/tests/basic/t_creds.cc +47 -5
  117. data/ext/libcouchbase/tests/basic/t_host.cc +67 -75
  118. data/ext/libcouchbase/tests/basic/t_jsparse.cc +27 -82
  119. data/ext/libcouchbase/tests/basic/t_misc.cc +1 -1
  120. data/ext/libcouchbase/tests/basic/t_n1qlstrings.cc +0 -1
  121. data/ext/libcouchbase/tests/htparse/t_basic.cc +58 -78
  122. data/ext/libcouchbase/tests/ioserver/connection.cc +1 -1
  123. data/ext/libcouchbase/tests/ioserver/ioserver.cc +19 -6
  124. data/ext/libcouchbase/tests/iotests/mock-environment.cc +28 -2
  125. data/ext/libcouchbase/tests/iotests/mock-environment.h +51 -1
  126. data/ext/libcouchbase/tests/iotests/t_behavior.cc +1 -7
  127. data/ext/libcouchbase/tests/iotests/t_confmon.cc +97 -115
  128. data/ext/libcouchbase/tests/iotests/t_durability.cc +0 -1
  129. data/ext/libcouchbase/tests/iotests/t_eerrs.cc +119 -0
  130. data/ext/libcouchbase/tests/iotests/t_errmap.cc +178 -0
  131. data/ext/libcouchbase/tests/iotests/t_misc.cc +3 -3
  132. data/ext/libcouchbase/tests/iotests/t_netfail.cc +1 -1
  133. data/ext/libcouchbase/tests/iotests/t_obseqno.cc +0 -1
  134. data/ext/libcouchbase/tests/iotests/t_subdoc.cc +18 -11
  135. data/ext/libcouchbase/tests/mc/t_alloc.cc +9 -9
  136. data/ext/libcouchbase/tests/socktests/socktest.cc +7 -10
  137. data/ext/libcouchbase/tests/socktests/socktest.h +2 -3
  138. data/ext/libcouchbase/tests/socktests/t_basic.cc +6 -6
  139. data/ext/libcouchbase/tests/socktests/t_manager.cc +5 -6
  140. data/ext/libcouchbase/tests/socktests/t_ssl.cc +1 -1
  141. data/ext/libcouchbase/tests/vbucket/confdata/ketama_expected.json +2562 -0
  142. data/ext/libcouchbase/tests/vbucket/confdata/memd_ketama_config.json +31 -0
  143. data/ext/libcouchbase/tests/vbucket/t_config.cc +35 -5
  144. data/ext/libcouchbase/tools/CMakeLists.txt +2 -2
  145. data/ext/libcouchbase/tools/cbc-handlers.h +128 -0
  146. data/ext/libcouchbase/tools/cbc-n1qlback.cc +64 -10
  147. data/ext/libcouchbase/tools/cbc-pillowfight.cc +2 -2
  148. data/ext/libcouchbase/tools/cbc.cc +143 -10
  149. data/ext/libcouchbase/tools/docgen/loc.h +1 -1
  150. data/lib/libcouchbase/connection.rb +4 -3
  151. data/lib/libcouchbase/version.rb +1 -1
  152. metadata +37 -28
  153. data/ext/libcouchbase/include/memcached/vbucket.h +0 -42
  154. data/ext/libcouchbase/src/bootstrap.c +0 -269
  155. data/ext/libcouchbase/src/bucketconfig/bc_file.c +0 -347
  156. data/ext/libcouchbase/src/bucketconfig/bc_http.c +0 -630
  157. data/ext/libcouchbase/src/bucketconfig/bc_mcraw.c +0 -150
  158. data/ext/libcouchbase/src/bucketconfig/confmon.c +0 -474
  159. data/ext/libcouchbase/src/lcbht/lcbht.c +0 -282
  160. data/ext/libcouchbase/src/lcbio/connect.c +0 -557
  161. data/ext/libcouchbase/src/lcbio/manager.c +0 -584
  162. data/ext/libcouchbase/src/packetutils.c +0 -37
  163. data/ext/libcouchbase/src/simplestring.c +0 -211
  164. data/ext/libcouchbase/src/simplestring.h +0 -228
  165. data/ext/libcouchbase/src/ssobuf.h +0 -82
  166. data/ext/libcouchbase/src/views/viewreq.c +0 -358
  167. data/ext/libcouchbase/tests/basic/t_string.cc +0 -112
@@ -3,6 +3,7 @@
3
3
  #include <map>
4
4
  #include <sstream>
5
5
  #include <iostream>
6
+ #include <iomanip>
6
7
  #include <fstream>
7
8
  #include <algorithm>
8
9
  #include <libcouchbase/vbucket.h>
@@ -14,6 +15,8 @@
14
15
  #include "common/histogram.h"
15
16
  #include "cbc-handlers.h"
16
17
  #include "connspec.h"
18
+ #include "contrib/lcb-jsoncpp/lcb-jsoncpp.h"
19
+
17
20
  using namespace cbc;
18
21
 
19
22
  using std::string;
@@ -910,7 +913,7 @@ ArithmeticHandler::run()
910
913
  cmd.initial = o_initial.result();
911
914
  }
912
915
  uint64_t delta = o_delta.result();
913
- if (delta > std::numeric_limits<int64_t>::max()) {
916
+ if (delta > static_cast<uint64_t>(std::numeric_limits<int64_t>::max())) {
914
917
  throw BadArg("Delta too big");
915
918
  }
916
919
  cmd.delta = static_cast<int64_t>(delta);
@@ -1166,7 +1169,7 @@ AdminHandler::run()
1166
1169
  {
1167
1170
  fprintf(stderr, "Requesting %s\n", getURI().c_str());
1168
1171
  HttpBaseHandler::run();
1169
- printf("%s", resbuf.c_str());
1172
+ printf("%s\n", resbuf.c_str());
1170
1173
  }
1171
1174
 
1172
1175
  void
@@ -1202,6 +1205,125 @@ BucketCreateHandler::run()
1202
1205
  AdminHandler::run();
1203
1206
  }
1204
1207
 
1208
+ void
1209
+ RbacHandler::run()
1210
+ {
1211
+ fprintf(stderr, "Requesting %s\n", getURI().c_str());
1212
+ HttpBaseHandler::run();
1213
+ if (o_raw.result()) {
1214
+ printf("%s\n", resbuf.c_str());
1215
+ } else {
1216
+ format();
1217
+ }
1218
+ }
1219
+
1220
+ void
1221
+ RoleListHandler::format()
1222
+ {
1223
+ Json::Value json;
1224
+ if (!Json::Reader().parse(resbuf, json)) {
1225
+ fprintf(stderr, "Failed to parse response as JSON, falling back to raw mode\n");
1226
+ printf("%s\n", resbuf.c_str());
1227
+ }
1228
+
1229
+ std::map<string, string> roles;
1230
+ size_t max_width = 0;
1231
+ for (Json::Value::iterator i = json.begin(); i != json.end(); i++) {
1232
+ Json::Value role = *i;
1233
+ string role_id = role["role"].asString() + ": ";
1234
+ roles[role_id] = role["desc"].asString();
1235
+ if (max_width < role_id.size()) {
1236
+ max_width = role_id.size();
1237
+ }
1238
+ }
1239
+ for (map<string, string>::iterator i = roles.begin(); i != roles.end(); i++) {
1240
+ std::cout << std::left << std::setw(max_width) << i->first << i->second << std::endl;
1241
+ }
1242
+ }
1243
+
1244
+ void
1245
+ UserListHandler::format()
1246
+ {
1247
+ Json::Value json;
1248
+ if (!Json::Reader().parse(resbuf, json)) {
1249
+ fprintf(stderr, "Failed to parse response as JSON, falling back to raw mode\n");
1250
+ printf("%s\n", resbuf.c_str());
1251
+ }
1252
+
1253
+ map<string, map<string, string> > users;
1254
+ size_t max_width = 0;
1255
+ for (Json::Value::iterator i = json.begin(); i != json.end(); i++) {
1256
+ Json::Value user = *i;
1257
+ string domain = user["domain"].asString();
1258
+ string user_id = user["id"].asString();
1259
+ string user_name = user["name"].asString();
1260
+ if (!user_name.empty()) {
1261
+ user_id += " (" + user_name + "): ";
1262
+ }
1263
+ stringstream roles;
1264
+ Json::Value roles_ary = user["roles"];
1265
+ for (Json::Value::iterator j = roles_ary.begin(); j != roles_ary.end(); j++) {
1266
+ Json::Value role = *j;
1267
+ roles << "\n - " << role["role"].asString();
1268
+ if (!role["bucket_name"].empty()) {
1269
+ roles << "[" << role["bucket_name"].asString() << "]";
1270
+ }
1271
+ }
1272
+ if (max_width < user_id.size()) {
1273
+ max_width = user_id.size();
1274
+ }
1275
+ users[domain][user_id] = roles.str();
1276
+ }
1277
+ if (!users["local"].empty()) {
1278
+ std::cout << "Local users:" << std::endl;
1279
+ int j = 1;
1280
+ for (map<string, string>::iterator i = users["local"].begin(); i != users["local"].end(); i++, j++) {
1281
+ std::cout << j << ". " << std::left << std::setw(max_width) << i->first << i->second << std::endl;
1282
+ }
1283
+ }
1284
+ if (!users["external"].empty()) {
1285
+ std::cout << "External users:" << std::endl;
1286
+ int j = 1;
1287
+ for (map<string, string>::iterator i = users["external"].begin(); i != users["external"].end(); i++, j++) {
1288
+ std::cout << j << ". " << std::left << std::setw(max_width) << i->first << i->second << std::endl;
1289
+ }
1290
+ }
1291
+ }
1292
+
1293
+ void
1294
+ UserUpsertHandler::run()
1295
+ {
1296
+ stringstream ss;
1297
+
1298
+ name = getRequiredArg();
1299
+ domain = o_domain.result();
1300
+ if (domain != "local" && domain != "external") {
1301
+ throw BadArg("Unrecognized domain type");
1302
+ }
1303
+ if (!o_roles.passed()) {
1304
+ throw BadArg("At least one role has to be specified");
1305
+ }
1306
+ std::vector<std::string> roles = o_roles.result();
1307
+ std::string roles_param;
1308
+ for (size_t ii = 0; ii < roles.size(); ii++) {
1309
+ if (roles_param.empty()) {
1310
+ roles_param += roles[ii];
1311
+ } else {
1312
+ roles_param += std::string(",") + roles[ii];
1313
+ }
1314
+ }
1315
+ ss << "roles=" << roles_param;
1316
+ if (o_full_name.passed()) {
1317
+ ss << "&name=" << o_full_name.result();
1318
+ }
1319
+ if (o_password.passed()) {
1320
+ ss << "&password=" << o_password.result();
1321
+ }
1322
+ body = ss.str();
1323
+
1324
+ AdminHandler::run();
1325
+ }
1326
+
1205
1327
  struct HostEnt {
1206
1328
  string protostr;
1207
1329
  string hostname;
@@ -1326,6 +1448,7 @@ static const char* optionsOrder[] = {
1326
1448
  "hash",
1327
1449
  "lock",
1328
1450
  "unlock",
1451
+ "cp",
1329
1452
  "rm",
1330
1453
  "stats",
1331
1454
  // "verify,
@@ -1337,6 +1460,10 @@ static const char* optionsOrder[] = {
1337
1460
  "bucket-create",
1338
1461
  "bucket-delete",
1339
1462
  "bucket-flush",
1463
+ "role-list",
1464
+ "user-list",
1465
+ "user-upsert",
1466
+ "user-delete",
1340
1467
  "connstr",
1341
1468
  "write-config",
1342
1469
  "strerror",
@@ -1423,8 +1550,10 @@ setupHandlers()
1423
1550
  handlers_s["strerror"] = new StrErrorHandler();
1424
1551
  handlers_s["observe-seqno"] = new ObserveSeqnoHandler();
1425
1552
  handlers_s["touch"] = new TouchHandler();
1426
-
1427
-
1553
+ handlers_s["role-list"] = new RoleListHandler();
1554
+ handlers_s["user-list"] = new UserListHandler();
1555
+ handlers_s["user-upsert"] = new UserUpsertHandler();
1556
+ handlers_s["user-delete"] = new UserDeleteHandler();
1428
1557
 
1429
1558
  map<string,Handler*>::iterator ii;
1430
1559
  for (ii = handlers_s.begin(); ii != handlers_s.end(); ++ii) {
@@ -1495,6 +1624,14 @@ wrapExternalBinary(int argc, char **argv, const std::string& name)
1495
1624
  #endif
1496
1625
  }
1497
1626
 
1627
+ static void cleanupHandlers()
1628
+ {
1629
+ map<string,Handler*>::iterator iter = handlers_s.begin();
1630
+ for (; iter != handlers_s.end(); iter++) {
1631
+ delete iter->second;
1632
+ }
1633
+ }
1634
+
1498
1635
  int main(int argc, char **argv)
1499
1636
  {
1500
1637
 
@@ -1508,6 +1645,8 @@ int main(int argc, char **argv)
1508
1645
  }
1509
1646
 
1510
1647
  setupHandlers();
1648
+ std::atexit(cleanupHandlers);
1649
+
1511
1650
  string cmdname;
1512
1651
  parseCommandname(cmdname, argc, argv);
1513
1652
 
@@ -1541,10 +1680,4 @@ int main(int argc, char **argv)
1541
1680
  fprintf(stderr, "%s\n", err.what());
1542
1681
  exit(EXIT_FAILURE);
1543
1682
  }
1544
-
1545
- map<string,Handler*>::iterator iter = handlers_s.begin();
1546
- for (; iter != handlers_s.end(); iter++) {
1547
- delete iter->second;
1548
- }
1549
- exit(EXIT_SUCCESS);
1550
1683
  }
@@ -202,7 +202,7 @@ public:
202
202
  const Loc& loc = vecs[ii];
203
203
  std::string s = loc.to_string();
204
204
  printf("Loc[%lu]. Buf=%p. Len=%lu. Content=%s\n",
205
- ii, loc.at, loc.length, s.c_str());
205
+ ii, (void *)loc.at, loc.length, s.c_str());
206
206
  }
207
207
  }
208
208
  };
@@ -94,9 +94,10 @@ module Libcouchbase
94
94
  # Configure the connection to the database
95
95
  @connection = Ext::CreateSt.new
96
96
  @connection[:version] = 3
97
- @connection[:v][:v3][:connstr] = FFI::MemoryPointer.from_string(connstr)
98
- @connection[:v][:v3][:passwd] = FFI::MemoryPointer.from_string(password) if password
99
- @connection[:v][:v3][:io] = @io_ptr.get_pointer(0)
97
+ @connection[:v][:v3][:connstr] = FFI::MemoryPointer.from_string(connstr)
98
+ @connection[:v][:v3][:username] = FFI::MemoryPointer.from_string(bucket.to_s)
99
+ @connection[:v][:v3][:passwd] = FFI::MemoryPointer.from_string(password) if password
100
+ @connection[:v][:v3][:io] = @io_ptr.get_pointer(0)
100
101
  @handle_ptr = FFI::MemoryPointer.new :pointer, 1
101
102
  end
102
103
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true, encoding: ASCII-8BIT
2
2
 
3
3
  module Libcouchbase
4
- VERSION = '0.3.3'
4
+ VERSION = '1.0.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: libcouchbase
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stephen von Takach
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-06-02 00:00:00.000000000 Z
11
+ date: 2017-07-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi
@@ -290,8 +290,12 @@ files:
290
290
  - ext/libcouchbase/doc/man/cbc-observe.1
291
291
  - ext/libcouchbase/doc/man/cbc-pillowfight.1
292
292
  - ext/libcouchbase/doc/man/cbc-rm.1
293
+ - ext/libcouchbase/doc/man/cbc-role-list.1
293
294
  - ext/libcouchbase/doc/man/cbc-stats.1
294
295
  - ext/libcouchbase/doc/man/cbc-unlock.1
296
+ - ext/libcouchbase/doc/man/cbc-user-delete.1
297
+ - ext/libcouchbase/doc/man/cbc-user-list.1
298
+ - ext/libcouchbase/doc/man/cbc-user-upsert.1
295
299
  - ext/libcouchbase/doc/man/cbc-verbosity.1
296
300
  - ext/libcouchbase/doc/man/cbc-version.1
297
301
  - ext/libcouchbase/doc/man/cbc-view.1
@@ -312,6 +316,8 @@ files:
312
316
  - ext/libcouchbase/example/subdoc/subdoc-multi.cc
313
317
  - ext/libcouchbase/example/subdoc/subdoc-simple.cc
314
318
  - ext/libcouchbase/example/tick/tick.c
319
+ - ext/libcouchbase/example/users/README
320
+ - ext/libcouchbase/example/users/users.c
315
321
  - ext/libcouchbase/example/views/views-example.cc
316
322
  - ext/libcouchbase/include/libcouchbase/_cxxwrap.h
317
323
  - ext/libcouchbase/include/libcouchbase/api-legacy.h
@@ -342,7 +348,6 @@ files:
342
348
  - ext/libcouchbase/include/memcached/COPYING
343
349
  - ext/libcouchbase/include/memcached/README
344
350
  - ext/libcouchbase/include/memcached/protocol_binary.h
345
- - ext/libcouchbase/include/memcached/vbucket.h
346
351
  - ext/libcouchbase/packaging/README
347
352
  - ext/libcouchbase/packaging/abicheck/.gitignore
348
353
  - ext/libcouchbase/packaging/abicheck/Makefile
@@ -387,15 +392,15 @@ files:
387
392
  - ext/libcouchbase/src/aspend.h
388
393
  - ext/libcouchbase/src/auth-priv.h
389
394
  - ext/libcouchbase/src/auth.cc
390
- - ext/libcouchbase/src/bootstrap.c
395
+ - ext/libcouchbase/src/bootstrap.cc
391
396
  - ext/libcouchbase/src/bootstrap.h
392
397
  - ext/libcouchbase/src/bucketconfig/bc_cccp.cc
393
- - ext/libcouchbase/src/bucketconfig/bc_file.c
394
- - ext/libcouchbase/src/bucketconfig/bc_http.c
398
+ - ext/libcouchbase/src/bucketconfig/bc_file.cc
399
+ - ext/libcouchbase/src/bucketconfig/bc_http.cc
395
400
  - ext/libcouchbase/src/bucketconfig/bc_http.h
396
- - ext/libcouchbase/src/bucketconfig/bc_mcraw.c
401
+ - ext/libcouchbase/src/bucketconfig/bc_static.cc
397
402
  - ext/libcouchbase/src/bucketconfig/clconfig.h
398
- - ext/libcouchbase/src/bucketconfig/confmon.c
403
+ - ext/libcouchbase/src/bucketconfig/confmon.cc
399
404
  - ext/libcouchbase/src/callbacks.c
400
405
  - ext/libcouchbase/src/cbft.cc
401
406
  - ext/libcouchbase/src/cntl.cc
@@ -403,7 +408,10 @@ files:
403
408
  - ext/libcouchbase/src/connspec.cc
404
409
  - ext/libcouchbase/src/connspec.h
405
410
  - ext/libcouchbase/src/ctx-log-inl.h
411
+ - ext/libcouchbase/src/dns-srv.cc
406
412
  - ext/libcouchbase/src/dump.cc
413
+ - ext/libcouchbase/src/errmap.cc
414
+ - ext/libcouchbase/src/errmap.h
407
415
  - ext/libcouchbase/src/getconfig.cc
408
416
  - ext/libcouchbase/src/gethrtime.c
409
417
  - ext/libcouchbase/src/handler.cc
@@ -420,22 +428,23 @@ files:
420
428
  - ext/libcouchbase/src/iofactory.c
421
429
  - ext/libcouchbase/src/jsparse/parser.cc
422
430
  - ext/libcouchbase/src/jsparse/parser.h
423
- - ext/libcouchbase/src/lcbht/lcbht.c
431
+ - ext/libcouchbase/src/lcbht/lcbht.cc
424
432
  - ext/libcouchbase/src/lcbht/lcbht.h
425
- - ext/libcouchbase/src/lcbio/connect.c
433
+ - ext/libcouchbase/src/lcbio/connect.cc
426
434
  - ext/libcouchbase/src/lcbio/connect.h
427
435
  - ext/libcouchbase/src/lcbio/ctx.c
428
436
  - ext/libcouchbase/src/lcbio/ctx.h
429
437
  - ext/libcouchbase/src/lcbio/iotable.c
430
438
  - ext/libcouchbase/src/lcbio/iotable.h
431
- - ext/libcouchbase/src/lcbio/ioutils.c
439
+ - ext/libcouchbase/src/lcbio/ioutils.cc
432
440
  - ext/libcouchbase/src/lcbio/ioutils.h
433
441
  - ext/libcouchbase/src/lcbio/lcbio.h
434
- - ext/libcouchbase/src/lcbio/manager.c
442
+ - ext/libcouchbase/src/lcbio/manager.cc
435
443
  - ext/libcouchbase/src/lcbio/manager.h
436
444
  - ext/libcouchbase/src/lcbio/protoctx.c
437
445
  - ext/libcouchbase/src/lcbio/rw-inl.h
438
446
  - ext/libcouchbase/src/lcbio/ssl.h
447
+ - ext/libcouchbase/src/lcbio/timer-cxx.h
439
448
  - ext/libcouchbase/src/lcbio/timer-ng.h
440
449
  - ext/libcouchbase/src/lcbio/timer.c
441
450
  - ext/libcouchbase/src/legacy.c
@@ -456,6 +465,7 @@ files:
456
465
  - ext/libcouchbase/src/mcserver/mcserver.h
457
466
  - ext/libcouchbase/src/mcserver/negotiate.cc
458
467
  - ext/libcouchbase/src/mcserver/negotiate.h
468
+ - ext/libcouchbase/src/mctx-helper.h
459
469
  - ext/libcouchbase/src/n1ql/ixmgmt.cc
460
470
  - ext/libcouchbase/src/n1ql/n1ql-internal.h
461
471
  - ext/libcouchbase/src/n1ql/n1ql.cc
@@ -466,22 +476,21 @@ files:
466
476
  - ext/libcouchbase/src/netbuf/netbuf.h
467
477
  - ext/libcouchbase/src/newconfig.cc
468
478
  - ext/libcouchbase/src/nodeinfo.cc
469
- - ext/libcouchbase/src/operations/cbflush.c
470
- - ext/libcouchbase/src/operations/counter.c
479
+ - ext/libcouchbase/src/operations/cbflush.cc
480
+ - ext/libcouchbase/src/operations/counter.cc
471
481
  - ext/libcouchbase/src/operations/durability-cas.cc
472
482
  - ext/libcouchbase/src/operations/durability-seqno.cc
473
483
  - ext/libcouchbase/src/operations/durability.cc
474
484
  - ext/libcouchbase/src/operations/durability_internal.h
475
- - ext/libcouchbase/src/operations/get.c
485
+ - ext/libcouchbase/src/operations/get.cc
476
486
  - ext/libcouchbase/src/operations/observe-seqno.cc
477
- - ext/libcouchbase/src/operations/observe.c
478
- - ext/libcouchbase/src/operations/pktfwd.c
479
- - ext/libcouchbase/src/operations/remove.c
487
+ - ext/libcouchbase/src/operations/observe.cc
488
+ - ext/libcouchbase/src/operations/pktfwd.cc
489
+ - ext/libcouchbase/src/operations/remove.cc
480
490
  - ext/libcouchbase/src/operations/stats.cc
481
- - ext/libcouchbase/src/operations/store.c
491
+ - ext/libcouchbase/src/operations/store.cc
482
492
  - ext/libcouchbase/src/operations/subdoc.cc
483
- - ext/libcouchbase/src/operations/touch.c
484
- - ext/libcouchbase/src/packetutils.c
493
+ - ext/libcouchbase/src/operations/touch.cc
485
494
  - ext/libcouchbase/src/packetutils.h
486
495
  - ext/libcouchbase/src/probes.d
487
496
  - ext/libcouchbase/src/rdb/bigalloc.c
@@ -490,15 +499,13 @@ files:
490
499
  - ext/libcouchbase/src/rdb/libcalloc.c
491
500
  - ext/libcouchbase/src/rdb/rope.c
492
501
  - ext/libcouchbase/src/rdb/rope.h
493
- - ext/libcouchbase/src/retrychk.c
502
+ - ext/libcouchbase/src/retrychk.cc
494
503
  - ext/libcouchbase/src/retryq.cc
495
504
  - ext/libcouchbase/src/retryq.h
496
505
  - ext/libcouchbase/src/ringbuffer.c
497
506
  - ext/libcouchbase/src/ringbuffer.h
498
507
  - ext/libcouchbase/src/settings.c
499
508
  - ext/libcouchbase/src/settings.h
500
- - ext/libcouchbase/src/simplestring.c
501
- - ext/libcouchbase/src/simplestring.h
502
509
  - ext/libcouchbase/src/sllist-inl.h
503
510
  - ext/libcouchbase/src/sllist.h
504
511
  - ext/libcouchbase/src/ssl/CMakeLists.txt
@@ -506,7 +513,6 @@ files:
506
513
  - ext/libcouchbase/src/ssl/ssl_common.c
507
514
  - ext/libcouchbase/src/ssl/ssl_e.c
508
515
  - ext/libcouchbase/src/ssl/ssl_iot_common.h
509
- - ext/libcouchbase/src/ssobuf.h
510
516
  - ext/libcouchbase/src/strcodecs/base64.c
511
517
  - ext/libcouchbase/src/strcodecs/strcodecs.h
512
518
  - ext/libcouchbase/src/timings.c
@@ -522,9 +528,9 @@ files:
522
528
  - ext/libcouchbase/src/vbucket/rfc1321/md5.h
523
529
  - ext/libcouchbase/src/vbucket/rfc1321/md5c-inl.h
524
530
  - ext/libcouchbase/src/vbucket/vbucket.c
525
- - ext/libcouchbase/src/views/docreq.c
531
+ - ext/libcouchbase/src/views/docreq.cc
526
532
  - ext/libcouchbase/src/views/docreq.h
527
- - ext/libcouchbase/src/views/viewreq.c
533
+ - ext/libcouchbase/src/views/viewreq.cc
528
534
  - ext/libcouchbase/src/views/viewreq.h
529
535
  - ext/libcouchbase/src/wait.cc
530
536
  - ext/libcouchbase/tests/CMakeLists.txt
@@ -545,7 +551,6 @@ files:
545
551
  - ext/libcouchbase/tests/basic/t_ringbuffer.cc
546
552
  - ext/libcouchbase/tests/basic/t_slist.cc
547
553
  - ext/libcouchbase/tests/basic/t_strerror.cc
548
- - ext/libcouchbase/tests/basic/t_string.cc
549
554
  - ext/libcouchbase/tests/basic/t_urlencode.cc
550
555
  - ext/libcouchbase/tests/check-all.cc
551
556
  - ext/libcouchbase/tests/htparse/t_basic.cc
@@ -569,6 +574,8 @@ files:
569
574
  - ext/libcouchbase/tests/iotests/t_configcache.cc
570
575
  - ext/libcouchbase/tests/iotests/t_confmon.cc
571
576
  - ext/libcouchbase/tests/iotests/t_durability.cc
577
+ - ext/libcouchbase/tests/iotests/t_eerrs.cc
578
+ - ext/libcouchbase/tests/iotests/t_errmap.cc
572
579
  - ext/libcouchbase/tests/iotests/t_forward.cc
573
580
  - ext/libcouchbase/tests/iotests/t_get.cc
574
581
  - ext/libcouchbase/tests/iotests/t_http.cc
@@ -621,9 +628,11 @@ files:
621
628
  - ext/libcouchbase/tests/unit_tests.cc
622
629
  - ext/libcouchbase/tests/vbucket/confdata/bad.json
623
630
  - ext/libcouchbase/tests/vbucket/confdata/full_25.json
631
+ - ext/libcouchbase/tests/vbucket/confdata/ketama_expected.json
624
632
  - ext/libcouchbase/tests/vbucket/confdata/memd_25.json
625
633
  - ext/libcouchbase/tests/vbucket/confdata/memd_30.json
626
634
  - ext/libcouchbase/tests/vbucket/confdata/memd_45.json
635
+ - ext/libcouchbase/tests/vbucket/confdata/memd_ketama_config.json
627
636
  - ext/libcouchbase/tests/vbucket/confdata/terse_25.json
628
637
  - ext/libcouchbase/tests/vbucket/confdata/terse_30.json
629
638
  - ext/libcouchbase/tests/vbucket/t_config.cc