Depotserver: Property networkAddress

Antworten
tomz
Beiträge: 79
Registriert: 17 Feb 2011, 15:46

Depotserver: Property networkAddress

Beitrag von tomz »

Moin mal wieder,

wir haben inzwischen 14 Depots an unserem OPSi und auch die dynamische Depotauswahl gekauft :mrgreen:

Wir haben jedoch an manchen Standorten mehrere IP-Kreise. Kann ich diese in dem Property "networkAddress" komma- oder semicolongetrennt eingeben ?
z.B.: " 172.10.0.0/16,192.168.255.0/24,192.168.5.0/24 "

Gruß
Tom
Benutzeravatar
d.oertel
uib-Team
Beiträge: 3327
Registriert: 04 Jun 2008, 14:27

Re: Depotserver: Property networkAddress

Beitrag von d.oertel »

Hi,
wir haben inzwischen 14 Depots an unserem OPSi
Klingt nach einer produktiven, komerziellen Installation.
Und für die sollte man einen Supportvertrag abschließen.

gruss
d.oertel


Vielen Dank für die Nutzung von opsi. Im Forum ist unser Support begrenzt.

Für den professionellen Einsatz und individuelle Beratung empfehlen wir einen Support-Vertrag und eine Schulung.
Gerne informieren wir Sie zu unserem Angebot.

uib GmbH
Telefon: +49 6131 27561 0
E-Mail: sales@uib.de


tomz
Beiträge: 79
Registriert: 17 Feb 2011, 15:46

Re: Depotserver: Property networkAddress

Beitrag von tomz »

das höre ich von euch immer wieder :D . Bekomme die Freigabe dafür jedoch nicht.
Mir wurde aber vom Kollegen Wolf auch gesagt das wir hier im Forum fragen können und irgendwann darauf auch Antworten erhalten werden.
Benutzeravatar
d.oertel
uib-Team
Beiträge: 3327
Registriert: 04 Jun 2008, 14:27

Re: Depotserver: Property networkAddress

Beitrag von d.oertel »

Hi,
das höre ich von euch immer wieder :D . Bekomme die Freigabe dafür jedoch nicht.
Mir wurde aber vom Kollegen Wolf auch gesagt das wir hier im Forum fragen können und irgendwann darauf auch Antworten erhalten werden.
Wahrscheinlich aber nicht zwingend.
Wir sind eine Firma und müssen Geld verdienen.
Vielleicht sieht Dein Chef es eher ein wenn Du hier keine Unterstützung mehr von uns bekommst.

Ansonsten kannst Du ja versuchen der Community was zurückzugeben:
viewtopic.php?f=7&t=2793#p13462


gruss
d.oertel


Vielen Dank für die Nutzung von opsi. Im Forum ist unser Support begrenzt.

Für den professionellen Einsatz und individuelle Beratung empfehlen wir einen Support-Vertrag und eine Schulung.
Gerne informieren wir Sie zu unserem Angebot.

uib GmbH
Telefon: +49 6131 27561 0
E-Mail: sales@uib.de


tomz
Beiträge: 79
Registriert: 17 Feb 2011, 15:46

Re: Depotserver: Property networkAddress

Beitrag von tomz »

Hallo Herr Örtel,

wir haben schon viel Geld für alle Ihrer Module ausgegeben und unterstützen das Project damit ja auch nicht unerheblich.

Ich habe eine - meiner Meinung nach - einfache Frage gestellt ohne Anspruch auf eine Antwort. Die Frage resultiert aber nur aufgrund der Anschaffung eines Moduls und wurde auch nur gestellt da zu diesem Problem keine Antwort in der Dokumentation zu finden war.

Ich kann verstehen, dass sie Geld verdienen wollen und müssen und werde Ihre Empfehlungen für einen Supportvertrag in Zukunft weiter zur Kenntnis nehmen und weiterreichen, jedoch nutze ich auch gerne den Weg über diese Community (der mir angeboten wurde). Dieser würde ich auch - wie im genannten Thread gefordert - gerne etwas zurück geben, sobald die Zeit dafür gekommen ist und das Paket fertig ist.

Ich möchte nun nicht weiter diskutieren, ich verstehe Ihren Standpunkt, und kenne unseren. Meine Frage besteht weiterhin, ich würde mich freuen wenn Sie diese kurz kommentieren.

Beste Grüße

Tom Ziegler
tomz
Beiträge: 79
Registriert: 17 Feb 2011, 15:46

Re: Depotserver: Property networkAddress

Beitrag von tomz »

Also zurück zum Thema, ich bin das gerade mal mit unserem Programmierer durchgegangen.

Er würde das Template folgendermaßen anpassen:

Code: Alles auswählen

