Drew,

I think this is pretty close to final now.  A few more comments below.

Also, I have heard people mention before that we should version our
DTDs.  And that XML manifests should specify which DTD version(s)
that follow.  Do we know how this is achieved?

- Dermot


    1  <!--
    2   CDDL HEADER START
    3
    4   The contents of this file are subject to the terms of the
    5   Common Development and Distribution License (the "License").
    6   You may not use this file except in compliance with the License.
    7
    8   You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
    9   or http://www.opensolaris.org/os/licensing.
   10   See the License for the specific language governing permissions
   11   and limitations under the License.
   12
   13   When distributing Covered Code, include this CDDL HEADER in each
   14   file and include the License file at usr/src/OPENSOLARIS.LICENSE.
   15   If applicable, add the following below this CDDL HEADER, with the
   16   fields enclosed by brackets "[]" replaced with your own identifying
   17   information: Portions Copyright [yyyy] [name of copyright owner]
   18
   19   CDDL HEADER END
   20
21 Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.

2011 ?

   22
   23  -->
   24
   25  <!ELEMENT target (disk+, logical*)>
   26
27 <!ELEMENT disk ((disk_name|disk_prop|disk_keyword|iscsi), partition*, slice*)>
   28
   29  <!--
   30      Disk name can be one of ctd, volid, devpath or devid name.
   31      Default is "ctd".
   32  -->
   33
   34  <!ELEMENT disk_name EMPTY>
   35  <!ATTLIST disk_name name CDATA #REQUIRED>
   36  <!ATTLIST disk_name name_type (ctd|volid|devpath|devid) "ctd">
   37  <!--
   38       in_zpool and in_vdev are reference attributes to a
   39       corresponding <zpool> name and <vdev> name under the <logical>
   40       element.  This is how physical elements are linked with logical
   41       entires.

Suggested rewording:
The values of the in_zpool and in_vdev attributes, if given,
must exactly match the name attributes of a zpool or vdev.
If one or both of these attributes are specified, it must be possible
to uniquely identify a zpool or vdev from them.

   42
   43       If the in_zpool and/or in_vdev is specified at the disk_name
   44       level and error will occur if in_zpool or in_vdev is
s/and/an/
   45       specified as an attribute to any partition or slice children
   46       elements.

Suggested rewording:
The in_zpool and in_vdev attributes are present on disk_name,
partition and slice elements.  However, if either or both of these
attributes are specified for one of these elements, they should not
also be specified for any of its sub-elements or an error will occur.
????

   47  -->
   48  <!ATTLIST disk_name in_zpool CDATA #IMPLIED>
   49  <!ATTLIST disk_name in_vdev CDATA #IMPLIED>
   50
   51  <!ELEMENT disk_prop EMPTY>
   52  <!ATTLIST disk_prop dev_type CDATA #IMPLIED>
   53  <!ATTLIST disk_prop dev_vendor CDATA #IMPLIED>
   54  <!--
   55       dev_size must be number suffixed with a size unit.  i.e 100gb
   56  -->
   57  <!ATTLIST disk_prop dev_size CDATA #IMPLIED>
   58
   59  <!ELEMENT disk_keyword EMPTY>
   60  <!ATTLIST disk_keyword key (boot_disk) #REQUIRED>
   61
   62  <!--
   63       Partition and Slice indexes are numeric values, e.g. 1, will be

s/indexes/names/

   64       interpreted as partition 1 or slice 1.
   65  -->
   66  <!--
67 No size specification means we create the slice or partition with
   68       a size value set to the size of parent element.
   69  -->
   70  <!ELEMENT partition (slice*, size?)>

Suggested comment:
The name attribute may only be omitted if action is "use_existing_solaris2",
in which case there must already be a Solaris2 partition on the disk and this partition will be selected. In addition, if the action is "use_existing_solaris2", both the name and part_type attributes are ignored when selecting a partition.


   71  <!ATTLIST partition name CDATA #IMPLIED>
72 <!ATTLIST partition action (create|delete|use_existing_solaris2) "create">
   73  <!ATTLIST partition part_type CDATA "191">

Suggested comment:
The in_zpool and in_vdev attributes follow the same rules as the similarly
named attributes of disk_name.

   74  <!ATTLIST partition in_zpool CDATA #IMPLIED>
   75  <!ATTLIST partition in_vdev CDATA #IMPLIED>
   76
   77  <!ELEMENT slice (size?)>
   78  <!ATTLIST slice name CDATA #REQUIRED>
   79  <!ATTLIST slice action (create|delete|preserve) "create">
   80  <!--
   81       If the 'create' action is specified for a slice that already
   82       exists, then the 'force' attribute defines how to proceed.  If
83 'force' is 'true' then the operation will continue; otherwise an
   84       error will occur.
   85  -->
   86  <!ATTLIST slice force (true|false) "false">

Suggested comment:
The in_zpool and in_vdev attributes follow the same rules as the similarly
named attributes of disk_name.

   87  <!ATTLIST slice in_zpool CDATA #IMPLIED>
   88  <!ATTLIST slice in_vdev CDATA #IMPLIED>
   89  <!--
   90       If the slice is to be used for swap, set 'is_swap' to 'true'.
   91  -->
   92  <!ATTLIST slice is_swap (true|false) "false">
   93
   94  <!--
   95       Size must be suffixed with a size unit.  i.e 100gb, 2secs, 2tb.

