ipfabric_netbox 3.2.4__py3-none-any.whl → 3.2.4b2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of ipfabric_netbox might be problematic. Click here for more details.
- ipfabric_netbox/__init__.py +1 -1
- ipfabric_netbox/api/nested_serializers.py +0 -20
- ipfabric_netbox/api/serializers.py +7 -13
- ipfabric_netbox/api/urls.py +2 -2
- ipfabric_netbox/api/views.py +5 -5
- ipfabric_netbox/data/transform_map.json +21 -35
- ipfabric_netbox/filtersets.py +15 -13
- ipfabric_netbox/forms.py +14 -42
- ipfabric_netbox/jobs.py +12 -7
- ipfabric_netbox/migrations/0001_initial.py +1 -1
- ipfabric_netbox/migrations/0001_initial_squashed_0013_switch_to_branching_plugin.py +503 -0
- ipfabric_netbox/migrations/0007_prepare_custom_fields.py +3 -3
- ipfabric_netbox/migrations/0011_update_part_number_DCIM_inventory_item_template.py +57 -0
- ipfabric_netbox/migrations/0012_remove_status_field.py +18 -0
- ipfabric_netbox/migrations/0013_switch_to_branching_plugin.py +270 -0
- ipfabric_netbox/models.py +120 -91
- ipfabric_netbox/navigation.py +1 -1
- ipfabric_netbox/signals.py +9 -2
- ipfabric_netbox/tables.py +40 -46
- ipfabric_netbox/templates/ipfabric_netbox/{ipfabricbranch.html → ipfabricingestion.html} +14 -9
- ipfabric_netbox/templates/ipfabric_netbox/ipfabricsource.html +3 -3
- ipfabric_netbox/templates/ipfabric_netbox/ipfabricsync.html +3 -3
- ipfabric_netbox/templates/ipfabric_netbox/ipfabricsync_list.html +71 -0
- ipfabric_netbox/templates/ipfabric_netbox/ipfabrictransformmap.html +0 -4
- ipfabric_netbox/templates/ipfabric_netbox/partials/ingestion_all.html +10 -0
- ipfabric_netbox/templates/ipfabric_netbox/partials/{branch_progress.html → ingestion_progress.html} +1 -1
- ipfabric_netbox/templates/ipfabric_netbox/partials/sync_last_ingestion.html +1 -0
- ipfabric_netbox/urls.py +13 -3
- ipfabric_netbox/utilities/ipfutils.py +52 -19
- ipfabric_netbox/views.py +162 -155
- {ipfabric_netbox-3.2.4.dist-info → ipfabric_netbox-3.2.4b2.dist-info}/METADATA +12 -4
- {ipfabric_netbox-3.2.4.dist-info → ipfabric_netbox-3.2.4b2.dist-info}/RECORD +34 -31
- {ipfabric_netbox-3.2.4.dist-info → ipfabric_netbox-3.2.4b2.dist-info}/WHEEL +1 -1
- ipfabric_netbox/templates/ipfabric_netbox/inc/sync_delete.html +0 -19
- ipfabric_netbox/templates/ipfabric_netbox/partials/branch_all.html +0 -10
- ipfabric_netbox/templates/ipfabric_netbox/partials/sync_last_branch.html +0 -1
- ipfabric_netbox/templates/ipfabric_netbox/sync_list.html +0 -126
- /ipfabric_netbox/templates/ipfabric_netbox/partials/{branch_status.html → ingestion_status.html} +0 -0
|
@@ -1,30 +1,34 @@
|
|
|
1
|
-
ipfabric_netbox/__init__.py,sha256=
|
|
1
|
+
ipfabric_netbox/__init__.py,sha256=snv1zIDm7zTpCrvcomVsCw5Ekutd_zi1whhQoM-twfc,317
|
|
2
2
|
ipfabric_netbox/api/__init__.py,sha256=DOkvDAI4BoNgdCiNxfseeExEHyOrK8weG-LvjPRyK8A,101
|
|
3
|
-
ipfabric_netbox/api/nested_serializers.py,sha256=
|
|
4
|
-
ipfabric_netbox/api/serializers.py,sha256=
|
|
5
|
-
ipfabric_netbox/api/urls.py,sha256=
|
|
6
|
-
ipfabric_netbox/api/views.py,sha256=
|
|
3
|
+
ipfabric_netbox/api/nested_serializers.py,sha256=F-VpAL6xhNSUipuvR9_37sVw-3IPjr-XZB5CkouwelA,2174
|
|
4
|
+
ipfabric_netbox/api/serializers.py,sha256=yajV8aF1O6tcowfsGG3-2cAKEeR6ENMYr48bNMpTLIU,4152
|
|
5
|
+
ipfabric_netbox/api/urls.py,sha256=VQOcmGmcoqHWjOBaEnSZVCFvL23y60el8sZCe3JLr6U,957
|
|
6
|
+
ipfabric_netbox/api/views.py,sha256=nSmPjpOZxjU38N2qOq7MGabWZ7UwlWNvJ3hffE2XXbc,4444
|
|
7
7
|
ipfabric_netbox/choices.py,sha256=GqcnLqsFR4gnhWEwkvQbPxXYNi5SwNoIQz-J15LTMc4,4848
|
|
8
|
-
ipfabric_netbox/data/transform_map.json,sha256=
|
|
8
|
+
ipfabric_netbox/data/transform_map.json,sha256=4PsucgMHcLW3SPoKEptQCd0gA5tCF4hjrR4bGQFCWy8,21744
|
|
9
9
|
ipfabric_netbox/exceptions.py,sha256=Za-RutEX9ZIi3r0Rpor1vDGwsC5foeyrfSjUKS3Cwdk,744
|
|
10
|
-
ipfabric_netbox/filtersets.py,sha256=
|
|
11
|
-
ipfabric_netbox/forms.py,sha256=
|
|
12
|
-
ipfabric_netbox/jobs.py,sha256=
|
|
13
|
-
ipfabric_netbox/migrations/0001_initial.py,sha256=
|
|
10
|
+
ipfabric_netbox/filtersets.py,sha256=ZcCaNs6jELYabu49Dfrqe6FAXBOJwd9pBU5zlwCOso8,4006
|
|
11
|
+
ipfabric_netbox/forms.py,sha256=ZI6KISWtGZgwHiCI8KlpXbxZrCJFvWfBMXeAzR0qLYw,41554
|
|
12
|
+
ipfabric_netbox/jobs.py,sha256=KrTUeCuFUIU7vKCUS3RiBYCBG7g7GzhGagM_qFMGQJ4,3089
|
|
13
|
+
ipfabric_netbox/migrations/0001_initial.py,sha256=VphxkWL6QzWq2tcrdXlog718xQtiEGizKwS830z_fOs,13824
|
|
14
|
+
ipfabric_netbox/migrations/0001_initial_squashed_0013_switch_to_branching_plugin.py,sha256=vYi7lkVq8Ljo6If8bDV2q8RfnJip-aVsjBrXAvVqXV8,20863
|
|
14
15
|
ipfabric_netbox/migrations/0002_ipfabricsnapshot_status.py,sha256=xQpouHjOutyj6riN2B592njzSvz_icpkUbo5W7nWLYw,431
|
|
15
16
|
ipfabric_netbox/migrations/0003_ipfabricsource_type_and_more.py,sha256=XUM_ZecLlzElKYfBg9-cIB-cUy1YHpIzvJhvWP-dbIw,1579
|
|
16
17
|
ipfabric_netbox/migrations/0004_ipfabricsync_auto_merge.py,sha256=hlwHGKD7q3w1a1N04yIS39f6nsL_9TJCWEJlvwCdpPA,435
|
|
17
18
|
ipfabric_netbox/migrations/0005_alter_ipfabricrelationshipfield_source_model_and_more.py,sha256=egiUtdu1zHElbcIIN9sUzS93dSCltVXFv0DG9IUp1HY,2802
|
|
18
19
|
ipfabric_netbox/migrations/0006_alter_ipfabrictransformmap_target_model.py,sha256=6MmI-Uz9hmzj3nKqhUKdShjLnE8KNa4qthg0NVHjANc,2163
|
|
19
|
-
ipfabric_netbox/migrations/0007_prepare_custom_fields.py,sha256=
|
|
20
|
+
ipfabric_netbox/migrations/0007_prepare_custom_fields.py,sha256=4HJOpHD1x2m1i-cOMECaRHZrAqPhVPDHDibXRdCywx8,3906
|
|
20
21
|
ipfabric_netbox/migrations/0008_prepare_transform_maps.py,sha256=Jwr-P9MQQv9N-Yx_19V4q6lmZpeIkjoUW1gh4s-lDnI,1541
|
|
21
22
|
ipfabric_netbox/migrations/0009_transformmap_changes_for_netbox_v4_2.py,sha256=rEqa3OC8UpbdiZKOHBqnrjEgZXYxl8UFCDXHRl_Lnhk,9256
|
|
22
23
|
ipfabric_netbox/migrations/0010_remove_uuid_from_get_or_create.py,sha256=K1oF-B32Ei60XbQdntmjksx1o7rpnpgXCVKFT1dOU1Q,3958
|
|
24
|
+
ipfabric_netbox/migrations/0011_update_part_number_DCIM_inventory_item_template.py,sha256=-uc82jPdMABAKb-sCZ-OMytuNY880Q70lQBLdT-bdcw,1743
|
|
25
|
+
ipfabric_netbox/migrations/0012_remove_status_field.py,sha256=UZTY2BOBuV4Y_7zuPRfsCFLo57HZ6DsNRIhFlF_VOTM,387
|
|
26
|
+
ipfabric_netbox/migrations/0013_switch_to_branching_plugin.py,sha256=JfdTNerjuFyjW3pDm4vueOp2lrDh2xt6lL1Et5i4crg,10754
|
|
23
27
|
ipfabric_netbox/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
24
|
-
ipfabric_netbox/models.py,sha256=
|
|
25
|
-
ipfabric_netbox/navigation.py,sha256=
|
|
26
|
-
ipfabric_netbox/signals.py,sha256=
|
|
27
|
-
ipfabric_netbox/tables.py,sha256=
|
|
28
|
+
ipfabric_netbox/models.py,sha256=JiucbzHWDW_FVTWjljihYPvEki2iyTCtLVbGI0HiEHU,32469
|
|
29
|
+
ipfabric_netbox/navigation.py,sha256=YN2hNQNXLxpFUU-29qn7WGAK0lbtfvl_X04Qnh1rG7E,1731
|
|
30
|
+
ipfabric_netbox/signals.py,sha256=gEZVba-4KDqfSqi5MtWkFDcqqSFLDEjmBNheZjZEZKw,1274
|
|
31
|
+
ipfabric_netbox/tables.py,sha256=saQw4EszFO-nZjl5PBzb4SN4WJTU3mGoPjue-SGWnd8,6983
|
|
28
32
|
ipfabric_netbox/template_content.py,sha256=bP2nUf5MM-GUbtQxJ8QoYVNXhrDCrkb8wZnbeqa07EA,315
|
|
29
33
|
ipfabric_netbox/templates/ipfabric_netbox/inc/diff.html,sha256=xOiIrvRIBtqDD65u6xcLo2xdwDKNpAylDmzznaJRGCw,3281
|
|
30
34
|
ipfabric_netbox/templates/ipfabric_netbox/inc/json.html,sha256=qPHUdaHyKM9Y7FqBEnYwcNoyp5GMFaexJFXMRf4AqZQ,569
|
|
@@ -33,33 +37,32 @@ ipfabric_netbox/templates/ipfabric_netbox/inc/merge_form.html,sha256=HxGRk7oTptD
|
|
|
33
37
|
ipfabric_netbox/templates/ipfabric_netbox/inc/site_topology_button.html,sha256=81hUyBGqxUZ1i4EwT2Omydbk-2aFkKnWCu4tu68ch_c,2674
|
|
34
38
|
ipfabric_netbox/templates/ipfabric_netbox/inc/site_topology_modal.html,sha256=zjG5qjth277dnVkzyg8qxs72wtKZ8yypXRTXqral4Wk,2124
|
|
35
39
|
ipfabric_netbox/templates/ipfabric_netbox/inc/snapshotdata.html,sha256=1ItOCPjjp9iH7MLNLIz6x-2NnSa0Wx4bXUYVk-Jn4Y0,2885
|
|
36
|
-
ipfabric_netbox/templates/ipfabric_netbox/inc/sync_delete.html,sha256=sNQ9VpsFdv1Ds1JbpyxN1OHE0eGDJj6aLE9eWdL-Muk,717
|
|
37
40
|
ipfabric_netbox/templates/ipfabric_netbox/inc/transform_map_field_map.html,sha256=mRU-rBweVFvaPFHbVYPw7vcYyXiVaXCOkeHm7xWdKPA,500
|
|
38
41
|
ipfabric_netbox/templates/ipfabric_netbox/inc/transform_map_relationship_map.html,sha256=qyuG_EXZMGUscA3sv_6WGSrf_bR7JTRlKyMYf6EYyo4,504
|
|
39
42
|
ipfabric_netbox/templates/ipfabric_netbox/ipfabric_table.html,sha256=d5qcBeKDgh57eSZ6J1oYc--qfGmHRC6PLhrffFBQiM8,1631
|
|
40
|
-
ipfabric_netbox/templates/ipfabric_netbox/
|
|
43
|
+
ipfabric_netbox/templates/ipfabric_netbox/ipfabricingestion.html,sha256=ctneF3bVY5ZMqry3SMWpX2UEsTmIM7k5sjEgT-s7LTk,5021
|
|
41
44
|
ipfabric_netbox/templates/ipfabric_netbox/ipfabricsnapshot.html,sha256=hj8ORs_4mM_xTjmw3McHN-da5seC8nbbkzobn0f1TSc,3482
|
|
42
|
-
ipfabric_netbox/templates/ipfabric_netbox/ipfabricsource.html,sha256=
|
|
43
|
-
ipfabric_netbox/templates/ipfabric_netbox/ipfabricsync.html,sha256
|
|
44
|
-
ipfabric_netbox/templates/ipfabric_netbox/
|
|
45
|
+
ipfabric_netbox/templates/ipfabric_netbox/ipfabricsource.html,sha256=koR_t6Mf2FhWlPZHchWsTOQDSLB7AWrqtY0TRnIzrrM,3864
|
|
46
|
+
ipfabric_netbox/templates/ipfabric_netbox/ipfabricsync.html,sha256=24wZEPcr9F9XFHOn8DSZiaIw1HvAMpWqhXwJSFRt1Yw,3730
|
|
47
|
+
ipfabric_netbox/templates/ipfabric_netbox/ipfabricsync_list.html,sha256=b6uE317N69oeknOOqnJo5I-qm44QezDlBTRqslbEO8I,2593
|
|
48
|
+
ipfabric_netbox/templates/ipfabric_netbox/ipfabrictransformmap.html,sha256=UGwvEN53jFyXyoHFa5PRBav3V3JLLiYufj-e-nCYO4I,988
|
|
45
49
|
ipfabric_netbox/templates/ipfabric_netbox/ipfabrictransformmap_list.html,sha256=p8zqn0-B6mawSUM3zQrus6dsKUM5SRBTO0X94pLboX8,452
|
|
46
50
|
ipfabric_netbox/templates/ipfabric_netbox/ipfabrictransformmap_restore.html,sha256=cuvOBKnlMudMI-CX77W3vTpwhtc4CBcc6j6Ye-IBBMQ,2562
|
|
47
|
-
ipfabric_netbox/templates/ipfabric_netbox/partials/
|
|
48
|
-
ipfabric_netbox/templates/ipfabric_netbox/partials/
|
|
49
|
-
ipfabric_netbox/templates/ipfabric_netbox/partials/
|
|
51
|
+
ipfabric_netbox/templates/ipfabric_netbox/partials/ingestion_all.html,sha256=FHMoHSnngsR_ZyypF6Ent8Tl-4kYDe1WTUIoehPYWEY,389
|
|
52
|
+
ipfabric_netbox/templates/ipfabric_netbox/partials/ingestion_progress.html,sha256=NellDFy1qzgVbCtkOZbiSi3ufau6FOLIQPUoNiU6Bg4,595
|
|
53
|
+
ipfabric_netbox/templates/ipfabric_netbox/partials/ingestion_status.html,sha256=mKXre8_-y6OYyoL_WFYyHuyxJrR4D40M2OT-r83zKEM,81
|
|
50
54
|
ipfabric_netbox/templates/ipfabric_netbox/partials/job_logs.html,sha256=PMZxxrRVzn_JI8k5XCNV5BQnoFj9zYePN6afP6C_J2E,1622
|
|
51
|
-
ipfabric_netbox/templates/ipfabric_netbox/partials/
|
|
52
|
-
ipfabric_netbox/templates/ipfabric_netbox/sync_list.html,sha256=3wfwPUIAfzzIP_pu3gL0L3wH65UX5XFLBW5BW-CZJDc,5587
|
|
55
|
+
ipfabric_netbox/templates/ipfabric_netbox/partials/sync_last_ingestion.html,sha256=3v6tC88xE5cic9l9lQw7Msawoq-AW2oo2odd-osGv50,179
|
|
53
56
|
ipfabric_netbox/templates/static/ipfabric_netbox/css/rack.css,sha256=z1H-RmmsqF2pGdhn5J64TMFiccy62xZUHHlCRd8fJrQ,118
|
|
54
57
|
ipfabric_netbox/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
55
58
|
ipfabric_netbox/tests/test_models.py,sha256=syndh1M3uiZIokn_MJUHfU5jNNMUDPQ5sm8iK-gu1Is,15192
|
|
56
|
-
ipfabric_netbox/urls.py,sha256=
|
|
59
|
+
ipfabric_netbox/urls.py,sha256=NEeRXv1adlVzYVgZn_qXogd9kgZhLNg0VSAB5TOMy2M,4622
|
|
57
60
|
ipfabric_netbox/utilities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
58
|
-
ipfabric_netbox/utilities/ipfutils.py,sha256=
|
|
61
|
+
ipfabric_netbox/utilities/ipfutils.py,sha256=nOehKJWzFDTq5__yM26v9eShQT5tvUWlP1OmFEsGupA,28666
|
|
59
62
|
ipfabric_netbox/utilities/logging.py,sha256=GYknjocMN6LQ2873_az3y0RKm29TCXaWviUIIneH-x0,3445
|
|
60
63
|
ipfabric_netbox/utilities/nbutils.py,sha256=kFBEiJOGvr_49hJWCS2duXojx2-A9kVk0Xp_vj0ohfs,2641
|
|
61
64
|
ipfabric_netbox/utilities/transform_map.py,sha256=g0elxtwSRJvu0ZRZHyMf4Y9R4wiQ-h2o9Er8gxUQ-Bs,2108
|
|
62
|
-
ipfabric_netbox/views.py,sha256=
|
|
63
|
-
ipfabric_netbox-3.2.
|
|
64
|
-
ipfabric_netbox-3.2.
|
|
65
|
-
ipfabric_netbox-3.2.
|
|
65
|
+
ipfabric_netbox/views.py,sha256=j8oq0N-npONcY6YgjU4UabJl7NgCAXJGUHTHzbh5FvA,28796
|
|
66
|
+
ipfabric_netbox-3.2.4b2.dist-info/METADATA,sha256=lpPSHLnh4563XcBxIwl1kgUXHAZBosNFupMuDMUUbjE,5393
|
|
67
|
+
ipfabric_netbox-3.2.4b2.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
|
68
|
+
ipfabric_netbox-3.2.4b2.dist-info/RECORD,,
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
{% load form_helpers %}
|
|
2
|
-
|
|
3
|
-
<form action="{{ form_url }}" method="post">
|
|
4
|
-
{% csrf_token %}
|
|
5
|
-
<div class="modal-header">
|
|
6
|
-
<h5 class="modal-title">Sorry!</h5>
|
|
7
|
-
</div>
|
|
8
|
-
<div class="modal-body">
|
|
9
|
-
<p>Sorry, due to an outstanding issue with NetBox Core we are unable to delete an ingestion. <a href="https://github.com/netbox-community/netbox/issues/13640" target="_blank">Issue Number 13422</a></p>
|
|
10
|
-
{% render_form form %}
|
|
11
|
-
</div>
|
|
12
|
-
<div class="modal-footer">
|
|
13
|
-
{% if return_url %}
|
|
14
|
-
<a href="{{ return_url }}" class="btn btn-outline-secondary">Cancel</a>
|
|
15
|
-
{% else %}
|
|
16
|
-
<button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">Cancel</button>
|
|
17
|
-
{% endif %}
|
|
18
|
-
</div>
|
|
19
|
-
</form>
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
<div id="sync_status" hx-swap-oob="true">
|
|
3
|
-
{% include 'ipfabric_netbox/partials/branch_status.html' with object=object %}
|
|
4
|
-
</div>
|
|
5
|
-
<div id="sync_progress" hx-swap-oob="true">
|
|
6
|
-
{% include 'ipfabric_netbox/partials/branch_progress.html' %}
|
|
7
|
-
</div>
|
|
8
|
-
<div id="sync_logs">
|
|
9
|
-
{% include 'ipfabric_netbox/partials/job_logs.html' with job_results=job_results job=job %}
|
|
10
|
-
</div>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{% if last_branch %}<a href="{% url 'plugins:ipfabric_netbox:ipfabricbranch' pk=last_branch.pk %}">{{ last_branch.name }}{% else %}{{ ""|placeholder }}{% endif %}</a>
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
{% extends 'base/layout.html' %}
|
|
2
|
-
{% load buttons %}
|
|
3
|
-
{% load helpers %}
|
|
4
|
-
{% load perms %}
|
|
5
|
-
|
|
6
|
-
{% block title %}Ingestion{% endblock %}
|
|
7
|
-
|
|
8
|
-
{% block tabs %}
|
|
9
|
-
<ul class="nav nav-tabs px-3">
|
|
10
|
-
<li class="nav-item" role="presentation">
|
|
11
|
-
<a class="nav-link active" role="tab">Ingestion</a>
|
|
12
|
-
</li>
|
|
13
|
-
</ul>
|
|
14
|
-
{% endblock tabs %}
|
|
15
|
-
|
|
16
|
-
{% block controls %}
|
|
17
|
-
<div class="controls">
|
|
18
|
-
<div class="control-group">
|
|
19
|
-
{% block extra_controls %}{% endblock %}
|
|
20
|
-
{% add_button model %}
|
|
21
|
-
</div>
|
|
22
|
-
</div>
|
|
23
|
-
{% endblock controls %}
|
|
24
|
-
|
|
25
|
-
{% block content %}
|
|
26
|
-
<div class="tab-content">
|
|
27
|
-
{% for sync in syncs %}
|
|
28
|
-
<div class="card">
|
|
29
|
-
<h5 class="card-header" id="module{{ module.pk }}">
|
|
30
|
-
<!-- TODO: Cannot delete without serializer https://github.com/netbox-community/netbox/issues/13640-->
|
|
31
|
-
<!-- {% if perms.ipfabric_netbox.delete_ipfabricsync %}
|
|
32
|
-
<div class="float-end">
|
|
33
|
-
<a href="{% url 'plugins:ipfabric_netbox:ipfabricsync_delete' pk=sync.pk %}" class="btn btn-danger btn-sm">
|
|
34
|
-
<i class="mdi mdi-trash-can-outline" aria-hidden="true"></i> Delete
|
|
35
|
-
</a>
|
|
36
|
-
</div>
|
|
37
|
-
{% endif %} -->
|
|
38
|
-
<i class="mdi mdi-cloud-sync"></i><i class="mdi mdi-sync"></i> <a href="{% url 'plugins:ipfabric_netbox:ipfabricsync' pk=sync.pk %}">{{ sync.name}}</a>
|
|
39
|
-
|
|
40
|
-
</h5>
|
|
41
|
-
<div class="card-body">
|
|
42
|
-
{% include 'inc/sync_warning.html' with object=module %}
|
|
43
|
-
<table class="table table-hover table-headings reports">
|
|
44
|
-
<thead>
|
|
45
|
-
<tr>
|
|
46
|
-
<th width="200">Source</th>
|
|
47
|
-
<th width="400">Snapshot</th>
|
|
48
|
-
<th>Status</th>
|
|
49
|
-
<th>Last Run</th>
|
|
50
|
-
</tr>
|
|
51
|
-
</thead>
|
|
52
|
-
<tbody>
|
|
53
|
-
<tr>
|
|
54
|
-
<td><a href="{% url 'plugins:ipfabric_netbox:ipfabricsource' pk=sync.snapshot_data.source.pk %}">{{ sync.snapshot_data.source.name }}</a></td>
|
|
55
|
-
<td><a href="{% url 'plugins:ipfabric_netbox:ipfabricsnapshot' pk=sync.snapshot_data.pk %}">{{ sync.snapshot_data.name}}</a></td>
|
|
56
|
-
<td>{% badge sync.get_status_display last_job.get_status_color %}</td>
|
|
57
|
-
<td>{{sync.last_synced}}</td>
|
|
58
|
-
</tr>
|
|
59
|
-
</tbody>
|
|
60
|
-
<!-- <tbody>
|
|
61
|
-
{% with jobs=module.get_latest_jobs %}
|
|
62
|
-
{% for report_name, report in module.reports.items %}
|
|
63
|
-
{% with last_job=jobs|get_key:report.name %}
|
|
64
|
-
<tr>
|
|
65
|
-
<td>
|
|
66
|
-
<a href="{% url 'extras:report' module=module.python_name name=report.class_name %}" id="{{ report.module }}.{{ report.class_name }}">{{ report.name }}</a>
|
|
67
|
-
</td>
|
|
68
|
-
<td>{{ report.description|markdown|placeholder }}</td>
|
|
69
|
-
{% if last_job %}
|
|
70
|
-
<td>
|
|
71
|
-
<a href="{% url 'extras:report_result' job_pk=last_job.pk %}">{{ last_job.created|isodatetime }}</a>
|
|
72
|
-
</td>
|
|
73
|
-
<td>
|
|
74
|
-
{% badge last_job.get_status_display last_job.get_status_color %}
|
|
75
|
-
</td>
|
|
76
|
-
{% else %}
|
|
77
|
-
<td class="text-muted">Never</td>
|
|
78
|
-
<td>{{ ''|placeholder }}</td>
|
|
79
|
-
{% endif %}
|
|
80
|
-
<td>
|
|
81
|
-
{% if perms.extras.run_report %}
|
|
82
|
-
<div class="float-end noprint">
|
|
83
|
-
<form action="{% url 'extras:report' module=report.module name=report.class_name %}" method="post">
|
|
84
|
-
{% csrf_token %}
|
|
85
|
-
<button type="submit" name="_run" class="btn btn-primary btn-sm" style="width: 110px">
|
|
86
|
-
{% if last_job %}
|
|
87
|
-
<i class="mdi mdi-replay"></i> Run Again
|
|
88
|
-
{% else %}
|
|
89
|
-
<i class="mdi mdi-play"></i> Run Report
|
|
90
|
-
{% endif %}
|
|
91
|
-
</button>
|
|
92
|
-
</form>
|
|
93
|
-
</div>
|
|
94
|
-
{% endif %}
|
|
95
|
-
</td>
|
|
96
|
-
</tr>
|
|
97
|
-
{% for method, stats in last_job.data.items %}
|
|
98
|
-
<tr>
|
|
99
|
-
<td colspan="4" class="method">
|
|
100
|
-
<span class="ps-3">{{ method }}</span>
|
|
101
|
-
</td>
|
|
102
|
-
<td class="text-end text-nowrap report-stats">
|
|
103
|
-
<span class="badge bg-success">{{ stats.success }}</span>
|
|
104
|
-
<span class="badge bg-info">{{ stats.info }}</span>
|
|
105
|
-
<span class="badge bg-warning">{{ stats.warning }}</span>
|
|
106
|
-
<span class="badge bg-danger">{{ stats.failure }}</span>
|
|
107
|
-
</td>
|
|
108
|
-
</tr>
|
|
109
|
-
{% endfor %}
|
|
110
|
-
{% endwith %}
|
|
111
|
-
{% endfor %}
|
|
112
|
-
{% endwith %}
|
|
113
|
-
</tbody> -->
|
|
114
|
-
</table>
|
|
115
|
-
</div>
|
|
116
|
-
</div>
|
|
117
|
-
{% empty %}
|
|
118
|
-
<div class="alert alert-info" role="alert">
|
|
119
|
-
<h4 class="alert-heading">Injest Jobs Settings Found</h4>
|
|
120
|
-
{% if perms.extras.add_reportmodule %}
|
|
121
|
-
Get started by <a href="{% url 'plugins:ipfabric_netbox:ipfabricsync_add' %}">creating an injestion</a> from an IP Fabric source.
|
|
122
|
-
{% endif %}
|
|
123
|
-
</div>
|
|
124
|
-
{% endfor %}
|
|
125
|
-
</div>
|
|
126
|
-
{% endblock content %}
|
/ipfabric_netbox/templates/ipfabric_netbox/partials/{branch_status.html → ingestion_status.html}
RENAMED
|
File without changes
|