During the last prototype meeting, Dave and I were tasked with figuring
out the DOC interface to pass data to the checkpoint modules. We met to
discuss this last week with Evan and Sanjay attending for portions of
the meeting to help.
Input on this proposal is requested from Dermot, Darren, Karen and Sarah
but anyone else is welcome to respond.
There will be a class CheckpointNode that will be an ABC and will
inherit from DataObject. It will have a name attribute.
Each type of checkpoint (TI, TD, Transfer etc) will have it's own
subclass of CheckpointNode that will have attributes
specific to that type of checkpoint.
The xml that will be generated would look like this:
<checkpoint>
<name>"name of checkpoint"</name>
<checkpoint specific attributes to be defined by each checkpoint>
</checkpoint>
To further explain this I'll use an example of a client that does TD,
TI, TI, Transfer, Transfer. Note this is not meant
to be any real code, it's more pseudocode than anything.
Client()
td_node = TD_ChkptNode("TargetDiscovery")
ti_node1 = TI_ChkptNode("TI_IPS")
ti_node2 = TI_ChkptNode("TI_CPIO")
xfer_node1 = Xfer_ChkptNode("XFER_IPS")
xfer_node2 = Xfer_ChkptNode("XFER_CPIO")
...
TD = register_checkpoint(td.discover, td_node)
TI1 = register_checkpoint(ti.instantiate, ti_node1)
TI2 = register_checkpoint(ti.instantiate, ti_node2)
Xfer1 = register_checkpoint(xfer.transfer, xfer_node1)
Xfer2 = register_checkpoint(xfer.transfer, xfer_node2)
# Because we bounce out of engine after TD runs we may want to tell TD
where to put things.
td_node.dst = "Discovered Targets" # TD_ChkptNode has property "dst" which
is just a name.
# this name is the name it will give the
root node of
# a tree of nodes, Physical and Logical
that it discoveres.
td_node.start = "..." # maybe for DC we don't want it to do physical target
discovery...
# Now execute engine just running TD:
execute(TD)
# And now we need to add information to other nodes
ti_node1.create = ... # root node of some tree of nodes that the App wants
ti_node2.create = ... # root node of some tree of nodes that the App wants
xfer_node1.src ="http://some/ips/repo:port"
xfer_node1.dst = "rpool/jean/pkg_imag" # image area for IPS to install to.
xfer_node2.src = "/"
xfer_node2.dst = "rpool/jean/whatever" # area to cpio to
# And execute remaining checkpoints:
execute(TI1, TI2, Xfer1, Xfer2) #<---- execute the rest of the checkpoints.
Jean& Dave
_______________________________________________
caiman-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/caiman-discuss