nautobot 2.2.2__py3-none-any.whl → 2.2.3__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.
- nautobot/apps/jobs.py +2 -0
- nautobot/core/api/utils.py +12 -9
- nautobot/core/apps/__init__.py +2 -2
- nautobot/core/celery/__init__.py +79 -68
- nautobot/core/celery/backends.py +9 -1
- nautobot/core/celery/control.py +4 -7
- nautobot/core/celery/schedulers.py +4 -2
- nautobot/core/celery/task.py +78 -5
- nautobot/core/graphql/schema.py +2 -1
- nautobot/core/jobs/__init__.py +2 -1
- nautobot/core/templates/generic/object_list.html +3 -3
- nautobot/core/templatetags/helpers.py +66 -9
- nautobot/core/testing/__init__.py +6 -1
- nautobot/core/testing/api.py +12 -13
- nautobot/core/testing/mixins.py +2 -2
- nautobot/core/testing/views.py +50 -51
- nautobot/core/tests/test_api.py +23 -2
- nautobot/core/tests/test_templatetags_helpers.py +32 -0
- nautobot/core/tests/test_views.py +19 -0
- nautobot/core/tests/test_views_utils.py +22 -1
- nautobot/core/utils/module_loading.py +89 -0
- nautobot/core/views/utils.py +3 -2
- nautobot/dcim/choices.py +14 -0
- nautobot/dcim/forms.py +51 -1
- nautobot/dcim/models/device_components.py +9 -5
- nautobot/dcim/templates/dcim/location.html +32 -13
- nautobot/dcim/templates/dcim/location_migrate_data_to_contact.html +102 -0
- nautobot/dcim/tests/test_views.py +137 -0
- nautobot/dcim/urls.py +5 -0
- nautobot/dcim/views.py +149 -1
- nautobot/extras/api/views.py +21 -10
- nautobot/extras/constants.py +3 -3
- nautobot/extras/datasources/git.py +47 -58
- nautobot/extras/forms/forms.py +3 -1
- nautobot/extras/jobs.py +79 -146
- nautobot/extras/models/datasources.py +0 -2
- nautobot/extras/models/jobs.py +36 -18
- nautobot/extras/plugins/__init__.py +1 -20
- nautobot/extras/signals.py +6 -9
- nautobot/extras/test_jobs/__init__.py +8 -0
- nautobot/extras/test_jobs/dry_run.py +3 -2
- nautobot/extras/test_jobs/fail.py +43 -0
- nautobot/extras/test_jobs/ipaddress_vars.py +40 -1
- nautobot/extras/test_jobs/jobs_module/__init__.py +5 -0
- nautobot/extras/test_jobs/jobs_module/jobs_submodule/__init__.py +1 -0
- nautobot/extras/test_jobs/jobs_module/jobs_submodule/jobs.py +6 -0
- nautobot/extras/test_jobs/pass.py +40 -0
- nautobot/extras/test_jobs/relative_import.py +11 -0
- nautobot/extras/tests/test_api.py +3 -0
- nautobot/extras/tests/test_datasources.py +125 -118
- nautobot/extras/tests/test_job_variables.py +57 -15
- nautobot/extras/tests/test_jobs.py +135 -1
- nautobot/extras/tests/test_models.py +26 -19
- nautobot/extras/tests/test_plugins.py +1 -3
- nautobot/extras/tests/test_views.py +2 -4
- nautobot/extras/views.py +47 -95
- nautobot/ipam/api/views.py +8 -1
- nautobot/ipam/graphql/types.py +11 -0
- nautobot/ipam/mixins.py +32 -0
- nautobot/ipam/models.py +2 -1
- nautobot/ipam/querysets.py +6 -1
- nautobot/ipam/tests/test_models.py +82 -0
- nautobot/project-static/docs/assets/extra.css +4 -0
- nautobot/project-static/docs/code-reference/nautobot/apps/api.html +1 -1
- nautobot/project-static/docs/code-reference/nautobot/apps/jobs.html +180 -211
- nautobot/project-static/docs/development/apps/api/platform-features/jobs.html +1 -1
- nautobot/project-static/docs/development/core/application-registry.html +126 -84
- nautobot/project-static/docs/development/core/model-checklist.html +49 -1
- nautobot/project-static/docs/development/core/model-features.html +1 -1
- nautobot/project-static/docs/development/jobs/index.html +334 -58
- nautobot/project-static/docs/development/jobs/migration/from-v1.html +1 -1
- nautobot/project-static/docs/objects.inv +0 -0
- nautobot/project-static/docs/release-notes/version-2.2.html +237 -55
- nautobot/project-static/docs/search/search_index.json +1 -1
- nautobot/project-static/docs/sitemap.xml +254 -254
- nautobot/project-static/docs/sitemap.xml.gz +0 -0
- nautobot/project-static/docs/user-guide/administration/upgrading/from-v1/upgrading-from-nautobot-v1.html +7 -4
- nautobot/project-static/docs/user-guide/core-data-model/ipam/vlan.html +111 -0
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/index.html +15 -28
- nautobot/project-static/docs/user-guide/platform-functionality/jobs/models.html +4 -4
- nautobot/project-static/js/forms.js +18 -11
- {nautobot-2.2.2.dist-info → nautobot-2.2.3.dist-info}/METADATA +3 -3
- {nautobot-2.2.2.dist-info → nautobot-2.2.3.dist-info}/RECORD +87 -81
- nautobot/extras/test_jobs/job_variables.py +0 -93
- {nautobot-2.2.2.dist-info → nautobot-2.2.3.dist-info}/LICENSE.txt +0 -0
- {nautobot-2.2.2.dist-info → nautobot-2.2.3.dist-info}/NOTICE +0 -0
- {nautobot-2.2.2.dist-info → nautobot-2.2.3.dist-info}/WHEEL +0 -0
- {nautobot-2.2.2.dist-info → nautobot-2.2.3.dist-info}/entry_points.txt +0 -0
|
@@ -6154,15 +6154,6 @@
|
|
|
6154
6154
|
</span>
|
|
6155
6155
|
</a>
|
|
6156
6156
|
|
|
6157
|
-
</li>
|
|
6158
|
-
|
|
6159
|
-
<li class="md-nav__item">
|
|
6160
|
-
<a href="#nautobot.apps.jobs.BaseJob.apply" class="md-nav__link">
|
|
6161
|
-
<span class="md-ellipsis">
|
|
6162
|
-
apply
|
|
6163
|
-
</span>
|
|
6164
|
-
</a>
|
|
6165
|
-
|
|
6166
6157
|
</li>
|
|
6167
6158
|
|
|
6168
6159
|
<li class="md-nav__item">
|
|
@@ -6217,15 +6208,6 @@
|
|
|
6217
6208
|
</span>
|
|
6218
6209
|
</a>
|
|
6219
6210
|
|
|
6220
|
-
</li>
|
|
6221
|
-
|
|
6222
|
-
<li class="md-nav__item">
|
|
6223
|
-
<a href="#nautobot.apps.jobs.BaseJob.clear_cache" class="md-nav__link">
|
|
6224
|
-
<span class="md-ellipsis">
|
|
6225
|
-
clear_cache
|
|
6226
|
-
</span>
|
|
6227
|
-
</a>
|
|
6228
|
-
|
|
6229
6211
|
</li>
|
|
6230
6212
|
|
|
6231
6213
|
<li class="md-nav__item">
|
|
@@ -6247,27 +6229,27 @@
|
|
|
6247
6229
|
</li>
|
|
6248
6230
|
|
|
6249
6231
|
<li class="md-nav__item">
|
|
6250
|
-
<a href="#nautobot.apps.jobs.BaseJob.
|
|
6232
|
+
<a href="#nautobot.apps.jobs.BaseJob.file_path" class="md-nav__link">
|
|
6251
6233
|
<span class="md-ellipsis">
|
|
6252
|
-
|
|
6234
|
+
file_path
|
|
6253
6235
|
</span>
|
|
6254
6236
|
</a>
|
|
6255
6237
|
|
|
6256
6238
|
</li>
|
|
6257
6239
|
|
|
6258
6240
|
<li class="md-nav__item">
|
|
6259
|
-
<a href="#nautobot.apps.jobs.BaseJob.
|
|
6241
|
+
<a href="#nautobot.apps.jobs.BaseJob.load_json" class="md-nav__link">
|
|
6260
6242
|
<span class="md-ellipsis">
|
|
6261
|
-
|
|
6243
|
+
load_json
|
|
6262
6244
|
</span>
|
|
6263
6245
|
</a>
|
|
6264
6246
|
|
|
6265
6247
|
</li>
|
|
6266
6248
|
|
|
6267
6249
|
<li class="md-nav__item">
|
|
6268
|
-
<a href="#nautobot.apps.jobs.BaseJob.
|
|
6250
|
+
<a href="#nautobot.apps.jobs.BaseJob.load_yaml" class="md-nav__link">
|
|
6269
6251
|
<span class="md-ellipsis">
|
|
6270
|
-
|
|
6252
|
+
load_yaml
|
|
6271
6253
|
</span>
|
|
6272
6254
|
</a>
|
|
6273
6255
|
|
|
@@ -6319,27 +6301,27 @@
|
|
|
6319
6301
|
</li>
|
|
6320
6302
|
|
|
6321
6303
|
<li class="md-nav__item">
|
|
6322
|
-
<a href="#nautobot.apps.jobs.BaseJob.
|
|
6304
|
+
<a href="#nautobot.apps.jobs.BaseJob.registered_name" class="md-nav__link">
|
|
6323
6305
|
<span class="md-ellipsis">
|
|
6324
|
-
|
|
6306
|
+
registered_name
|
|
6325
6307
|
</span>
|
|
6326
6308
|
</a>
|
|
6327
6309
|
|
|
6328
6310
|
</li>
|
|
6329
6311
|
|
|
6330
6312
|
<li class="md-nav__item">
|
|
6331
|
-
<a href="#nautobot.apps.jobs.BaseJob.
|
|
6313
|
+
<a href="#nautobot.apps.jobs.BaseJob.run" class="md-nav__link">
|
|
6332
6314
|
<span class="md-ellipsis">
|
|
6333
|
-
|
|
6315
|
+
run
|
|
6334
6316
|
</span>
|
|
6335
6317
|
</a>
|
|
6336
6318
|
|
|
6337
6319
|
</li>
|
|
6338
6320
|
|
|
6339
6321
|
<li class="md-nav__item">
|
|
6340
|
-
<a href="#nautobot.apps.jobs.BaseJob.
|
|
6322
|
+
<a href="#nautobot.apps.jobs.BaseJob.serialize_data" class="md-nav__link">
|
|
6341
6323
|
<span class="md-ellipsis">
|
|
6342
|
-
|
|
6324
|
+
serialize_data
|
|
6343
6325
|
</span>
|
|
6344
6326
|
</a>
|
|
6345
6327
|
|
|
@@ -6636,6 +6618,15 @@
|
|
|
6636
6618
|
</span>
|
|
6637
6619
|
</a>
|
|
6638
6620
|
|
|
6621
|
+
</li>
|
|
6622
|
+
|
|
6623
|
+
<li class="md-nav__item">
|
|
6624
|
+
<a href="#nautobot.apps.jobs.get_jobs" class="md-nav__link">
|
|
6625
|
+
<span class="md-ellipsis">
|
|
6626
|
+
get_jobs
|
|
6627
|
+
</span>
|
|
6628
|
+
</a>
|
|
6629
|
+
|
|
6639
6630
|
</li>
|
|
6640
6631
|
|
|
6641
6632
|
<li class="md-nav__item">
|
|
@@ -8310,15 +8301,6 @@
|
|
|
8310
8301
|
</span>
|
|
8311
8302
|
</a>
|
|
8312
8303
|
|
|
8313
|
-
</li>
|
|
8314
|
-
|
|
8315
|
-
<li class="md-nav__item">
|
|
8316
|
-
<a href="#nautobot.apps.jobs.BaseJob.apply" class="md-nav__link">
|
|
8317
|
-
<span class="md-ellipsis">
|
|
8318
|
-
apply
|
|
8319
|
-
</span>
|
|
8320
|
-
</a>
|
|
8321
|
-
|
|
8322
8304
|
</li>
|
|
8323
8305
|
|
|
8324
8306
|
<li class="md-nav__item">
|
|
@@ -8373,15 +8355,6 @@
|
|
|
8373
8355
|
</span>
|
|
8374
8356
|
</a>
|
|
8375
8357
|
|
|
8376
|
-
</li>
|
|
8377
|
-
|
|
8378
|
-
<li class="md-nav__item">
|
|
8379
|
-
<a href="#nautobot.apps.jobs.BaseJob.clear_cache" class="md-nav__link">
|
|
8380
|
-
<span class="md-ellipsis">
|
|
8381
|
-
clear_cache
|
|
8382
|
-
</span>
|
|
8383
|
-
</a>
|
|
8384
|
-
|
|
8385
8358
|
</li>
|
|
8386
8359
|
|
|
8387
8360
|
<li class="md-nav__item">
|
|
@@ -8403,27 +8376,27 @@
|
|
|
8403
8376
|
</li>
|
|
8404
8377
|
|
|
8405
8378
|
<li class="md-nav__item">
|
|
8406
|
-
<a href="#nautobot.apps.jobs.BaseJob.
|
|
8379
|
+
<a href="#nautobot.apps.jobs.BaseJob.file_path" class="md-nav__link">
|
|
8407
8380
|
<span class="md-ellipsis">
|
|
8408
|
-
|
|
8381
|
+
file_path
|
|
8409
8382
|
</span>
|
|
8410
8383
|
</a>
|
|
8411
8384
|
|
|
8412
8385
|
</li>
|
|
8413
8386
|
|
|
8414
8387
|
<li class="md-nav__item">
|
|
8415
|
-
<a href="#nautobot.apps.jobs.BaseJob.
|
|
8388
|
+
<a href="#nautobot.apps.jobs.BaseJob.load_json" class="md-nav__link">
|
|
8416
8389
|
<span class="md-ellipsis">
|
|
8417
|
-
|
|
8390
|
+
load_json
|
|
8418
8391
|
</span>
|
|
8419
8392
|
</a>
|
|
8420
8393
|
|
|
8421
8394
|
</li>
|
|
8422
8395
|
|
|
8423
8396
|
<li class="md-nav__item">
|
|
8424
|
-
<a href="#nautobot.apps.jobs.BaseJob.
|
|
8397
|
+
<a href="#nautobot.apps.jobs.BaseJob.load_yaml" class="md-nav__link">
|
|
8425
8398
|
<span class="md-ellipsis">
|
|
8426
|
-
|
|
8399
|
+
load_yaml
|
|
8427
8400
|
</span>
|
|
8428
8401
|
</a>
|
|
8429
8402
|
|
|
@@ -8475,27 +8448,27 @@
|
|
|
8475
8448
|
</li>
|
|
8476
8449
|
|
|
8477
8450
|
<li class="md-nav__item">
|
|
8478
|
-
<a href="#nautobot.apps.jobs.BaseJob.
|
|
8451
|
+
<a href="#nautobot.apps.jobs.BaseJob.registered_name" class="md-nav__link">
|
|
8479
8452
|
<span class="md-ellipsis">
|
|
8480
|
-
|
|
8453
|
+
registered_name
|
|
8481
8454
|
</span>
|
|
8482
8455
|
</a>
|
|
8483
8456
|
|
|
8484
8457
|
</li>
|
|
8485
8458
|
|
|
8486
8459
|
<li class="md-nav__item">
|
|
8487
|
-
<a href="#nautobot.apps.jobs.BaseJob.
|
|
8460
|
+
<a href="#nautobot.apps.jobs.BaseJob.run" class="md-nav__link">
|
|
8488
8461
|
<span class="md-ellipsis">
|
|
8489
|
-
|
|
8462
|
+
run
|
|
8490
8463
|
</span>
|
|
8491
8464
|
</a>
|
|
8492
8465
|
|
|
8493
8466
|
</li>
|
|
8494
8467
|
|
|
8495
8468
|
<li class="md-nav__item">
|
|
8496
|
-
<a href="#nautobot.apps.jobs.BaseJob.
|
|
8469
|
+
<a href="#nautobot.apps.jobs.BaseJob.serialize_data" class="md-nav__link">
|
|
8497
8470
|
<span class="md-ellipsis">
|
|
8498
|
-
|
|
8471
|
+
serialize_data
|
|
8499
8472
|
</span>
|
|
8500
8473
|
</a>
|
|
8501
8474
|
|
|
@@ -8792,6 +8765,15 @@
|
|
|
8792
8765
|
</span>
|
|
8793
8766
|
</a>
|
|
8794
8767
|
|
|
8768
|
+
</li>
|
|
8769
|
+
|
|
8770
|
+
<li class="md-nav__item">
|
|
8771
|
+
<a href="#nautobot.apps.jobs.get_jobs" class="md-nav__link">
|
|
8772
|
+
<span class="md-ellipsis">
|
|
8773
|
+
get_jobs
|
|
8774
|
+
</span>
|
|
8775
|
+
</a>
|
|
8776
|
+
|
|
8795
8777
|
</li>
|
|
8796
8778
|
|
|
8797
8779
|
<li class="md-nav__item">
|
|
@@ -8876,8 +8858,6 @@
|
|
|
8876
8858
|
|
|
8877
8859
|
|
|
8878
8860
|
<div class="doc doc-contents ">
|
|
8879
|
-
<p class="doc doc-class-bases">
|
|
8880
|
-
Bases: <code><span title="nautobot.core.celery.task.Task">Task</span></code></p>
|
|
8881
8861
|
|
|
8882
8862
|
|
|
8883
8863
|
<p>Base model for jobs.</p>
|
|
@@ -9079,25 +9059,6 @@ with shared functionality; if no such sharing is required, use Job class instead
|
|
|
9079
9059
|
|
|
9080
9060
|
|
|
9081
9061
|
|
|
9082
|
-
<h3 id="nautobot.apps.jobs.BaseJob.apply" class="doc doc-heading">
|
|
9083
|
-
<code class="highlight language-python"><span class="n">apply</span><span class="p">(</span><span class="n">args</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">kwargs</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">link</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">link_error</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">task_id</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">retries</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">throw</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">logfile</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">loglevel</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">headers</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="o">**</span><span class="n">options</span><span class="p">)</span></code>
|
|
9084
|
-
|
|
9085
|
-
<a href="#nautobot.apps.jobs.BaseJob.apply" class="headerlink" title="Permanent link">¶</a></h3>
|
|
9086
|
-
|
|
9087
|
-
|
|
9088
|
-
<div class="doc doc-contents ">
|
|
9089
|
-
|
|
9090
|
-
<p>Fix celery's apply method to propagate options to the task result</p>
|
|
9091
|
-
|
|
9092
|
-
</div>
|
|
9093
|
-
|
|
9094
|
-
</div>
|
|
9095
|
-
|
|
9096
|
-
|
|
9097
|
-
<div class="doc doc-object doc-function">
|
|
9098
|
-
|
|
9099
|
-
|
|
9100
|
-
|
|
9101
9062
|
<h3 id="nautobot.apps.jobs.BaseJob.as_form" class="doc doc-heading">
|
|
9102
9063
|
<code class="highlight language-python"><span class="n">as_form</span><span class="p">(</span><span class="n">data</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">files</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">initial</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">approval_view</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span></code>
|
|
9103
9064
|
|
|
@@ -9311,26 +9272,6 @@ during a approval review workflow.</p>
|
|
|
9311
9272
|
|
|
9312
9273
|
|
|
9313
9274
|
|
|
9314
|
-
<h3 id="nautobot.apps.jobs.BaseJob.clear_cache" class="doc doc-heading">
|
|
9315
|
-
<code class="highlight language-python"><span class="n">clear_cache</span><span class="p">()</span></code>
|
|
9316
|
-
|
|
9317
|
-
<a href="#nautobot.apps.jobs.BaseJob.clear_cache" class="headerlink" title="Permanent link">¶</a></h3>
|
|
9318
|
-
|
|
9319
|
-
|
|
9320
|
-
<div class="doc doc-contents ">
|
|
9321
|
-
|
|
9322
|
-
<p>Clear all cached properties on this instance without accessing them. This is required because
|
|
9323
|
-
celery reuses task instances for multiple runs.</p>
|
|
9324
|
-
|
|
9325
|
-
</div>
|
|
9326
|
-
|
|
9327
|
-
</div>
|
|
9328
|
-
|
|
9329
|
-
|
|
9330
|
-
<div class="doc doc-object doc-function">
|
|
9331
|
-
|
|
9332
|
-
|
|
9333
|
-
|
|
9334
9275
|
<h3 id="nautobot.apps.jobs.BaseJob.create_file" class="doc doc-heading">
|
|
9335
9276
|
<code class="highlight language-python"><span class="n">create_file</span><span class="p">(</span><span class="n">filename</span><span class="p">,</span> <span class="n">content</span><span class="p">)</span></code>
|
|
9336
9277
|
|
|
@@ -9470,15 +9411,15 @@ path would consider this a failure of the job execution, as described in <code>n
|
|
|
9470
9411
|
|
|
9471
9412
|
|
|
9472
9413
|
|
|
9473
|
-
<h3 id="nautobot.apps.jobs.BaseJob.
|
|
9474
|
-
<code class="highlight language-python"><span class="n">
|
|
9414
|
+
<h3 id="nautobot.apps.jobs.BaseJob.file_path" class="doc doc-heading">
|
|
9415
|
+
<code class="highlight language-python"><span class="n">file_path</span><span class="p">()</span></code>
|
|
9475
9416
|
|
|
9476
|
-
<a href="#nautobot.apps.jobs.BaseJob.
|
|
9417
|
+
<a href="#nautobot.apps.jobs.BaseJob.file_path" class="headerlink" title="Permanent link">¶</a></h3>
|
|
9477
9418
|
|
|
9478
9419
|
|
|
9479
9420
|
<div class="doc doc-contents ">
|
|
9480
9421
|
|
|
9481
|
-
<p>
|
|
9422
|
+
<p>Deprecated as of Nautobot 2.2.3.</p>
|
|
9482
9423
|
|
|
9483
9424
|
</div>
|
|
9484
9425
|
|
|
@@ -9489,15 +9430,15 @@ path would consider this a failure of the job execution, as described in <code>n
|
|
|
9489
9430
|
|
|
9490
9431
|
|
|
9491
9432
|
|
|
9492
|
-
<h3 id="nautobot.apps.jobs.BaseJob.
|
|
9493
|
-
<code class="highlight language-python"><span class="n">
|
|
9433
|
+
<h3 id="nautobot.apps.jobs.BaseJob.load_json" class="doc doc-heading">
|
|
9434
|
+
<code class="highlight language-python"><span class="n">load_json</span><span class="p">(</span><span class="n">filename</span><span class="p">)</span></code>
|
|
9494
9435
|
|
|
9495
|
-
<a href="#nautobot.apps.jobs.BaseJob.
|
|
9436
|
+
<a href="#nautobot.apps.jobs.BaseJob.load_json" class="headerlink" title="Permanent link">¶</a></h3>
|
|
9496
9437
|
|
|
9497
9438
|
|
|
9498
9439
|
<div class="doc doc-contents ">
|
|
9499
9440
|
|
|
9500
|
-
<p>Return data from a
|
|
9441
|
+
<p>Return data from a JSON file</p>
|
|
9501
9442
|
|
|
9502
9443
|
</div>
|
|
9503
9444
|
|
|
@@ -9508,25 +9449,16 @@ path would consider this a failure of the job execution, as described in <code>n
|
|
|
9508
9449
|
|
|
9509
9450
|
|
|
9510
9451
|
|
|
9511
|
-
<h3 id="nautobot.apps.jobs.BaseJob.
|
|
9512
|
-
<code class="highlight language-python"><span class="n">
|
|
9513
|
-
|
|
9514
|
-
<span class="doc doc-labels">
|
|
9515
|
-
<small class="doc doc-label doc-label-classmethod"><code>classmethod</code></small>
|
|
9516
|
-
</span>
|
|
9452
|
+
<h3 id="nautobot.apps.jobs.BaseJob.load_yaml" class="doc doc-heading">
|
|
9453
|
+
<code class="highlight language-python"><span class="n">load_yaml</span><span class="p">(</span><span class="n">filename</span><span class="p">)</span></code>
|
|
9517
9454
|
|
|
9518
|
-
<a href="#nautobot.apps.jobs.BaseJob.
|
|
9455
|
+
<a href="#nautobot.apps.jobs.BaseJob.load_yaml" class="headerlink" title="Permanent link">¶</a></h3>
|
|
9519
9456
|
|
|
9520
9457
|
|
|
9521
9458
|
<div class="doc doc-contents ">
|
|
9522
9459
|
|
|
9523
|
-
<p>
|
|
9460
|
+
<p>Return data from a YAML file</p>
|
|
9524
9461
|
|
|
9525
|
-
<details class="note" open>
|
|
9526
|
-
<summary>Note</summary>
|
|
9527
|
-
<p>This class method can be defined to do additional actions when
|
|
9528
|
-
the task class is bound to an app.</p>
|
|
9529
|
-
</details>
|
|
9530
9462
|
</div>
|
|
9531
9463
|
|
|
9532
9464
|
</div>
|
|
@@ -9955,15 +9887,15 @@ the task class is bound to an app.</p>
|
|
|
9955
9887
|
|
|
9956
9888
|
|
|
9957
9889
|
|
|
9958
|
-
<h3 id="nautobot.apps.jobs.BaseJob.
|
|
9959
|
-
<code class="highlight language-python"><span class="n">
|
|
9890
|
+
<h3 id="nautobot.apps.jobs.BaseJob.registered_name" class="doc doc-heading">
|
|
9891
|
+
<code class="highlight language-python"><span class="n">registered_name</span><span class="p">()</span></code>
|
|
9960
9892
|
|
|
9961
|
-
<a href="#nautobot.apps.jobs.BaseJob.
|
|
9893
|
+
<a href="#nautobot.apps.jobs.BaseJob.registered_name" class="headerlink" title="Permanent link">¶</a></h3>
|
|
9962
9894
|
|
|
9963
9895
|
|
|
9964
9896
|
<div class="doc doc-contents ">
|
|
9965
9897
|
|
|
9966
|
-
<p>
|
|
9898
|
+
<p>Deprecated - use class_path classproperty instead.</p>
|
|
9967
9899
|
|
|
9968
9900
|
</div>
|
|
9969
9901
|
|
|
@@ -9974,22 +9906,15 @@ the task class is bound to an app.</p>
|
|
|
9974
9906
|
|
|
9975
9907
|
|
|
9976
9908
|
|
|
9977
|
-
<h3 id="nautobot.apps.jobs.BaseJob.
|
|
9978
|
-
<code class="highlight language-python"><span class="n">
|
|
9979
|
-
|
|
9980
|
-
<span class="doc doc-labels">
|
|
9981
|
-
<small class="doc doc-label doc-label-staticmethod"><code>staticmethod</code></small>
|
|
9982
|
-
</span>
|
|
9909
|
+
<h3 id="nautobot.apps.jobs.BaseJob.run" class="doc doc-heading">
|
|
9910
|
+
<code class="highlight language-python"><span class="n">run</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span></code>
|
|
9983
9911
|
|
|
9984
|
-
<a href="#nautobot.apps.jobs.BaseJob.
|
|
9912
|
+
<a href="#nautobot.apps.jobs.BaseJob.run" class="headerlink" title="Permanent link">¶</a></h3>
|
|
9985
9913
|
|
|
9986
9914
|
|
|
9987
9915
|
<div class="doc doc-contents ">
|
|
9988
9916
|
|
|
9989
|
-
<p>
|
|
9990
|
-
<p>Here we convert the QuerySet of a MultiObjectVar to a list of the pk's and the model instance
|
|
9991
|
-
of an ObjectVar into the pk value.</p>
|
|
9992
|
-
<p>These are converted back during job execution.</p>
|
|
9917
|
+
<p>Method invoked when this Job is run.</p>
|
|
9993
9918
|
|
|
9994
9919
|
</div>
|
|
9995
9920
|
|
|
@@ -10000,82 +9925,22 @@ of an ObjectVar into the pk value.</p>
|
|
|
10000
9925
|
|
|
10001
9926
|
|
|
10002
9927
|
|
|
10003
|
-
<h3 id="nautobot.apps.jobs.BaseJob.
|
|
10004
|
-
<code class="highlight language-python"><span class="n">
|
|
9928
|
+
<h3 id="nautobot.apps.jobs.BaseJob.serialize_data" class="doc doc-heading">
|
|
9929
|
+
<code class="highlight language-python"><span class="n">serialize_data</span><span class="p">(</span><span class="n">data</span><span class="p">)</span></code>
|
|
9930
|
+
|
|
9931
|
+
<span class="doc doc-labels">
|
|
9932
|
+
<small class="doc doc-label doc-label-staticmethod"><code>staticmethod</code></small>
|
|
9933
|
+
</span>
|
|
10005
9934
|
|
|
10006
|
-
<a href="#nautobot.apps.jobs.BaseJob.
|
|
9935
|
+
<a href="#nautobot.apps.jobs.BaseJob.serialize_data" class="headerlink" title="Permanent link">¶</a></h3>
|
|
10007
9936
|
|
|
10008
9937
|
|
|
10009
9938
|
<div class="doc doc-contents ">
|
|
10010
9939
|
|
|
10011
|
-
<p>
|
|
10012
|
-
|
|
10013
|
-
|
|
10014
|
-
|
|
10015
|
-
<p>from celery.utils.imports import qualname</p>
|
|
10016
|
-
<p>def shadow_name(task, args, kwargs, options):
|
|
10017
|
-
return qualname(args[0])</p>
|
|
10018
|
-
<p>@app.task(shadow_name=shadow_name, serializer='pickle')
|
|
10019
|
-
def apply_function_async(fun, <em>args, </em><em>kwargs):
|
|
10020
|
-
return fun(</em>args, **kwargs)</p>
|
|
10021
|
-
</details>
|
|
10022
|
-
|
|
10023
|
-
|
|
10024
|
-
<p><strong>Parameters:</strong></p>
|
|
10025
|
-
<table>
|
|
10026
|
-
<thead>
|
|
10027
|
-
<tr>
|
|
10028
|
-
<th>Name</th>
|
|
10029
|
-
<th>Type</th>
|
|
10030
|
-
<th>Description</th>
|
|
10031
|
-
<th>Default</th>
|
|
10032
|
-
</tr>
|
|
10033
|
-
</thead>
|
|
10034
|
-
<tbody>
|
|
10035
|
-
<tr>
|
|
10036
|
-
<td><code>args</code></td>
|
|
10037
|
-
<td>
|
|
10038
|
-
<code>Tuple</code>
|
|
10039
|
-
</td>
|
|
10040
|
-
<td>
|
|
10041
|
-
<div class="doc-md-description">
|
|
10042
|
-
<p>Task positional arguments.</p>
|
|
10043
|
-
</div>
|
|
10044
|
-
</td>
|
|
10045
|
-
<td>
|
|
10046
|
-
<em>required</em>
|
|
10047
|
-
</td>
|
|
10048
|
-
</tr>
|
|
10049
|
-
<tr>
|
|
10050
|
-
<td><code>kwargs</code></td>
|
|
10051
|
-
<td>
|
|
10052
|
-
<code>Dict</code>
|
|
10053
|
-
</td>
|
|
10054
|
-
<td>
|
|
10055
|
-
<div class="doc-md-description">
|
|
10056
|
-
<p>Task keyword arguments.</p>
|
|
10057
|
-
</div>
|
|
10058
|
-
</td>
|
|
10059
|
-
<td>
|
|
10060
|
-
<em>required</em>
|
|
10061
|
-
</td>
|
|
10062
|
-
</tr>
|
|
10063
|
-
<tr>
|
|
10064
|
-
<td><code>options</code></td>
|
|
10065
|
-
<td>
|
|
10066
|
-
<code>Dict</code>
|
|
10067
|
-
</td>
|
|
10068
|
-
<td>
|
|
10069
|
-
<div class="doc-md-description">
|
|
10070
|
-
<p>Task execution options.</p>
|
|
10071
|
-
</div>
|
|
10072
|
-
</td>
|
|
10073
|
-
<td>
|
|
10074
|
-
<em>required</em>
|
|
10075
|
-
</td>
|
|
10076
|
-
</tr>
|
|
10077
|
-
</tbody>
|
|
10078
|
-
</table>
|
|
9940
|
+
<p>This method parses input data (from JobForm usually) and returns a dict which is safe to serialize</p>
|
|
9941
|
+
<p>Here we convert the QuerySet of a MultiObjectVar to a list of the pk's and the model instance
|
|
9942
|
+
of an ObjectVar into the pk value.</p>
|
|
9943
|
+
<p>These are converted back during job execution.</p>
|
|
10079
9944
|
|
|
10080
9945
|
</div>
|
|
10081
9946
|
|
|
@@ -11279,7 +11144,7 @@ to be processed</p>
|
|
|
11279
11144
|
|
|
11280
11145
|
|
|
11281
11146
|
<h2 id="nautobot.apps.jobs.get_job" class="doc doc-heading">
|
|
11282
|
-
<code class="highlight language-python"><span class="n">nautobot</span><span class="o">.</span><span class="n">apps</span><span class="o">.</span><span class="n">jobs</span><span class="o">.</span><span class="n">get_job</span><span class="p">(</span><span class="n">class_path</span><span class="p">)</span></code>
|
|
11147
|
+
<code class="highlight language-python"><span class="n">nautobot</span><span class="o">.</span><span class="n">apps</span><span class="o">.</span><span class="n">jobs</span><span class="o">.</span><span class="n">get_job</span><span class="p">(</span><span class="n">class_path</span><span class="p">,</span> <span class="n">reload</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span></code>
|
|
11283
11148
|
|
|
11284
11149
|
<a href="#nautobot.apps.jobs.get_job" class="headerlink" title="Permanent link">¶</a></h2>
|
|
11285
11150
|
|
|
@@ -11287,7 +11152,111 @@ to be processed</p>
|
|
|
11287
11152
|
<div class="doc doc-contents ">
|
|
11288
11153
|
|
|
11289
11154
|
<p>Retrieve a specific job class by its class_path (<code><module_name>.<JobClassName></code>).</p>
|
|
11290
|
-
<p>May return None if the job
|
|
11155
|
+
<p>May return None if the job can't be imported.</p>
|
|
11156
|
+
|
|
11157
|
+
|
|
11158
|
+
|
|
11159
|
+
<p><strong>Parameters:</strong></p>
|
|
11160
|
+
<table>
|
|
11161
|
+
<thead>
|
|
11162
|
+
<tr>
|
|
11163
|
+
<th>Name</th>
|
|
11164
|
+
<th>Type</th>
|
|
11165
|
+
<th>Description</th>
|
|
11166
|
+
<th>Default</th>
|
|
11167
|
+
</tr>
|
|
11168
|
+
</thead>
|
|
11169
|
+
<tbody>
|
|
11170
|
+
<tr>
|
|
11171
|
+
<td><code>reload</code></td>
|
|
11172
|
+
<td>
|
|
11173
|
+
<code>bool</code>
|
|
11174
|
+
</td>
|
|
11175
|
+
<td>
|
|
11176
|
+
<div class="doc-md-description">
|
|
11177
|
+
<p>If True, <strong>and</strong> the given class_path describes a JOBS_ROOT or GitRepository Job,
|
|
11178
|
+
then refresh <strong>all</strong> such Jobs before retrieving the job class.</p>
|
|
11179
|
+
</div>
|
|
11180
|
+
</td>
|
|
11181
|
+
<td>
|
|
11182
|
+
<code>False</code>
|
|
11183
|
+
</td>
|
|
11184
|
+
</tr>
|
|
11185
|
+
</tbody>
|
|
11186
|
+
</table>
|
|
11187
|
+
|
|
11188
|
+
</div>
|
|
11189
|
+
|
|
11190
|
+
</div>
|
|
11191
|
+
|
|
11192
|
+
|
|
11193
|
+
<div class="doc doc-object doc-function">
|
|
11194
|
+
|
|
11195
|
+
|
|
11196
|
+
|
|
11197
|
+
<h2 id="nautobot.apps.jobs.get_jobs" class="doc doc-heading">
|
|
11198
|
+
<code class="highlight language-python"><span class="n">nautobot</span><span class="o">.</span><span class="n">apps</span><span class="o">.</span><span class="n">jobs</span><span class="o">.</span><span class="n">get_jobs</span><span class="p">(</span><span class="o">*</span><span class="p">,</span> <span class="n">reload</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span></code>
|
|
11199
|
+
|
|
11200
|
+
<a href="#nautobot.apps.jobs.get_jobs" class="headerlink" title="Permanent link">¶</a></h2>
|
|
11201
|
+
|
|
11202
|
+
|
|
11203
|
+
<div class="doc doc-contents ">
|
|
11204
|
+
|
|
11205
|
+
<p>Compile a dictionary of all Job classes available at this time.</p>
|
|
11206
|
+
|
|
11207
|
+
|
|
11208
|
+
|
|
11209
|
+
<p><strong>Parameters:</strong></p>
|
|
11210
|
+
<table>
|
|
11211
|
+
<thead>
|
|
11212
|
+
<tr>
|
|
11213
|
+
<th>Name</th>
|
|
11214
|
+
<th>Type</th>
|
|
11215
|
+
<th>Description</th>
|
|
11216
|
+
<th>Default</th>
|
|
11217
|
+
</tr>
|
|
11218
|
+
</thead>
|
|
11219
|
+
<tbody>
|
|
11220
|
+
<tr>
|
|
11221
|
+
<td><code>reload</code></td>
|
|
11222
|
+
<td>
|
|
11223
|
+
<code>bool</code>
|
|
11224
|
+
</td>
|
|
11225
|
+
<td>
|
|
11226
|
+
<div class="doc-md-description">
|
|
11227
|
+
<p>If True, reimport Jobs from <code>JOBS_ROOT</code> and all applicable GitRepositories.</p>
|
|
11228
|
+
</div>
|
|
11229
|
+
</td>
|
|
11230
|
+
<td>
|
|
11231
|
+
<code>False</code>
|
|
11232
|
+
</td>
|
|
11233
|
+
</tr>
|
|
11234
|
+
</tbody>
|
|
11235
|
+
</table>
|
|
11236
|
+
|
|
11237
|
+
|
|
11238
|
+
|
|
11239
|
+
<p><strong>Returns:</strong></p>
|
|
11240
|
+
<table>
|
|
11241
|
+
<thead>
|
|
11242
|
+
<tr>
|
|
11243
|
+
<th>Type</th>
|
|
11244
|
+
<th>Description</th>
|
|
11245
|
+
</tr>
|
|
11246
|
+
</thead>
|
|
11247
|
+
<tbody>
|
|
11248
|
+
<tr>
|
|
11249
|
+
<td>
|
|
11250
|
+
<code>dict</code>
|
|
11251
|
+
</td>
|
|
11252
|
+
<td>
|
|
11253
|
+
<div class="doc-md-description">
|
|
11254
|
+
<p><code>{"class_path.Job1": <job_class>, "class_path.Job2": <job_class>, ...}</code></p>
|
|
11255
|
+
</div>
|
|
11256
|
+
</td>
|
|
11257
|
+
</tr>
|
|
11258
|
+
</tbody>
|
|
11259
|
+
</table>
|
|
11291
11260
|
|
|
11292
11261
|
</div>
|
|
11293
11262
|
|
|
@@ -11344,7 +11313,7 @@ to be processed</p>
|
|
|
11344
11313
|
|
|
11345
11314
|
<div class="doc doc-contents ">
|
|
11346
11315
|
|
|
11347
|
-
<p>
|
|
11316
|
+
<p>Method to register jobs - with Celery in Nautobot 2.0 through 2.2.2, with Nautobot itself in 2.2.3 and later.</p>
|
|
11348
11317
|
|
|
11349
11318
|
</div>
|
|
11350
11319
|
|
|
@@ -7751,7 +7751,7 @@
|
|
|
7751
7751
|
</code></pre></div>
|
|
7752
7752
|
<div class="admonition version-changed">
|
|
7753
7753
|
<p class="admonition-title">Changed in version 2.0.0</p>
|
|
7754
|
-
<p>
|
|
7754
|
+
<p>You now must call <code>register_jobs()</code> from within your <code>jobs.py</code> file when it is imported; any jobs not included in this call will not be available for Nautobot to schedule and execute.</p>
|
|
7755
7755
|
</div>
|
|
7756
7756
|
|
|
7757
7757
|
|