Skip to content
This repository has been archived by the owner on Feb 21, 2022. It is now read-only.

Commit

Permalink
feat(entity): import services and libraries into entity model
Browse files Browse the repository at this point in the history
  • Loading branch information
jarosevcik committed Oct 13, 2021
1 parent 2c8bb9b commit ac770b1
Show file tree
Hide file tree
Showing 5 changed files with 110 additions and 2 deletions.
2 changes: 1 addition & 1 deletion test/globalsearch/test_indexer.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ def test_index_model():
Dependency(name="test", type=DependencyType.LANG).save()

indexer = uut()
_initialize(indexer.meiliclient, indexer.models_to_index)
# _initialize(indexer.meiliclient, indexer.models_to_index)

indexer.index_specified_models()

Expand Down
24 changes: 24 additions & 0 deletions zoo/entities/migrations/0003_allow_blank_on_group.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Generated by Django 2.2.19 on 2021-10-13 09:52

import django.db.models.deletion
from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
("entities", "0002_allow_null_product_owner_on_group"),
]

operations = [
migrations.AlterField(
model_name="entity",
name="group",
field=models.OneToOneField(
blank=True,
null=True,
on_delete=django.db.models.deletion.CASCADE,
to="entities.Group",
),
),
]
83 changes: 83 additions & 0 deletions zoo/entities/migrations/0004_import_objects_to_entity_model.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
import structlog
from django.db import migrations

from zoo.entities.enums import Kind

log = structlog.get_logger()


def service_to_entity(apps, _):
Service = apps.get_model("services", "Service")
Entity = apps.get_model("entities", "Entity")
Link = apps.get_model("entities", "Link")
for service in Service.objects.all():
log.info("entity.import_services.processing", service=service)
entity = Entity.objects.create(
name=service.name,
owner=service.owner,
description=service.description,
kind=Kind.COMPONENT,
type="service",
source=service.repository,
tags=service.tags,
service=service,
)

if service.docs_url:
Link.objects.create(
name="Documentation", url=service.docs_url, entity=entity
)

if service.slack_channel:
Link.objects.create(
name="Discussion",
url=f"https://app.slack.com/client/T024Z3H2Y/{service.slack_channel}",
entity=entity,
)


def library_to_entity(apps, _):
Library = apps.get_model("libraries", "Library")
Entity = apps.get_model("entities", "Entity")
Link = apps.get_model("entities", "Link")
for library in Library.objects.all():
log.info("entity.import_libraries.processing", library=library)
entity = Entity.objects.create(
name=library.name,
owner=library.owner,
description=library.description,
kind=Kind.COMPONENT,
type="library",
source=library.repository,
tags=library.tags,
library=library,
)

if library.docs_url:
Link.objects.create(
name="Documentation", url=library.docs_url, entity=entity
)

if library.slack_channel:
Link.objects.create(
name="Discussion",
url=f"https://app.slack.com/client/T024Z3H2Y/{library.slack_channel}",
entity=entity,
)

if library.library_url:
Link.objects.create(
name="Library URL", url=library.library_url, entity=entity
)


class Migration(migrations.Migration):

dependencies = [
("entities", "0003_allow_blank_on_group"),
]

operations = [
migrations.RunPython(service_to_entity),
migrations.RunPython(library_to_entity),
]
3 changes: 2 additions & 1 deletion zoo/entities/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,8 @@ class Meta:
group = models.OneToOneField(
"entities.Group",
on_delete=models.CASCADE,
default=None,
null=True,
blank=True,
)
source = models.ForeignKey(
"repos.Repository",
Expand Down

0 comments on commit ac770b1

Please sign in to comment.