Skip to content

Commit badaaa9

Browse files
authored
Merge pull request #28 from jtdub/nmap-app
add nmap app
2 parents fa6e448 + 41fe72f commit badaaa9

File tree

18 files changed

+205
-4
lines changed

18 files changed

+205
-4
lines changed

.github/workflows/unit-tests.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,4 @@ jobs:
2828
sleep 20
2929
poetry run invoke migrate
3030
poetry run invoke unittest
31+
poetry run invoke coverage

netopsio/netopsio/settings.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
"home",
4545
"ping",
4646
"traceroute",
47+
"nmap",
4748
]
4849

4950
MIDDLEWARE = [

netopsio/netopsio/urls.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
from home.views import TaskResultViewSet
2323
from ping.views import PingRequestViewSet, PingViewSet
2424
from traceroute.views import TraceRouteRequestViewSet, TraceRouteViewSet
25+
from nmap.views import NmapRequestViewSet, NmapViewSet
2526

2627

2728
router = DefaultRouter()
@@ -30,6 +31,8 @@
3031
router.register(r"ping", PingViewSet, basename="ping")
3132
router.register(r"traceroute-logs", TraceRouteRequestViewSet)
3233
router.register(r"traceroute", TraceRouteViewSet, basename="traceroute")
34+
router.register(r"nmap-logs", NmapRequestViewSet)
35+
router.register(r"nmap", NmapViewSet, basename="nmap")
3336

3437

3538
schema_view = get_schema_view( # pylint: disable=invalid-name
@@ -48,6 +51,7 @@
4851
path("", include("home.urls"), name="home"),
4952
path("ping/", include("ping.urls"), name="ping"),
5053
path("traceroute/", include("traceroute.urls"), name="traceroute"),
54+
path("nmap/", include("nmap.urls"), name="nmap"),
5155
path("admin/", admin.site.urls, name="admin"),
5256
path("api/v1/", include(router.urls), name="admin-v1"),
5357
re_path(

netopsio/nmap/__init__.py

Whitespace-only changes.

netopsio/nmap/admin.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
"""Register Nmap Models in Admin Pandel."""
2+
3+
from django.contrib import admin
4+
from nmap.models import NmapRequest
5+
6+
7+
class NmapAdmin(admin.ModelAdmin):
8+
"""Nmap Admin Site Fields."""
9+
10+
list_display = ("ip", "date")
11+
12+
13+
admin.site.register(NmapRequest, NmapAdmin)

netopsio/nmap/apps.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# pylint: skip-file
2+
3+
from django.apps import AppConfig
4+
5+
6+
class PingConfig(AppConfig):
7+
default_auto_field = "django.db.models.BigAutoField"
8+
name = "nmap"
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Generated by Django 3.2.10 on 2022-07-11 01:55
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
initial = True
9+
10+
dependencies = []
11+
12+
operations = [
13+
migrations.CreateModel(
14+
name="NmapRequest",
15+
fields=[
16+
(
17+
"id",
18+
models.BigAutoField(
19+
auto_created=True,
20+
primary_key=True,
21+
serialize=False,
22+
verbose_name="ID",
23+
),
24+
),
25+
("date", models.DateTimeField(auto_now_add=True)),
26+
("task_id", models.UUIDField(null=True, unique=True)),
27+
("ip", models.CharField(max_length=255)),
28+
("result", models.TextField()),
29+
],
30+
),
31+
]

netopsio/nmap/migrations/__init__.py

Whitespace-only changes.

netopsio/nmap/models.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
"""Nmap App Models."""
2+
3+
from django.db import models
4+
5+
6+
class NmapRequest(models.Model):
7+
"""Nmap Requests Logging Model."""
8+
9+
date = models.DateTimeField(auto_now_add=True)
10+
task_id = models.UUIDField(unique=True, null=True)
11+
ip = models.CharField(max_length=255)
12+
result = models.TextField()
13+
14+
15+
class Nmap:
16+
"""Nmap Model."""
17+
18+
def __init__(self, task_id: str):
19+
"""Initialize the model."""
20+
self.task_id = task_id

netopsio/nmap/serializers.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
"""Nmap App serializers."""
2+
3+
from rest_framework import serializers
4+
from nmap.models import NmapRequest
5+
6+
7+
class NmapRequestSerializer(serializers.ModelSerializer):
8+
"""NmapRequest Serializer."""
9+
10+
class Meta:
11+
"""NmapRequest Serializer Meta."""
12+
13+
model = NmapRequest
14+
fields = ["id", "date", "task_id", "ip", "result", "url"]
15+
16+
17+
class NmapSerializer(serializers.Serializer): # pylint: disable=abstract-method
18+
"""Nmap Serializer."""
19+
20+
task_id = serializers.CharField(max_length=512)

0 commit comments

Comments
 (0)