global depotSelectionAlgorithmByNetworkAddress
depotSelectionAlgorithmByNetworkAddress = \
'''
def selectDepot(clientConfig, masterDepot, alternativeDepots=[]):
        selectedDepot = masterDepot
        logger.info(u"Choosing depot from list of depots:")
        logger.info(u"   Master depot: %s" % masterDepot)
        for alternativeDepot in alternativeDepots:
                logger.info(u"   Alternative depot: %s" % alternativeDepot)
        if alternativeDepots:
                import socket, struct
                # Calculate bitmask of host's ipaddress
                n = clientConfig['ipAddress'].split('.')
                for i in range(4):
                        n[i] = forceInt(n[i])
                ip = (n[0] << 24) + (n[1] << 16) + (n[2] << 8) + n[3]

                depots = [ masterDepot ]
                depots.extend(alternativeDepots)
                for depot in depots:
                        if not depot.networkAddress:
                                logger.warning(u"Network address of depot '%s' not known" % depot)
                                continue
// ÄNDERUNG:
                        networkAddresses = depot.networkAddress.split(u',')
                        for networkAddress in networkAddresses:
                                (network, netmask) = networkAddress.split(u'/')
                                while (network.count('.') < 3):
                                        network = network + u'.0'
                                if (netmask.find('.') == -1):
                                        netmask = forceUnicode(socket.inet_ntoa(struct.pack('>I',0xffffffff ^ (1 << 32 - forceInt(netmask)) - 1)))
                                while (netmask.count('.') < 3):
                                        netmask = netmask + u'.0'

                                logger.debug(u"Testing if ip %s is part of network %s/%s" % (clientConfig['ipAddress'], network, netmask))

                                n = network.split('.')
                                for i in range(4):
                                        n[i] = int(n[i])
                                network = (n[0] << 24) + (n[1] << 16) + (n[2] << 8) + n[3]
                                n = netmask.split('.')
                                for i in range(4):
                                        n[i] = int(n[i])
                                netmask = (n[0] << 24) + (n[1] << 16) + (n[2] << 8) + n[3]

                                wildcard = netmask ^ 0xFFFFFFFFL
                                if (wildcard | ip == wildcard | network):
                                        logger.notice(u"Choosing depot with networkAddress %s for ip %s" % (depot.networkAddress, clientConfig['ipAddress']))
                                        selectedDepot = depot
                                        return selectedDepot
                                else:
                                        logger.info(u"IP %s does not match networkAddress %s of depot %s" % (clientConfig['ipAddress'], depot.networkAddress, depot))
        return selectedDepot
'''
Leider kann ich es nicht testen, da configed das Format der Eingabe fest vorgibt:
Bild

Kann UIB hier unterstützen?
Benutzeravatar
j.schneider
uib-Team
Beiträge: 2049
Registriert: 29 Mai 2008, 15:14

Re: Depotserver: Property networkAddress

Beitrag von j.schneider »

Wie wäre das?

Code: Alles auswählen

depotSelectionAlgorithmByNetworkAddress = \
'''
def selectDepot(clientConfig, masterDepot, alternativeDepots=[]):
	depotSubnets = {
		'depot1.xxx.local': [
			'192.168.1.0/24'
		],
		'depot2.xxx.local': [
			'192.168.2.0/24',
			'192.168.3.0/24'
		]
	}
	logger.info(u"Choosing depot from list of depots:")
	logger.info(u"   Master depot: %s" % masterDepot)
	for alternativeDepot in alternativeDepots:
		logger.info(u"   Alternative depot: %s" % alternativeDepot)
	if alternativeDepots:
		from OPSI.Util import ipAddressInNetwork
		for depot in alternativeDepots:
			for subnet in depotSubnets.get(depot.id, []):
				logger.debug(u"Testing if ip %s is part of network %s" % (clientConfig['ipAddress'], subnet))
				if ipAddressInNetwork(clientConfig['ipAddress'], subnet):
					logger.notice(u"Choosing depot '%s' with subnetAddress %s for ip %s" % (depot.id, depot.networkAddress, clientConfig['ipAddress']))
					return depot
	return masterDepot
'''


Vielen Dank für die Nutzung von opsi. Im Forum ist unser Support begrenzt.

Für den professionellen Einsatz und individuelle Beratung empfehlen wir einen Support-Vertrag und eine Schulung.
Gerne informieren wir Sie zu unserem Angebot.

uib GmbH
Telefon: +49 6131 27561 0
E-Mail: sales@uib.de


tomz
Beiträge: 79
Registriert: 17 Feb 2011, 15:46

Re: Depotserver: Property networkAddress

Beitrag von tomz »

Ahh verstehe, Sie meinen die Netze im Template nennen und dadurch das Property "networkAddress" außen vor lassen?

Gute Idee, werde ich hier mal vorbringen.
Antworten