virtual int get_zone_by_id(const std::string& id, std::unique_ptr<Zone>* zone) override;
virtual int get_zone_by_name(const std::string& name, std::unique_ptr<Zone>* zone) override;
virtual int list_zones(std::list<std::string>& zone_ids) override;
+ bool supports(std::string_view feature) const override {
+ return group.supports(feature);
+ }
virtual std::unique_ptr<ZoneGroup> clone() override {
return std::make_unique<RadosZoneGroup>(store, group);
}
virtual int get_zone_by_name(const std::string& name, std::unique_ptr<Zone>* zone) = 0;
/** List zones in zone group by ID */
virtual int list_zones(std::list<std::string>& zone_ids) = 0;
+ /// Return true if the given feature is enabled in the zonegroup.
+ virtual bool supports(std::string_view feature) const = 0;
/** Clone a copy of this zonegroup. */
virtual std::unique_ptr<ZoneGroup> clone() = 0;
};
virtual int get_zone_count() const override { return group.zones.size(); }
virtual int get_placement_tier(const rgw_placement_rule& rule,
std::unique_ptr<PlacementTier>* tier);
+ bool supports(std::string_view feature) const override {
+ return group.supports(feature);
+ }
virtual std::unique_ptr<ZoneGroup> clone() override {
return std::make_unique<DaosZoneGroup>(store, group);
}
zone_ids.clear();
return 0;
}
+ bool supports(std::string_view feature) const override {
+ return group->supports(feature);
+ }
virtual std::unique_ptr<ZoneGroup> clone() override {
std::unique_ptr<RGWZoneGroup>zg = std::make_unique<RGWZoneGroup>(*group.get());
return std::make_unique<DBZoneGroup>(store, std::move(zg));
virtual int get_zone_by_name(const std::string& name, std::unique_ptr<Zone>* zone) override;
virtual int list_zones(std::list<std::string>& zone_ids) override
{ return next->list_zones(zone_ids); }
+ bool supports(std::string_view feature) const override {
+ return next->supports(feature);
+ }
virtual std::unique_ptr<ZoneGroup> clone() override {
std::unique_ptr<ZoneGroup> nzg = next->clone();
return std::make_unique<FilterZoneGroup>(std::move(nzg));
return 0;
}
const RGWZoneGroup& get_group() { return group; }
+ bool supports(std::string_view feature) const override {
+ return group.supports(features);
+ }
virtual std::unique_ptr<ZoneGroup> clone() override {
return std::make_unique<MotrZoneGroup>(store, group);
}