PaloAltoNetworks / panhandler

Panhandler is a tool to manage config snippets and Skillets for PAN-OS devices
Apache License 2.0
41 stars 19 forks source link

"Could not find .meta-cnc file at this location" (Version: 2.3-DEV 2019-12-17T11:23:58) #110

Closed punisherVX closed 4 years ago

punisherVX commented 4 years ago

ERROR in Version: 2.3-DEV 2019-12-17T11:23:58

When trying to generate the snippets from the base, running config panhandler errors out. Logs below.

=====
=====
=====
=================== Welcome to Panhandler ============================
=====
=====
=====
Adding package panhandler to celery
Adding package panhandler to celery
Adding app config for app: panhandler

 -------------- celery@9584a47a285d v4.4.0 (cliffs)
--- ***** ----- 
-- ******* ---- Linux-4.15.0-72-generic-x86_64-with 2019-12-19 02:52:25
- *** --- * --- 
- ** ---------- [config]
- ** ---------- .> app:         pan_cnc:0x7ff0a89c9898
- ** ---------- .> transport:   filesystem://localhost//
- ** ---------- .> results:     file:///tmp/celery/jobs/celery_results
- *** --- * --- .> concurrency: 2 (prefork)
-- ******* ---- .> task events: OFF (enable -E to monitor tasks in this worker)
--- ***** ----- 
 -------------- [queues]
                .> celery           exchange=celery(direct) key=celery

[tasks]
  . pan_cnc.tasks.python3_execute_bare_script
  . pan_cnc.tasks.python3_execute_script
  . pan_cnc.tasks.python3_init_env
  . pan_cnc.tasks.python3_init_existing
  . pan_cnc.tasks.python3_init_with_deps
  . pan_cnc.tasks.terraform_apply
  . pan_cnc.tasks.terraform_destroy
  . pan_cnc.tasks.terraform_init
  . pan_cnc.tasks.terraform_output
  . pan_cnc.tasks.terraform_plan
  . pan_cnc.tasks.terraform_refresh
  . pan_cnc.tasks.terraform_validate
  . panhandler.tasks.panhandler_test

[2019-12-19 02:52:25,561: INFO/MainProcess] Connected to filesystem://localhost//
[2019-12-19 02:52:25,580: INFO/MainProcess] celery@9584a47a285d ready.
Adding package panhandler to celery
Adding app config for app: panhandler
Watching for file changes with StatReloader
Performing system checks...

