Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
return true;
}
+ bool exists(const string& sc) const {
+ auto iter = m.find(sc);
+ return (iter != m.end());
+ }
+
const map<string, RGWZoneStorageClass>& get_all() const {
return m;
}
return storage_class->compression_type.get_value_or(no_compression);
}
+ bool storage_class_exists(const string& sc) const {
+ return storage_classes.exists(sc);
+ }
+
void dump(Formatter *f) const;
void decode_json(JSONObj *obj);
return -EINVAL;
}
-#warning FIXME check that location_rule.storage_class exists in piter->second
+ auto storage_class = location_rule.get_storage_class();
+ if (!piter->second.storage_class_exists(storage_class)) {
+ ldout(cct, 5) << "requested storage class does not exist: " << storage_class << dendl;
+ return -EINVAL;
+ }
+
RGWZonePlacementInfo& placement_info = piter->second;