Skip to content

Commit c4bb478

Browse files
Create per namespace inbound repos on all namespace creation (#816) (#899)
This will create a new Repository and Distribution for every Namespace in Galaxy. Add delete() to Namespace model. Remove delete() from NamespaceManager. Previous unit test for delete was using a query_set.delete() which does a bulk delete, and not using the NamespaceManager.delete() Update unit tests. Issue: AAH-739 (cherry picked from commit eaea077) Co-authored-by: Adrian Likins <alikins@redhat.com>
1 parent 7a5db03 commit c4bb478

File tree

3 files changed

+14
-5
lines changed

3 files changed

+14
-5
lines changed

CHANGES/739.bugfix

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Create 'inbound-namespaces' whenever a namespace is created.

galaxy_ng/app/models/namespace.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
from galaxy_ng.app.access_control import mixins
1010
from galaxy_ng.app.constants import INBOUND_REPO_NAME_FORMAT
1111

12-
1312
__all__ = ("Namespace", "NamespaceLink")
1413

1514

@@ -48,9 +47,11 @@ def bulk_create(self, objs, **kwargs):
4847
create_inbound_repo(obj.name)
4948
return super().bulk_create(objs, **kwargs)
5049

51-
def delete(self):
52-
delete_inbound_repo(self.name)
53-
return super().delete()
50+
def get_or_create(self, *args, **kwargs):
51+
ns, created = super().get_or_create(*args, **kwargs)
52+
if created:
53+
create_inbound_repo(kwargs['name'])
54+
return ns, created
5455

5556

5657
class Namespace(LifecycleModel, mixins.GroupModelPermissionsMixin, AutoDeleteObjPermsMixin):
@@ -96,6 +97,10 @@ def set_links(self, links):
9697
for link in links
9798
)
9899

100+
def delete(self, *args, **kwargs):
101+
delete_inbound_repo(self.name)
102+
return super().delete(*args, **kwargs)
103+
99104
class Meta:
100105
permissions = (
101106
('upload_to_namespace', 'Can upload collections to namespace'),

galaxy_ng/tests/unit/test_models.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,12 @@ def test_new_namespace_creates_inbound_repo(self):
4545
def test_delete_namespace_deletes_inbound_repo(self):
4646
"""When deleting a Namespace the manager should delete inbound instances."""
4747
Namespace.objects.get_or_create(name=self.namespace_name)
48-
Namespace.objects.filter(name=self.namespace_name).delete()
48+
ns = Namespace.objects.get(name=self.namespace_name)
49+
ns.delete()
4950

5051
inbound_name = INBOUND_REPO_NAME_FORMAT.format(namespace_name=self.namespace_name)
52+
5153
self.assertFalse(Namespace.objects.filter(name=self.namespace_name).exists())
54+
5255
self.assertFalse(AnsibleRepository.objects.filter(name=inbound_name).exists())
5356
self.assertFalse(AnsibleDistribution.objects.filter(name=inbound_name).exists())

0 commit comments

Comments
 (0)