[opensuse-autoinstall] ask-list for specific network interface
Hello, I am trying to convert our SLES10 ask-list to work with SLES11sp1. However, the option to set the primary ethernet device has changed or doesn't work. Here is what worked in SLES10 <ask-list config:type="list"> <ask> <path>networking,dns,hostname</path> <question>Enter Hostname (server name)</question> <stage>initial</stage> <default>enter your hostname here</default> </ask> <ask> <path>networking,interfaces,interface,device</path> <question>Enter the primary ethernet device:</question> <stage>initial</stage> <default>eth-id-</default> </ask> <ask> <path>networking,interfaces,interface,ipaddr</path> <question>Enter the primary IP Address:</question> <stage>initial</stage> <default>127.0.0.1</default> </ask> <ask> <path>networking,interfaces,interface,netmask</path> <question>Enter the Netmask Address:</question> <stage>initial</stage> <default>255.255.255.0</default> </ask> <ask> <path>networking,routing,routes,0,gateway</path> <question>Enter the primary Gateway Address:</question> <stage>initial</stage> <default>10.112.0.1</default> </ask> </ask-list> And the device entry would be in the format of "eth-id-00-50-56-95-01-0f" so that the rest of our ask-list sections that set the IP and gateway would use that specific MAC address. The reason this is important is that the servers we setup will have 4 - 6 network interfaces and 2 could be active during the install (not on the same network). The <keep_install_network config:type="boolean">true</keep_install_network> works, but we can not guarantee that the interface that the system finds during install will be the one that we need set. Also, I would like to be able to "ask" for the primary and back up network information during install. I have tried using the <listentry> sections but can not find the right combinations nor documentation. Here is the <listentry> I have so far... <listentry> <default>172.16.163.223</default> <path>networking,interfaces,0,ipaddr</path> <question>Enter Server IP address:</question> <stage>initial</stage> <title>IP Address</title> </listentry> <listentry> <default>255.255.255.0</default> <path>networking,interfaces,0,netmask</path> <question>Enter subnet mask:</question> <stage>initial</stage> <title>Enter Subnet Mask:</title> </listentry> <listentry> <default>172.16.163.1</default> <path>networking,routing,0,gateway</path> <question>Enter default gateway address:</question> <stage>initial</stage> <title>IP Address</title> </listentry> I'm expecting it has something to do with the <path> section --- <path>networking,interfaces,0,ipaddr</path> where the # would be the specific interface, but that hasn't proven to be the case so far. Okay, enough ramblings.... Any help would be greatly appreciated. Patrick Patrick Swartz UNIX Planning & Engineering (DSUSSE) First Data 402-777-7337 desk 402-201-1192 Company cell 402-871-8981 Personal cell ----------------------------------------- The information in this message may be proprietary and/or confidential, and protected from disclosure. If the reader of this message is not the intended recipient, or an employee or agent responsible for delivering this message to the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this communication in error, please notify First Data immediately by replying to this message and deleting it from your computer. -- To unsubscribe, e-mail: opensuse-autoinstall+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-autoinstall+help@opensuse.org
on Tuesday 17 May 2011 Swartz, Patrick H wrote:
Here is what worked in SLES10 <ask-list config:type="list"> <ask> <path>networking,dns,hostname</path> <question>Enter Hostname (server name)</question> <stage>initial</stage> <default>enter your hostname here</default> </ask> <ask> <path>networking,interfaces,interface,device</path>
that really worked? actually the path is wrong. But what confuses me even more is, that SLES10 had not <ask> feature at all. Did you use a driverupdate or SLES for SAP or so?
I have tried using the <listentry> sections but can not find the right combinations nor documentation.
Here is the <listentry> I have so far...
<listentry> or <ask> - that does not matter. Both keys work in the same way. You might want to read the the FAQ about persistent device names on SLES11: http://www.suse.de/~ug/AutoYaST_FAQ.html#a9
<listentry> <default>172.16.163.223</default> <path>networking,interfaces,0,ipaddr</path>
the path is correct -- ciao, Uwe Gansert Uwe Gansert SUSE LINUX Products GmbH, HRB 16746 (AG Nürnberg) GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer Home: http://www.suse.de/~ug - Blog: http://suse.gansert.net listening to: "Barbara Ann" by Blind Guardian -- To unsubscribe, e-mail: opensuse-autoinstall+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-autoinstall+help@opensuse.org
on Tuesday 17 May 2011 Uwe Gansert wrote:
But what confuses me even more is, that SLES10 had not <ask> feature at all. Did you use a driverupdate or SLES for SAP or so?
I'm sorry. Forget that. Of course I added <ask> with sles10, so it's available. I should read my own docu ;) -- ciao, Uwe Gansert Uwe Gansert SUSE LINUX Products GmbH, HRB 16746 (AG Nürnberg) GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer Home: http://www.suse.de/~ug - Blog: http://suse.gansert.net -- To unsubscribe, e-mail: opensuse-autoinstall+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-autoinstall+help@opensuse.org
Hi, I did find the persistent names link useful, but still do not see how that can be incorporated into the <ask> section. These servers will have several interfaces and I need to set a specific IP to a specific interface. I was hoping that by using the <ask> section I could have a generic .xml file and not need to hard code a MAC address into the .xml file like the example for persistent names. How does one know what is the correct <path> for a device? Is there a utility or cmd that can give that info? Thanks, Patrick Swartz UNIX Planning & Engineering (DSUSSE) First Data 402-777-7337 desk 402-201-1192 Company cell 402-871-8981 Personal cell -----Original Message----- From: Uwe Gansert [mailto:ug@suse.de] Sent: Tuesday, May 17, 2011 10:23 AM To: opensuse-autoinstall@opensuse.org Subject: Re: [opensuse-autoinstall] ask-list for specific network interface on Tuesday 17 May 2011 Swartz, Patrick H wrote:
Here is what worked in SLES10 <ask-list config:type="list"> <ask> <path>networking,dns,hostname</path> <question>Enter Hostname (server name)</question> <stage>initial</stage> <default>enter your hostname here</default> </ask> <ask> <path>networking,interfaces,interface,device</path>
that really worked? actually the path is wrong. But what confuses me even more is, that SLES10 had not <ask> feature at all. Did you use a driverupdate or SLES for SAP or so?
I have tried using the <listentry> sections but can not find the right combinations nor documentation.
Here is the <listentry> I have so far...
<listentry> or <ask> - that does not matter. Both keys work in the same way. You might want to read the the FAQ about persistent device names on SLES11: http://www.suse.de/~ug/AutoYaST_FAQ.html#a9
<listentry> <default>172.16.163.223</default> <path>networking,interfaces,0,ipaddr</path>
the path is correct -- ciao, Uwe Gansert Uwe Gansert SUSE LINUX Products GmbH, HRB 16746 (AG Nürnberg) GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer Home: http://www.suse.de/~ug - Blog: http://suse.gansert.net listening to: "Barbara Ann" by Blind Guardian -- To unsubscribe, e-mail: opensuse-autoinstall+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-autoinstall+help@opensuse.org ----------------------------------------- The information in this message may be proprietary and/or confidential, and protected from disclosure. If the reader of this message is not the intended recipient, or an employee or agent responsible for delivering this message to the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this communication in error, please notify First Data immediately by replying to this message and deleting it from your computer. -- To unsubscribe, e-mail: opensuse-autoinstall+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-autoinstall+help@opensuse.org
I really do not understand your problem is but in case you would like to do an automated installation using DHCP and having multiply network interfaces: You can use the a pre script to configure the final xml installation file by parsing the dhcpcd-*info file and looking for IP, mac address (must be in lower case ) and other valuable information Note: Information provided from the command line can be checked as well ( cat /proc/cmdline ) Example from a pre script : ... cat /var/lib/dhcpcd/dhcpcd-*info ... IPADDR='10.1.1.1' INTERFACE='eth0' CLIENTID='01:00:21:9b:74:3f:9b' DHCPCHADDR='00:21:9b:74:3f:9b' ... And fix the autoinst.xml on the fly. Hth Hajo -----Original Message----- From: Swartz, Patrick H [mailto:Patrick.Swartz@firstdata.com] Sent: Tuesday, May 17, 2011 6:01 PM To: Uwe Gansert; opensuse-autoinstall@opensuse.org Subject: RE: [opensuse-autoinstall] ask-list for specific network interface Hi, I did find the persistent names link useful, but still do not see how that can be incorporated into the <ask> section. These servers will have several interfaces and I need to set a specific IP to a specific interface. I was hoping that by using the <ask> section I could have a generic .xml file and not need to hard code a MAC address into the .xml file like the example for persistent names. How does one know what is the correct <path> for a device? Is there a utility or cmd that can give that info? Thanks, -- To unsubscribe, e-mail: opensuse-autoinstall+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-autoinstall+help@opensuse.org
Unfortunately DHCP is not an option... Maybe I'm making this harder than it needs to be and/or I just don't know enough (good chance), but here is a sample scenario: Hardware team notifies the Linux team and says, "the server is ready for you, the public network in on the second port and you need to use this IP '10.100.10.1", and the Netbackup network is on the third port and you need to use this IP '172.27.100.1'." So, I am thinking that an autoinst.xml file that would prompt the admin team for the MAC address of the public-facing network interface and the IP(address/mask/gw) that should be assigned. And if I were able, then another set of prompts that would assign the Netbackup-facing network interface info as well. I cannot be assured that the hardware team will always use 'x'port for one network or the other. I need a way to have the admin teams assign to the appropriate interface. When the admin team is given access there will be no OS on the server so no ability to run any commands. My question about understanding the <path> statement was so that I could possibly use that in building the xml file. For example in this statement -- <path>networking,interfaces,4,ipaddr</path> -- does the "4" represent the actual interface? If so, how do I determine how this is calculated? Does it start at 0 or 1, does it read the on-board interfaces first or the add-on interfaces first? The only examples I can find always use '0' in that <path> statement, so the examples didn't shed that much light for me. Does this help any? Am I way off base here and this isn't something that autoyast is able to do? Thanks, Patrick Swartz UNIX Planning & Engineering (DSUSSE) First Data 402-777-7337 desk 402-201-1192 Company cell 402-871-8981 Personal cell -----Original Message----- From: Hans-Joachim Ehlers [mailto:HansJoachim.Ehlers@eumetsat.int] Sent: Tuesday, May 17, 2011 11:25 AM To: Swartz, Patrick H; Uwe Gansert; opensuse-autoinstall@opensuse.org Subject: RE: [opensuse-autoinstall] ask-list for specific network interface I really do not understand your problem is but in case you would like to do an automated installation using DHCP and having multiply network interfaces: You can use the a pre script to configure the final xml installation file by parsing the dhcpcd-*info file and looking for IP, mac address (must be in lower case ) and other valuable information Note: Information provided from the command line can be checked as well ( cat /proc/cmdline ) Example from a pre script : ... cat /var/lib/dhcpcd/dhcpcd-*info ... IPADDR='10.1.1.1' INTERFACE='eth0' CLIENTID='01:00:21:9b:74:3f:9b' DHCPCHADDR='00:21:9b:74:3f:9b' ... And fix the autoinst.xml on the fly. Hth Hajo -----Original Message----- From: Swartz, Patrick H [mailto:Patrick.Swartz@firstdata.com] Sent: Tuesday, May 17, 2011 6:01 PM To: Uwe Gansert; opensuse-autoinstall@opensuse.org Subject: RE: [opensuse-autoinstall] ask-list for specific network interface Hi, I did find the persistent names link useful, but still do not see how that can be incorporated into the <ask> section. These servers will have several interfaces and I need to set a specific IP to a specific interface. I was hoping that by using the <ask> section I could have a generic .xml file and not need to hard code a MAC address into the .xml file like the example for persistent names. How does one know what is the correct <path> for a device? Is there a utility or cmd that can give that info? Thanks, ----------------------------------------- The information in this message may be proprietary and/or confidential, and protected from disclosure. If the reader of this message is not the intended recipient, or an employee or agent responsible for delivering this message to the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this communication in error, please notify First Data immediately by replying to this message and deleting it from your computer. -- To unsubscribe, e-mail: opensuse-autoinstall+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-autoinstall+help@opensuse.org
Am 17.05.2011 um 19:04 schrieb Swartz, Patrick H:
Hardware team notifies the Linux team and says, "the server is ready for you, the public network in on the second port and you need to use this IP '10.100.10.1", and the Netbackup network is on the third port and you need to use this IP '172.27.100.1'."
okay, so you have two static interfaces. Let's put those two into your XML file: <interfaces config:type="list"> <!-- 1st interface, use "0" in the ask path to point to this --> <interface> <bootproto>static</bootproto> <device>eth0</device> <!-- ask for networking,interfaces,0,ipaddr --> <ipaddr>_ask_</ipaddr> <!-- ask for networking,interfaces,0,netmask --> <netmask>_ask_</netmask> <startmode>auto</startmode> <usercontrol>no</usercontrol> </interface> <!-- 2nd interface, use "1" in the ask path to point to this --> <interface> <bootproto>static</bootproto> <device>eth1</device> <!-- ask for networking,interfaces,1,ipaddr --> <ipaddr>_ask_</ipaddr> <!-- ask for networking,interfaces,1,netmask --> <netmask>_ask_</netmask> <startmode>auto</startmode> <usercontrol>no</usercontrol> </interface> </interfaces> I have put comments with the <ask> path into the XML, in case you want to ask for those values. "interfaces" is a list of NICs. The number in the path points to the number in the list, starting from 0. So if you want to manipulate the first interface in the <interfaces> list, use 0 in the <path>. Use 1 for the second, 2 for the third and so on
So, I am thinking that an autoinst.xml file that would prompt the admin team for the MAC address of the public-facing network interface and the
if you want to ask for a mac address for eth0, do it like this: <networking> <net-udev config:type="list"> <rule> <name>eth0</name> <rule>ATTR{address}</rule> <value>_ask_</value> </rule> <rule> <name>eth1</name> <rule>ATTR{address}</rule> <!-- example <value>00:50:51:bb:51:6f</value> --> <value>_ask_</value> </rule> </net-udev> ... <interfaces config:type="list"> ... </interfaces> ... </networking> and use a question with a path like this: <path>networking,net-udev,0,value</path> For the second interface: <path>networking,net-udev,1,value</path> as you can see, the number is totally independent from the hardware. It points only to the number in the list in the XML file. I know there is one confusing point in this. Where is the <rule> in the path? Well, a config:tyoe="list" in autoyast can contain the same data structure multiple times. Like multiple <rule> or <interface> definitions. Autoyast does not care on how you name those in the list. Autoyast will not even know how you named them because for AY it's only important that a list of data structures will come now and so it's only interested in the index-number in that list but not in the name you gave it. I know it's a bit confusing at the beginning.
My question about understanding the <path> statement was so that I could possibly use that in building the xml file. For example in this statement -- <path>networking,interfaces,4,ipaddr</path> -- does the "4" represent the actual interface?
the 4 would manipulate the 5th interface in the XML file: <networking> <interfaces config:type="list"> <interface> ... first </interface> <interface> ... second </interface> <interface> ... third </interface> <interface> ... fourth </interface> <interface> <!-- the path points to this interface --> </interface> </interfaces> ... </networking> that's not eth5. It can be eth0 at the end. The number in the path describes only the position in the XML Imagine the path as a tool to manipulate the XML file. Not a tool to manipulate interfaces, rules, users, ....
If so, how do I determine how this is calculated? Does it start at 0 or 1, does it read the on-board
it starts with 0 but it's not calculated. It's just counted. I hope I could shed some light into it. ciao, Uwe Gansert Uwe Gansert, Server Technologies Team SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg) Business: http://www.suse.de/~ug -- To unsubscribe, e-mail: opensuse-autoinstall+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-autoinstall+help@opensuse.org
Hi, Your explanations are helping a lot. The system is closer, but still not quite reacting as I would expect/hope. For example, since I use the boot options line to assign the hostip/gateway/netmask and install/autoyast parameters the interface that the system finds and assigns a name to (ie:eth3), is what I must use in the autoinst.xml file or after the first reboot during install a mismatch happens and the network is no longer accessible. The gateway/route still will not stay after the system is built, however, there is a /etc/sysconfig/network/routes.YaST2save file with the correct route. Here is a snippet of my xml file: <ask-list config:type="list"> <listentry> <default>167.16.163.223</default> <path>networking,interfaces,0,ipaddr</path> <question>Enter Server IP address:</question> <stage>initial</stage> <title>IP Address</title> </listentry> <listentry> <default>255.255.255.0</default> <path>networking,interfaces,0,netmask</path> <question>Enter subnet mask:</question> <stage>initial</stage> <title>Enter Subnet Mask:</title> </listentry> <listentry> <default>167.16.163.1</default> <path>networking,routing,0,gateway</path> <question>Enter default gateway address:</question> <stage>initial</stage> <title>IP Address</title> </listentry> <listentry> <default>SLES11media</default> <help>Be sure to follow naming conventions!</help> <path>networking,dns,hostname</path> <question>Enter Hostname (server name):</question> <stage>initial</stage> <title>Hostname Selection</title> </listentry> <listentry> <default>68:b5:99:b8:34:1d</default> <path>networking,net-udev,0,value</path> <question>Enter Primary MAC address</question> <stage>initial</stage> </listentry> </ask-list> <networking> <dns> <dhcp_hostname config:type="boolean">false</dhcp_hostname> <domain>1dc.com</domain> <hostname></hostname> <nameservers config:type="list"> <nameserver>167.16.104.11</nameserver> <nameserver>167.16.127.10</nameserver> <nameserver>170.186.79.70</nameserver> </nameservers> <resolv_conf_policy>auto</resolv_conf_policy> <searchlist config:type="list"> <search>1dc.com</search> </searchlist> <write_hostname config:type="boolean">true</write_hostname> </dns> <interfaces config:type="list"> <interface> <bootproto>static</bootproto> <device>eth3</device> <!-- had to use whatever the system first assigned during initial boot --> <ipaddr>_ask_</ipaddr> <name>82545EM Gigabit Ethernet Controller (Copper)</name> <netmask>_ask_</netmask> <prefixlen></prefixlen> <startmode>auto</startmode> <usercontrol>no</usercontrol> </interface> </interfaces> <managed config:type="boolean">false</managed> <net-udev config:type="list"> <rule> <name>eth3</name> <!-- had to use whatever the system first assigned during initial boot --> <rule>ATTR{address}</rule> <value>_ask_</value> </rule> </net-udev> <routing> <ip_forward config:type="boolean">false</ip_forward> <routes config:type="list"> <route> <destination>default</destination> <device>eth3</device> <!-- just my attempt to get the gateway to save, didn't work --> <gateway>_ask_</gateway> <netmask>-</netmask> </route> </routes> </routing> </networking> Also, can you point me to where I can find more information as to what are valid options for the <path> statement. For example, <path>networking,interfaces,0,ipaddr</path> <path>networking,net-udev,0,value</path> In SLES10 we had to use something like <path>networking,interfaces,interface,ipaddr</path> Also, for the MAC address SLES10 used the format of: eth-id-00-15-17-54-e8-fa (dashes instead of colons) I do very much appreciate your help, Patrick Swartz UNIX Planning & Engineering (DSUSSE) First Data 402-777-7337 desk 402-201-1192 Company cell 402-871-8981 Personal cell -----Original Message----- From: Uwe Gansert [mailto:ug@suse.de] Sent: Tuesday, May 17, 2011 2:17 PM To: opensuse-autoinstall@opensuse.org Subject: Re: [opensuse-autoinstall] ask-list for specific network interface Am 17.05.2011 um 19:04 schrieb Swartz, Patrick H:
Hardware team notifies the Linux team and says, "the server is ready for you, the public network in on the second port and you need to use this IP '10.100.10.1", and the Netbackup network is on the third port and you need to use this IP '172.27.100.1'."
okay, so you have two static interfaces. Let's put those two into your XML file: <interfaces config:type="list"> <!-- 1st interface, use "0" in the ask path to point to this --> <interface> <bootproto>static</bootproto> <device>eth0</device> <!-- ask for networking,interfaces,0,ipaddr --> <ipaddr>_ask_</ipaddr> <!-- ask for networking,interfaces,0,netmask --> <netmask>_ask_</netmask> <startmode>auto</startmode> <usercontrol>no</usercontrol> </interface> <!-- 2nd interface, use "1" in the ask path to point to this --> <interface> <bootproto>static</bootproto> <device>eth1</device> <!-- ask for networking,interfaces,1,ipaddr --> <ipaddr>_ask_</ipaddr> <!-- ask for networking,interfaces,1,netmask --> <netmask>_ask_</netmask> <startmode>auto</startmode> <usercontrol>no</usercontrol> </interface> </interfaces> I have put comments with the <ask> path into the XML, in case you want to ask for those values. "interfaces" is a list of NICs. The number in the path points to the number in the list, starting from 0. So if you want to manipulate the first interface in the <interfaces> list, use 0 in the <path>. Use 1 for the second, 2 for the third and so on
So, I am thinking that an autoinst.xml file that would prompt the admin team for the MAC address of the public-facing network interface and the
if you want to ask for a mac address for eth0, do it like this: <networking> <net-udev config:type="list"> <rule> <name>eth0</name> <rule>ATTR{address}</rule> <value>_ask_</value> </rule> <rule> <name>eth1</name> <rule>ATTR{address}</rule> <!-- example <value>00:50:51:bb:51:6f</value> --> <value>_ask_</value> </rule> </net-udev> ... <interfaces config:type="list"> ... </interfaces> ... </networking> and use a question with a path like this: <path>networking,net-udev,0,value</path> For the second interface: <path>networking,net-udev,1,value</path> as you can see, the number is totally independent from the hardware. It points only to the number in the list in the XML file. I know there is one confusing point in this. Where is the <rule> in the path? Well, a config:tyoe="list" in autoyast can contain the same data structure multiple times. Like multiple <rule> or <interface> definitions. Autoyast does not care on how you name those in the list. Autoyast will not even know how you named them because for AY it's only important that a list of data structures will come now and so it's only interested in the index-number in that list but not in the name you gave it. I know it's a bit confusing at the beginning.
My question about understanding the <path> statement was so that I could possibly use that in building the xml file. For example in this statement -- <path>networking,interfaces,4,ipaddr</path> -- does the "4" represent the actual interface?
the 4 would manipulate the 5th interface in the XML file: <networking> <interfaces config:type="list"> <interface> ... first </interface> <interface> ... second </interface> <interface> ... third </interface> <interface> ... fourth </interface> <interface> <!-- the path points to this interface --> </interface> </interfaces> ... </networking> that's not eth5. It can be eth0 at the end. The number in the path describes only the position in the XML Imagine the path as a tool to manipulate the XML file. Not a tool to manipulate interfaces, rules, users, ....
If so, how do I determine how this is calculated? Does it start at 0 or 1, does it read the on-board
it starts with 0 but it's not calculated. It's just counted. I hope I could shed some light into it. ciao, Uwe Gansert Uwe Gansert, Server Technologies Team SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg) Business: http://www.suse.de/~ug -- To unsubscribe, e-mail: opensuse-autoinstall+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-autoinstall+help@opensuse.org ----------------------------------------- The information in this message may be proprietary and/or confidential, and protected from disclosure. If the reader of this message is not the intended recipient, or an employee or agent responsible for delivering this message to the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this communication in error, please notify First Data immediately by replying to this message and deleting it from your computer. -- To unsubscribe, e-mail: opensuse-autoinstall+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-autoinstall+help@opensuse.org
participants (3)
-
Hans-Joachim Ehlers
-
Swartz, Patrick H
-
Uwe Gansert