Skip to content

Commit 25a930c

Browse files
Zuulopenstack-gerrit
authored andcommitted
Merge "volume: Add v3-specific qos specs module"
2 parents 9ba2cca + 1566aee commit 25a930c

4 files changed

Lines changed: 943 additions & 8 deletions

File tree

openstackclient/tests/unit/volume/v3/fakes.py

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@ def __init__(self, **kwargs):
6262
self.messages.resource_class = fakes.FakeResource(None, {})
6363
self.resource_filters = mock.Mock()
6464
self.resource_filters.resource_class = fakes.FakeResource(None, {})
65+
self.qos_specs = mock.Mock()
66+
self.qos_specs.resource_class = fakes.FakeResource(None, {})
6567
self.restores = mock.Mock()
6668
self.restores.resource_class = fakes.FakeResource(None, {})
6769
self.transfers = mock.Mock()
@@ -1138,6 +1140,95 @@ def get_volume_attachments(attachments=None, count=2):
11381140
return mock.Mock(side_effect=attachments)
11391141

11401142

1143+
def create_one_qos(attrs=None):
1144+
"""Create a fake Qos specification.
1145+
1146+
:param dict attrs:
1147+
A dictionary with all attributes
1148+
:return:
1149+
A FakeResource object with id, name, consumer, etc.
1150+
"""
1151+
attrs = attrs or {}
1152+
1153+
# Set default attributes.
1154+
qos_info = {
1155+
"id": 'qos-id-' + uuid.uuid4().hex,
1156+
"name": 'qos-name-' + uuid.uuid4().hex,
1157+
"consumer": 'front-end',
1158+
"specs": {"foo": "bar", "iops": "9001"},
1159+
}
1160+
1161+
# Overwrite default attributes.
1162+
qos_info.update(attrs)
1163+
1164+
qos = fakes.FakeResource(info=copy.deepcopy(qos_info), loaded=True)
1165+
return qos
1166+
1167+
1168+
def create_one_qos_association(attrs=None):
1169+
"""Create a fake Qos specification association.
1170+
1171+
:param dict attrs:
1172+
A dictionary with all attributes
1173+
:return:
1174+
A FakeResource object with id, name, association_type, etc.
1175+
"""
1176+
attrs = attrs or {}
1177+
1178+
# Set default attributes.
1179+
qos_association_info = {
1180+
"id": 'type-id-' + uuid.uuid4().hex,
1181+
"name": 'type-name-' + uuid.uuid4().hex,
1182+
"association_type": 'volume_type',
1183+
}
1184+
1185+
# Overwrite default attributes.
1186+
qos_association_info.update(attrs)
1187+
1188+
qos_association = fakes.FakeResource(
1189+
info=copy.deepcopy(qos_association_info), loaded=True
1190+
)
1191+
return qos_association
1192+
1193+
1194+
def create_qoses(attrs=None, count=2):
1195+
"""Create multiple fake Qos specifications.
1196+
1197+
:param dict attrs:
1198+
A dictionary with all attributes
1199+
:param int count:
1200+
The number of Qos specifications to fake
1201+
:return:
1202+
A list of FakeResource objects faking the Qos specifications
1203+
"""
1204+
qoses = []
1205+
for i in range(0, count):
1206+
qos = create_one_qos(attrs)
1207+
qoses.append(qos)
1208+
1209+
return qoses
1210+
1211+
1212+
def get_qoses(qoses=None, count=2):
1213+
"""Get an iterable MagicMock object with a list of faked qoses.
1214+
1215+
If qoses list is provided, then initialize the Mock object with the
1216+
list. Otherwise create one.
1217+
1218+
:param List qoses:
1219+
A list of FakeResource objects faking qoses
1220+
:param Integer count:
1221+
The number of qoses to be faked
1222+
:return
1223+
An iterable Mock object with side_effect set to a list of faked
1224+
qoses
1225+
"""
1226+
if qoses is None:
1227+
qoses = create_qoses(count)
1228+
1229+
return mock.Mock(side_effect=qoses)
1230+
1231+
11411232
def create_one_volume_type(attrs=None, methods=None):
11421233
"""Create a fake volume type.
11431234

0 commit comments

Comments
 (0)