diff options
-rw-r--r-- | ceph.spec.in | 6 | ||||
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | debian/changelog | 6 | ||||
-rw-r--r-- | src/Makefile.am | 6 | ||||
-rw-r--r-- | src/rgw/rgw_admin.cc | 34 | ||||
-rw-r--r-- | src/rgw/rgw_rest.cc | 10 | ||||
-rw-r--r-- | src/rgw/rgw_rest_s3.cc | 70 | ||||
-rw-r--r-- | src/rgw/rgw_rest_swift.cc | 10 |
8 files changed, 74 insertions, 70 deletions
diff --git a/ceph.spec.in b/ceph.spec.in index fa72c2d9087..59b05afda8d 100644 --- a/ceph.spec.in +++ b/ceph.spec.in @@ -35,6 +35,8 @@ BuildRequires: gdbm BuildRequires: pkgconfig BuildRequires: python BuildRequires: libaio-devel +BuildRequires: libcurl-devel +BuildRequires: libxml2-devel ################################################################################# # specific @@ -53,7 +55,6 @@ Requires(post): chkconfig Requires(preun):chkconfig Requires(preun):initscripts %endif -BuildRequires: libcurl-devel %if 0%{with tcmalloc} # use isa so this will not be satisfied by # google-perftools-devel.i686 on a x86_64 box @@ -212,6 +213,9 @@ make -j$(getconf _NPROCESSORS_ONLN) %install make DESTDIR=$RPM_BUILD_ROOT install +rmdir $RPM_BUILD_ROOT/bin +rmdir $RPM_BUILD_ROOT/lib +rmdir $RPM_BUILD_ROOT/include find $RPM_BUILD_ROOT -type f -name "*.la" -exec rm -f {} ';' find $RPM_BUILD_ROOT -type f -name "*.a" -exec rm -f {} ';' install -D src/init-ceph $RPM_BUILD_ROOT%{_initrddir}/ceph diff --git a/configure.ac b/configure.ac index f73c973fe72..86043003e63 100644 --- a/configure.ac +++ b/configure.ac @@ -8,7 +8,7 @@ AC_PREREQ(2.59) # NOTE: This version is _only_ used for naming the tarball. The # VERSION define is not used by the code. It gets a version string # from 'git describe'; see src/ceph_ver.[ch] -AC_INIT([ceph], [0.47.1], [ceph-devel@vger.kernel.org]) +AC_INIT([ceph], [0.47.2], [ceph-devel@vger.kernel.org]) AC_CONFIG_SUBDIRS([src/gtest]) AC_CONFIG_SUBDIRS([src/leveldb]) diff --git a/debian/changelog b/debian/changelog index 5c4514da80a..22f35a64ef5 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +ceph (0.47.2-1) experimental; urgency=low + + * New upstream release + + -- Sage Weil <sage@newdream.net> Wed, 23 May 2012 09:00:43 -0700 + ceph (0.47.1-1) experimental; urgency=low * New upstream release diff --git a/src/Makefile.am b/src/Makefile.am index 300f4a036f8..18323dcaa3f 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -920,12 +920,6 @@ rados_include_DATA = \ $(srcdir)/include/page.h \ $(srcdir)/include/crc32c.h -if WITH_RADOSGW -rgw_includedir = $(includedir)/rados -rgw_include_DATA = \ - $(srcdir)/include/rados/librgw.h -endif - crush_includedir = $(includedir)/crush crush_include_DATA = \ $(srcdir)/crush/hash.h \ diff --git a/src/rgw/rgw_admin.cc b/src/rgw/rgw_admin.cc index 0d4905c1b46..1e486b46fbf 100644 --- a/src/rgw/rgw_admin.cc +++ b/src/rgw/rgw_admin.cc @@ -296,10 +296,10 @@ static void show_user_info(RGWUserInfo& info, Formatter *formatter) formatter->open_object_section("user_info"); - formatter->dump_string("user_id", info.user_id.c_str()); + formatter->dump_string("user_id", info.user_id); formatter->dump_int("rados_uid", info.auid); - formatter->dump_string("display_name", info.display_name.c_str()); - formatter->dump_string("email", info.user_email.c_str()); + formatter->dump_string("display_name", info.display_name); + formatter->dump_string("email", info.user_email); formatter->dump_int("suspended", (int)info.suspended); // subusers @@ -473,12 +473,12 @@ int bucket_stats(rgw_bucket& bucket, Formatter *formatter) } map<RGWObjCategory, RGWBucketStats>::iterator iter; formatter->open_object_section("stats"); - formatter->dump_string("bucket", bucket.name.c_str()); - formatter->dump_string("pool", bucket.pool.c_str()); + formatter->dump_string("bucket", bucket.name); + formatter->dump_string("pool", bucket.pool); formatter->dump_string("id", bucket.bucket_id); - formatter->dump_string("marker", bucket.marker.c_str()); - formatter->dump_string("owner", bucket_info.owner.c_str()); + formatter->dump_string("marker", bucket.marker); + formatter->dump_string("owner", bucket_info.owner); formatter->open_object_section("usage"); for (iter = stats.begin(); iter != stats.end(); ++iter) { RGWBucketStats& s = iter->second; @@ -1156,23 +1156,23 @@ int main(int argc, char **argv) if (show_log_entries) { formatter->open_object_section("log_entry"); - formatter->dump_string("bucket", entry.bucket.c_str()); + formatter->dump_string("bucket", entry.bucket); entry.time.gmtime(formatter->dump_stream("time")); // UTC entry.time.localtime(formatter->dump_stream("time_local")); - formatter->dump_string("remote_addr", entry.remote_addr.c_str()); + formatter->dump_string("remote_addr", entry.remote_addr); if (entry.object_owner.length()) - formatter->dump_string("object_owner", entry.object_owner.c_str()); - formatter->dump_string("user", entry.user.c_str()); - formatter->dump_string("operation", entry.op.c_str()); - formatter->dump_string("uri", entry.uri.c_str()); - formatter->dump_string("http_status", entry.http_status.c_str()); - formatter->dump_string("error_code", entry.error_code.c_str()); + formatter->dump_string("object_owner", entry.object_owner); + formatter->dump_string("user", entry.user); + formatter->dump_string("operation", entry.op); + formatter->dump_string("uri", entry.uri); + formatter->dump_string("http_status", entry.http_status); + formatter->dump_string("error_code", entry.error_code); formatter->dump_int("bytes_sent", entry.bytes_sent); formatter->dump_int("bytes_received", entry.bytes_received); formatter->dump_int("object_size", entry.obj_size); formatter->dump_int("total_time", total_time); - formatter->dump_string("user_agent", entry.user_agent.c_str()); - formatter->dump_string("referrer", entry.referrer.c_str()); + formatter->dump_string("user_agent", entry.user_agent); + formatter->dump_string("referrer", entry.referrer); formatter->close_section(); formatter->flush(cout); } diff --git a/src/rgw/rgw_rest.cc b/src/rgw/rgw_rest.cc index 9649466f8bc..56452c473c5 100644 --- a/src/rgw/rgw_rest.cc +++ b/src/rgw/rgw_rest.cc @@ -179,7 +179,7 @@ void dump_time(struct req_state *s, const char *name, time_t *t) if (strftime(buf, sizeof(buf), "%Y-%m-%dT%T.000Z", tmp) == 0) return; - s->formatter->dump_format(name, buf); + s->formatter->dump_string(name, buf); } void dump_owner(struct req_state *s, string& id, string& name, const char *section) @@ -187,8 +187,8 @@ void dump_owner(struct req_state *s, string& id, string& name, const char *secti if (!section) section = "Owner"; s->formatter->open_object_section(section); - s->formatter->dump_format("ID", id.c_str()); - s->formatter->dump_format("DisplayName", name.c_str()); + s->formatter->dump_string("ID", id); + s->formatter->dump_string("DisplayName", name); s->formatter->close_section(); } @@ -225,9 +225,9 @@ void end_header(struct req_state *s, const char *content_type) dump_start(s); s->formatter->open_object_section("Error"); if (!s->err.s3_code.empty()) - s->formatter->dump_string("Code", s->err.s3_code.c_str()); + s->formatter->dump_string("Code", s->err.s3_code); if (!s->err.message.empty()) - s->formatter->dump_format("Message", s->err.message.c_str()); + s->formatter->dump_string("Message", s->err.message); s->formatter->close_section(); dump_content_length(s, s->formatter->get_len()); } diff --git a/src/rgw/rgw_rest_s3.cc b/src/rgw/rgw_rest_s3.cc index d6a1dd98dce..2aee8e0d231 100644 --- a/src/rgw/rgw_rest_s3.cc +++ b/src/rgw/rgw_rest_s3.cc @@ -34,7 +34,7 @@ void list_all_buckets_end(struct req_state *s) void dump_bucket(struct req_state *s, RGWBucketEnt& obj) { s->formatter->open_object_section("Bucket"); - s->formatter->dump_format("Name", obj.bucket.name.c_str()); + s->formatter->dump_string("Name", obj.bucket.name); dump_time(s, "CreationDate", &obj.mtime); s->formatter->close_section(); } @@ -147,25 +147,25 @@ void RGWListBucket_REST_S3::send_response() s->formatter->open_object_section_in_ns("ListBucketResult", "http://s3.amazonaws.com/doc/2006-03-01/"); - s->formatter->dump_format("Name", s->bucket_name); + s->formatter->dump_string("Name", s->bucket_name); if (!prefix.empty()) - s->formatter->dump_format("Prefix", prefix.c_str()); - s->formatter->dump_format("Marker", marker.c_str()); + s->formatter->dump_string("Prefix", prefix); + s->formatter->dump_string("Marker", marker); s->formatter->dump_int("MaxKeys", max); if (!delimiter.empty()) - s->formatter->dump_format("Delimiter", delimiter.c_str()); + s->formatter->dump_string("Delimiter", delimiter); - s->formatter->dump_format("IsTruncated", (max && is_truncated ? "true" : "false")); + s->formatter->dump_string("IsTruncated", (max && is_truncated ? "true" : "false")); if (ret >= 0) { vector<RGWObjEnt>::iterator iter; for (iter = objs.begin(); iter != objs.end(); ++iter) { s->formatter->open_array_section("Contents"); - s->formatter->dump_string("Key", iter->name.c_str()); + s->formatter->dump_string("Key", iter->name); dump_time(s, "LastModified", &iter->mtime); s->formatter->dump_format("ETag", "\"%s\"", iter->etag.c_str()); s->formatter->dump_int("Size", iter->size); - s->formatter->dump_format("StorageClass", "STANDARD"); + s->formatter->dump_string("StorageClass", "STANDARD"); dump_owner(s, iter->owner, iter->owner_display_name); s->formatter->close_section(); } @@ -173,7 +173,7 @@ void RGWListBucket_REST_S3::send_response() map<string, bool>::iterator pref_iter; for (pref_iter = common_prefixes.begin(); pref_iter != common_prefixes.end(); ++pref_iter) { s->formatter->open_array_section("CommonPrefixes"); - s->formatter->dump_format("Prefix", pref_iter->first.c_str()); + s->formatter->dump_string("Prefix", pref_iter->first); s->formatter->close_section(); } } @@ -327,7 +327,7 @@ void RGWCopyObj_REST_S3::send_response() bufferlist& bl = iter->second; if (bl.length()) { char *etag = bl.c_str(); - s->formatter->dump_format("ETag", etag); + s->formatter->dump_string("ETag", etag); } } s->formatter->close_section(); @@ -388,9 +388,9 @@ void RGWInitMultipart_REST_S3::send_response() dump_start(s); s->formatter->open_object_section_in_ns("InitiateMultipartUploadResult", "http://s3.amazonaws.com/doc/2006-03-01/"); - s->formatter->dump_format("Bucket", s->bucket_name); - s->formatter->dump_format("Key", s->object); - s->formatter->dump_format("UploadId", upload_id.c_str()); + s->formatter->dump_string("Bucket", s->bucket_name); + s->formatter->dump_string("Key", s->object); + s->formatter->dump_string("UploadId", upload_id); s->formatter->close_section(); flush_formatter_to_req_state(s, s->formatter); } @@ -408,9 +408,9 @@ void RGWCompleteMultipart_REST_S3::send_response() "http://s3.amazonaws.com/doc/2006-03-01/"); if (g_conf->rgw_dns_name.length()) s->formatter->dump_format("Location", "%s.%s", s->bucket_name, g_conf->rgw_dns_name.c_str()); - s->formatter->dump_format("Bucket", s->bucket_name); - s->formatter->dump_format("Key", s->object); - s->formatter->dump_format("ETag", etag.c_str()); + s->formatter->dump_string("Bucket", s->bucket_name); + s->formatter->dump_string("Key", s->object); + s->formatter->dump_string("ETag", etag); s->formatter->close_section(); flush_formatter_to_req_state(s, s->formatter); } @@ -445,14 +445,14 @@ void RGWListMultipart_REST_S3::send_response() for (i = 0, test_iter = iter; test_iter != parts.end() && i < max_parts; ++test_iter, ++i) { cur_max = test_iter->first; } - s->formatter->dump_format("Bucket", s->bucket_name); - s->formatter->dump_format("Key", s->object); - s->formatter->dump_format("UploadId", upload_id.c_str()); - s->formatter->dump_format("StorageClass", "STANDARD"); + s->formatter->dump_string("Bucket", s->bucket_name); + s->formatter->dump_string("Key", s->object); + s->formatter->dump_string("UploadId", upload_id); + s->formatter->dump_string("StorageClass", "STANDARD"); s->formatter->dump_format("PartNumberMarker", "%d", marker); s->formatter->dump_format("NextPartNumberMarker", "%d", cur_max + 1); s->formatter->dump_format("MaxParts", "%d", max_parts); - s->formatter->dump_format("IsTruncated", "%s", (test_iter == parts.end() ? "false" : "true")); + s->formatter->dump_string("IsTruncated", (test_iter == parts.end() ? "false" : "true")); ACLOwner& owner = policy.get_owner(); dump_owner(s, owner.get_id(), owner.get_display_name()); @@ -468,11 +468,11 @@ void RGWListMultipart_REST_S3::send_response() s->formatter->open_object_section("Part"); if (strftime(buf, sizeof(buf), "%Y-%m-%dT%T.000Z", &tmp) > 0) { - s->formatter->dump_format("LastModified", buf); + s->formatter->dump_string("LastModified", buf); } s->formatter->dump_unsigned("PartNumber", info.num); - s->formatter->dump_format("ETag", "%s", info.etag.c_str()); + s->formatter->dump_string("ETag", info.etag); s->formatter->dump_unsigned("Size", info.size); s->formatter->close_section(); } @@ -493,36 +493,36 @@ void RGWListBucketMultiparts_REST_S3::send_response() return; s->formatter->open_object_section("ListMultipartUploadsResult"); - s->formatter->dump_format("Bucket", s->bucket_name); + s->formatter->dump_string("Bucket", s->bucket_name); if (!prefix.empty()) - s->formatter->dump_format("ListMultipartUploadsResult.Prefix", prefix.c_str()); + s->formatter->dump_string("ListMultipartUploadsResult.Prefix", prefix); string& key_marker = marker.get_key(); if (!key_marker.empty()) - s->formatter->dump_format("KeyMarker", key_marker.c_str()); + s->formatter->dump_string("KeyMarker", key_marker); string& upload_id_marker = marker.get_upload_id(); if (!upload_id_marker.empty()) - s->formatter->dump_format("UploadIdMarker", upload_id_marker.c_str()); + s->formatter->dump_string("UploadIdMarker", upload_id_marker); string next_key = next_marker.mp.get_key(); if (!next_key.empty()) - s->formatter->dump_format("NextKeyMarker", next_key.c_str()); + s->formatter->dump_string("NextKeyMarker", next_key); string next_upload_id = next_marker.mp.get_upload_id(); if (!next_upload_id.empty()) - s->formatter->dump_format("NextUploadIdMarker", next_upload_id.c_str()); + s->formatter->dump_string("NextUploadIdMarker", next_upload_id); s->formatter->dump_format("MaxUploads", "%d", max_uploads); if (!delimiter.empty()) - s->formatter->dump_format("Delimiter", delimiter.c_str()); - s->formatter->dump_format("IsTruncated", (is_truncated ? "true" : "false")); + s->formatter->dump_string("Delimiter", delimiter); + s->formatter->dump_string("IsTruncated", (is_truncated ? "true" : "false")); if (ret >= 0) { vector<RGWMultipartUploadEntry>::iterator iter; for (iter = uploads.begin(); iter != uploads.end(); ++iter) { RGWMPObj& mp = iter->mp; s->formatter->open_array_section("Upload"); - s->formatter->dump_format("Key", mp.get_key().c_str()); - s->formatter->dump_format("UploadId", mp.get_upload_id().c_str()); + s->formatter->dump_string("Key", mp.get_key()); + s->formatter->dump_string("UploadId", mp.get_upload_id()); dump_owner(s, s->user.user_id, s->user.display_name, "Initiator"); dump_owner(s, s->user.user_id, s->user.display_name); - s->formatter->dump_format("StorageClass", "STANDARD"); + s->formatter->dump_string("StorageClass", "STANDARD"); dump_time(s, "Initiated", &iter->obj.mtime); s->formatter->close_section(); } @@ -530,7 +530,7 @@ void RGWListBucketMultiparts_REST_S3::send_response() s->formatter->open_array_section("CommonPrefixes"); map<string, bool>::iterator pref_iter; for (pref_iter = common_prefixes.begin(); pref_iter != common_prefixes.end(); ++pref_iter) { - s->formatter->dump_format("CommonPrefixes.Prefix", pref_iter->first.c_str()); + s->formatter->dump_string("CommonPrefixes.Prefix", pref_iter->first); } s->formatter->close_section(); } diff --git a/src/rgw/rgw_rest_swift.cc b/src/rgw/rgw_rest_swift.cc index b84d55f3b69..d6e59845fab 100644 --- a/src/rgw/rgw_rest_swift.cc +++ b/src/rgw/rgw_rest_swift.cc @@ -49,7 +49,7 @@ void RGWListBuckets_REST_SWIFT::send_response() for (int i = 0; i < limit && iter != m.end(); ++iter, ++i) { RGWBucketEnt obj = iter->second; s->formatter->open_object_section("container"); - s->formatter->dump_string("name", obj.bucket.name.c_str()); + s->formatter->dump_string("name", obj.bucket.name); s->formatter->dump_int("count", obj.count); s->formatter->dump_int("bytes", obj.size); s->formatter->close_section(); @@ -137,8 +137,8 @@ void RGWListBucket_REST_SWIFT::send_response() goto next; s->formatter->open_object_section("object"); - s->formatter->dump_string("name", iter->name.c_str()); - s->formatter->dump_string("hash", iter->etag.c_str()); + s->formatter->dump_string("name", iter->name); + s->formatter->dump_string("hash", iter->etag); s->formatter->dump_int("bytes", iter->size); string single_content_type = iter->content_type; if (iter->content_type.size()) { @@ -150,7 +150,7 @@ void RGWListBucket_REST_SWIFT::send_response() ++pos; single_content_type = single_content_type.substr(pos); } - s->formatter->dump_string("content_type", single_content_type.c_str()); + s->formatter->dump_string("content_type", single_content_type); } dump_time(s, "last_modified", &iter->mtime); s->formatter->close_section(); @@ -162,7 +162,7 @@ void RGWListBucket_REST_SWIFT::send_response() goto next; s->formatter->open_object_section("object"); - s->formatter->dump_string("name", pref_iter->first.c_str()); + s->formatter->dump_string("name", pref_iter->first); s->formatter->close_section(); } next: |