|
|
@@ -3,6 +3,18 @@
|
|
|
|
|
|
import itertools
|
|
|
|
|
|
+from oslo_config import cfg as conf
|
|
|
+
|
|
|
+
|
|
|
+REPLICA_API_OPTS = [
|
|
|
+ conf.BoolOpt("include_task_info_in_replicas_api",
|
|
|
+ default=False,
|
|
|
+ help="Whether or not to expose the internal 'info' field of "
|
|
|
+ "a Replica as part of a `GET` request.")]
|
|
|
+
|
|
|
+CONF = conf.CONF
|
|
|
+CONF.register_opts(REPLICA_API_OPTS)
|
|
|
+
|
|
|
|
|
|
def _format_replica(req, replica, keys=None):
|
|
|
def transform(key, value):
|
|
|
@@ -10,9 +22,15 @@ def _format_replica(req, replica, keys=None):
|
|
|
return
|
|
|
yield (key, value)
|
|
|
|
|
|
- return dict(itertools.chain.from_iterable(
|
|
|
+ replica_dict = dict(itertools.chain.from_iterable(
|
|
|
transform(k, v) for k, v in replica.items()))
|
|
|
|
|
|
+ if not CONF.include_task_info_in_replicas_api and (
|
|
|
+ "info" in replica_dict):
|
|
|
+ replica_dict.pop("info")
|
|
|
+
|
|
|
+ return replica_dict
|
|
|
+
|
|
|
|
|
|
def single(req, replica):
|
|
|
return {"replica": _format_replica(req, replica)}
|