Comments (6)
From [email protected] on July 21, 2010 14:31:38
Please tag feature requests as "Type-Enhancement", not "Type-Defect".
Good suggestion for supporting multiple servers.
Yes, separate URLS are supported:
ManifestURL
CatalogURL
PackageURL
Status: Accepted
Labels: -Type-Defect Type-Enhancement
from munki.
From [email protected] on July 21, 2010 14:36:17
Just came to my mind:
What if munki gets an connection error while downloading packages, could it automatically try to switch to another repo for that package?
It may be need to know if it has permissions to do so, using ManagedInstalls.plist AutoSwitchRepoOnFlyAllowed true|false.
Just a thought.
from munki.
I was looking at possibly implementing this type of functionality, it seemed the lowest point to add it would be within prefs.pref
where if the preference requested is one of the six URL preferences, check if the preference is an array and if so return the first one that is reachable, along the lines of:
if pref_name in ['SoftwareRepoURL',
'ClientResourceURL',
'ManifestURL',
'PackageURL',
'CatalogURL',
'SoftwareUpdateServerURL'] and isinstance(pref_value, NSArray):
for pref_value_url in pref_value:
result = urllib.request.urlopen(pref_value_url).getcode()
if result == 200:
return pref_value_url
else:
pass
else:
if isinstance(pref_value, NSDate):
# convert NSDate/CFDates to strings
pref_value = str(pref_value)
return pref_value
I wanted to the use fetch.check_server
that's already built into munkilib but can't import it into prefs due to it causing some inception, so I settled on urllib.request
. Thoughts?
from munki.
In Python 3.7.4: AttributeError: "module 'urllib' has no attribute 'request'"
I don't think this is something I want to be on the hook to support. Could this not be done in a Munki preflight? IOW, figure out what's accessible, then write the currently accessible URLs to Munki's prefs.
from munki.
Need to import it as urllib.request
.
Understandable on maintaining. I really wanted to do it via DNS, but not possible in my environment.
I had not thought of a preflight script. The functionality in munkilib
can then be used to test the URLs without the import hoops or trying to reinvent the wheel. The arrays of URLs can then be stored in the already MDM maintained ManagedInstalls prefs via its own set of keys.
I had only thought about baking it in since I had found this outstanding issue during my research.
from munki.
I think #966 could cover this functionality. It would allow you to add urls to the pkginfo and then do the logic you need inside middleware. this would keep the core munki logic clean and make it more flexible (could do latency tests on each server, etc before passing the URL back).
from munki.
Related Issues (20)
- Logic error when processing requires items that fail to download HOT 2
- Minor MSC UI issue - Removing app progress HOT 4
- Option to check for items to install only, 'dry run' HOT 1
- MSC 6.2.1.4599 crashes on macOS 10.13 HOT 18
- munkiimport and munkilib/pkgutils.py crash with packages containing .dist file HOT 13
- Preinstall_alerts not being shown for updated software HOT 3
- Placment of the back button in Managed Software Centre HOT 9
- [Feature Request] - Add a Pkginfo Key to skip update check HOT 2
- security issue: Writing sensitive information into log file HOT 3
- Option to ignore unmanaged preferences HOT 4
- Question: Does munki have a client CLI tool for software installation and update HOT 1
- installable_condition crashes client HOT 10
- Application failing to install HOT 1
- Update Python to Version 3.12 HOT 19
- Improve logging for "could not find unique packages to remove for item_name" warnings HOT 7
- TLS Certificat fΓΌr https://munkibuilds.org/ is not correct HOT 5
- When importing bundle packages in macOS 14.4 RestartAction is set incorrectly HOT 3
- GarageBand Loops Wiki needs updating HOT 5
- BUG: Application info removed from info object during updatecheck and breaks conditions that require said info HOT 2
- catalogs data not being collected in ManagedInstallsInfo after 6.5.1.4661 update HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from munki.