Skip to content

Commit 2e798df

Browse files
Merge pull request #104 from canonical/remove-inject
removed rotten inject code
2 parents d4fb61b + a7c8413 commit 2e798df

File tree

4 files changed

+10
-44
lines changed

4 files changed

+10
-44
lines changed

pyproject.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ build-backend = "setuptools.build_meta"
88
[project]
99
name = "ops-scenario"
1010

11-
version = "6.0.2"
11+
version = "6.0.3"
1212

1313
authors = [
1414
{ name = "Pietro Pasotti", email = "[email protected]" }

scenario/__init__.py

-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
DeferredEvent,
1111
Event,
1212
ExecOutput,
13-
InjectRelation,
1413
Model,
1514
Mount,
1615
Network,
@@ -51,5 +50,4 @@
5150
"State",
5251
"DeferredEvent",
5352
"Event",
54-
"InjectRelation",
5553
]

scenario/sequences.py

+9-13
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,7 @@
1212
BREAK_ALL_RELATIONS,
1313
CREATE_ALL_RELATIONS,
1414
DETACH_ALL_STORAGES,
15-
META_EVENTS,
1615
Event,
17-
InjectRelation,
1816
State,
1917
)
2018

@@ -32,20 +30,18 @@ def decompose_meta_event(meta_event: Event, state: State):
3230
logger.warning(f"meta-event {meta_event.name} not supported yet")
3331
return
3432

35-
if meta_event.name in [CREATE_ALL_RELATIONS, BREAK_ALL_RELATIONS]:
33+
is_rel_created_meta_event = meta_event.name == CREATE_ALL_RELATIONS
34+
is_rel_broken_meta_event = meta_event.name == BREAK_ALL_RELATIONS
35+
if is_rel_broken_meta_event:
3636
for relation in state.relations:
37-
event = Event(
38-
relation.endpoint + META_EVENTS[meta_event.name],
39-
args=(
40-
# right now, the Relation object hasn't been created by ops yet, so we
41-
# can't pass it down.
42-
# this will be replaced by a Relation instance before the event is fired.
43-
InjectRelation(relation.endpoint, relation.relation_id),
44-
),
45-
)
37+
event = relation.broken_event
38+
logger.debug(f"decomposed meta {meta_event.name}: {event}")
39+
yield event, state.copy()
40+
elif is_rel_created_meta_event:
41+
for relation in state.relations:
42+
event = relation.created_event
4643
logger.debug(f"decomposed meta {meta_event.name}: {event}")
4744
yield event, state.copy()
48-
4945
else:
5046
raise RuntimeError(f"unknown meta-event {meta_event.name}")
5147

scenario/state.py

-28
Original file line numberDiff line numberDiff line change
@@ -1465,31 +1465,3 @@ def deferred(
14651465
if isinstance(event, str):
14661466
event = Event(event, relation=relation, container=container)
14671467
return event.deferred(handler=handler, event_id=event_id)
1468-
1469-
1470-
@dataclasses.dataclass(frozen=True)
1471-
class Inject(_DCBase):
1472-
"""Base class for injectors: special placeholders used to tell harness_ctx
1473-
to inject instances that can't be retrieved in advance in event args or kwargs.
1474-
"""
1475-
1476-
1477-
@dataclasses.dataclass(frozen=True)
1478-
class InjectRelation(Inject):
1479-
relation_name: str
1480-
relation_id: Optional[int] = None
1481-
1482-
1483-
def _derive_args(event_name: str):
1484-
args = []
1485-
for term in RELATION_EVENTS_SUFFIX:
1486-
# fixme: we can't disambiguate between relation id-s.
1487-
if event_name.endswith(term):
1488-
args.append(InjectRelation(relation_name=event_name[: -len(term)]))
1489-
1490-
return tuple(args)
1491-
1492-
1493-
# todo: consider
1494-
# def get_containers_from_metadata(CharmType, can_connect: bool = False) -> List[Container]:
1495-
# pass

0 commit comments

Comments
 (0)