Skip to content

Commit 11e98cd

Browse files
committed
Remove workers from primary node to split responsibilities
1 parent cb9965f commit 11e98cd

5 files changed

Lines changed: 19 additions & 49 deletions

File tree

charmcraft.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,6 @@ config:
9494
type: boolean
9595
workers:
9696
description: |
97-
The number of git-ubuntu worker processes to maintain.
97+
The number of git-ubuntu worker processes to maintain per secondary node.
9898
default: 2
9999
type: int

src/charm.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -233,10 +233,7 @@ def _refresh_importer_node(self) -> None:
233233
if self._is_primary:
234234
if not node.setup_primary_node(
235235
GIT_UBUNTU_USER_HOME_DIR,
236-
self._node_id,
237-
self._num_workers,
238236
GIT_UBUNTU_SYSTEM_USER_USERNAME,
239-
will_publish,
240237
self._controller_port,
241238
):
242239
self.unit.status = ops.BlockedStatus("Failed to install git-ubuntu services.")

src/importer_node.py

Lines changed: 1 addition & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -57,38 +57,21 @@ def setup_secondary_node(
5757

5858
def setup_primary_node(
5959
git_ubuntu_user_home: str,
60-
node_id: int,
61-
num_workers: int,
6260
system_user: str,
63-
push_to_lp: bool,
6461
primary_port: int,
6562
) -> bool:
66-
"""Set up necessary services for a primary git-ubuntu importer node.
63+
"""Set up poller and broker services to create a primary git-ubuntu importer node.
6764
6865
Args:
6966
git_ubuntu_user_home: The home directory of the git-ubuntu user.
70-
node_id: The unique ID of this node.
71-
num_workers: The number of worker instances to set up.
7267
system_user: The user + group to run the services as.
73-
push_to_lp: True if publishing repositories to Launchpad.
7468
primary_port: The network port used for worker assignments.
7569
7670
Returns:
7771
True if installation succeeded, False otherwise.
7872
"""
7973
services_folder = pathops.LocalPath(git_ubuntu_user_home, "services")
8074

81-
if not setup_secondary_node(
82-
git_ubuntu_user_home,
83-
node_id,
84-
num_workers,
85-
system_user,
86-
push_to_lp,
87-
primary_port,
88-
"127.0.0.1",
89-
):
90-
return False
91-
9275
# Setup broker service.
9376
if not git_ubuntu.setup_broker_service(
9477
services_folder.as_posix(),

tests/integration/test_charm.py

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -67,18 +67,19 @@ def get_services_dict(unit_name: str, juju: jubilant.Juju) -> dict[str, dict[str
6767
== "git-ubuntu importer service poller"
6868
)
6969

70-
node_id = int(unit_name.split("/")[-1])
70+
else:
71+
node_id = int(unit_name.split("/")[-1])
7172

72-
assert services[f"git-ubuntu-importer-service-worker{node_id}_0.service"]["active"]
73-
assert (
74-
services[f"git-ubuntu-importer-service-worker{node_id}_0.service"]["description"]
75-
== "git-ubuntu importer service worker"
76-
)
77-
assert services[f"git-ubuntu-importer-service-worker{node_id}_1.service"]["active"]
78-
assert (
79-
services[f"git-ubuntu-importer-service-worker{node_id}_1.service"]["description"]
80-
== "git-ubuntu importer service worker"
81-
)
73+
assert services[f"git-ubuntu-importer-service-worker{node_id}_0.service"]["active"]
74+
assert (
75+
services[f"git-ubuntu-importer-service-worker{node_id}_0.service"]["description"]
76+
== "git-ubuntu importer service worker"
77+
)
78+
assert services[f"git-ubuntu-importer-service-worker{node_id}_1.service"]["active"]
79+
assert (
80+
services[f"git-ubuntu-importer-service-worker{node_id}_1.service"]["description"]
81+
== "git-ubuntu importer service worker"
82+
)
8283

8384

8485
def test_installed_apps(app: str, juju: jubilant.Juju):

tests/unit/test_importer_node.py

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -37,19 +37,14 @@ def test_setup_secondary_node_failure(mock_setup_worker):
3737

3838
@patch("importer_node.git_ubuntu.setup_poller_service")
3939
@patch("importer_node.git_ubuntu.setup_broker_service")
40-
@patch("importer_node.setup_secondary_node")
41-
def test_setup_primary_node_success(mock_secondary, mock_broker, mock_poller):
40+
def test_setup_primary_node_success(mock_broker, mock_poller):
4241
"""Test successful primary node setup."""
43-
mock_secondary.return_value = True
4442
mock_broker.return_value = True
4543
mock_poller.return_value = True
4644

47-
result = importer_node.setup_primary_node(
48-
"/var/local/git-ubuntu", 1, 2, "git-ubuntu", True, 1692
49-
)
45+
result = importer_node.setup_primary_node("/var/local/git-ubuntu", "git-ubuntu", 1692)
5046

5147
assert result is True
52-
mock_secondary.assert_called_once()
5348
mock_broker.assert_called_once()
5449
mock_poller.assert_called_once()
5550

@@ -59,9 +54,7 @@ def test_setup_primary_node_secondary_failure(mock_secondary):
5954
"""Test primary node setup with secondary failure."""
6055
mock_secondary.return_value = False
6156

62-
result = importer_node.setup_primary_node(
63-
"/var/local/git-ubuntu", 1, 2, "git-ubuntu", True, 1692
64-
)
57+
result = importer_node.setup_primary_node("/var/local/git-ubuntu", "git-ubuntu", 1692)
6558

6659
assert result is False
6760

@@ -73,9 +66,7 @@ def test_setup_primary_node_broker_failure(mock_secondary, mock_broker):
7366
mock_secondary.return_value = True
7467
mock_broker.return_value = False
7568

76-
result = importer_node.setup_primary_node(
77-
"/var/local/git-ubuntu", 1, 2, "git-ubuntu", True, 1692
78-
)
69+
result = importer_node.setup_primary_node("/var/local/git-ubuntu", "git-ubuntu", 1692)
7970

8071
assert result is False
8172

@@ -89,9 +80,7 @@ def test_setup_primary_node_poller_failure(mock_secondary, mock_broker, mock_pol
8980
mock_broker.return_value = True
9081
mock_poller.return_value = False
9182

92-
result = importer_node.setup_primary_node(
93-
"/var/local/git-ubuntu", 1, 2, "git-ubuntu", True, 1692
94-
)
83+
result = importer_node.setup_primary_node("/var/local/git-ubuntu", "git-ubuntu", 1692)
9584

9685
assert result is False
9786

0 commit comments

Comments
 (0)