]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/rgw/rgw_bucket_encryption.cc
import ceph quincy 17.2.4
[ceph.git] / ceph / src / rgw / rgw_bucket_encryption.cc
index 0310e5ac5a84f36ecd93bcd093e16e61065b8f43..f029709db97aef18665a654e343c8b7677a4ce01 100644 (file)
@@ -3,6 +3,7 @@
 //
 #include "rgw_bucket_encryption.h"
 #include "rgw_xml.h"
+#include "common/ceph_json.h"
 
 void ApplyServerSideEncryptionByDefault::decode_xml(XMLObj *obj) {
   RGWXMLDecoder::decode_xml("KMSMasterKeyID", kmsMasterKeyID, obj, false);
@@ -11,15 +12,21 @@ void ApplyServerSideEncryptionByDefault::decode_xml(XMLObj *obj) {
 
 void ApplyServerSideEncryptionByDefault::dump_xml(Formatter *f) const {
   encode_xml("SSEAlgorithm", sseAlgorithm, f);
+  if (kmsMasterKeyID != "") {
+    encode_xml("KMSMasterKeyID", kmsMasterKeyID, f);
+  }
 }
 
 void ServerSideEncryptionConfiguration::decode_xml(XMLObj *obj) {
-  RGWXMLDecoder::decode_xml("ApplyServerSideEncryptionByDefault", applyServerSideEncryptionByDefault, obj, true);
+  RGWXMLDecoder::decode_xml("ApplyServerSideEncryptionByDefault", applyServerSideEncryptionByDefault, obj, false);
   RGWXMLDecoder::decode_xml("BucketKeyEnabled", bucketKeyEnabled, obj, false);
 }
 
 void ServerSideEncryptionConfiguration::dump_xml(Formatter *f) const {
   encode_xml("ApplyServerSideEncryptionByDefault", applyServerSideEncryptionByDefault, f);
+  if (bucketKeyEnabled) {
+    encode_xml("BucketKeyEnabled", true, f);
+  }
 }
 
 void RGWBucketEncryptionConfig::decode_xml(XMLObj *obj) {
@@ -27,5 +34,16 @@ void RGWBucketEncryptionConfig::decode_xml(XMLObj *obj) {
 }
 
 void RGWBucketEncryptionConfig::dump_xml(Formatter *f) const {
-  encode_xml("Rule", rule, f);
+  if (rule_exist) {
+    encode_xml("Rule", rule, f);
+  }
+}
+
+void RGWBucketEncryptionConfig::dump(Formatter *f) const {
+  encode_json("rule_exist", has_rule(), f);
+  if (has_rule()) {
+    encode_json("sse_algorithm", sse_algorithm(), f);
+    encode_json("kms_master_key_id", kms_master_key_id(), f);
+    encode_json("bucket_key_enabled", bucket_key_enabled(), f);
+  }
 }