debuggers.hg
changeset 623:e5cb8bd7ebfe
bitkeeper revision 1.325 (3f0d278fx62UemAA1unbHTgIGvOJ4Q)
Merge labyrinth.cl.cam.ac.uk:/auto/groups/xeno/users/rac61/xeno.bk
into labyrinth.cl.cam.ac.uk:/auto/groups/xeno/users/sos22/xeno.bk
Merge labyrinth.cl.cam.ac.uk:/auto/groups/xeno/users/rac61/xeno.bk
into labyrinth.cl.cam.ac.uk:/auto/groups/xeno/users/sos22/xeno.bk
line diff
1.1 --- a/.rootkeys Thu Jul 10 08:44:44 2003 +0000 1.2 +++ b/.rootkeys Thu Jul 10 08:45:03 2003 +0000 1.3 @@ -9,7 +9,7 @@ 3e6377dbGcgnisKw16DPCaND7oGO3Q tools/bal 1.4 3eb781edFwm_pW9FwnQACIe68viLOw tools/control/Makefile 1.5 3eca6a96a31IwaKtkEa4jmzwTWlm8Q tools/control/README-xenctl 1.6 3eb781fceEYkUi1XHKf2V0KX7si2JA tools/control/build-cmdline.xml 1.7 -3ec41f7cWCxQ8pdH8ZWqhhv-38qQ1w tools/control/build-xen.xml 1.8 +3ec41f7cWCxQ8pdH8ZWqhhv-38qQ1w tools/control/build-web.xml 1.9 3ec41f7ca6IBXDSe0HVcMPp3PPloOQ tools/control/build.properties 1.10 3ec4ebe0g_MI1VqkbbyNB8gt6m0Adg tools/control/docs/empty_dir 1.11 3eb781fcabCKRogwxJA3-jJKstw9Vg tools/control/domctl.xml 1.12 @@ -70,8 +70,8 @@ 3ec41f7dVFBlviwXPQ06BlU3UybziA tools/con 1.13 3ec41f7dKX9YpwrfH7BZ7BogyWqqLA tools/control/src/org/xenoserver/control/VirtualDiskManager.java 1.14 3ec41f7dUPpYTwYL5QVpRBv6PLKPrg tools/control/src/org/xenoserver/control/XML.java 1.15 3ec41f7d7Try-2zmfnpaALwJjY0GCA tools/control/src/org/xenoserver/control/XMLHelper.java 1.16 -3ec41f7dOVZgjP4sQS6vjuBnExdlMQ tools/control/src/uk/ac/cam/cl/xeno/xenctl/RootBean.java 1.17 -3ec41f7dvPdszb0frNEkMnEdJUBVjA tools/control/src/uk/ac/cam/cl/xeno/xenctl/SystemConfigurationBean.java 1.18 +3ec41f7dOVZgjP4sQS6vjuBnExdlMQ tools/control/src/org/xenoserver/web/RootBean.java 1.19 +3ec41f7dvPdszb0frNEkMnEdJUBVjA tools/control/src/org/xenoserver/web/SystemConfigurationBean.java 1.20 3ec41f7dO6IuKGGLG4VRUhMDmkTn5g tools/control/web/WEB-INF/web.xml 1.21 3ec41f7dRAPXBA0jQUd1k6MB3xVidg tools/control/web/img/cambridge.gif 1.22 3ec41f7dvxVe1Vb3kVOLZcN5Jra2tQ tools/control/web/img/help.gif 1.23 @@ -95,7 +95,6 @@ 3ec41f7dZRDqKe8wk__95ztDQmaAOA tools/con 1.24 3ec41f7eTqbaFqMGU7lJG09vlEt0TQ tools/control/web/tmpl/index.tmpl 1.25 3ec41f7ed6_QZ1mg0vuA9Xu1wu1plw tools/control/web/tmpl/install.pl 1.26 3ec41f7emmAnjM4gsW6JWkqsjfi4Rg tools/control/web/tmpl/makefile 1.27 -3ec41f7eGeQD-tCpxZNxNVcnKt6HfA tools/control/web/tmpl/newdom.tmpl 1.28 3ec41f7eoDHD2raa4x6dBINr4QLO3A tools/control/web/tmpl/vd-fv.tmpl 1.29 3ec41f7eawycxV05Ow3LfZtOlHZJPA tools/control/web/tmpl/vd-pa.tmpl 1.30 3ec41f7ef4mVT4vwOEL40MKIzS4EeA tools/control/web/tmpl/vd-par.tmpl
2.1 --- a/BitKeeper/etc/ignore Thu Jul 10 08:44:44 2003 +0000 2.2 +++ b/BitKeeper/etc/ignore Thu Jul 10 08:45:03 2003 +0000 2.3 @@ -2,6 +2,7 @@ BitKeeper/*/* 2.4 PENDING/* 2.5 URK 2.6 tools/balloon/balloon 2.7 +tools/control/.checkstyle 2.8 tools/control/.classpath 2.9 tools/control/.project 2.10 tools/control/build-cmdline/** 2.11 @@ -19,6 +20,7 @@ tools/control/build-dom/uk/ac/cam/cl/xen 2.12 tools/control/build-dom/uk/ac/cam/cl/xeno/domctl/Main.class 2.13 tools/control/build-dom/uk/ac/cam/cl/xeno/domctl/Settings.class 2.14 tools/control/build-dom/uk/ac/cam/cl/xeno/domctl/StringPattern.class 2.15 +tools/control/build-web/** 2.16 tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/domctl/Command.class 2.17 tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/domctl/CommandDestroy.class 2.18 tools/control/build-xen/WEB-INF/classes/uk/ac/cam/cl/xeno/domctl/CommandHelp.class 2.19 @@ -126,6 +128,7 @@ tools/control/build-xen/vd-vdrr.jsp 2.20 tools/control/build-xen/vd-vdv.jsp 2.21 tools/control/build-xen/vd.jsp 2.22 tools/control/build-xen/xenostyle.css 2.23 +tools/control/dist-web/** 2.24 tools/control/dist/docs/api/allclasses-frame.html 2.25 tools/control/dist/docs/api/allclasses-noframe.html 2.26 tools/control/dist/docs/api/constant-values.html 2.27 @@ -233,10 +236,13 @@ tools/internal/xi_create.o 2.28 tools/internal/xi_destroy 2.29 tools/internal/xi_destroy.o 2.30 tools/internal/xi_phys_grant 2.31 +tools/internal/xi_phys_grant.c~ 2.32 tools/internal/xi_phys_grant.o 2.33 tools/internal/xi_phys_probe 2.34 +tools/internal/xi_phys_probe.c~ 2.35 tools/internal/xi_phys_probe.o 2.36 tools/internal/xi_phys_revoke 2.37 +tools/internal/xi_phys_revoke.c~ 2.38 tools/internal/xi_phys_revoke.o 2.39 tools/internal/xi_start 2.40 tools/internal/xi_start.o 2.41 @@ -329,7 +335,9 @@ xen/drivers/block/driver.o 2.42 xen/drivers/block/elevator.o 2.43 xen/drivers/block/genhd.o 2.44 xen/drivers/block/ll_rw_blk.o 2.45 +xen/drivers/block/xen_block.c~ 2.46 xen/drivers/block/xen_block.o 2.47 +xen/drivers/block/xen_physdisk.c~ 2.48 xen/drivers/block/xen_physdisk.o 2.49 xen/drivers/block/xen_segment.o 2.50 xen/drivers/cdrom/cdrom.o 2.51 @@ -412,6 +420,7 @@ xen/image.gz 2.52 xen/image.s 2.53 xen/include/asm 2.54 xen/include/hypervisor-ifs/hypervisor-ifs 2.55 +xen/include/hypervisor-ifs/segment.h~ 2.56 xen/include/linux 2.57 xen/include/xeno/compile.h 2.58 xen/include/xeno/physdisk.h~ 2.59 @@ -426,14 +435,7 @@ xen/tools/figlet/figlet 2.60 xenolinux-2.4.16-sparse/arch/xeno/drivers/block/Makefile.orig 2.61 xenolinux-2.4.16-sparse/arch/xeno/drivers/block/block.c.orig 2.62 xenolinux-2.4.16-sparse/scripts/kconfig.tk 2.63 -xenolinux-2.4.21-sparse/include/linux/blk.h~ 2.64 -tools/control/.checkstyle 2.65 xenolinux-2.4.21-sparse/arch/xeno/drivers/block/xl_block.c~ 2.66 xenolinux-2.4.21-sparse/arch/xeno/drivers/block/xl_physdisk_proc.c.bak 2.67 xenolinux-2.4.21-sparse/arch/xeno/drivers/block/xl_physdisk_proc.c~ 2.68 -xen/drivers/block/xen_block.c~ 2.69 -xen/drivers/block/xen_physdisk.c~ 2.70 -tools/internal/xi_phys_grant.c~ 2.71 -tools/internal/xi_phys_probe.c~ 2.72 -tools/internal/xi_phys_revoke.c~ 2.73 -xen/include/hypervisor-ifs/segment.h~ 2.74 +xenolinux-2.4.21-sparse/include/linux/blk.h~
3.1 --- a/tools/control/Makefile Thu Jul 10 08:44:44 2003 +0000 3.2 +++ b/tools/control/Makefile Thu Jul 10 08:45:03 2003 +0000 3.3 @@ -1,8 +1,8 @@ 3.4 -default: cmdline 3.5 +default: cmdline web 3.6 3.7 -install: install-cmdline 3.8 +install: install-cmdline install-web 3.9 3.10 -clean: clean-cmdline 3.11 +clean: clean-cmdline clean-web 3.12 3.13 3.14 3.15 @@ -19,17 +19,15 @@ clean-cmdline: 3.16 3.17 3.18 3.19 -xenctl: FORCE 3.20 - (cd web/tmpl; make) 3.21 - ant -buildfile build-xen.xml dist 3.22 +web: FORCE 3.23 + ant -buildfile build-web.xml dist 3.24 3.25 -install-xenctl: xenctl 3.26 - -ant -buildfile build-xen.xml remove 3.27 - ant -buildfile build-xen.xml install 3.28 +install-web: xenctl 3.29 + ant -buildfile build-web.xml remove || true 3.30 + ant -buildfile build-web.xml install 3.31 3.32 -clean-xenctl: 3.33 - (cd web/tmpl; make clean) 3.34 - ant -buildfile build-xen.xml clean 3.35 - rm -f xenctl.jar 3.36 +clean-web: 3.37 + ant -buildfile build-web.xml clean 3.38 + rm -f xenctl-web.jar 3.39 3.40 FORCE:
4.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 4.2 +++ b/tools/control/build-web.xml Thu Jul 10 08:45:03 2003 +0000 4.3 @@ -0,0 +1,511 @@ 4.4 +<!-- 4.5 + General purpose build script for web applications and web services, 4.6 + including enhanced support for deploying directly to a Tomcat 4 4.7 + based server. 4.8 + 4.9 + This build script assumes that the source code of your web application 4.10 + is organized into the following subdirectories underneath the source 4.11 + code directory from which you execute the build script: 4.12 + 4.13 + docs Static documentation files to be copied to 4.14 + the "docs" subdirectory of your distribution. 4.15 + 4.16 + src Java source code (and associated resource files) 4.17 + to be compiled to the "WEB-INF/classes" 4.18 + subdirectory of your web applicaiton. 4.19 + 4.20 + web Static HTML, JSP, and other content (such as 4.21 + image files), including the WEB-INF subdirectory 4.22 + and its configuration file contents. 4.23 + 4.24 + $Id: build.xml.txt,v 1.7 2002/12/28 09:08:58 jfclere Exp $ 4.25 +--> 4.26 + 4.27 + 4.28 +<!-- A "project" describes a set of targets that may be requested 4.29 + when Ant is executed. The "default" attribute defines the 4.30 + target which is executed if no specific target is requested, 4.31 + and the "basedir" attribute defines the current working directory 4.32 + from which Ant executes the requested task. This is normally 4.33 + set to the current working directory. 4.34 +--> 4.35 + 4.36 +<project name="xenctl web interface" default="compile" basedir="."> 4.37 + 4.38 + 4.39 + 4.40 +<!-- ===================== Property Definitions =========================== --> 4.41 + 4.42 + 4.43 +<!-- 4.44 + 4.45 + Each of the following properties are used in the build script. 4.46 + Values for these properties are set by the first place they are 4.47 + defined, from the following list: 4.48 + 4.49 + * Definitions on the "ant" command line (ant -Dfoo=bar compile). 4.50 + 4.51 + * Definitions from a "build.properties" file in the top level 4.52 + source directory of this application. 4.53 + 4.54 + * Definitions from a "build.properties" file in the developer's 4.55 + home directory. 4.56 + 4.57 + * Default definitions in this build.xml file. 4.58 + 4.59 + You will note below that property values can be composed based on the 4.60 + contents of previously defined properties. This is a powerful technique 4.61 + that helps you minimize the number of changes required when your development 4.62 + environment is modified. Note that property composition is allowed within 4.63 + "build.properties" files as well as in the "build.xml" script. 4.64 + 4.65 +--> 4.66 + 4.67 + <property file="build.properties"/> 4.68 + <property file="${user.home}/build.properties"/> 4.69 + 4.70 + 4.71 +<!-- ==================== File and Directory Names ======================== --> 4.72 + 4.73 + 4.74 +<!-- 4.75 + 4.76 + These properties generally define file and directory names (or paths) that 4.77 + affect where the build process stores its outputs. 4.78 + 4.79 + app.name Base name of this application, used to 4.80 + construct filenames and directories. 4.81 + Defaults to "myapp". 4.82 + 4.83 + app.path Context path to which this application should be 4.84 + deployed (defaults to "/" plus the value of the 4.85 + "app.name" property). 4.86 + 4.87 + app.version Version number of this iteration of the application. 4.88 + 4.89 + build.home The directory into which the "prepare" and 4.90 + "compile" targets will generate their output. 4.91 + Defaults to "build". 4.92 + 4.93 + catalina.home The directory in which you have installed 4.94 + a binary distribution of Tomcat 4. This will 4.95 + be used by the "deploy" target. 4.96 + 4.97 + dist.home The name of the base directory in which 4.98 + distribution files are created. 4.99 + Defaults to "dist". 4.100 + 4.101 + manager.password The login password of a user that is assigned the 4.102 + "manager" role (so that he or she can execute 4.103 + commands via the "/manager" web application) 4.104 + 4.105 + manager.url The URL of the "/manager" web application on the 4.106 + Tomcat installation to which we will deploy web 4.107 + applications and web services. 4.108 + 4.109 + manager.username The login username of a user that is assigned the 4.110 + "manager" role (so that he or she can execute 4.111 + commands via the "/manager" web application) 4.112 + 4.113 +--> 4.114 + 4.115 + <property name="app.name" value="myapp"/> 4.116 + <property name="app.path" value="/${app.name}"/> 4.117 + <property name="app.version" value="0.1-dev"/> 4.118 + <property name="build.home" value="${basedir}/build-web"/> 4.119 + <property name="catalina.home" value="../../../.."/> <!-- UPDATE THIS! --> 4.120 + <property name="dist.home" value="${basedir}/dist-web"/> 4.121 + <property name="docs.home" value="${basedir}/docs"/> 4.122 +<!-- <property name="manager.url" value="http://localhost:8080/manager"/> --> 4.123 + <property name="src.home" value="${basedir}/src"/> 4.124 + <property name="web.home" value="${basedir}/web"/> 4.125 + 4.126 + 4.127 +<!-- ================== Custom Ant Task Definitions ======================= --> 4.128 + 4.129 + 4.130 +<!-- 4.131 + 4.132 + These properties define custom tasks for the Ant build tool that interact 4.133 + with the "/manager" web application installed with Tomcat 4. Before they 4.134 + can be successfully utilized, you must perform the following steps: 4.135 + 4.136 + - Copy the file "server/lib/catalina-ant.jar" from your Tomcat 4 4.137 + installation into the "lib" directory of your Ant installation. 4.138 + 4.139 + - Create a "build.properties" file in your application's top-level 4.140 + source directory (or your user login home directory) that defines 4.141 + appropriate values for the "manager.password", "manager.url", and 4.142 + "manager.username" properties described above. 4.143 + 4.144 + For more information about the Manager web application, and the functionality 4.145 + of these tasks, see <http://localhost:8080/tomcat-docs/manager-howto.html>. 4.146 + 4.147 +--> 4.148 + 4.149 + <taskdef name="install" classname="org.apache.catalina.ant.InstallTask"/> 4.150 + <taskdef name="list" classname="org.apache.catalina.ant.ListTask"/> 4.151 + <taskdef name="reload" classname="org.apache.catalina.ant.ReloadTask"/> 4.152 + <taskdef name="remove" classname="org.apache.catalina.ant.RemoveTask"/> 4.153 + 4.154 + 4.155 +<!-- ==================== Compilation Control Options ==================== --> 4.156 + 4.157 +<!-- 4.158 + 4.159 + These properties control option settings on the Javac compiler when it 4.160 + is invoked using the <javac> task. 4.161 + 4.162 + compile.debug Should compilation include the debug option? 4.163 + 4.164 + compile.deprecation Should compilation include the deprecation option? 4.165 + 4.166 + compile.optimize Should compilation include the optimize option? 4.167 + 4.168 +--> 4.169 + 4.170 + <property name="compile.debug" value="true"/> 4.171 + <property name="compile.deprecation" value="false"/> 4.172 + <property name="compile.optimize" value="true"/> 4.173 + 4.174 + 4.175 + 4.176 +<!-- ==================== External Dependencies =========================== --> 4.177 + 4.178 + 4.179 +<!-- 4.180 + 4.181 + Use property values to define the locations of external JAR files on which 4.182 + your application will depend. In general, these values will be used for 4.183 + two purposes: 4.184 + * Inclusion on the classpath that is passed to the Javac compiler 4.185 + * Being copied into the "/WEB-INF/lib" directory during execution 4.186 + of the "deploy" target. 4.187 + 4.188 + Because we will automatically include all of the Java classes that Tomcat 4 4.189 + exposes to web applications, we will not need to explicitly list any of those 4.190 + dependencies. You only need to worry about external dependencies for JAR 4.191 + files that you are going to include inside your "/WEB-INF/lib" directory. 4.192 + 4.193 +--> 4.194 + 4.195 +<!-- Dummy external dependency --> 4.196 +<!-- 4.197 + <property name="foo.jar" 4.198 + value="/path/to/foo.jar"/> 4.199 +--> 4.200 + 4.201 + 4.202 +<!-- ==================== Compilation Classpath =========================== --> 4.203 + 4.204 +<!-- 4.205 + 4.206 + Rather than relying on the CLASSPATH environment variable, Ant includes 4.207 + features that makes it easy to dynamically construct the classpath you 4.208 + need for each compilation. The example below constructs the compile 4.209 + classpath to include the servlet.jar file, as well as the other components 4.210 + that Tomcat makes available to web applications automatically, plus anything 4.211 + that you explicitly added. 4.212 + 4.213 +--> 4.214 + 4.215 + <path id="compile.classpath"> 4.216 + 4.217 + <!-- Include all JAR files that will be included in /WEB-INF/lib --> 4.218 + <!-- *** CUSTOMIZE HERE AS REQUIRED BY YOUR APPLICATION *** --> 4.219 +<!-- 4.220 + <pathelement location="${foo.jar}"/> 4.221 +--> 4.222 + 4.223 + <!-- Include all elements that Tomcat exposes to applications --> 4.224 + <pathelement location="${catalina.home}/common/classes"/> 4.225 + <fileset dir="${catalina.home}/common/endorsed"> 4.226 + <include name="*.jar"/> 4.227 + </fileset> 4.228 + <fileset dir="${catalina.home}/common/lib"> 4.229 + <include name="*.jar"/> 4.230 + </fileset> 4.231 + <pathelement location="${catalina.home}/shared/classes"/> 4.232 + <fileset dir="${catalina.home}/shared/lib"> 4.233 + <include name="*.jar"/> 4.234 + </fileset> 4.235 + 4.236 + </path> 4.237 + 4.238 + 4.239 + 4.240 +<!-- ==================== All Target ====================================== --> 4.241 + 4.242 +<!-- 4.243 + 4.244 + The "all" target is a shortcut for running the "clean" target followed 4.245 + by the "compile" target, to force a complete recompile. 4.246 + 4.247 +--> 4.248 + 4.249 + <target name="all" depends="clean,compile" 4.250 + description="Clean build and dist directories, then compile"/> 4.251 + 4.252 + 4.253 + 4.254 +<!-- ==================== Clean Target ==================================== --> 4.255 + 4.256 +<!-- 4.257 + 4.258 + The "clean" target deletes any previous "build" and "dist" directory, 4.259 + so that you can be ensured the application can be built from scratch. 4.260 + 4.261 +--> 4.262 + 4.263 + <target name="clean" 4.264 + description="Delete old build and dist directories"> 4.265 + <delete dir="${build.home}"/> 4.266 + <delete dir="${dist.home}"/> 4.267 + <exec executable="make" dir="${web.home}/tmpl"><arg value="clean"/></exec> 4.268 + </target> 4.269 + 4.270 + 4.271 + 4.272 +<!-- ==================== Compile Target ================================== --> 4.273 + 4.274 +<!-- 4.275 + 4.276 + The "compile" target transforms source files (from your "src" directory) 4.277 + into object files in the appropriate location in the build directory. 4.278 + This example assumes that you will be including your classes in an 4.279 + unpacked directory hierarchy under "/WEB-INF/classes". 4.280 + 4.281 +--> 4.282 + 4.283 + <target name="compile" depends="prepare" 4.284 + description="Compile Java sources"> 4.285 + 4.286 + <!-- Compile Java classes as necessary --> 4.287 + <mkdir dir="${build.home}/WEB-INF/classes"/> 4.288 + <javac srcdir="${src.home}" 4.289 + destdir="${build.home}/WEB-INF/classes" 4.290 + debug="${compile.debug}" 4.291 + deprecation="${compile.deprecation}" 4.292 + optimize="${compile.optimize}"> 4.293 + <classpath refid="compile.classpath"/> 4.294 + <include name="org/xenoserver/control/**"/> 4.295 + <include name="org/xenoserver/web/**"/> 4.296 + </javac> 4.297 + 4.298 + <!-- Copy application resources --> 4.299 + <copy todir="${build.home}/WEB-INF/classes"> 4.300 + <fileset dir="${src.home}" excludes="**/*.java"/> 4.301 + </copy> 4.302 + 4.303 + </target> 4.304 + 4.305 + 4.306 + 4.307 +<!-- ==================== Dist Target ===================================== --> 4.308 + 4.309 + 4.310 +<!-- 4.311 + 4.312 + The "dist" target creates a binary distribution of your application 4.313 + in a directory structure ready to be archived in a tar.gz or zip file. 4.314 + Note that this target depends on two others: 4.315 + 4.316 + * "compile" so that the entire web application (including external 4.317 + dependencies) will have been assembled 4.318 + 4.319 + * "javadoc" so that the application Javadocs will have been created 4.320 + 4.321 +--> 4.322 + 4.323 + <target name="dist" depends="compile" 4.324 + description="Create binary distribution"> 4.325 + 4.326 + <!-- Copy documentation subdirectories --> 4.327 + <mkdir dir="${dist.home}/docs"/> 4.328 + <copy todir="${dist.home}/docs"> 4.329 + <fileset dir="${docs.home}"/> 4.330 + </copy> 4.331 + 4.332 + <!-- Create application JAR file --> 4.333 + <jar jarfile="${dist.home}/${app.name}-${app.version}.war" 4.334 + basedir="${build.home}"/> 4.335 + 4.336 + <!-- Copy additional files to ${dist.home} as necessary --> 4.337 + 4.338 + </target> 4.339 + 4.340 + 4.341 + 4.342 +<!-- ==================== Install Target ================================== --> 4.343 + 4.344 +<!-- 4.345 + 4.346 + The "install" target tells the specified Tomcat 4 installation to dynamically 4.347 + install this web application and make it available for execution. It does 4.348 + *not* cause the existence of this web application to be remembered across 4.349 + Tomcat restarts; if you restart the server, you will need to re-install all 4.350 + this web application. 4.351 + 4.352 + If you have already installed this application, and simply want Tomcat to 4.353 + recognize that you have updated Java classes (or the web.xml file), use the 4.354 + "reload" target instead. 4.355 + 4.356 + NOTE: This target will only succeed if it is run from the same server that 4.357 + Tomcat is running on. 4.358 + 4.359 + NOTE: This is the logical opposite of the "remove" target. 4.360 + 4.361 +--> 4.362 + 4.363 + <target name="install" depends="compile" 4.364 + description="Install application to servlet container"> 4.365 + 4.366 + <install url="${manager.url}" 4.367 + username="${manager.username}" 4.368 + password="${manager.password}" 4.369 + path="${app.path}" 4.370 + war="file://${build.home}"/> 4.371 + 4.372 + </target> 4.373 + 4.374 + 4.375 +<!-- ==================== Javadoc Target ================================== --> 4.376 + 4.377 +<!-- 4.378 + 4.379 + The "javadoc" target creates Javadoc API documentation for the Java 4.380 + classes included in your application. Normally, this is only required 4.381 + when preparing a distribution release, but is available as a separate 4.382 + target in case the developer wants to create Javadocs independently. 4.383 + 4.384 +--> 4.385 + 4.386 + <target name="javadoc" depends="compile" 4.387 + description="Create Javadoc API documentation"> 4.388 + 4.389 + <mkdir dir="${dist.home}/docs/api"/> 4.390 + <javadoc sourcepath="${src.home}" 4.391 + destdir="${dist.home}/docs/api" 4.392 + packagenames="*"> 4.393 + <classpath refid="compile.classpath"/> 4.394 + </javadoc> 4.395 + 4.396 + </target> 4.397 + 4.398 + 4.399 + 4.400 +<!-- ====================== List Target =================================== --> 4.401 + 4.402 +<!-- 4.403 + 4.404 + The "list" target asks the specified Tomcat 4 installation to list the 4.405 + currently running web applications, either loaded at startup time or 4.406 + installed dynamically. It is useful to determine whether or not the 4.407 + application you are currently developing has been installed. 4.408 + 4.409 +--> 4.410 + 4.411 + <target name="list" 4.412 + description="List installed applications on servlet container"> 4.413 + 4.414 + <list url="${manager.url}" 4.415 + username="${manager.username}" 4.416 + password="${manager.password}"/> 4.417 + 4.418 + </target> 4.419 + 4.420 + 4.421 +<!-- ==================== Prepare Target ================================== --> 4.422 + 4.423 +<!-- 4.424 + 4.425 + The "prepare" target is used to create the "build" destination directory, 4.426 + and copy the static contents of your web application to it. If you need 4.427 + to copy static files from external dependencies, you can customize the 4.428 + contents of this task. 4.429 + 4.430 + Normally, this task is executed indirectly when needed. 4.431 + 4.432 +--> 4.433 + 4.434 + <target name="prepare"> 4.435 + 4.436 + <!-- Create build directories as needed --> 4.437 + <mkdir dir="${build.home}"/> 4.438 + <mkdir dir="${build.home}/WEB-INF"/> 4.439 + <mkdir dir="${build.home}/WEB-INF/classes"/> 4.440 + 4.441 + <!-- create templates --> 4.442 + <exec executable="make" dir="${web.home}/tmpl"/> 4.443 + 4.444 + <!-- Copy static content of this web application --> 4.445 + <copy todir="${build.home}"> 4.446 + <fileset dir="${web.home}"/> 4.447 + </copy> 4.448 + 4.449 + <!-- Copy external dependencies as required --> 4.450 + <!-- *** CUSTOMIZE HERE AS REQUIRED BY YOUR APPLICATION *** --> 4.451 + <mkdir dir="${build.home}/WEB-INF/lib"/> 4.452 +<!-- 4.453 + <copy todir="${build.home}/WEB-INF/lib" file="${foo.jar}"/> 4.454 +--> 4.455 + 4.456 + <!-- Copy static files from external dependencies as needed --> 4.457 + <!-- *** CUSTOMIZE HERE AS REQUIRED BY YOUR APPLICATION *** --> 4.458 + 4.459 + </target> 4.460 + 4.461 + 4.462 +<!-- ==================== Reload Target =================================== --> 4.463 + 4.464 +<!-- 4.465 + 4.466 + The "reload" target tells the specified Tomcat 4 installation to dynamically 4.467 + reload this web application, to reflect changes in the underlying classes or 4.468 + the "web.xml" deployment descriptor. 4.469 + 4.470 +--> 4.471 + 4.472 + <target name="reload" depends="compile" 4.473 + description="Reload application on servlet container"> 4.474 + 4.475 + <reload url="${manager.url}" 4.476 + username="${manager.username}" 4.477 + password="${manager.password}" 4.478 + path="${app.path}"/> 4.479 + 4.480 + </target> 4.481 + 4.482 + 4.483 +<!-- ==================== Remove Target =================================== --> 4.484 + 4.485 +<!-- 4.486 + 4.487 + The "remove" target tells the specified Tomcat 4 installation to dynamically 4.488 + remove this web application from service. 4.489 + 4.490 + NOTE: This is the logical opposite of the "install" target. 4.491 + 4.492 +--> 4.493 + 4.494 + <target name="remove" 4.495 + description="Remove application on servlet container"> 4.496 + 4.497 + <remove url="${manager.url}" 4.498 + username="${manager.username}" 4.499 + password="${manager.password}" 4.500 + path="${app.path}"/> 4.501 + 4.502 + </target> 4.503 + 4.504 + 4.505 + <target name="help"> 4.506 + <echo>all clean, them compile</echo> 4.507 + <echo>dist create war file</echo> 4.508 + <echo>install install application in servlet container</echo> 4.509 + <echo>list list applications installed in servelet container</echo> 4.510 + <echo>reload reload application in servlet container</echo> 4.511 + <echo>remove dynamically remove web application</echo> 4.512 + </target> 4.513 + 4.514 +</project>
5.1 --- a/tools/control/build-xen.xml Thu Jul 10 08:44:44 2003 +0000 5.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 5.3 @@ -1,506 +0,0 @@ 5.4 -<!-- 5.5 - General purpose build script for web applications and web services, 5.6 - including enhanced support for deploying directly to a Tomcat 4 5.7 - based server. 5.8 - 5.9 - This build script assumes that the source code of your web application 5.10 - is organized into the following subdirectories underneath the source 5.11 - code directory from which you execute the build script: 5.12 - 5.13 - docs Static documentation files to be copied to 5.14 - the "docs" subdirectory of your distribution. 5.15 - 5.16 - src Java source code (and associated resource files) 5.17 - to be compiled to the "WEB-INF/classes" 5.18 - subdirectory of your web applicaiton. 5.19 - 5.20 - web Static HTML, JSP, and other content (such as 5.21 - image files), including the WEB-INF subdirectory 5.22 - and its configuration file contents. 5.23 - 5.24 - $Id: build.xml.txt,v 1.7 2002/12/28 09:08:58 jfclere Exp $ 5.25 ---> 5.26 - 5.27 - 5.28 -<!-- A "project" describes a set of targets that may be requested 5.29 - when Ant is executed. The "default" attribute defines the 5.30 - target which is executed if no specific target is requested, 5.31 - and the "basedir" attribute defines the current working directory 5.32 - from which Ant executes the requested task. This is normally 5.33 - set to the current working directory. 5.34 ---> 5.35 - 5.36 -<project name="My Project" default="compile" basedir="."> 5.37 - 5.38 - 5.39 - 5.40 -<!-- ===================== Property Definitions =========================== --> 5.41 - 5.42 - 5.43 -<!-- 5.44 - 5.45 - Each of the following properties are used in the build script. 5.46 - Values for these properties are set by the first place they are 5.47 - defined, from the following list: 5.48 - 5.49 - * Definitions on the "ant" command line (ant -Dfoo=bar compile). 5.50 - 5.51 - * Definitions from a "build.properties" file in the top level 5.52 - source directory of this application. 5.53 - 5.54 - * Definitions from a "build.properties" file in the developer's 5.55 - home directory. 5.56 - 5.57 - * Default definitions in this build.xml file. 5.58 - 5.59 - You will note below that property values can be composed based on the 5.60 - contents of previously defined properties. This is a powerful technique 5.61 - that helps you minimize the number of changes required when your development 5.62 - environment is modified. Note that property composition is allowed within 5.63 - "build.properties" files as well as in the "build.xml" script. 5.64 - 5.65 ---> 5.66 - 5.67 - <property file="build.properties"/> 5.68 - <property file="${user.home}/build.properties"/> 5.69 - 5.70 - 5.71 -<!-- ==================== File and Directory Names ======================== --> 5.72 - 5.73 - 5.74 -<!-- 5.75 - 5.76 - These properties generally define file and directory names (or paths) that 5.77 - affect where the build process stores its outputs. 5.78 - 5.79 - app.name Base name of this application, used to 5.80 - construct filenames and directories. 5.81 - Defaults to "myapp". 5.82 - 5.83 - app.path Context path to which this application should be 5.84 - deployed (defaults to "/" plus the value of the 5.85 - "app.name" property). 5.86 - 5.87 - app.version Version number of this iteration of the application. 5.88 - 5.89 - build.home The directory into which the "prepare" and 5.90 - "compile" targets will generate their output. 5.91 - Defaults to "build". 5.92 - 5.93 - catalina.home The directory in which you have installed 5.94 - a binary distribution of Tomcat 4. This will 5.95 - be used by the "deploy" target. 5.96 - 5.97 - dist.home The name of the base directory in which 5.98 - distribution files are created. 5.99 - Defaults to "dist". 5.100 - 5.101 - manager.password The login password of a user that is assigned the 5.102 - "manager" role (so that he or she can execute 5.103 - commands via the "/manager" web application) 5.104 - 5.105 - manager.url The URL of the "/manager" web application on the 5.106 - Tomcat installation to which we will deploy web 5.107 - applications and web services. 5.108 - 5.109 - manager.username The login username of a user that is assigned the 5.110 - "manager" role (so that he or she can execute 5.111 - commands via the "/manager" web application) 5.112 - 5.113 ---> 5.114 - 5.115 - <property name="app.name" value="myapp"/> 5.116 - <property name="app.path" value="/${app.name}"/> 5.117 - <property name="app.version" value="0.1-dev"/> 5.118 - <property name="build.home" value="${basedir}/build"/> 5.119 - <property name="catalina.home" value="../../../.."/> <!-- UPDATE THIS! --> 5.120 - <property name="dist.home" value="${basedir}/dist"/> 5.121 - <property name="docs.home" value="${basedir}/docs"/> 5.122 -<!-- <property name="manager.url" value="http://localhost:8080/manager"/> --> 5.123 - <property name="src.home" value="${basedir}/src"/> 5.124 - <property name="web.home" value="${basedir}/web"/> 5.125 - 5.126 - 5.127 -<!-- ================== Custom Ant Task Definitions ======================= --> 5.128 - 5.129 - 5.130 -<!-- 5.131 - 5.132 - These properties define custom tasks for the Ant build tool that interact 5.133 - with the "/manager" web application installed with Tomcat 4. Before they 5.134 - can be successfully utilized, you must perform the following steps: 5.135 - 5.136 - - Copy the file "server/lib/catalina-ant.jar" from your Tomcat 4 5.137 - installation into the "lib" directory of your Ant installation. 5.138 - 5.139 - - Create a "build.properties" file in your application's top-level 5.140 - source directory (or your user login home directory) that defines 5.141 - appropriate values for the "manager.password", "manager.url", and 5.142 - "manager.username" properties described above. 5.143 - 5.144 - For more information about the Manager web application, and the functionality 5.145 - of these tasks, see <http://localhost:8080/tomcat-docs/manager-howto.html>. 5.146 - 5.147 ---> 5.148 - 5.149 - <taskdef name="install" classname="org.apache.catalina.ant.InstallTask"/> 5.150 - <taskdef name="list" classname="org.apache.catalina.ant.ListTask"/> 5.151 - <taskdef name="reload" classname="org.apache.catalina.ant.ReloadTask"/> 5.152 - <taskdef name="remove" classname="org.apache.catalina.ant.RemoveTask"/> 5.153 - 5.154 - 5.155 -<!-- ==================== Compilation Control Options ==================== --> 5.156 - 5.157 -<!-- 5.158 - 5.159 - These properties control option settings on the Javac compiler when it 5.160 - is invoked using the <javac> task. 5.161 - 5.162 - compile.debug Should compilation include the debug option? 5.163 - 5.164 - compile.deprecation Should compilation include the deprecation option? 5.165 - 5.166 - compile.optimize Should compilation include the optimize option? 5.167 - 5.168 ---> 5.169 - 5.170 - <property name="compile.debug" value="true"/> 5.171 - <property name="compile.deprecation" value="false"/> 5.172 - <property name="compile.optimize" value="true"/> 5.173 - 5.174 - 5.175 - 5.176 -<!-- ==================== External Dependencies =========================== --> 5.177 - 5.178 - 5.179 -<!-- 5.180 - 5.181 - Use property values to define the locations of external JAR files on which 5.182 - your application will depend. In general, these values will be used for 5.183 - two purposes: 5.184 - * Inclusion on the classpath that is passed to the Javac compiler 5.185 - * Being copied into the "/WEB-INF/lib" directory during execution 5.186 - of the "deploy" target. 5.187 - 5.188 - Because we will automatically include all of the Java classes that Tomcat 4 5.189 - exposes to web applications, we will not need to explicitly list any of those 5.190 - dependencies. You only need to worry about external dependencies for JAR 5.191 - files that you are going to include inside your "/WEB-INF/lib" directory. 5.192 - 5.193 ---> 5.194 - 5.195 -<!-- Dummy external dependency --> 5.196 -<!-- 5.197 - <property name="foo.jar" 5.198 - value="/path/to/foo.jar"/> 5.199 ---> 5.200 - 5.201 - 5.202 -<!-- ==================== Compilation Classpath =========================== --> 5.203 - 5.204 -<!-- 5.205 - 5.206 - Rather than relying on the CLASSPATH environment variable, Ant includes 5.207 - features that makes it easy to dynamically construct the classpath you 5.208 - need for each compilation. The example below constructs the compile 5.209 - classpath to include the servlet.jar file, as well as the other components 5.210 - that Tomcat makes available to web applications automatically, plus anything 5.211 - that you explicitly added. 5.212 - 5.213 ---> 5.214 - 5.215 - <path id="compile.classpath"> 5.216 - 5.217 - <!-- Include all JAR files that will be included in /WEB-INF/lib --> 5.218 - <!-- *** CUSTOMIZE HERE AS REQUIRED BY YOUR APPLICATION *** --> 5.219 -<!-- 5.220 - <pathelement location="${foo.jar}"/> 5.221 ---> 5.222 - 5.223 - <!-- Include all elements that Tomcat exposes to applications --> 5.224 - <pathelement location="${catalina.home}/common/classes"/> 5.225 - <fileset dir="${catalina.home}/common/endorsed"> 5.226 - <include name="*.jar"/> 5.227 - </fileset> 5.228 - <fileset dir="${catalina.home}/common/lib"> 5.229 - <include name="*.jar"/> 5.230 - </fileset> 5.231 - <pathelement location="${catalina.home}/shared/classes"/> 5.232 - <fileset dir="${catalina.home}/shared/lib"> 5.233 - <include name="*.jar"/> 5.234 - </fileset> 5.235 - 5.236 - </path> 5.237 - 5.238 - 5.239 - 5.240 -<!-- ==================== All Target ====================================== --> 5.241 - 5.242 -<!-- 5.243 - 5.244 - The "all" target is a shortcut for running the "clean" target followed 5.245 - by the "compile" target, to force a complete recompile. 5.246 - 5.247 ---> 5.248 - 5.249 - <target name="all" depends="clean,compile" 5.250 - description="Clean build and dist directories, then compile"/> 5.251 - 5.252 - 5.253 - 5.254 -<!-- ==================== Clean Target ==================================== --> 5.255 - 5.256 -<!-- 5.257 - 5.258 - The "clean" target deletes any previous "build" and "dist" directory, 5.259 - so that you can be ensured the application can be built from scratch. 5.260 - 5.261 ---> 5.262 - 5.263 - <target name="clean" 5.264 - description="Delete old build and dist directories"> 5.265 - <delete dir="${build.home}"/> 5.266 - <delete dir="${dist.home}"/> 5.267 - </target> 5.268 - 5.269 - 5.270 - 5.271 -<!-- ==================== Compile Target ================================== --> 5.272 - 5.273 -<!-- 5.274 - 5.275 - The "compile" target transforms source files (from your "src" directory) 5.276 - into object files in the appropriate location in the build directory. 5.277 - This example assumes that you will be including your classes in an 5.278 - unpacked directory hierarchy under "/WEB-INF/classes". 5.279 - 5.280 ---> 5.281 - 5.282 - <target name="compile" depends="prepare" 5.283 - description="Compile Java sources"> 5.284 - 5.285 - <!-- Compile Java classes as necessary --> 5.286 - <mkdir dir="${build.home}/WEB-INF/classes"/> 5.287 - <javac srcdir="${src.home}" 5.288 - destdir="${build.home}/WEB-INF/classes" 5.289 - debug="${compile.debug}" 5.290 - deprecation="${compile.deprecation}" 5.291 - optimize="${compile.optimize}"> 5.292 - <classpath refid="compile.classpath"/> 5.293 - </javac> 5.294 - 5.295 - <!-- Copy application resources --> 5.296 - <copy todir="${build.home}/WEB-INF/classes"> 5.297 - <fileset dir="${src.home}" excludes="**/*.java"/> 5.298 - </copy> 5.299 - 5.300 - </target> 5.301 - 5.302 - 5.303 - 5.304 -<!-- ==================== Dist Target ===================================== --> 5.305 - 5.306 - 5.307 -<!-- 5.308 - 5.309 - The "dist" target creates a binary distribution of your application 5.310 - in a directory structure ready to be archived in a tar.gz or zip file. 5.311 - Note that this target depends on two others: 5.312 - 5.313 - * "compile" so that the entire web application (including external 5.314 - dependencies) will have been assembled 5.315 - 5.316 - * "javadoc" so that the application Javadocs will have been created 5.317 - 5.318 ---> 5.319 - 5.320 - <target name="dist" depends="compile,javadoc" 5.321 - description="Create binary distribution"> 5.322 - 5.323 - <!-- Copy documentation subdirectories --> 5.324 - <mkdir dir="${dist.home}/docs"/> 5.325 - <copy todir="${dist.home}/docs"> 5.326 - <fileset dir="${docs.home}"/> 5.327 - </copy> 5.328 - 5.329 - <!-- Create application JAR file --> 5.330 - <jar jarfile="${dist.home}/${app.name}-${app.version}.war" 5.331 - basedir="${build.home}"/> 5.332 - 5.333 - <!-- Copy additional files to ${dist.home} as necessary --> 5.334 - 5.335 - </target> 5.336 - 5.337 - 5.338 - 5.339 -<!-- ==================== Install Target ================================== --> 5.340 - 5.341 -<!-- 5.342 - 5.343 - The "install" target tells the specified Tomcat 4 installation to dynamically 5.344 - install this web application and make it available for execution. It does 5.345 - *not* cause the existence of this web application to be remembered across 5.346 - Tomcat restarts; if you restart the server, you will need to re-install all 5.347 - this web application. 5.348 - 5.349 - If you have already installed this application, and simply want Tomcat to 5.350 - recognize that you have updated Java classes (or the web.xml file), use the 5.351 - "reload" target instead. 5.352 - 5.353 - NOTE: This target will only succeed if it is run from the same server that 5.354 - Tomcat is running on. 5.355 - 5.356 - NOTE: This is the logical opposite of the "remove" target. 5.357 - 5.358 ---> 5.359 - 5.360 - <target name="install" depends="compile" 5.361 - description="Install application to servlet container"> 5.362 - 5.363 - <install url="${manager.url}" 5.364 - username="${manager.username}" 5.365 - password="${manager.password}" 5.366 - path="${app.path}" 5.367 - war="file://${build.home}"/> 5.368 - 5.369 - </target> 5.370 - 5.371 - 5.372 -<!-- ==================== Javadoc Target ================================== --> 5.373 - 5.374 -<!-- 5.375 - 5.376 - The "javadoc" target creates Javadoc API documentation for the Java 5.377 - classes included in your application. Normally, this is only required 5.378 - when preparing a distribution release, but is available as a separate 5.379 - target in case the developer wants to create Javadocs independently. 5.380 - 5.381 ---> 5.382 - 5.383 - <target name="javadoc" depends="compile" 5.384 - description="Create Javadoc API documentation"> 5.385 - 5.386 - <mkdir dir="${dist.home}/docs/api"/> 5.387 - <javadoc sourcepath="${src.home}" 5.388 - destdir="${dist.home}/docs/api" 5.389 - packagenames="*"> 5.390 - <classpath refid="compile.classpath"/> 5.391 - </javadoc> 5.392 - 5.393 - </target> 5.394 - 5.395 - 5.396 - 5.397 -<!-- ====================== List Target =================================== --> 5.398 - 5.399 -<!-- 5.400 - 5.401 - The "list" target asks the specified Tomcat 4 installation to list the 5.402 - currently running web applications, either loaded at startup time or 5.403 - installed dynamically. It is useful to determine whether or not the 5.404 - application you are currently developing has been installed. 5.405 - 5.406 ---> 5.407 - 5.408 - <target name="list" 5.409 - description="List installed applications on servlet container"> 5.410 - 5.411 - <list url="${manager.url}" 5.412 - username="${manager.username}" 5.413 - password="${manager.password}"/> 5.414 - 5.415 - </target> 5.416 - 5.417 - 5.418 -<!-- ==================== Prepare Target ================================== --> 5.419 - 5.420 -<!-- 5.421 - 5.422 - The "prepare" target is used to create the "build" destination directory, 5.423 - and copy the static contents of your web application to it. If you need 5.424 - to copy static files from external dependencies, you can customize the 5.425 - contents of this task. 5.426 - 5.427 - Normally, this task is executed indirectly when needed. 5.428 - 5.429 ---> 5.430 - 5.431 - <target name="prepare"> 5.432 - 5.433 - <!-- Create build directories as needed --> 5.434 - <mkdir dir="${build.home}"/> 5.435 - <mkdir dir="${build.home}/WEB-INF"/> 5.436 - <mkdir dir="${build.home}/WEB-INF/classes"/> 5.437 - 5.438 - 5.439 - <!-- Copy static content of this web application --> 5.440 - <copy todir="${build.home}"> 5.441 - <fileset dir="${web.home}"/> 5.442 - </copy> 5.443 - 5.444 - <!-- Copy external dependencies as required --> 5.445 - <!-- *** CUSTOMIZE HERE AS REQUIRED BY YOUR APPLICATION *** --> 5.446 - <mkdir dir="${build.home}/WEB-INF/lib"/> 5.447 -<!-- 5.448 - <copy todir="${build.home}/WEB-INF/lib" file="${foo.jar}"/> 5.449 ---> 5.450 - 5.451 - <!-- Copy static files from external dependencies as needed --> 5.452 - <!-- *** CUSTOMIZE HERE AS REQUIRED BY YOUR APPLICATION *** --> 5.453 - 5.454 - </target> 5.455 - 5.456 - 5.457 -<!-- ==================== Reload Target =================================== --> 5.458 - 5.459 -<!-- 5.460 - 5.461 - The "reload" target tells the specified Tomcat 4 installation to dynamically 5.462 - reload this web application, to reflect changes in the underlying classes or 5.463 - the "web.xml" deployment descriptor. 5.464 - 5.465 ---> 5.466 - 5.467 - <target name="reload" depends="compile" 5.468 - description="Reload application on servlet container"> 5.469 - 5.470 - <reload url="${manager.url}" 5.471 - username="${manager.username}" 5.472 - password="${manager.password}" 5.473 - path="${app.path}"/> 5.474 - 5.475 - </target> 5.476 - 5.477 - 5.478 -<!-- ==================== Remove Target =================================== --> 5.479 - 5.480 -<!-- 5.481 - 5.482 - The "remove" target tells the specified Tomcat 4 installation to dynamically 5.483 - remove this web application from service. 5.484 - 5.485 - NOTE: This is the logical opposite of the "install" target. 5.486 - 5.487 ---> 5.488 - 5.489 - <target name="remove" 5.490 - description="Remove application on servlet container"> 5.491 - 5.492 - <remove url="${manager.url}" 5.493 - username="${manager.username}" 5.494 - password="${manager.password}" 5.495 - path="${app.path}"/> 5.496 - 5.497 - </target> 5.498 - 5.499 - 5.500 - <target name="help"> 5.501 - <echo>all clean, them compile</echo> 5.502 - <echo>dist create war file</echo> 5.503 - <echo>install install application in servlet container</echo> 5.504 - <echo>list list applications installed in servelet container</echo> 5.505 - <echo>reload reload application in servlet container</echo> 5.506 - <echo>remove dynamically remove web application</echo> 5.507 - </target> 5.508 - 5.509 -</project>
6.1 --- a/tools/control/src/org/xenoserver/control/Command.java Thu Jul 10 08:44:44 2003 +0000 6.2 +++ b/tools/control/src/org/xenoserver/control/Command.java Thu Jul 10 08:45:03 2003 +0000 6.3 @@ -14,6 +14,19 @@ public abstract class Command { 6.4 * @throws CommandFailedException if the command could not be completed. 6.5 */ 6.6 public abstract String execute() throws CommandFailedException; 6.7 + 6.8 + /** 6.9 + * Wraps execute() suitable for the web interface: all exceptions are 6.10 + * converted into output strings. 6.11 + * @return Output string, whether command succeeded or not. 6.12 + */ 6.13 + public String executeWeb() { 6.14 + try { 6.15 + return execute(); 6.16 + } catch (CommandFailedException e) { 6.17 + return e.getMessage(); 6.18 + } 6.19 + } 6.20 6.21 /** 6.22 * Construct a string to report the execution of a command.
7.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 7.2 +++ b/tools/control/src/org/xenoserver/web/RootBean.java Thu Jul 10 08:45:03 2003 +0000 7.3 @@ -0,0 +1,45 @@ 7.4 +/* 7.5 + * RootBean.java 7.6 + * 03.05.05 aho creation 7.7 + */ 7.8 + 7.9 +package org.xenoserver.web; 7.10 + 7.11 +import javax.servlet.http.HttpSessionBindingEvent; 7.12 +import javax.servlet.http.HttpSessionBindingListener; 7.13 + 7.14 +import org.xenoserver.control.PartitionManager; 7.15 +import org.xenoserver.control.Settings; 7.16 +import org.xenoserver.control.VirtualDiskManager; 7.17 +import org.xenoserver.control.XML; 7.18 + 7.19 +public class RootBean implements HttpSessionBindingListener { 7.20 + PartitionManager pm; 7.21 + VirtualDiskManager vdm; 7.22 + 7.23 + public RootBean() { 7.24 + valueBound(null); 7.25 + } 7.26 + 7.27 + public void valueBound(HttpSessionBindingEvent event) { 7.28 + pm = PartitionManager.IT; 7.29 + vdm = VirtualDiskManager.IT; 7.30 + XML.loadState(pm, vdm, Settings.STATE_INPUT_FILE); 7.31 + } 7.32 + 7.33 + public void valueUnbound(HttpSessionBindingEvent event) { 7.34 + doFlushState(); 7.35 + } 7.36 + 7.37 + public PartitionManager pm() { 7.38 + return pm; 7.39 + } 7.40 + 7.41 + public VirtualDiskManager vdm() { 7.42 + return vdm; 7.43 + } 7.44 + 7.45 + public void doFlushState() { 7.46 + XML.saveState(pm, vdm, Settings.STATE_OUTPUT_FILE); 7.47 + } 7.48 +}
8.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 8.2 +++ b/tools/control/src/org/xenoserver/web/SystemConfigurationBean.java Thu Jul 10 08:45:03 2003 +0000 8.3 @@ -0,0 +1,20 @@ 8.4 +/* 8.5 + * SystemConfigurationBean.java 8.6 + * 03.05.06 aho creation 8.7 + */ 8.8 + 8.9 +package org.xenoserver.web; 8.10 + 8.11 +import org.xenoserver.control.Defaults; 8.12 + 8.13 +public class SystemConfigurationBean { 8.14 + private Defaults defaults; 8.15 + 8.16 + public SystemConfigurationBean() { 8.17 + defaults = new Defaults(); 8.18 + } 8.19 + 8.20 + public Defaults getDefaults() { 8.21 + return defaults; 8.22 + } 8.23 +}
9.1 --- a/tools/control/src/uk/ac/cam/cl/xeno/xenctl/RootBean.java Thu Jul 10 08:44:44 2003 +0000 9.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 9.3 @@ -1,239 +0,0 @@ 9.4 -/* 9.5 - * RootBean.java 9.6 - * 03.05.05 aho creation 9.7 - */ 9.8 - 9.9 -package uk.ac.cam.cl.xeno.xenctl; 9.10 - 9.11 -import java.io.FileWriter; 9.12 -import java.util.Date; 9.13 -import java.util.Enumeration; 9.14 -import javax.servlet.http.HttpSessionBindingEvent; 9.15 -import javax.servlet.http.HttpSessionBindingListener; 9.16 - 9.17 -public class 9.18 -RootBean 9.19 - implements HttpSessionBindingListener 9.20 -{ 9.21 - static String state_filename_in = "/var/lib/xen/vdstate.xml"; 9.22 - static String state_filename_out = "/var/lib/xen/vdstate.xml"; 9.23 - static String partition_filename = "/proc/partitions"; 9.24 - static int default_sector_size = 512; 9.25 - 9.26 - PartitionManager pm; 9.27 - VirtualDiskManager vdm; 9.28 - 9.29 - int counter = 0; 9.30 - 9.31 - public 9.32 - RootBean () 9.33 - { 9.34 - valueBound(null); 9.35 - } 9.36 - 9.37 - public void 9.38 - valueBound (HttpSessionBindingEvent event) 9.39 - { 9.40 - pm = new PartitionManager(partition_filename); 9.41 - vdm = new VirtualDiskManager(); 9.42 - XML.load_state(pm, vdm, state_filename_in); 9.43 - } 9.44 - 9.45 - public void 9.46 - valueUnbound (HttpSessionBindingEvent event) 9.47 - { 9.48 - doFlushState(); 9.49 - } 9.50 - 9.51 - public int 9.52 - getDebugCounter() 9.53 - { 9.54 - return counter++; 9.55 - } 9.56 - 9.57 - /*************************************************************************/ 9.58 - 9.59 - public int 9.60 - getPartitionCount() 9.61 - { 9.62 - return pm.getPartitionCount(); 9.63 - } 9.64 - 9.65 - public Partition 9.66 - getPartition(int index) 9.67 - { 9.68 - return pm.getPartition(index); 9.69 - } 9.70 - 9.71 - public String 9.72 - doAddPartition(String partition, String chunksize ) 9.73 - { 9.74 - Partition p = pm.get_partition(partition); 9.75 - String result="done"; 9.76 - int loop; 9.77 - long size; 9.78 - 9.79 - if (p == null) 9.80 - { 9.81 - return (" eh? what partition: " + partition); 9.82 - } 9.83 - 9.84 - size = Library.parse_size(chunksize) / default_sector_size; 9.85 - if (size == 0) 9.86 - { 9.87 - return ("error: invalid chunk size"); 9.88 - } 9.89 - vdm.add_xeno_partition(p, size); 9.90 - pm.add_xeno_partition(p); 9.91 - 9.92 - /* return pm.dump(true); */ 9.93 - return "done"; 9.94 - } 9.95 - 9.96 - /*************************************************************************/ 9.97 - 9.98 - public int 9.99 - getVirtualDiskCount () 9.100 - { 9.101 - return vdm.getVirtualDiskCount(); 9.102 - } 9.103 - 9.104 - public VirtualDisk 9.105 - getVirtualDisk (int index) 9.106 - { 9.107 - return vdm.getVirtualDisk(index); 9.108 - } 9.109 - 9.110 - public VirtualDisk 9.111 - getVirtualDiskKey (String key) 9.112 - { 9.113 - return vdm.get_virtual_disk_key(key); 9.114 - } 9.115 - 9.116 - public String 9.117 - doCreateVirtualDisk (String name, String size, long expiry) 9.118 - { 9.119 - VirtualDisk vd; 9.120 - Date date = new Date(); 9.121 - long parse_size; 9.122 - 9.123 - 9.124 - parse_size = Library.parse_size(size)/default_sector_size; 9.125 - if (parse_size == 0) 9.126 - { 9.127 - return ("error: invalid size"); 9.128 - } 9.129 - vd = vdm.create_virtual_disk(name, parse_size, 9.130 - new Date(date.getTime() + expiry)); 9.131 - 9.132 - return ("Virtual Disk created with key: " + vd.get_key()); 9.133 - 9.134 - } 9.135 - 9.136 - public String 9.137 - doDeleteVirtualDisk (String key) 9.138 - { 9.139 - if (key == null || 9.140 - key.trim().equals("")) 9.141 - { 9.142 - return ("error: no virtual disk specified"); 9.143 - } 9.144 - vdm.delete_virtual_disk(key); 9.145 - 9.146 - return ("okay"); 9.147 - } 9.148 - 9.149 - public String 9.150 - doRefreshVirtualDisk (String key, long expiry) 9.151 - { 9.152 - VirtualDisk vd = vdm.get_virtual_disk_key(key); 9.153 - Date date; 9.154 - String s = ""; 9.155 - 9.156 - if (vd == null) 9.157 - { 9.158 - return ("disk not found: " + key); 9.159 - } 9.160 - s = vd.get_expiry().toString(); 9.161 - date = new Date(vd.get_expiry().getTime() + expiry); 9.162 - vd.set_expiry(date); 9.163 - 9.164 - return ("okay " + expiry + " " + s + " " + date.toString()); 9.165 - } 9.166 - 9.167 - /*************************************************************************/ 9.168 - 9.169 - public int 9.170 - getFreeExtentCount () 9.171 - { 9.172 - VirtualDisk free = vdm.getFreeVirtualDisk(); 9.173 - return free.getExtentCount(); 9.174 - } 9.175 - 9.176 - public Extent 9.177 - getFreeExtent (int index) 9.178 - { 9.179 - VirtualDisk free = vdm.getFreeVirtualDisk(); 9.180 - return free.getExtent(index); 9.181 - } 9.182 - 9.183 - /*************************************************************************/ 9.184 - 9.185 - public Enumeration 9.186 - getVirtualBlockDevices () 9.187 - { 9.188 - return vdm.getVirtualBlockDevices(); 9.189 - } 9.190 - 9.191 - public String 9.192 - doCreateVirtualBlockDevice (String vd_key, int domain, 9.193 - int vbd_num, String mode) 9.194 - { 9.195 - VirtualBlockDevice vbd; 9.196 - VirtualDisk vd; 9.197 - 9.198 - vbd = vdm.create_virtual_block_device(vd_key, domain, vbd_num, mode); 9.199 - if (vbd != null) 9.200 - { 9.201 - String command; 9.202 - FileWriter fw; 9.203 - 9.204 - vd = vdm.get_virtual_disk_key(vd_key); 9.205 - command = vd.dump_xen(vbd); 9.206 - 9.207 - try 9.208 - { 9.209 - fw = new FileWriter("/proc/xeno/dom0/vhd"); 9.210 - fw.write(command); 9.211 - fw.flush(); 9.212 - fw.close(); 9.213 - } 9.214 - catch (Exception e) 9.215 - { 9.216 - return (e.toString()); 9.217 - } 9.218 - return command; 9.219 - } 9.220 - else 9.221 - { 9.222 - return "Error encountered"; 9.223 - } 9.224 - } 9.225 - 9.226 - public String 9.227 - doFlushVirtualBlockDevices() 9.228 - { 9.229 - vdm.flush_virtual_block_devices(); 9.230 - return "done"; 9.231 - } 9.232 - 9.233 - /*************************************************************************/ 9.234 - 9.235 - 9.236 - public void 9.237 - doFlushState () 9.238 - { 9.239 - XML.dump_state(pm, vdm, state_filename_out); 9.240 - } 9.241 - 9.242 -}
10.1 --- a/tools/control/src/uk/ac/cam/cl/xeno/xenctl/SystemConfigurationBean.java Thu Jul 10 08:44:44 2003 +0000 10.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 10.3 @@ -1,30 +0,0 @@ 10.4 -/* 10.5 - * SystemConfigurationBean.java 10.6 - * 03.05.06 aho creation 10.7 - */ 10.8 - 10.9 -package uk.ac.cam.cl.xeno.xenctl; 10.10 - 10.11 -import java.io.*; 10.12 -import java.lang.Process; 10.13 -import java.lang.Runtime; 10.14 -import uk.ac.cam.cl.xeno.domctl.Defaults; 10.15 - 10.16 -public class 10.17 -SystemConfigurationBean 10.18 -{ 10.19 - Defaults defaults; 10.20 - 10.21 - public 10.22 - SystemConfigurationBean () 10.23 - { 10.24 - defaults = new Defaults(); 10.25 - } 10.26 - 10.27 - public Defaults 10.28 - getDefaults () 10.29 - { 10.30 - return defaults; 10.31 - } 10.32 - 10.33 -}
11.1 --- a/tools/control/web/tmpl/dom-del.tmpl Thu Jul 10 08:44:44 2003 +0000 11.2 +++ b/tools/control/web/tmpl/dom-del.tmpl Thu Jul 10 08:45:03 2003 +0000 11.3 @@ -15,9 +15,15 @@ INCLUDE&dommenu.tmpl 11.4 <tbody> 11.5 <tr><td> 11.6 <% 11.7 - CommandList command_list = new CommandList(); 11.8 - Defaults d = sc.getDefaults(); 11.9 - Domain domains[] = command_list.executeCommand(d); 11.10 + CommandDomainList list = new CommandDomainList(sc.getDefaults()); 11.11 + String output = list.executeWeb(); 11.12 + Domain domains[] = list.domains(); 11.13 + if (output != null) 11.14 + { 11.15 +%> 11.16 +<%= output %> 11.17 +<% 11.18 + } else { 11.19 %> 11.20 11.21 <table cellpadding="2" cellspacing="0" border="0"> 11.22 @@ -45,6 +51,10 @@ INCLUDE&dommenu.tmpl 11.23 </table> 11.24 </td></tr> 11.25 11.26 +<% 11.27 + } 11.28 +%> 11.29 + 11.30 ##WHITESPACE## ##GREYLINE1## ##WHITESPACE## 11.31 11.32 <tr><td>
12.1 --- a/tools/control/web/tmpl/dom-delr.tmpl Thu Jul 10 08:44:44 2003 +0000 12.2 +++ b/tools/control/web/tmpl/dom-delr.tmpl Thu Jul 10 08:45:03 2003 +0000 12.3 @@ -17,7 +17,6 @@ INCLUDE&dommenu.tmpl 12.4 <% 12.5 HttpServletRequestWrapper hsrw = new HttpServletRequestWrapper(request); 12.6 Defaults d = sc.getDefaults(); 12.7 - CommandDestroy command_destroy = new CommandDestroy(); 12.8 12.9 String domains[] = hsrw.getParameterValues("dom"); 12.10 boolean force = hsrw.getParameter("force").equals("true"); 12.11 @@ -34,8 +33,8 @@ Error: no domain specified.<br> 12.12 { 12.13 %> 12.14 result <%= domains[i] %> = 12.15 - <%= command_destroy.executeCommand(d, Integer.parseInt(domains[i]), 12.16 - force) %> <br> 12.17 + <%= new CommandDomainDestroy(d, Integer.parseInt(domains[i]), 12.18 + force).executeWeb() %> <br> 12.19 <% 12.20 } 12.21 }
13.1 --- a/tools/control/web/tmpl/dom-lis.tmpl Thu Jul 10 08:44:44 2003 +0000 13.2 +++ b/tools/control/web/tmpl/dom-lis.tmpl Thu Jul 10 08:45:03 2003 +0000 13.3 @@ -11,9 +11,15 @@ INCLUDE&dommenu.tmpl 13.4 <td valign="top"> 13.5 13.6 <% 13.7 - CommandList command_list = new CommandList(); 13.8 - Defaults d = sc.getDefaults(); 13.9 - Domain domains[] = command_list.executeCommand(d); 13.10 + CommandDomainList list = new CommandDomainList(sc.getDefaults()); 13.11 + String output = list.executeWeb(); 13.12 + Domain domains[] = list.domains(); 13.13 + if (output != null) 13.14 + { 13.15 +%> 13.16 +<%= output %> 13.17 +<% 13.18 + } else { 13.19 %> 13.20 13.21 <table cellpadding="2" cellspacing="0" border="0"> 13.22 @@ -38,7 +44,9 @@ INCLUDE&dommenu.tmpl 13.23 %> 13.24 </tbody> 13.25 </table> 13.26 - 13.27 +<% 13.28 + } 13.29 +%> 13.30 13.31 </td> 13.32 </tbody>
14.1 --- a/tools/control/web/tmpl/dom-new.tmpl Thu Jul 10 08:44:44 2003 +0000 14.2 +++ b/tools/control/web/tmpl/dom-new.tmpl Thu Jul 10 08:45:03 2003 +0000 14.3 @@ -95,19 +95,19 @@ INCLUDE&dommenu.tmpl 14.4 <td></td> <td></td> 14.5 <td class="block" align="right">IP address</td> 14.6 <td></td> 14.7 - <td> <input type="text" size="15" name="ip" value="<%= d.NWIP %>"> </td> 14.8 + <td> <input type="text" size="15" name="ip" value="<%= d.nwIP %>"> </td> 14.9 </tr> 14.10 <tr> 14.11 <td></td> <td></td> 14.12 <td class="block" align="right">Gateway</td> 14.13 <td></td> 14.14 - <td> <input type="text" size="15" name="gw" value="<%= d.NWGW %>"> </td> 14.15 + <td> <input type="text" size="15" name="gw" value="<%= d.nwGateway %>"> </td> 14.16 </tr> 14.17 <tr> 14.18 <td></td> <td></td> 14.19 <td class="block" align="right">Netmask</td> 14.20 <td></td> 14.21 - <td> <input type="text" size="15" name="mask" value="<%= d.NWMask %>"> </td> 14.22 + <td> <input type="text" size="15" name="mask" value="<%= d.nwMask %>"> </td> 14.23 </tr> 14.24 14.25 ##WHITESPACE## ##GREYLINE14## ##WHITESPACE## 14.26 @@ -121,11 +121,11 @@ INCLUDE&dommenu.tmpl 14.27 14.28 <tr> 14.29 <td></td> 14.30 - <td align="right">NFS<input type="radio" name="root" value="nfs"></td> 14.31 + <td align="right">NFS<input type="radio" checked name="root" value="nfs"></td> 14.32 <td align="right">path</td> 14.33 <td></td> 14.34 <td> 14.35 - <input type="text" size="40" name="nfsroot" value="<%= d.NWNFSRoot %>"> 14.36 + <input type="text" size="40" name="nfsroot" value="<%= d.nwNFSRoot %>"> 14.37 </td> 14.38 </tr> 14.39 <tr> 14.40 @@ -133,7 +133,7 @@ INCLUDE&dommenu.tmpl 14.41 <td align="right">server</td> 14.42 <td></td> 14.43 <td> 14.44 - <input type="text" size="15" name="nfsserver" value="<%= d.NWNFSServer%>"> 14.45 + <input type="text" size="15" name="nfsserver" value="<%= d.nwNFSServer%>"> 14.46 </td> 14.47 </tr> 14.48 ##WHITESPACE## 14.49 @@ -143,13 +143,13 @@ INCLUDE&dommenu.tmpl 14.50 <td align="right">path</td> 14.51 <td></td> 14.52 <td> 14.53 - <input type="text" size="40" name="rd" value="/usr/isolinux/initrd.gz"> 14.54 + <input type="text" size="40" name="rd" value="<%= d.domainInitRD %>"> 14.55 </td> 14.56 </tr> 14.57 ##WHITESPACE## 14.58 <tr> 14.59 <td></td> 14.60 - <td align="right">physical disk<input type="radio" checked name="root" value="pdisk"></td> 14.61 + <td align="right">physical disk<input type="radio" name="root" value="pdisk"></td> 14.62 <td align="right">path</td> 14.63 <td></td> 14.64 <td><input type="text" size="40" name="pdisk" value="/dev/sda8"></td> 14.65 @@ -172,7 +172,7 @@ INCLUDE&dommenu.tmpl 14.66 <td></td> 14.67 <td colspan=2 align="right"></td> 14.68 <td></td> 14.69 - <td> <input type="text" size="40" name="args" value="ro"> </td> 14.70 + <td> <input type="text" size="40" name="args" value="<%= d.args %>"> </td> 14.71 </tr> 14.72 14.73
15.1 --- a/tools/control/web/tmpl/dom-newr.tmpl Thu Jul 10 08:44:44 2003 +0000 15.2 +++ b/tools/control/web/tmpl/dom-newr.tmpl Thu Jul 10 08:45:03 2003 +0000 15.3 @@ -16,7 +16,6 @@ INCLUDE&dommenu.tmpl 15.4 <% 15.5 HttpServletRequestWrapper hsrw = new HttpServletRequestWrapper(request); 15.6 Defaults d = sc.getDefaults(); 15.7 - CommandNew command_new = new CommandNew(); 15.8 String root_device = hsrw.getParameter("root"); 15.9 15.10 String nfsroot = null; 15.11 @@ -73,8 +72,9 @@ nw_host = <%= hsrw.getParameter("hostnam 15.12 <br> 15.13 root = <%= disk %> 15.14 <br> 15.15 -output = <br><%= 15.16 - command_new.executeCommand(d, 15.17 +output = <br> 15.18 +<% 15.19 + CommandDomainNew command_new = new CommandDomainNew(d, 15.20 hsrw.getParameter("name"), 15.21 Integer.parseInt(hsrw.getParameter("size")), 15.22 hsrw.getParameter("image"), 15.23 @@ -87,7 +87,20 @@ output = <br><%= 15.24 hsrw.getParameter("gw"), 15.25 hsrw.getParameter("mask"), 15.26 nfsserver, 15.27 - hsrw.getParameter("hostname")) 15.28 + hsrw.getParameter("hostname")); 15.29 + String oneline = command_new.executeWeb(); 15.30 + if ( oneline != null ) { 15.31 +%> 15.32 +<%= oneline %><br> 15.33 +<% 15.34 + } else { 15.35 + String[] output = command_new.output(); 15.36 + for (int i = 0; i < output.length; i++) { 15.37 +%> 15.38 +<%= output[i] %><br> 15.39 +<% 15.40 + } 15.41 + } 15.42 %> 15.43 15.44 </td>
16.1 --- a/tools/control/web/tmpl/dom-sta.tmpl Thu Jul 10 08:44:44 2003 +0000 16.2 +++ b/tools/control/web/tmpl/dom-sta.tmpl Thu Jul 10 08:45:03 2003 +0000 16.3 @@ -15,9 +15,15 @@ INCLUDE&dommenu.tmpl 16.4 <tbody> 16.5 <tr><td> 16.6 <% 16.7 - CommandList command_list = new CommandList(); 16.8 - Defaults d = sc.getDefaults(); 16.9 - Domain domains[] = command_list.executeCommand(d); 16.10 + CommandDomainList list = new CommandDomainList(sc.getDefaults()); 16.11 + String output = list.executeWeb(); 16.12 + Domain domains[] = list.domains(); 16.13 + if (output != null) 16.14 + { 16.15 +%> 16.16 +<%= output %> 16.17 +<% 16.18 + } else { 16.19 %> 16.20 16.21 <table cellpadding="2" cellspacing="0" border="0"> 16.22 @@ -44,6 +50,9 @@ INCLUDE&dommenu.tmpl 16.23 </tbody> 16.24 </table> 16.25 </td></tr> 16.26 +<% 16.27 + } 16.28 +%> 16.29 16.30 ##WHITESPACE## ##GREYLINE1## ##WHITESPACE## 16.31
17.1 --- a/tools/control/web/tmpl/dom-star.tmpl Thu Jul 10 08:44:44 2003 +0000 17.2 +++ b/tools/control/web/tmpl/dom-star.tmpl Thu Jul 10 08:45:03 2003 +0000 17.3 @@ -17,7 +17,6 @@ INCLUDE&dommenu.tmpl 17.4 <% 17.5 HttpServletRequestWrapper hsrw = new HttpServletRequestWrapper(request); 17.6 Defaults d = sc.getDefaults(); 17.7 - CommandStart command_start = new CommandStart(); 17.8 17.9 String domains[] = hsrw.getParameterValues("dom"); 17.10 17.11 @@ -32,8 +31,8 @@ Error: no domain specified.<br> 17.12 for (int i = 0; i < domains.length; i++) 17.13 { 17.14 %> 17.15 -result <%= domains[i] %> =<br> 17.16 -<%= command_start.executeCommand(d, Integer.parseInt(domains[i])) %> <br> 17.17 +result <%= domains[i] %> = 17.18 +<%= new CommandDomainStart(d, Integer.parseInt(domains[i])).executeWeb() %><br> 17.19 <% 17.20 } 17.21 }
18.1 --- a/tools/control/web/tmpl/dom-stp.tmpl Thu Jul 10 08:44:44 2003 +0000 18.2 +++ b/tools/control/web/tmpl/dom-stp.tmpl Thu Jul 10 08:45:03 2003 +0000 18.3 @@ -15,9 +15,15 @@ INCLUDE&dommenu.tmpl 18.4 <tbody> 18.5 <tr><td> 18.6 <% 18.7 - CommandList command_list = new CommandList(); 18.8 - Defaults d = sc.getDefaults(); 18.9 - Domain domains[] = command_list.executeCommand(d); 18.10 + CommandDomainList list = new CommandDomainList(sc.getDefaults()); 18.11 + String output = list.executeWeb(); 18.12 + Domain domains[] = list.domains(); 18.13 + if (output != null) 18.14 + { 18.15 +%> 18.16 +<%= output %> 18.17 +<% 18.18 + } else { 18.19 %> 18.20 18.21 <table cellpadding="2" cellspacing="0" border="0"> 18.22 @@ -44,6 +50,9 @@ INCLUDE&dommenu.tmpl 18.23 </tbody> 18.24 </table> 18.25 </td></tr> 18.26 +<% 18.27 + } 18.28 +%> 18.29 18.30 ##WHITESPACE## ##GREYLINE1## ##WHITESPACE## 18.31
19.1 --- a/tools/control/web/tmpl/dom-stpr.tmpl Thu Jul 10 08:44:44 2003 +0000 19.2 +++ b/tools/control/web/tmpl/dom-stpr.tmpl Thu Jul 10 08:45:03 2003 +0000 19.3 @@ -17,7 +17,6 @@ INCLUDE&dommenu.tmpl 19.4 <% 19.5 HttpServletRequestWrapper hsrw = new HttpServletRequestWrapper(request); 19.6 Defaults d = sc.getDefaults(); 19.7 - CommandStop command_stop = new CommandStop(); 19.8 19.9 String domains[] = hsrw.getParameterValues("dom"); 19.10 19.11 @@ -33,7 +32,7 @@ Error: no domain specified.<br> 19.12 { 19.13 %> 19.14 result <%= domains[i] %> = 19.15 - <%= command_stop.executeCommand(d, Integer.parseInt(domains[i])) %> <br> 19.16 +<%= new CommandDomainStop(d, Integer.parseInt(domains[i])).executeWeb() %><br> 19.17 <% 19.18 } 19.19 }
20.1 --- a/tools/control/web/tmpl/dom.tmpl Thu Jul 10 08:44:44 2003 +0000 20.2 +++ b/tools/control/web/tmpl/dom.tmpl Thu Jul 10 08:45:03 2003 +0000 20.3 @@ -16,7 +16,7 @@ INCLUDE&dommenu.tmpl 20.4 <tr><td nowrap="nowrap">Domain Manager</td></tr> 20.5 <tr><td></td></tr> 20.6 <!-- 20.7 - <tr><td><%= d.XIToolsDir %></td></tr> 20.8 + <tr><td><%= d.xiToolsDir %></td></tr> 20.9 --> 20.10 </tbody> 20.11 </table>
21.1 --- a/tools/control/web/tmpl/makefile Thu Jul 10 08:44:44 2003 +0000 21.2 +++ b/tools/control/web/tmpl/makefile Thu Jul 10 08:45:03 2003 +0000 21.3 @@ -1,5 +1,5 @@ 21.4 src0 = xenostyle.css 21.5 -src1 = index.jsp newdom.jsp about.jsp help.jsp vd.jsp \ 21.6 +src1 = index.jsp about.jsp help.jsp vd.jsp \ 21.7 vd-pv.jsp vd-pa.jsp vd-vdv.jsp vd-vdc.jsp vd-vdd.jsp vd-vdr.jsp \ 21.8 vd-fv.jsp vd-vbdv.jsp vd-vbdc.jsp vd-vbdd.jsp vd-vbdf.jsp \ 21.9 vd-par.jsp vd-vdcr.jsp vd-vddr.jsp vd-vdrr.jsp \ 21.10 @@ -7,7 +7,8 @@ src1 = index.jsp newdom.jsp about.jsp he 21.11 dom.jsp dom-lis.jsp dom-new.jsp dom-newr.jsp dom-sta.jsp dom-star.jsp \ 21.12 dom-stp.jsp dom-stpr.jsp dom-del.jsp dom-delr.jsp 21.13 target = .. 21.14 -target1 = $(target)/index.jsp $(target)/newdom.jsp $(target)/vd.jsp \ 21.15 +target0 = $(target)/xenostyle.css 21.16 +target1 = $(target)/index.jsp $(target)/vd.jsp \ 21.17 $(target)/vd-pv.jsp $(target)/vd-pa.jsp $(target)/vd-vdv.jsp \ 21.18 $(target)/vd-vdc.jsp $(target)/vd-vdd.jsp $(target)/vd-vdr.jsp \ 21.19 $(target)/vd-fv.jsp $(target)/vd-vbdv.jsp $(target)/vd-vbdc.jsp \ 21.20 @@ -22,14 +23,18 @@ target1 = $(target)/index.jsp $(target)/ 21.21 21.22 .SUFFIXES: .tmpl .jsp 21.23 21.24 -.tmpl.jsp: 21.25 - ./install.pl $* 21.26 +all: $(target1) $(target0) 21.27 + 21.28 +$(target)/index.jsp: index.tmpl 21.29 + ./install.pl -s -home index 21.30 + mv index.jsp $(target) 21.31 21.32 -all: $(src0) $(src1) 21.33 - ./install.pl -s -home index 21.34 - mv *.jsp $(target) 21.35 +$(target)/%.jsp: %.tmpl 21.36 + ./install.pl $* 21.37 + mv $*.jsp $(target) 21.38 + 21.39 +$(target0): $(src0) 21.40 cp -f $(src0) $(target) 21.41 21.42 clean: 21.43 - rm -f $(target1) 21.44 - rm -f $(target)/$(src0) 21.45 + rm -f $(target1) $(target0)
22.1 --- a/tools/control/web/tmpl/newdom.tmpl Thu Jul 10 08:44:44 2003 +0000 22.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 22.3 @@ -1,172 +0,0 @@ 22.4 -New Domain 22.5 -SECTION&XenoServers 22.6 - 22.7 -<!-- content --> 22.8 -<img src="pixel.gif" class="block" width="1" height="12"> 22.9 - 22.10 -<form> 22.11 -<table cellpadding="0" cellspacing="0" border="0"> 22.12 -<tbody> 22.13 -<tr> 22.14 - <td width="50"></td> 22.15 - <td></td> 22.16 - <td></td> 22.17 - <td width="7"></td> 22.18 - <td></td> 22.19 -</tr> 22.20 - 22.21 -<tr> 22.22 - <td></td> 22.23 - <td class="block" colspan=4><b>Create A New Domain</b></td> 22.24 -</tr> 22.25 - 22.26 -##WHITESPACE## ##GREYLINE14## ##WHITESPACE## 22.27 - 22.28 -<tr> 22.29 - <td></td> 22.30 - <td class="block" colspan=4>Memory Size</td> 22.31 -</tr> 22.32 -<tr> 22.33 - <td></td> <td></td> <td></td> <td></td> 22.34 - <td> <input type="text" size="5" value="64"> MB </td> 22.35 -</tr> 22.36 - 22.37 -##WHITESPACE## ##GREYLINE14## ##WHITESPACE## 22.38 - 22.39 -<tr> 22.40 - <td></td> 22.41 - <td class="block" colspan=4>Kernel Image</td> 22.42 -</tr> 22.43 -<tr> 22.44 - <td></td> 22.45 - <td colspan=2 align="right">path</td> 22.46 - <td></td> 22.47 - <td> <input type="text" size="40" value="/usr/src/xeno/install/xenolinux.gz"> </td> 22.48 -</tr> 22.49 - 22.50 -##WHITESPACE## ##GREYLINE14## ##WHITESPACE## 22.51 - 22.52 -<tr> 22.53 - <td></td> 22.54 - <td class="block" colspan=4>IP Config</td> 22.55 -</tr> 22.56 -<tr> 22.57 - <td></td> <td></td> 22.58 - <td class="block" align="right">IP address</td> 22.59 - <td></td> 22.60 - <td> <input type="text" size="15" value="128.232.35.202"> </td> 22.61 -</tr> 22.62 -<tr> 22.63 - <td></td> <td></td> 22.64 - <td class="block" align="right">Gateway</td> 22.65 - <td></td> 22.66 - <td> <input type="text" size="15" value="128.232.32.1"> </td> 22.67 -</tr> 22.68 -<tr> 22.69 - <td></td> <td></td> 22.70 - <td class="block" align="right">Netmask</td> 22.71 - <td></td> 22.72 - <td> <input type="text" size="15" value="255.255.240.0"> </td> 22.73 -</tr> 22.74 -<tr> 22.75 - <td></td> <td></td> 22.76 - <td class="block" align="right">New Name</td> 22.77 - <td></td> 22.78 - <td> <input type="text" size="15"> </td> 22.79 -</tr> 22.80 - 22.81 -##WHITESPACE## ##GREYLINE14## ##WHITESPACE## 22.82 - 22.83 -<tr> 22.84 - <td></td> 22.85 - <td class="block" colspan=2>Root File System</td> 22.86 -</tr> 22.87 - 22.88 -##WHITESPACE## 22.89 - 22.90 -<tr> 22.91 - <td></td> 22.92 - <td align="right">NFS<input type="radio" name="root" value="nfs"></td> 22.93 - <td align="right">path</td> 22.94 - <td></td> 22.95 - <td><input type="text" size="40" value="/usr/groups/xeno/srgboot/mousetrap/root0"></td> 22.96 -</tr> 22.97 -<tr> 22.98 - <td></td> <td></td> 22.99 - <td align="right">server</td> 22.100 - <td></td> 22.101 - <td><input type="text" size="15" value="128.232.32.20"></td> 22.102 -</tr> 22.103 - ##WHITESPACE## 22.104 -<tr> 22.105 - <td></td> 22.106 - <td align="right">ramdisk<input type="radio" name="root" value="ram"></td> 22.107 - <td align="right">path</td> 22.108 - <td></td> 22.109 - <td><input type="text" size="40" value="/usr/isolinux/initrd.gz"></td> 22.110 -</tr> 22.111 - ##WHITESPACE## 22.112 -<tr> 22.113 - <td></td> 22.114 - <td align="right">raw partition<input type="radio" name="root" value="raw"></td> 22.115 - <td align="right">path</td> 22.116 - <td></td> 22.117 - <td><input type="text" size="40" value="/dev/xsda8"></td> 22.118 -</tr> 22.119 - ##WHITESPACE## 22.120 -<tr> 22.121 - <td></td> 22.122 - <td align="right">virtual disk<input type="radio" checked name="root" value="virtual"></td> 22.123 - <td align="right">path</td> 22.124 - <td></td> 22.125 - <td><input type="text" size="40" value="/dev/xvda0"></td> 22.126 -</tr> 22.127 - 22.128 -##WHITESPACE## ##GREYLINE14## ##WHITESPACE## 22.129 - 22.130 -<tr> 22.131 - <td></td> 22.132 - <td class="block" colspan=4>Extra Arguments</td> 22.133 -</tr> 22.134 -<tr> 22.135 - <td></td> 22.136 - <td colspan=2 align="right"></td> 22.137 - <td></td> 22.138 - <td> <input type="text" size="40"> </td> 22.139 -</tr> 22.140 - 22.141 - 22.142 -##WHITESPACE## ##GREYLINE14## ##WHITESPACE## 22.143 - 22.144 -<tr> 22.145 - <td></td> 22.146 - <td><input type="submit" value="refresh"></td> 22.147 -</tr> 22.148 - 22.149 -##WHITESPACE## 22.150 - 22.151 -<tr> 22.152 - <td></td> 22.153 - <td colspan=4> 22.154 - <textarea cols="60" rows="5" name="commandline"> 22.155 -When you press refresh, the sample command line shows 22.156 -up here. The user has the option of editing it before 22.157 -pressing execute below. e.g. 22.158 -./newdom 16000 image 128.232.35.202 ip=128.232.35.202:128.232.32.20:128.232.32.1:255.255.240.0::eth0:off root=/dev/xsda9 ro 22.159 -</textarea> 22.160 -</td></tr> 22.161 - 22.162 -##WHITESPACE## 22.163 - 22.164 -<tr> 22.165 - <td></td> 22.166 - <td><input type="submit" value="execute"></td> 22.167 -</tr> 22.168 - 22.169 -</tbody> 22.170 -</table> 22.171 -</form> 22.172 - 22.173 - 22.174 - 22.175 -<!-- end content -->
23.1 --- a/tools/control/web/tmpl/vd-fv.tmpl Thu Jul 10 08:44:44 2003 +0000 23.2 +++ b/tools/control/web/tmpl/vd-fv.tmpl Thu Jul 10 08:45:03 2003 +0000 23.3 @@ -10,25 +10,32 @@ BREADCRUMB&Virtual Disk Manager&vd.jsp 23.4 INCLUDE&vdmenu.tmpl 23.5 <td valign="top"> 23.6 23.7 +<% 23.8 + VirtualDisk free = root.vdm().getFreeDisk(); 23.9 +%> 23.10 23.11 <table cellpadding="0" cellspacing="0" border="0"> 23.12 <tbody> 23.13 23.14 <tr><td> 23.15 +Total available free space: <%= Library.formatSize(free.getSize() * Settings.SECTOR_SIZE,8,true) %> 23.16 +</td></tr> 23.17 + 23.18 + 23.19 +##WHITESPACE## ##GREYLINE1## ##WHITESPACE## 23.20 + 23.21 +<tr><td> 23.22 <table cellpadding="2" cellspacing="0" border="0"> 23.23 <tbody> 23.24 - <tr class="vdh"><td>idx</td><td>disk</td><td>offset</td><td>size </td></tr> 23.25 + <tr class="vdh"><td>disk</td><td>offset</td><td>size </td></tr> 23.26 23.27 <% 23.28 - long space = 0; 23.29 - int count = root.getFreeExtentCount(); 23.30 - for (int loop = 0; loop < count; loop++) 23.31 + Iterator i = free.extents(); 23.32 + while (i.hasNext()) 23.33 { 23.34 - Extent e = root.getFreeExtent(loop); 23.35 - space += e.getSize(); 23.36 + Extent e = (Extent) i.next(); 23.37 %> 23.38 <tr class="vdt"> 23.39 - <td ><%= loop %></td> 23.40 <td ><%= e.getDisk() %></td> 23.41 <td align="right"><%= e.getOffset() %> </td> 23.42 <td align="right"><%= e.getSize() %> </td> 23.43 @@ -40,13 +47,6 @@ INCLUDE&vdmenu.tmpl 23.44 </table> 23.45 </td></tr> 23.46 23.47 - 23.48 -##WHITESPACE## ##GREYLINE1## ##WHITESPACE## 23.49 - 23.50 -<tr><td> 23.51 -Total available freespace: <%= space * 512 / (1024 * 1024) %> MB 23.52 -</td></tr> 23.53 - 23.54 </tbody> 23.55 </table> 23.56
24.1 --- a/tools/control/web/tmpl/vd-pa.tmpl Thu Jul 10 08:44:44 2003 +0000 24.2 +++ b/tools/control/web/tmpl/vd-pa.tmpl Thu Jul 10 08:45:03 2003 +0000 24.3 @@ -20,11 +20,11 @@ INCLUDE&vdmenu.tmpl 24.4 <tbody> 24.5 <tr class="vdh"><td></td><td>maj:min</td><td>blocks</td><td>start sect</td><td>num sects</td><td>name</td></tr> 24.6 <% 24.7 - int count = root.getPartitionCount(); 24.8 + int count = root.pm().getPartitionCount(); 24.9 for (int loop = 0; loop < count; loop++) 24.10 { 24.11 - Partition p = root.getPartition(loop); 24.12 - if (p.getIsXeno() == true) 24.13 + Partition p = root.pm().getPartition(loop); 24.14 + if (p.isXeno() == true) 24.15 { 24.16 %> 24.17 <tr class="vds"><td></td>
25.1 --- a/tools/control/web/tmpl/vd-par.tmpl Thu Jul 10 08:44:44 2003 +0000 25.2 +++ b/tools/control/web/tmpl/vd-par.tmpl Thu Jul 10 08:45:03 2003 +0000 25.3 @@ -40,7 +40,7 @@ Error: chunk size not specified.<br> 25.4 { 25.5 %> 25.6 output[<%= i %>] =<br> 25.7 -<%= root.doAddPartition(partitions[i], size) %> <br> 25.8 +<%= new CommandPartitionAdd(partitions[i], Library.parseSize(size), false).execute() %> <br> 25.9 <% 25.10 } 25.11 }
26.1 --- a/tools/control/web/tmpl/vd-pv.tmpl Thu Jul 10 08:44:44 2003 +0000 26.2 +++ b/tools/control/web/tmpl/vd-pv.tmpl Thu Jul 10 08:45:03 2003 +0000 26.3 @@ -16,11 +16,11 @@ note: highlighted entries are currently 26.4 <tbody> 26.5 <tr class="vdh"><td>maj:min</td><td>blocks</td><td>start sect</td><td>num sects</td><td>name</td></tr> 26.6 <% 26.7 - int count = root.getPartitionCount(); 26.8 + int count = root.pm().getPartitionCount(); 26.9 for (int loop = 0; loop < count; loop++) 26.10 { 26.11 - Partition p = root.getPartition(loop); 26.12 - if (p.getIsXeno() == true) 26.13 + Partition p = root.pm().getPartition(loop); 26.14 + if (p.isXeno() == true) 26.15 { 26.16 %> 26.17 <tr class="vds">
27.1 --- a/tools/control/web/tmpl/vd-vbdc.tmpl Thu Jul 10 08:44:44 2003 +0000 27.2 +++ b/tools/control/web/tmpl/vd-vbdc.tmpl Thu Jul 10 08:45:03 2003 +0000 27.3 @@ -16,25 +16,25 @@ INCLUDE&vdmenu.tmpl 27.4 <tr><td> 27.5 <table cellpadding="2" cellspacing="0" border="0"> 27.6 <tbody> 27.7 - <tr class="vdh"><td></td><td>vd key</td><td width="5"></td><td>name</td><td width="5"></td><td>expiry</td></tr> 27.8 + <tr class="vdh"><td></td><td>vd key</td><td width="5"></td><td>name</td><td width="5"></td><td>expiry</td><td width="5"></td><td>size</td></tr> 27.9 27.10 <% 27.11 - int count = root.getVirtualDiskCount(); 27.12 - for (int loop = 0; loop < count; loop++) 27.13 + Iterator i = root.vdm().getVirtualDisks(); 27.14 + while (i.hasNext()) 27.15 { 27.16 - VirtualDisk vd = root.getVirtualDisk(loop); 27.17 + VirtualDisk vd = (VirtualDisk) i.next(); 27.18 %> 27.19 <tr class="vdt"> 27.20 <td> 27.21 - <input type="radio" name="vd" 27.22 - <% if (loop == 0) { %> checked <% } %> 27.23 - value="<%= vd.getKey() %>"> 27.24 + <input type="radio" name="vd" value="<%= vd.getKey() %>"> 27.25 </td> 27.26 <td><%= vd.getKey() %></td> 27.27 <td></td> 27.28 <td><%= vd.getName() %></td> 27.29 <td></td> 27.30 <td><%= vd.getExpiry() %></td> 27.31 + <td></td> 27.32 + <td><%= Library.formatSize(vd.getSize()*Settings.SECTOR_SIZE,8,false) %></td> 27.33 </tr> 27.34 <% 27.35 }
28.1 --- a/tools/control/web/tmpl/vd-vbdcr.tmpl Thu Jul 10 08:44:44 2003 +0000 28.2 +++ b/tools/control/web/tmpl/vd-vbdcr.tmpl Thu Jul 10 08:45:03 2003 +0000 28.3 @@ -46,11 +46,18 @@ Error: No virtual block device number sp 28.4 { 28.5 domain = Integer.decode(hsrw.getParameter("domain")).intValue(); 28.6 vbd = Integer.decode(hsrw.getParameter("vbd")).intValue(); 28.7 + Mode mode; 28.8 + if (hsrw.getParameter("mode").equals("rw")) { 28.9 + mode = Mode.READ_WRITE; 28.10 + } else { 28.11 + mode = Mode.READ_ONLY; 28.12 + } 28.13 + 28.14 %> 28.15 output =<br> 28.16 -<%= root.doCreateVirtualBlockDevice(hsrw.getParameter("vd"), 28.17 +<%= new CommandVbdCreate(hsrw.getParameter("vd"), 28.18 domain, vbd, 28.19 - hsrw.getParameter("mode")) %> 28.20 + mode).execute() %> 28.21 <% 28.22 } 28.23 catch (NumberFormatException e)
29.1 --- a/tools/control/web/tmpl/vd-vbdf.tmpl Thu Jul 10 08:44:44 2003 +0000 29.2 +++ b/tools/control/web/tmpl/vd-vbdf.tmpl Thu Jul 10 08:45:03 2003 +0000 29.3 @@ -20,14 +20,15 @@ INCLUDE&vdmenu.tmpl 29.4 <tr class="vdh"><td>vd key</td><td>dom</td><td>vbd</td><td>mode</td></tr> 29.5 29.6 <% 29.7 - for (Enumeration e = root.getVirtualBlockDevices(); e.hasMoreElements();) 29.8 + for (Iterator i = root.vdm().getVirtualBlockDevices(); i.hasNext();) 29.9 { 29.10 - VirtualBlockDevice vbd = (VirtualBlockDevice) e.nextElement(); 29.11 + VirtualBlockDevice vbd = (VirtualBlockDevice) i.next(); 29.12 + VirtualDisk vd = vbd.getVirtualDisk(); 29.13 %> 29.14 <tr class="vdt"> 29.15 - <td><%= vbd.getKey() %></td> 29.16 + <td><%= vd.getKey() %></td> 29.17 <td><%= vbd.getDomain() %></td> 29.18 - <td><%= vbd.getVBDNum() %></td> 29.19 + <td><%= vbd.getVbdNum() %></td> 29.20 <td><%= vbd.getMode().toString() %></td> 29.21 </tr> 29.22 <%
30.1 --- a/tools/control/web/tmpl/vd-vbdfr.tmpl Thu Jul 10 08:44:44 2003 +0000 30.2 +++ b/tools/control/web/tmpl/vd-vbdfr.tmpl Thu Jul 10 08:45:03 2003 +0000 30.3 @@ -17,7 +17,7 @@ INCLUDE&vdmenu.tmpl 30.4 <% 30.5 HttpServletRequestWrapper hsrw = new HttpServletRequestWrapper(request); 30.6 %> 30.7 -output = <%= root.doFlushVirtualBlockDevices() %> 30.8 +output = <%= new CommandVbdFlush().execute() %> 30.9 <% 30.10 root.doFlushState(); 30.11 %>
31.1 --- a/tools/control/web/tmpl/vd-vbdv.tmpl Thu Jul 10 08:44:44 2003 +0000 31.2 +++ b/tools/control/web/tmpl/vd-vbdv.tmpl Thu Jul 10 08:45:03 2003 +0000 31.3 @@ -16,16 +16,16 @@ INCLUDE&vdmenu.tmpl 31.4 31.5 31.6 <% 31.7 - for (Enumeration e = root.getVirtualBlockDevices(); e.hasMoreElements();) 31.8 + for (Iterator i = root.vdm().getVirtualBlockDevices(); i.hasNext();) 31.9 { 31.10 - VirtualBlockDevice vbd = (VirtualBlockDevice) e.nextElement(); 31.11 - VirtualDisk vd = root.getVirtualDiskKey(vbd.getKey()); 31.12 + VirtualBlockDevice vbd = (VirtualBlockDevice) i.next(); 31.13 + VirtualDisk vd = vbd.getVirtualDisk(); 31.14 %> 31.15 <tr class="vdt"> 31.16 <td><%= vbd.getDomain() %></td> 31.17 - <td><%= vbd.getVBDNum() %></td> 31.18 + <td><%= vbd.getVbdNum() %></td> 31.19 <td><%= vbd.getMode().toString() %></td> 31.20 - <td><%= vbd.getKey() %></td> 31.21 + <td><%= vd.getKey() %></td> 31.22 <td><%= vd.getName() %></td> 31.23 </tr> 31.24 <%
32.1 --- a/tools/control/web/tmpl/vd-vdcr.tmpl Thu Jul 10 08:44:44 2003 +0000 32.2 +++ b/tools/control/web/tmpl/vd-vdcr.tmpl Thu Jul 10 08:45:03 2003 +0000 32.3 @@ -60,9 +60,11 @@ Error: expiry time not specified.<br> 32.4 { 32.5 expiry *= 24 * 60 * 60 * 1000 * 365; 32.6 } 32.7 + 32.8 + expiry += System.currentTimeMillis(); 32.9 %> 32.10 output =<br> 32.11 -<%= root.doCreateVirtualDisk( hsrw.getParameter("name"), size, expiry) %> 32.12 +<%= new CommandVdCreate( hsrw.getParameter("name"), Library.parseSize(size), new Date(expiry)).execute() %> 32.13 <br> 32.14 <% 32.15 }
33.1 --- a/tools/control/web/tmpl/vd-vdd.tmpl Thu Jul 10 08:44:44 2003 +0000 33.2 +++ b/tools/control/web/tmpl/vd-vdd.tmpl Thu Jul 10 08:45:03 2003 +0000 33.3 @@ -16,13 +16,13 @@ INCLUDE&vdmenu.tmpl 33.4 <tr><td> 33.5 <table cellpadding="2" cellspacing="0" border="0"> 33.6 <tbody> 33.7 - <tr class="vdh"><td></td><td>key</td><td width="5"></td><td>name</td><td width="5"></td><td>expiry</td></tr> 33.8 + <tr class="vdh"><td></td><td>key</td><td width="5"></td><td>name</td><td width="5"></td><td>expiry</td><td width="5"></td><td>size</td></tr> 33.9 33.10 <% 33.11 - int count = root.getVirtualDiskCount(); 33.12 - for (int loop = 0; loop < count; loop++) 33.13 + Iterator i = root.vdm().getVirtualDisks(); 33.14 + while (i.hasNext()) 33.15 { 33.16 - VirtualDisk vd = root.getVirtualDisk(loop); 33.17 + VirtualDisk vd = (VirtualDisk) i.next(); 33.18 %> 33.19 <tr class="vdt"> 33.20 <td><input type="checkbox" name="vd" value="<%= vd.getKey() %>"></td> 33.21 @@ -31,6 +31,8 @@ INCLUDE&vdmenu.tmpl 33.22 <td><%= vd.getName() %></td> 33.23 <td></td> 33.24 <td><%= vd.getExpiry() %></td> 33.25 + <td></td> 33.26 + <td><%= Library.formatSize(vd.getSize()*Settings.SECTOR_SIZE,8,false) %></td> 33.27 </tr> 33.28 <% 33.29 }
34.1 --- a/tools/control/web/tmpl/vd-vddr.tmpl Thu Jul 10 08:44:44 2003 +0000 34.2 +++ b/tools/control/web/tmpl/vd-vddr.tmpl Thu Jul 10 08:45:03 2003 +0000 34.3 @@ -18,7 +18,7 @@ INCLUDE&vdmenu.tmpl 34.4 34.5 vd= <%= hsrw.getParameter("vd") %> 34.6 34.7 -vd= <%= root.doDeleteVirtualDisk(hsrw.getParameter("vd")) %> 34.8 +vd= <%= new CommandVdDelete(hsrw.getParameter("vd")).execute() %> 34.9 34.10 <% 34.11 root.doFlushState();
35.1 --- a/tools/control/web/tmpl/vd-vdr.tmpl Thu Jul 10 08:44:44 2003 +0000 35.2 +++ b/tools/control/web/tmpl/vd-vdr.tmpl Thu Jul 10 08:45:03 2003 +0000 35.3 @@ -16,13 +16,13 @@ INCLUDE&vdmenu.tmpl 35.4 <tr><td> 35.5 <table cellpadding="2" cellspacing="0" border="0"> 35.6 <tbody> 35.7 - <tr class="vdh"><td></td><td>key</td><td width="5"></td><td>name</td><td width="5"></td><td>expiry</td></tr> 35.8 + <tr class="vdh"><td></td><td>key</td><td width="5"></td><td>name</td><td width="5"></td><td>expiry</td><td width="5"></td><td>size</td></tr> 35.9 35.10 <% 35.11 - int count = root.getVirtualDiskCount(); 35.12 - for (int loop = 0; loop < count; loop++) 35.13 + Iterator i = root.vdm().getVirtualDisks(); 35.14 + while (i.hasNext()) 35.15 { 35.16 - VirtualDisk vd = root.getVirtualDisk(loop); 35.17 + VirtualDisk vd = (VirtualDisk) i.next(); 35.18 %> 35.19 <tr class="vdt"> 35.20 <td><input type="checkbox" name="vd" value="<%= vd.getKey() %>"></td> 35.21 @@ -31,6 +31,8 @@ INCLUDE&vdmenu.tmpl 35.22 <td><%= vd.getName() %></td> 35.23 <td></td> 35.24 <td><%= vd.getExpiry() %></td> 35.25 + <td></td> 35.26 + <td><%= Library.formatSize(vd.getSize()*Settings.SECTOR_SIZE,8,false) %></td> 35.27 </tr> 35.28 <% 35.29 }
36.1 --- a/tools/control/web/tmpl/vd-vdrr.tmpl Thu Jul 10 08:44:44 2003 +0000 36.2 +++ b/tools/control/web/tmpl/vd-vdrr.tmpl Thu Jul 10 08:45:03 2003 +0000 36.3 @@ -51,10 +51,12 @@ Error: expiry time not specified.<br> 36.4 expiry *= 24 * 60 * 60 * 1000 * 365; 36.5 } 36.6 36.7 + expiry += System.currentTimeMillis(); 36.8 + 36.9 for (int i = 0; i < vds.length; i++) 36.10 { 36.11 %> 36.12 -vd = <%= root.doRefreshVirtualDisk(vds[i], expiry) %> <br> 36.13 +vd = <%= new CommandVdRefresh(vds[i], new Date(expiry)).execute() %> <br> 36.14 <% 36.15 } 36.16 }
37.1 --- a/tools/control/web/tmpl/vd-vdv.tmpl Thu Jul 10 08:44:44 2003 +0000 37.2 +++ b/tools/control/web/tmpl/vd-vdv.tmpl Thu Jul 10 08:45:03 2003 +0000 37.3 @@ -12,13 +12,13 @@ INCLUDE&vdmenu.tmpl 37.4 37.5 <table cellpadding="2" cellspacing="0" border="0"> 37.6 <tbody> 37.7 - <tr class="vdh"><td>key</td><td width="5"></td><td>name</td><td width="5"></td><td>expiry</td></tr> 37.8 + <tr class="vdh"><td>key</td><td width="5"></td><td>name</td><td width="5"></td><td>expiry</td><td width="5"></td><td>size</td></tr> 37.9 37.10 <% 37.11 - int count = root.getVirtualDiskCount(); 37.12 - for (int loop = 0; loop < count; loop++) 37.13 + Iterator i = root.vdm().getVirtualDisks(); 37.14 + while (i.hasNext()) 37.15 { 37.16 - VirtualDisk vd = root.getVirtualDisk(loop); 37.17 + VirtualDisk vd = (VirtualDisk) i.next(); 37.18 %> 37.19 <tr class="vdt"> 37.20 <td><%= vd.getKey() %></td> 37.21 @@ -26,6 +26,8 @@ INCLUDE&vdmenu.tmpl 37.22 <td><%= vd.getName() %></td> 37.23 <td></td> 37.24 <td><%= vd.getExpiry() %></td> 37.25 + <td></td> 37.26 + <td><%= Library.formatSize(vd.getSize()*Settings.SECTOR_SIZE,8,false) %></td> 37.27 </tr> 37.28 <% 37.29 }
38.1 --- a/tools/control/web/tmpl/xenohead.def Thu Jul 10 08:44:44 2003 +0000 38.2 +++ b/tools/control/web/tmpl/xenohead.def Thu Jul 10 08:45:03 2003 +0000 38.3 @@ -1,13 +1,14 @@ 38.4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 38.5 38.6 <jsp:useBean id="root" scope="application" 38.7 - class="uk.ac.cam.cl.xeno.xenctl.RootBean" /> 38.8 + class="org.xenoserver.web.RootBean" /> 38.9 <jsp:useBean id="sc" scope="application" 38.10 - class="uk.ac.cam.cl.xeno.xenctl.SystemConfigurationBean" /> 38.11 + class="org.xenoserver.web.SystemConfigurationBean" /> 38.12 <%@ page session="false" %> 38.13 -<%@ page import="uk.ac.cam.cl.xeno.xenctl.*" %> 38.14 -<%@ page import="uk.ac.cam.cl.xeno.domctl.*" %> 38.15 -<%@ page import="java.util.Enumeration" %> 38.16 +<%@ page import="org.xenoserver.web.*" %> 38.17 +<%@ page import="org.xenoserver.control.*" %> 38.18 +<%@ page import="java.util.Iterator" %> 38.19 +<%@ page import="java.util.Date" %> 38.20 <%@ page import="javax.servlet.http.HttpServletRequestWrapper" %> 38.21 38.22 <html lang="en"> 38.23 @@ -20,7 +21,7 @@ 38.24 38.25 <head> 38.26 38.27 -<title>##SECTION## ##SECTIONBREAK## ##TITLE## <%= root.getDebugCounter() %></title> 38.28 +<title>##SECTION## ##SECTIONBREAK## ##TITLE##</title> 38.29 38.30 <link rel="stylesheet" type="text/css" href="xenostyle.css"> 38.31