Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 9 additions & 22 deletions catalogs/scripts/catalogs.py
Original file line number Diff line number Diff line change
@@ -1,29 +1,16 @@
#!/usr/bin/python


import os
import plistlib
import sys

sys.path.append('/usr/local/munki')
import munkilib.updatecheck.manifestutils
sys.path.append('/usr/local/sal')
import utils
#!/usr/local/sal/Python.framework/Versions/Current/bin/python3
import pathlib

import sal

def main():
client_manifest_path = munkilib.updatecheck.manifestutils.get_primary_manifest()
if os.path.exists(client_manifest_path):
client_manifest = plistlib.readPlist(client_manifest_path)
else:
client_manifest = {}

# Drop any blank entries and trim WS.
catalogs = [c.strip() for c in client_manifest.get("catalogs", []) if c]
catalogs_dir = pathlib.Path('/Library/Managed Installs/catalogs')
catalogs = [item.stem for item in catalogs_dir.rglob('*')
if item.is_file()]
if not catalogs:
catalogs = ["NO CATALOGS"]
utils.add_plugin_results('Catalogs', {"Catalogs": "+".join(catalogs)})
catalogs = ["NO INCLUDED CATALOGS"]
sal.add_plugin_results('Catalogs', {"Catalogs": "+".join(catalogs)})


if __name__ == "__main__":
main()
main()
18 changes: 18 additions & 0 deletions machine_detail_manifests/machine_detail_manifests.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import sal.plugin
from server.models import PluginScriptRow


class MachineDetailManifests(sal.plugin.DetailPlugin):

description = "Lists the device's manifests"

def get_context(self, machine, **kwargs):
context = self.super_get_context(machine, **kwargs)
rows = (PluginScriptRow.objects
.filter(
submission__machine=machine,
submission__plugin='Manifests')
.values('pluginscript_name', 'pluginscript_data'))
context.update({r['pluginscript_name']: r['pluginscript_data'].split('+') for r in rows})

return context
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[Core]
Name = MachineDetailManifests
Module = machine_detail_manifests

[Documentation]
Author = Damon O'Hare
Copied_from = machine_detail_mdm_enrollment by Shea Craig
Version = 1.0
17 changes: 17 additions & 0 deletions machine_detail_manifests/templates/machinedetailmanifests.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<div class="panel panel-default">
<div class="panel-body">
<dl class="dl-horizontal">
<legend><h5 class"text-uppercase">{{ plugin.title }}</h5></legend>
<dt>Manifests</dt>
<dd>
<table>
{% for item in Manifests %}
<tr>
<td>{{ item }}</td>
</tr>
{% endfor %}
</table>
</dd>
</dl>
</div>
</div>
2 changes: 1 addition & 1 deletion manifests/manifests.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ def get_context(self, queryset, **kwargs):
context = self.super_get_context(queryset, **kwargs)
manifest_plugin_results = queryset.filter(
pluginscriptsubmission__plugin=self.name,
pluginscriptsubmission__pluginscriptrow__pluginscript_name="included_manifests")
pluginscriptsubmission__pluginscriptrow__pluginscript_name="Manifests")
# Get a count of machines which haven't reported.
unreported_count = queryset.count() - manifest_plugin_results.count()

Expand Down
29 changes: 8 additions & 21 deletions manifests/scripts/manifests.py
Original file line number Diff line number Diff line change
@@ -1,29 +1,16 @@
#!/usr/bin/python


import os
import plistlib
import sys

sys.path.append('/usr/local/munki')
import munkilib.updatecheck.manifestutils
sys.path.append('/usr/local/sal')
import utils
#!/usr/local/sal/Python.framework/Versions/Current/bin/python3
import pathlib

import sal

def main():
client_manifest_path = munkilib.updatecheck.manifestutils.get_primary_manifest()
if os.path.exists(client_manifest_path):
client_manifest = plistlib.readPlist(client_manifest_path)
else:
client_manifest = {}

# Drop any blank entries and trim WS.
manifests = [m.strip() for m in client_manifest.get("included_manifests", []) if m]
manifests_dir = pathlib.Path('/Library/Managed Installs/manifests')
manifests = [item.stem for item in manifests_dir.rglob('*')
if item.stem != 'SelfServeManifest' and item.is_file()]
if not manifests:
manifests = ["NO INCLUDED MANIFESTS"]
utils.add_plugin_results('Manifests', {"included_manifests": "+".join(manifests)})
sal.add_plugin_results('Manifests', {"Manifests": "+".join(manifests)})


if __name__ == "__main__":
main()
main()