Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ISD-2817 Add mas to pebble plan #620

Open
wants to merge 102 commits into
base: 2/main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 80 commits
Commits
Show all changes
102 commits
Select commit Hold shift + click to select a range
091c9fb
add mas-cli to synapse rock
Thanhphan1147 Nov 23, 2024
a77fb66
build mas-cli and its assets in synapse rock
Thanhphan1147 Nov 25, 2024
3666081
Merge branch 'main' into install_mas_cli_in_synapse_rock
Thanhphan1147 Nov 25, 2024
74419c5
await coroutine
Thanhphan1147 Nov 25, 2024
faf57b4
Merge branch 'install_mas_cli_in_synapse_rock' of github.com:canonica…
Thanhphan1147 Nov 25, 2024
bd97414
update assets location
Thanhphan1147 Nov 25, 2024
a432b3b
fix missing dir
Thanhphan1147 Nov 25, 2024
033304f
fix lint
Thanhphan1147 Nov 25, 2024
09dac1f
fix broken tests
Thanhphan1147 Nov 26, 2024
0edc5f3
fix lint
Thanhphan1147 Nov 26, 2024
ae65d33
update target track
Thanhphan1147 Nov 26, 2024
68c9c89
reformat rockcraft
Thanhphan1147 Nov 27, 2024
a803b92
update mas-cli tests
Thanhphan1147 Nov 28, 2024
b166265
Merge branch '2/main' into install_mas_cli_in_synapse_rock
Thanhphan1147 Nov 28, 2024
143c5d2
update synapse tag and update tests
Thanhphan1147 Nov 28, 2024
1019432
Merge branch 'install_mas_cli_in_synapse_rock' of github.com:canonica…
Thanhphan1147 Nov 28, 2024
4dc8a2f
fix test
Thanhphan1147 Nov 28, 2024
23383db
update rockcraft with changes relating to 24.04 base
Thanhphan1147 Nov 28, 2024
392262f
remove the SAML integration and all relevant code
Thanhphan1147 Nov 26, 2024
b5dd209
remove attribute_maps part from rock
Thanhphan1147 Nov 29, 2024
53457d9
Merge remote-tracking branch 'origin/2/main' into disable_saml_integr…
Thanhphan1147 Dec 2, 2024
04a4e68
add mas-datasource state component
Thanhphan1147 Nov 27, 2024
d378498
add MAS configuration state component
Thanhphan1147 Nov 28, 2024
dac1eb2
update charmstate + decorator logic
Thanhphan1147 Nov 28, 2024
899d8d0
fix cyclic import + fix test
Thanhphan1147 Nov 29, 2024
455b985
update function signatures, update fixtures, fix tests
Thanhphan1147 Dec 2, 2024
962fd0a
fix integration test
Thanhphan1147 Dec 2, 2024
a87960d
relate to mas-database before checking for status
Thanhphan1147 Dec 2, 2024
4c65b01
fix lint
Thanhphan1147 Dec 2, 2024
16e3c53
ensure that postgresql is deployed
Thanhphan1147 Dec 3, 2024
96ebabb
Merge remote-tracking branch 'origin/2/main' into add_mas_database_in…
Thanhphan1147 Dec 4, 2024
b46f376
don't raise on blocked
Thanhphan1147 Dec 4, 2024
e95d504
fix lint
Thanhphan1147 Dec 4, 2024
a40b874
rename file
Thanhphan1147 Dec 4, 2024
c0e8225
update ref
Thanhphan1147 Dec 4, 2024
46f08fc
update integration test
Thanhphan1147 Dec 4, 2024
b8dad26
relate to postgresql-k8s as required by MAS
Thanhphan1147 Dec 4, 2024
f4a9232
add cve to trivyignore as they'll be removed with later PRs updating …
Thanhphan1147 Dec 4, 2024
184448e
Merge branch '2/main' into add_mas_database_integration
Thanhphan1147 Dec 5, 2024
3e467db
fix lint
Thanhphan1147 Dec 5, 2024
975ea01
Merge branch 'add_mas_database_integration' of github.com:canonical/s…
Thanhphan1147 Dec 5, 2024
47ab09e
add database name param to observer, fix test
Thanhphan1147 Dec 6, 2024
fe08335
remove fixed CVEs
Thanhphan1147 Dec 6, 2024
7939574
remove typing.override as it's a python3.12 feature
Thanhphan1147 Dec 6, 2024
dcc9472
Merge branch '2/main' into add_mas_database_integration
Thanhphan1147 Dec 6, 2024
39367e9
missing app name
Thanhphan1147 Dec 6, 2024
89e7bba
Merge branch 'add_mas_database_integration' of github.com:canonical/s…
Thanhphan1147 Dec 6, 2024
2edd948
add_mas_template
Thanhphan1147 Nov 29, 2024
4a8c15c
add diagram + update code
Thanhphan1147 Dec 1, 2024
544f7b6
update method prototype
Thanhphan1147 Dec 2, 2024
298cd6f
add configuration template, add mas service to manage configuration f…
Thanhphan1147 Dec 3, 2024
ced34c3
update charmcraft
Thanhphan1147 Dec 3, 2024
a1e9065
update encryption key length and template to match MAS spec
Thanhphan1147 Dec 3, 2024
82b547f
add missing policy reference
Thanhphan1147 Dec 3, 2024
4e4ff6d
fix unintended naming changes
Thanhphan1147 Dec 6, 2024
136b994
Merge remote-tracking branch 'origin/2/main' into render_mas_config_f…
Thanhphan1147 Dec 7, 2024
4eba748
fix unit test
Thanhphan1147 Dec 9, 2024
a2f73ce
remove diagram, update naming
Thanhphan1147 Dec 9, 2024
4d1fd86
fix lint
Thanhphan1147 Dec 9, 2024
b13e8c3
update integration test
Thanhphan1147 Dec 10, 2024
ad63e70
fix lint and update test ( wait for active before relating to postgre…
Thanhphan1147 Dec 10, 2024
7dc4160
add configuration template, add mas service to manage configuration f…
Thanhphan1147 Dec 3, 2024
af08dc1
start MAS with password login flow, update nginx routing logic, updat…
Thanhphan1147 Dec 5, 2024
6151841
refactor + update tests
Thanhphan1147 Dec 11, 2024
4d5de49
update mas config, restart mas before synapse
Thanhphan1147 Dec 12, 2024
c15a461
update tests
Thanhphan1147 Dec 13, 2024
cdb4912
Merge remote-tracking branch 'origin/2/main' into add_mas_to_pebble_plan
Thanhphan1147 Dec 13, 2024
9fea606
update src-docs
Thanhphan1147 Dec 13, 2024
a434d80
update integration tests
Thanhphan1147 Dec 13, 2024
585b0ca
Merge branch '2/main' into add_mas_to_pebble_plan
Thanhphan1147 Dec 16, 2024
db5b691
Merge remote-tracking branch 'origin/2/main' into add_mas_to_pebble_plan
Thanhphan1147 Dec 18, 2024
6594fe6
refactor mjolnir to add mjolnir_configuration state component, update…
Thanhphan1147 Dec 19, 2024
d6db930
fix integration test
Thanhphan1147 Dec 19, 2024
8f3e066
fix lint
Thanhphan1147 Dec 19, 2024
17911d2
Merge branch '2/main' into add_mas_to_pebble_plan
Thanhphan1147 Dec 22, 2024
e687848
fix lint
Thanhphan1147 Dec 22, 2024
0c6bc9d
wait for synapse to be blocked before continuing
Thanhphan1147 Jan 4, 2025
e347066
Merge branch 'add_mas_to_pebble_plan' of github.com:canonical/synapse…
Thanhphan1147 Jan 4, 2025
7637a05
update fixture
Thanhphan1147 Jan 5, 2025
bf9e8e0
add smtp to mas config
Thanhphan1147 Jan 5, 2025
c83bc57
update smtp test
Thanhphan1147 Jan 5, 2025
b08ae59
update licence
Thanhphan1147 Jan 5, 2025
f2bd51e
add nosec for non hardcoded password
Thanhphan1147 Jan 5, 2025
222b571
remove promote user admin action
Thanhphan1147 Jan 6, 2025
e8810f3
add CVE to triviignore
Thanhphan1147 Jan 6, 2025
aaa4da7
Merge remote-tracking branch 'origin/2/main' into add_mas_to_pebble_plan
Thanhphan1147 Jan 6, 2025
87af809
update rock
Thanhphan1147 Jan 7, 2025
3c29f2c
remove support for mjolnir
Thanhphan1147 Jan 7, 2025
6570593
Merge branch '2/main' into add_mas_to_pebble_plan
Thanhphan1147 Jan 7, 2025
e0a99e8
update tests, update docstring
Thanhphan1147 Jan 7, 2025
7d47706
Merge branch 'add_mas_to_pebble_plan' of github.com:canonical/synapse…
Thanhphan1147 Jan 7, 2025
274257e
update tests anoymize user
Thanhphan1147 Jan 7, 2025
f225f9f
validate mas datasource before doing anything
Thanhphan1147 Jan 8, 2025
95f40c3
Merge remote-tracking branch 'origin/2/main' into add_mas_to_pebble_plan
Thanhphan1147 Jan 8, 2025
f8b1d5b
remove unused code
Thanhphan1147 Jan 8, 2025
7faa222
put redis logic in reconcile loop
Thanhphan1147 Jan 8, 2025
aec4121
restart MAS at the beginning
Thanhphan1147 Jan 8, 2025
51594a0
update email template, remove unused methods
Thanhphan1147 Jan 8, 2025
fe0859c
Merge branch '2/main' into add_mas_to_pebble_plan
Thanhphan1147 Jan 8, 2025
86648cd
fix lint
Thanhphan1147 Jan 8, 2025
ef5172f
Merge branch 'add_mas_to_pebble_plan' of github.com:canonical/synapse…
Thanhphan1147 Jan 8, 2025
2d02ad7
Merge branch '2/main' into add_mas_to_pebble_plan
Thanhphan1147 Jan 9, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions .trivyignore
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,3 @@ CVE-2024-52804
# Fix ongoing:
# https://github.com/element-hq/synapse/pull/17985
CVE-2024-53981
# The 3 following CVEs will be fixed by Synapse 1.120.2
CVE-2024-52805
CVE-2024-52815
CVE-2024-53863
14 changes: 14 additions & 0 deletions actions.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,20 @@ register-user:
default: false
required:
- username
verify-user-email:
description: |
Verify an user's email.
You need to supply an username and the email to verify.
properties:
username:
description: The username.
type: string
email:
description: The email to verify.
type: string
required:
- username
- email
promote-user-admin:
description: |
Promote a user as a server administrator.
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ extension-pkg-whitelist = "pydantic"
# Formatting tools configuration
[tool.black]
line-length = 99
target-version = ["py38"]
target-version = ["py310"]

[tool.isort]
line_length = 99
Expand Down
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@ jsonschema ==4.23.0
ops ==2.17.1
psycopg2-binary ==2.9.10
pydantic ==2.10.3
python-ulid ==3.0.0
requests ==2.32.3
python-ulid ==3.0.0
gregory-schiano marked this conversation as resolved.
Show resolved Hide resolved
24 changes: 12 additions & 12 deletions src-docs/charm.py.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ Charm the service.

Attrs: on: listen to Redis events.

<a href="../src/charm.py#L56"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>
<a href="../src/charm.py#L62"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

### <kbd>function</kbd> `__init__`

Expand Down Expand Up @@ -77,7 +77,7 @@ Unit that this execution is responsible for.

---

<a href="../src/charm.py#L107"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>
<a href="../src/charm.py#L115"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

### <kbd>function</kbd> `build_charm_state`

Expand All @@ -94,7 +94,7 @@ Build charm state.

---

<a href="../src/charm.py#L357"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>
<a href="../src/charm.py#L369"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

### <kbd>function</kbd> `get_main_unit`

Expand All @@ -111,7 +111,7 @@ Get main unit.

---

<a href="../src/charm.py#L372"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>
<a href="../src/charm.py#L384"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

### <kbd>function</kbd> `get_main_unit_address`

Expand All @@ -128,7 +128,7 @@ Get main unit address. If main unit is None, use unit name.

---

<a href="../src/charm.py#L424"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>
<a href="../src/charm.py#L436"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

### <kbd>function</kbd> `get_signing_key`

Expand All @@ -145,7 +145,7 @@ Get signing key from secret.

---

<a href="../src/charm.py#L131"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>
<a href="../src/charm.py#L139"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

### <kbd>function</kbd> `get_unit_number`

Expand All @@ -169,7 +169,7 @@ Get unit number from unit name.

---

<a href="../src/charm.py#L151"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>
<a href="../src/charm.py#L159"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

### <kbd>function</kbd> `instance_map`

Expand All @@ -186,7 +186,7 @@ Build instance_map config.

---

<a href="../src/charm.py#L123"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>
<a href="../src/charm.py#L131"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

### <kbd>function</kbd> `is_main`

Expand All @@ -204,7 +204,7 @@ Verify if this unit is the main.

---

<a href="../src/charm.py#L334"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>
<a href="../src/charm.py#L346"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

### <kbd>function</kbd> `peer_units_total`

Expand All @@ -221,7 +221,7 @@ Get peer units total.

---

<a href="../src/charm.py#L194"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>
<a href="../src/charm.py#L202"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

### <kbd>function</kbd> `reconcile`

Expand All @@ -242,7 +242,7 @@ This is the main entry for changes that require a restart.

---

<a href="../src/charm.py#L384"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>
<a href="../src/charm.py#L396"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

### <kbd>function</kbd> `set_main_unit`

Expand All @@ -260,7 +260,7 @@ Create/Renew an admin access token and put it in the peer relation.

---

<a href="../src/charm.py#L400"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>
<a href="../src/charm.py#L412"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

### <kbd>function</kbd> `set_signing_key`

Expand Down
68 changes: 56 additions & 12 deletions src-docs/pebble.py.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,15 @@ Class to interact with pebble.

**Global Variables**
---------------
- **MAS_CONFIGURATION_PATH**
- **MAS_PEBBLE_LAYER**
- **MAS_SERVICE_NAME**
- **STATS_EXPORTER_SERVICE_NAME**
- **MAS_CONFIGURATION_PATH**

---

<a href="../src/pebble.py#L44"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>
<a href="../src/pebble.py#L50"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `check_synapse_alive`

Expand All @@ -37,7 +40,7 @@ Return the Synapse container alive check.

---

<a href="../src/pebble.py#L66"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>
<a href="../src/pebble.py#L72"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `check_synapse_ready`

Expand All @@ -56,7 +59,7 @@ Return the Synapse container ready check.

---

<a href="../src/pebble.py#L82"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>
<a href="../src/pebble.py#L88"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `restart_synapse`

Expand All @@ -83,7 +86,7 @@ This will force a restart even if its plan hasn't changed.

---

<a href="../src/pebble.py#L104"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>
<a href="../src/pebble.py#L110"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `check_nginx_ready`

Expand All @@ -102,7 +105,7 @@ Return the Synapse NGINX container check.

---

<a href="../src/pebble.py#L117"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>
<a href="../src/pebble.py#L123"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `check_mjolnir_ready`

Expand All @@ -121,7 +124,7 @@ Return the Synapse Mjolnir service check.

---

<a href="../src/pebble.py#L133"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>
<a href="../src/pebble.py#L139"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `restart_nginx`

Expand All @@ -141,7 +144,7 @@ Restart Synapse NGINX service and regenerate configuration.

---

<a href="../src/pebble.py#L145"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>
<a href="../src/pebble.py#L151"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `restart_federation_sender`

Expand All @@ -161,7 +164,7 @@ Restart Synapse federation sender service and regenerate configuration.

---

<a href="../src/pebble.py#L158"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>
<a href="../src/pebble.py#L164"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `replan_mjolnir`

Expand All @@ -180,7 +183,7 @@ Replan Synapse Mjolnir service.

---

<a href="../src/pebble.py#L168"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>
<a href="../src/pebble.py#L174"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `replan_stats_exporter`

Expand All @@ -200,7 +203,7 @@ Replan Synapse StatsExporter service.

---

<a href="../src/pebble.py#L195"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>
<a href="../src/pebble.py#L201"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `replan_synapse_federation_sender`

Expand All @@ -223,14 +226,34 @@ Replan Synapse Federation Sender service.

---

<a href="../src/pebble.py#L302"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>
<a href="../src/pebble.py#L216"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `replan_mas`

```python
replan_mas(container: Container) → None
```

Replan Matrix Authentication Service.



**Args:**

- <b>`container`</b>: Charm container.


---

<a href="../src/pebble.py#L320"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `reconcile`

```python
reconcile(
charm_state: CharmState,
rendered_mas_configuration: str,
synapse_msc3861_configuration: dict,
container: Container,
is_main: bool = True,
unit_number: str = ''
Expand All @@ -247,6 +270,7 @@ This is the main entry for changes that require a restart done via Pebble.

- <b>`charm_state`</b>: Instance of CharmState
- <b>`rendered_mas_configuration`</b>: Rendered MAS yaml configuration.
- <b>`synapse_msc3861_configuration`</b>: Synapse's msc3861 configuration
- <b>`container`</b>: Charm container.
- <b>`is_main`</b>: if unit is main.
- <b>`unit_number`</b>: unit number id to set the worker name.
Expand All @@ -258,14 +282,34 @@ This is the main entry for changes that require a restart done via Pebble.
- <b>`PebbleServiceError`</b>: if something goes wrong while interacting with Pebble.


---

<a href="../src/pebble.py#L630"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

## <kbd>function</kbd> `restart_mas`

```python
restart_mas(container: Container, rendered_mas_configuration: str) → None
```

Update MAS configuration and restart MAS.



**Args:**

- <b>`container`</b>: The synapse container.
- <b>`rendered_mas_configuration`</b>: YAML configuration for MAS.


---

## <kbd>class</kbd> `PebbleServiceError`
Exception raised when something fails while interacting with Pebble.

Attrs: msg (str): Explanation of the error.

<a href="../src/pebble.py#L35"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>
<a href="../src/pebble.py#L41"><img align="right" style="float:right;" src="https://img.shields.io/badge/-source-cccccc?style=flat-square"></a>

### <kbd>function</kbd> `__init__`

Expand Down
7 changes: 0 additions & 7 deletions src/actions/__init__.py

This file was deleted.

Loading
Loading