]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
Fix s3 lifecycle expiration header does not return the earliest rule that will be... 29399/head
authorOr Friedmann <ofriedma@redhat.com>
Thu, 10 Oct 2019 13:35:59 +0000 (16:35 +0300)
committerOr Friedmann <ofriedma@redhat.com>
Thu, 10 Oct 2019 13:35:59 +0000 (16:35 +0300)
Fixes: https://tracker.ceph.com/issues/41010
Signed-off-by: Or Friedmann <ofriedma@redhat.com>
src/rgw/rgw_lc.cc

index 1aa67adb965a1dc42b80209b15c3aedc3488bfd6..7b04526ca0e799ccfc2d8fab0a753e3441e72f7b 100644 (file)
@@ -1626,22 +1626,21 @@ std::string s3_expiration_header(
       rule_expiration_date =
        boost::optional<ceph::real_time>(
          ceph::from_iso_8601(rule.get_expiration().get_date()));
-      rule_id = boost::optional<std::string>(id);
     } else {
       if (rule_expiration.has_days()) {
        rule_expiration_date =
          boost::optional<ceph::real_time>(
            mtime + make_timespan(rule_expiration.get_days()*24*60*60));
-       rule_id = boost::optional<std::string>(id);
       }
     }
 
     // update earliest expiration
     if (rule_expiration_date) {
       if ((! expiration_date) ||
-         (*expiration_date < *rule_expiration_date)) {
+         (*expiration_date > *rule_expiration_date)) {
       expiration_date =
        boost::optional<ceph::real_time>(rule_expiration_date);
+      rule_id = boost::optional<std::string>(id);
       }
     }
   }