[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Ganymede Dev] Re: Ganymede and DNS
|
| Jon,
| I think your approach is much better and now i would like to modify my
| project now....I think it wont take much of a time but before that i
| wanted to know about the interface objects...you said that you have
| interface objects defined in your system object i am still confused as
| to what do you mean by that? ;)(I thought that i fully understood the
| system.......but now i think something is missing.......)..i am not
| forwarding this mail to the ganydev discussion list as i allready sent
| you the same query but never got a response back.....
Gaurav, I apologize if I missed mail to ganymede-dev. I do try to
read and reply to everything that comes in on any of the lists. In
particular, I replied to your ganymede-dev message with a copy of the
schema.xml file we are using in our Ganymede configuration here. Did
you receive that?
| wanted to know about the interface objects...you said that you have
| interface objects defined in your system object i am still confused as
| to what do you mean by that? ;)(I thought that i fully understood the
| system.......but now i think something is missing.......)..i am not
Well, if you look at the schema.xml file I sent, you'll see the
<objectdef name="System" id="263">
<classdef name="arlut.csd.ganymede.custom.systemCustom"/>
<label fieldid="261"/>
.
.
.
<fielddef name="Interface" id="260">
<typedef type="invid">
<vector/>
<targetobject name="Embedded_System_Interface"/>
<targetfield name="Containing_Object"/>
<embedded/>
</typedef>
</fielddef>
.
.
.
</objectdef>
the Interface field definition is for an embedded interface object. If you
look at the Ganymede screenshot at
http://www.arlut.utexas.edu/gash2/newpics/edit_system2.jpg
you'll see an interface being contained within the system. It is the
object shown in the blue box with the 'I.P. Network', I.P. Address',
and 'Ethernet Info' fields shown.
In our schema, a user creates a system. Each system must have a
minimum of one interface, where each interface is a network attachment
point for the system. The interface object has a pulldown list which
lets the user choose an I.P. network to put that interface on. When
the user chooses an I.P. network, Ganymede automatically selects a
free I.P. address from that I.P. network and puts that address into
the I.P. Address field.
If the user wants a system with more than one interface, he presses
the 'Add Interface' button, which causes a second interface to appear.
Whenever there is more than one interface, then it becomes necessary
to give each interface its own name and alias list. Our Ganymede
configuration is designed so that whenever more than one interface is
shown on screen, each interface will reveal its Name and Aliases
fields.
Here's the schema definition for the embedded interface object type:
<objectdef name="Embedded_System_Interface" id="265">
<classdef name="arlut.csd.ganymede.custom.interfaceCustom"/>
<embedded/>
<label fieldid="258"/>
<fielddef name="Name" id="259">
<typedef type="string">
<maxlength val="64"/>
<badchars val=" ,"/>
<namespace val="systems"/>
<regexp val="^[a-zA-Z\d]+[a-zA-Z\d\-]*$"/>
</typedef>
</fielddef>
<fielddef name="Aliases" id="260">
<typedef type="string">
<vector maxSize="32"/>
<maxlength val="64"/>
<badchars val=" ,"/>
<namespace val="systems"/>
<regexp val="^[a-zA-Z\d]+[a-zA-Z\d\-]*$" desc="Interface names may consist of letters, numbers, and dashes. Interface names must begin with a letter or a number."/>
</typedef>
</fielddef>
<fielddef name="I.P._Network" id="261">
<typedef type="invid">
<targetobject name="I.P._Network"/>
<targetfield name="Records"/>
</typedef>
</fielddef>
<fielddef name="I.P._Address" id="258">
<typedef type="ip">
<namespace val="IPspace"/>
</typedef>
</fielddef>
<fielddef name="Ethernet_Info" id="256">
<typedef type="string">
<maxlength val="128"/>
</typedef>
</fielddef>
</objectdef>
The custom logic in arlut.csd.ganymede.custom.interfaceCustom is smart
enough to know about the connections between the system, the
interface, and the I.P. Network, and in conjunction with the
arlut.csd.ganymede.custom.systemCustom and
arlut.csd.ganymede.custom.networkCustom classes, handles all of the
user interaction issues.
As I mentioned in my last email, if you look in the
src/schemas/gasharl/custom_src directory in the Ganymede 1.0.9
distribution, you'll see the systemCustom.java, interfaceCustom.java,
and networkCustom.java classes that handle the interactions patterns.
The classes that we use for our build process are in the same
directory in the GASHBuilderTask.java file. The writeSysFile() method
in that class is the one that actually writes all of our DNS data out
to an external hosts_info file, which we read into a Perl script which
turns around and regenerates all of our BIND Zone files.
The hosts_info file format is really ugly, and very inflexible. It is
this piece of our build process that we were hoping to replace with
the xml2dns script from the gany_dns.tar.gz archive.
Does this help?
| Thank you
| Gaurav
-------------------------------------------------------------------------------
Jonathan Abbey jonabbey@arlut.utexas.edu
Applied Research Laboratories The University of Texas at Austin
Ganymede, a GPL'ed metadirectory for UNIX http://www.arlut.utexas.edu/gash2
----------------------------------------------------------------------------
To make changes to your subscription to the Ganymede Dev mailing list, send
mail to majordomo@arlut.utexas.edu.
To unsubcribe, include the line
unsubscribe ganymede-dev
in the body of your mail message
Visit the Ganymede web page at http://www.arlut.utexas.edu/gash2
----------------------------------------------------------------------------