Suggested change:
"Size must ..." -> "The val attribute of size must ..."

   96  -->
   97  <!ELEMENT size EMPTY>
   98  <!ATTLIST size val CDATA #REQUIRED>
   99  <!ATTLIST size start_sector CDATA #IMPLIED>
  100

Was there any reason for deleting this comment?
<!--
   ISCSI does not have an action attribute. We use iscsi devices but
   we do not operate directly on them.
-->

  101  <!ELEMENT iscsi (ip)>
  102  <!ATTLIST iscsi name CDATA #REQUIRED>
  103  <!ATTLIST iscsi source CDATA #IMPLIED>
  104  <!ATTLIST iscsi target_lun CDATA #IMPLIED>
  105  <!ATTLIST iscsi target_port CDATA #IMPLIED>
  106
  107  <!ELEMENT ip (#PCDATA)>
  108

Question:
Is it ever possible that we would want to specify either
noswap="true" or nodump="true" but not specify any
<zpool>s?  If so, then we should change "zpool+" (1 or more)
to "zpool*" (0 or more) below, so that this would be legal:
   <logical no_swap="true"/>

  109  <!ELEMENT logical (zpool+)>
  110  <!ATTLIST logical noswap (true|false) "false">
  111  <!ATTLIST logical nodump (true|false) "false">
  112
  113  <!--
  114       The zpool name attribute must match a corresponding in_zpool
  115       attribute in a disk_name, partition, or slice element.
  116  -->

Suggested rewording:
If zpools and/or vdev are specified, then they must be associated
with disk_names, partitions or slices via the use of the in_zpool
and/or in_vdev attributes of those elements, described above.


Any reason for deleting this comment:
<!--
   Redundancy needs to be part of the vdev grouping,
   not a property on zpool itself. There can be multiple
   vdev groupings within one pool configuration.
-->

117 <!ELEMENT zpool (vdev*, filesystem*, zvol*, pool_options?, dataset_options?, be?)>
  118  <!ATTLIST zpool name CDATA #REQUIRED>
119 <!ATTLIST zpool action (create|delete|preserve|use_existing) "create">
  120  <!ATTLIST zpool is_root (true|false) "false">
  121  <!ATTLIST zpool mountpoint CDATA #IMPLIED>
  122
  123  <!--
124 The vdev name serves no purpose except to match the corresponding
  125       attribute on disk_name / partition / slice

Suggested rewording:
The vdev name is purely used for matching the value of the in_dev attribute
on disk_names, partitions or slices.

  126  -->
  127  <!ELEMENT vdev EMPTY>
  128  <!ATTLIST vdev name CDATA #REQUIRED>
129 <!ATTLIST vdev redundancy (mirror|raidz|raidz1|raidz2|raidz3|spare|log|none) "mirror">
  130
  131  <!--
  132      Filesystem options are for zfs filesystems. The format of these
133 is this: "-o property=value". Any editable ZFS filesystem property
  134      can be set at creation time. Multiple -o options can be
  135      specified. An error will occur if a property is specified in
  136      multiple -o options.
  137  -->
  138  <!ELEMENT filesystem (options?)>
  139  <!ATTLIST filesystem name CDATA #REQUIRED>
  140  <!ATTLIST filesystem action (create|delete|preserve) "create">
  141  <!ATTLIST filesystem mountpoint CDATA #IMPLIED>
  142
  143  <!ELEMENT zvol (options?, size) >
144 <!ATTLIST zvol action (create|delete|preserve|use_existing) "create">
  145  <!ATTLIST zvol name CDATA #REQUIRED>
  146  <!--
147 If the zvol is to be used as a swap device, set 'use' to 'swap'. 148 If the zvol is to be used as a dump device, set 'use' to 'dump'.
  149  -->
  150  <!ATTLIST zvol use (none|swap|dump) "none">
  151
  152  <!--
  153      Option elements allow any string type, and this string is
  154      parsable character data, should the application require it.
  155  -->
  156  <!ELEMENT options (#PCDATA)>
  157
  158  <!--
159 The pool_options string, which is also a parsable string, can include both
  160      pool options and filesystem options.
  161      For pool options the format is: "-o property=value".
  162
163 For filesystem properties the format is: "-O file-system-property=value"
  164
165 Both of these types of properties can be set in the option string.
  166      For example:
  167
168 "-o altroot=/a -o autoexpand=off -o delegation=off -O atime=on -O compression=lzbj"
  169  -->
  170  <!ELEMENT pool_options (options)>
  171  <!ELEMENT dataset_options (options)>
  172
  173  <!--
  174       The be element is used to control the name of the BE created by
  175       consumers.  If not specified, it defaults to "solaris"
  176  -->
  177  <!ELEMENT be EMPTY>
  178  <!ATTLIST be name CDATA #REQUIRED>

_______________________________________________
caiman-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/caiman-discuss

Reply via email to