setting up the panrc
Configuring URLs for installed apps
Performing CNC App initialization
Adding src app panhandler and view:  to urlpatterns
Adding src app panhandler and view: import to urlpatterns
Adding src app panhandler and view: collections to urlpatterns
Adding src app panhandler and view: snippets_by_type to urlpatterns
Adding src app panhandler and view: repos to urlpatterns
Adding src app panhandler and view: repo_detail to urlpatterns
Adding src app panhandler and view: update_repo to urlpatterns
Adding src app panhandler and view: update_all_repos to urlpatterns
Adding src app panhandler and view: remove_repo to urlpatterns
Adding src app panhandler and view: collection to urlpatterns
Adding src app panhandler and view: skillet to urlpatterns
Adding src app panhandler and view: check_update to urlpatterns
Adding src app panhandler and view: validate to urlpatterns
Adding src app panhandler and view: validate-results to urlpatterns
System check identified no issues (0 silenced).
December 19, 2019 - 02:52:26
Django version 3.0.1, using settings 'pan_cnc.settings'
Starting development server at http://0.0.0.0:8080/
Quit the server with CONTROL-C.
Seeding last_page session attribute
[19/Dec/2019 02:52:28] "GET /panhandler/ HTTP/1.1" 302 0
[19/Dec/2019 02:52:28] "GET /login?next=/panhandler/ HTTP/1.1" 200 2809
Setting current_app_dir to panhandler
[19/Dec/2019 02:52:33] "POST /login HTTP/1.1" 302 0
Capturing last page visit to /panhandler/
2019-12-11T11:34:33
Returning docker_image_details from the cache
Panhandler needs an update!
[19/Dec/2019 02:52:33] "GET /panhandler/ HTTP/1.1" 200 9116
Capturing last page visit to /panhandler/collections
[19/Dec/2019 02:52:35] "GET /panhandler/collections HTTP/1.1" 200 21017
Capturing last page visit to /panhandler/collection/Skillet Builder
Getting all snippets with collection label Skillet Builder
[19/Dec/2019 02:52:38] "GET /panhandler/collection/Skillet%20Builder HTTP/1.1" 200 20679
checking in app_dir panhandler for snippet Generate_Skillet_workflow
[19/Dec/2019 02:52:40] "GET /panhandler/skillet/Generate_Skillet_workflow HTTP/1.1" 200 10481
checking in app_dir panhandler for snippet Generate_Skillet_workflow
updating workflow
[19/Dec/2019 02:52:42] "POST /panhandler/skillet/Generate_Skillet_workflow HTTP/1.1" 302 0
Current step is 0
next step is 1
found skillet name Generate_Skillet_workflow
checking in app_dir panhandler for snippet Generate_Skillet_workflow
Current skillet name is generate_skillet_snippets_from_device
No last step here!
[19/Dec/2019 02:52:42] "GET /workflow/0 HTTP/1.1" 302 0
Getting snippet here in CNCBaseFormView:get_snippet
found snippet defined in the session
Returning snippet: generate_skillet_snippets_from_device
checking in app_dir panhandler for snippet generate_skillet_snippets_from_device
Found unknown type python3 for form customization in ProvisionSnippetView:get_context_data
Getting snippet here in CNCBaseFormView:get_snippet
[19/Dec/2019 02:52:42] "GET /provision HTTP/1.1" 200 11875
Getting snippet here in CNCBaseFormView:get_snippet
found snippet defined in the session
Returning snippet: generate_skillet_snippets_from_device
checking in app_dir panhandler for snippet generate_skillet_snippets_from_device
updating workflow
Adding variable TARGET_IP to session
Adding variable TARGET_USER to session
Adding variable TARGET_PASSWORD to session
Adding variable FROM_CANDIDATE to session
Launching python3 init
Getting snippet here in CNCBaseFormView:get_snippet
/home/cnc_user/.pan_cnc/panhandler/repositories/Skillet Builder/generate_snippets
/home/cnc_user/.pan_cnc/panhandler/repositories/Skillet Builder/generate_snippets/generate_skillet_snippets.py
requirements.txt exists
Performing python3 check
/home/cnc_user/.pan_cnc/panhandler/repositories/Skillet Builder/generate_snippets
/home/cnc_user/.pan_cnc/panhandler/repositories/Skillet Builder/generate_snippets/generate_skillet_snippets.py
python3 init complete
/home/cnc_user/.pan_cnc/panhandler/repositories/Skillet Builder/generate_snippets
/home/cnc_user/.pan_cnc/panhandler/repositories/Skillet Builder/generate_snippets/generate_skillet_snippets.py
[19/Dec/2019 02:52:53] "POST /provision HTTP/1.1" 200 14136
[2019-12-19 02:52:53,624: INFO/MainProcess] Received task: pan_cnc.tasks.python3_execute_script[b045fd3a-dd7a-4788-98a1-631d09331174]  
[2019-12-19 02:52:53,630: WARNING/ForkPoolWorker-1] Executing task Python3 generate_skillet_snippets.py
[2019-12-19 02:52:53,631: WARNING/ForkPoolWorker-1] ['/home/cnc_user/.pan_cnc/panhandler/repositories/Skillet Builder/generate_snippets/.venv/bin/python3', '-u', 'generate_skillet_snippets.py']
[2019-12-19 02:52:53,631: WARNING/ForkPoolWorker-1] Kicking off new task - exe local task
[2019-12-19 02:52:53,644: WARNING/ForkPoolWorker-1] Spawned process 38
CNC: Spawned Process: 38

[19/Dec/2019 02:52:54] "GET /logs HTTP/1.1" 200 87
[2019-12-19 02:52:56,227: WARNING/ForkPoolWorker-1] Task b045fd3a-dd7a-4788-98a1-631d09331174 return code is 1
[2019-12-19 02:52:56,227: WARNING/ForkPoolWorker-1] returning output
[2019-12-19 02:52:56,228: INFO/ForkPoolWorker-1] Task pan_cnc.tasks.python3_execute_script[b045fd3a-dd7a-4788-98a1-631d09331174] succeeded in 2.5989405410000472s: '{"returncode": 1, "out": "Error Executing Skillet\nCould not find .meta-cnc file at this location\n", "err": ""}'
{"returncode": 1, "out": "Error Executing Skillet\nCould not find .meta-cnc file at this location\n", "err": ""}
Last task, checking for output
checking in app_dir panhandler for snippet generate_skillet_snippets_from_device
getting output from last task
Caught error converting results to json
<django.contrib.sessions.backends.cache.SessionStore object at 0x7f7317b66630>
[19/Dec/2019 02:52:59] "GET /logs HTTP/1.1" 200 317
nembery commented 4 years ago

which repo was this from and which skillet were you running?

punisherVX commented 4 years ago

This is using the script you posted on slack in the thread here: https://panw-sales.slack.com/archives/GDHLVACFP/p1576610436034200?thread_ts=1576609714.033100&cid=GDHLVACFP

Running the Generate a Skillet From Device Workflow skillet against either the running or the candidate generates the same error.

punisherVX commented 4 years ago

This required a fix to the 8.1 version of the underlying base config in skilletlib. It was erroring out because it didn't know what some of the comparisons were. This also fixed 9.0 as well.