Merge remote-tracking branch 'origin/master' into merge-branch
Change-Id: Ib8c70c6aec4e320c84546c8ab52e29b97c62d401
This commit is contained in:
commit
7f759c077f
|
@ -12,9 +12,6 @@ neutron.egg-info/
|
|||
neutron/vcsversion.py
|
||||
neutron/versioninfo
|
||||
pbr*.egg/
|
||||
quantum.egg-info/
|
||||
quantum/vcsversion.py
|
||||
quantum/versioninfo
|
||||
setuptools*.egg/
|
||||
*.log
|
||||
*.mo
|
||||
|
|
|
@ -31,7 +31,6 @@ disable=
|
|||
broad-except,
|
||||
dangerous-default-value,
|
||||
deprecated-lambda,
|
||||
duplicate-key,
|
||||
expression-not-assigned,
|
||||
fixme,
|
||||
global-statement,
|
||||
|
|
|
@ -16,6 +16,7 @@ Neutron Specific Commandments
|
|||
- [N324] Prevent use of deprecated contextlib.nested.
|
||||
- [N325] Python 3: Do not use xrange.
|
||||
- [N326] Python 3: do not use basestring.
|
||||
- [N327] Python 3: do not use dict.iteritems.
|
||||
|
||||
Creating Unit Tests
|
||||
-------------------
|
||||
|
|
|
@ -242,10 +242,10 @@ dependencies as the functional tests, using the configuration script
|
|||
tools/configure_for_func_testing.sh is advised (as described above).
|
||||
When running full-stack tests on a clean VM for the first time, we
|
||||
advise to run ./stack.sh successfully to make sure all Neutron's
|
||||
dependencies are met. Also note that in order to preserve resources
|
||||
on the gate, running the dsvm-functional suite will also run all
|
||||
full-stack tests (and a new worker won't be assigned specifically for
|
||||
dsvm-fullstack).
|
||||
dependencies are met. Full-stack based Neutron daemons produce logs to a
|
||||
sub-folder in /tmp/fullstack-logs (for example, a test named
|
||||
"test_example" will produce logs to /tmp/fullstack-logs/test_example/),
|
||||
so that will be a good place to look if your test is failing.
|
||||
|
||||
API Tests
|
||||
=========
|
||||
|
|
|
@ -223,7 +223,7 @@ There are a few options to unsubscribe registered callbacks:
|
|||
resource R, any notification of events related to resource R will no longer be handed
|
||||
over to C, after the unsubscribe_by_resource() invocation.
|
||||
* unsubscribe_all(): say that callback C has subscribed to events A, B for resource R1,
|
||||
and events C, D for resource R2, any notification of events pertaining resouces R1 and
|
||||
and events C, D for resource R2, any notification of events pertaining resources R1 and
|
||||
R2 will no longer be handed over to C, after the unsubscribe_all() invocation.
|
||||
|
||||
The snippet below shows these concepts in action:
|
||||
|
|
|
@ -129,7 +129,7 @@ The testing process will be as follow:
|
|||
the vendor to choose what CI system they see fit to run them. There is no
|
||||
need or requirement to use OpenStack CI resources if they do not want to.
|
||||
Having said that, it may be useful to provide coverage for the shim layer in
|
||||
the form of basic validation as done in `ODL <https://github.com/openstack/neutron/blob/master/neutron/tests/unit/ml2/test_mechanism_odl.py>`_ and `LBaaS A10 driver <https://github.com/openstack/neutron-lbaas/blob/master/neutron_lbaas/tests/unit/services/loadbalancer/drivers/a10networks/test_driver_v1.py>`_.
|
||||
the form of basic validation as done in `ODL <https://git.openstack.org/cgit/openstack/networking-odl/tree/networking_odl/tests/unit/ml2/test_mechanism_odl.py>`_ and `LBaaS A10 driver <https://git.openstack.org/cgit/openstack/neutron-lbaas/tree/neutron_lbaas/tests/unit/services/loadbalancer/drivers/a10networks/test_driver_v1.py>`_.
|
||||
|
||||
* 3rd Party CI will continue to validate vendor integration with Neutron via
|
||||
functional testing. 3rd Party CI is a communication mechanism. This objective
|
||||
|
@ -227,7 +227,7 @@ library, and it leads to the greatest level of flexibility when dealing with Dev
|
|||
dev/test deployments.
|
||||
|
||||
Having said that, most Neutron plugins developed in the past likely already have
|
||||
integration with DevStack in the form of `neutron_plugins <https://github.com/openstack-dev/devstack/tree/master/lib/neutron_plugins>`_.
|
||||
integration with DevStack in the form of `neutron_plugins <https://git.openstack.org/cgit/openstack-dev/devstack/tree/lib/neutron_plugins>`_.
|
||||
If the plugin is being decomposed in vendor integration plus vendor library, it would
|
||||
be necessary to adjust the instructions provided in the neutron_plugin file to pull the
|
||||
vendor library code as a new dependency. For instance, the instructions below:
|
||||
|
@ -247,7 +247,7 @@ vendor library code as a new dependency. For instance, the instructions below:
|
|||
|
||||
could be placed in 'neutron_plugin_configure_service', ahead of the service
|
||||
configuration. An alternative could be under the `third_party section
|
||||
<https://github.com/openstack-dev/devstack/tree/master/lib/neutron_thirdparty>`_,
|
||||
<https://git.openstack.org/cgit/openstack-dev/devstack/tree/lib/neutron_thirdparty>`_,
|
||||
if available. This solution can be similarly exploited for both monolithic
|
||||
plugins or ML2 mechanism drivers. The configuration of the plugin or driver itself can be
|
||||
done by leveraging the extensibility mechanisms provided by `local.conf <http://docs.openstack.org/developer/devstack/configuration.html>`_. In fact, since the .ini file for the vendor plugin or driver lives
|
||||
|
@ -270,9 +270,9 @@ is strongly encouraged to revise the existing DevStack integration, in order to
|
|||
in an extras.d hooks based approach.
|
||||
|
||||
One final consideration is worth making for 3rd party CI setups: if `Devstack Gate
|
||||
<https://github.com/openstack-infra/devstack-gate>`_ is used, it does provide hook
|
||||
<https://git.openstack.org/cgit/openstack-infra/devstack-gate>`_ is used, it does provide hook
|
||||
functions that can be executed at specific times of the devstack-gate-wrap script run.
|
||||
For example, the `Neutron Functional job <https://github.com/openstack-infra/project-config/blob/master/jenkins/jobs/neutron-functional.yaml>`_ uses them. For more details see `devstack-vm-gate-wrap.sh <https://github.com/openstack-infra/devstack-gate/blob/master/devstack-vm-gate-wrap.sh>`_.
|
||||
For example, the `Neutron Functional job <https://git.openstack.org/cgit/openstack-infra/project-config/tree/jenkins/jobs/neutron.yaml>`_ uses them. For more details see `devstack-vm-gate-wrap.sh <https://git.openstack.org/cgit/openstack-infra/devstack-gate/tree/devstack-vm-gate-wrap.sh>`_.
|
||||
|
||||
Documentation Strategies
|
||||
------------------------
|
||||
|
@ -291,12 +291,12 @@ The list of steps below are somewhat the tl;dr; version of what you can find
|
|||
on http://docs.openstack.org/infra/manual/creators.html. They are meant to
|
||||
be the bare minimum you have to complete in order to get you off the ground.
|
||||
|
||||
* Create a public repository: this can be a personal github.com repo or any
|
||||
publicly available git repo, e.g. https://github.com/john-doe/foo.git. This
|
||||
* Create a public repository: this can be a personal git.openstack.org repo or any
|
||||
publicly available git repo, e.g. ``https://github.com/john-doe/foo.git``. This
|
||||
would be a temporary buffer to be used to feed the StackForge one.
|
||||
* Initialize the repository: if you are starting afresh, you may *optionally*
|
||||
want to use cookiecutter to get a skeleton project. You can learn how to use
|
||||
cookiecutter on https://github.com/openstack-dev/cookiecutter.
|
||||
cookiecutter on https://git.openstack.org/cgit/openstack-dev/cookiecutter.
|
||||
If you want to build the repository from an existing Neutron module, you may
|
||||
want to skip this step now, build the history first (next step), and come back
|
||||
here to initialize the remainder of the repository with other files being
|
||||
|
@ -312,7 +312,7 @@ be the bare minimum you have to complete in order to get you off the ground.
|
|||
|
||||
::
|
||||
|
||||
git clone https://github.com/openstack/neutron.git
|
||||
git clone https://git.openstack.org/openstack/neutron.git
|
||||
cd neutron
|
||||
./tools/split.sh
|
||||
# Sit and wait for a while, or grab a cup of your favorite drink
|
||||
|
@ -347,7 +347,7 @@ be the bare minimum you have to complete in order to get you off the ground.
|
|||
the previous step. In the latter case, you can do so by specifying the
|
||||
upstream section for your project in project-config/gerrit/project.yaml.
|
||||
Steps are documented on the
|
||||
`Project Creators Manual <http://docs.openstack.org/infra/manual/creators.html>`_.
|
||||
`Repository Creator's Guide <http://docs.openstack.org/infra/manual/creators.html>`_.
|
||||
* Ask for a Launchpad user to be assigned to the core team created. Steps are
|
||||
documented in
|
||||
`this section <http://docs.openstack.org/infra/manual/creators.html#update-the-gerrit-group-members>`_.
|
||||
|
@ -357,7 +357,7 @@ be the bare minimum you have to complete in order to get you off the ground.
|
|||
jobs that validate your patches when posted to Gerrit. For instance, one
|
||||
thing you would need to do is to define an entry point for your plugin
|
||||
or driver in your own setup.cfg similarly as to how it is done
|
||||
`here <https://github.com/stackforge/networking-odl/blob/master/setup.cfg#L31>`_.
|
||||
`here <https://git.openstack.org/cgit/openstack/networking-odl/tree/setup.cfg#n31>`_.
|
||||
* Define an entry point for your plugin or driver in setup.cfg
|
||||
* Create 3rd Party CI account: if you do not already have one, follow
|
||||
instructions for
|
||||
|
@ -391,7 +391,7 @@ will be removed. The following aspects are captured:
|
|||
effort is not considered justified. Assessment may change in the
|
||||
future.
|
||||
|
||||
Absense of an entry for an existing plugin or driver means no active effort
|
||||
Absence of an entry for an existing plugin or driver means no active effort
|
||||
has been observed or potentially not required.
|
||||
* Completed in: the release in which the effort is considered completed. Code
|
||||
completion can be deemed as such, if there is no overlap/duplication between
|
||||
|
@ -402,14 +402,3 @@ will be removed. The following aspects are captured:
|
|||
+===============================+=======================+===========+==================+=========+==============+
|
||||
| freescale-nscs | ml2,fw | no | no | [D] | |
|
||||
+-------------------------------+-----------------------+-----------+------------------+---------+--------------+
|
||||
| networking-cisco_ | core,ml2,l3,fw,vpn | yes | yes | [B] | |
|
||||
+-------------------------------+-----------------------+-----------+------------------+---------+--------------+
|
||||
|
||||
.. _networking-cisco:
|
||||
|
||||
Cisco
|
||||
-----
|
||||
|
||||
* Git: https://git.openstack.org/stackforge/networking-cisco
|
||||
* Launchpad: https://launchpad.net/networking-cisco
|
||||
* PyPI: https://pypi.python.org/pypi/networking-cisco
|
||||
|
|
|
@ -0,0 +1,93 @@
|
|||
==========================
|
||||
Neutron Full Stack Testing
|
||||
==========================
|
||||
|
||||
Why?
|
||||
====
|
||||
|
||||
The idea behind "fullstack" testing is to fill a gap between unit + functional
|
||||
tests and Tempest. Tempest tests are expensive to run, difficult to run in
|
||||
a multi node environment, and are often very high level and provide little
|
||||
indication to what is wrong, only that something is wrong. Developers further
|
||||
benefit from full stack testing as it can sufficiently simulate a real
|
||||
environment and provide a rapidly reproducible way to verify code as you're
|
||||
still writing it.
|
||||
|
||||
How?
|
||||
====
|
||||
|
||||
Full stack tests set up their own Neutron processes (Server & agents). They
|
||||
assume a working Rabbit and MySQL server before the run starts. Instructions
|
||||
on how to run fullstack tests on a VM are available at TESTING.rst:
|
||||
http://git.openstack.org/cgit/openstack/neutron/tree/TESTING.rst
|
||||
|
||||
Each test defines its own topology (What and how many servers and agents should
|
||||
be running).
|
||||
|
||||
Since the test runs on the machine itself, full stack testing enables
|
||||
"white box" testing. This means that you can, for example, create a router
|
||||
through the API and then assert that a namespace was created for it.
|
||||
|
||||
Full stack tests run in the Neutron tree with Neutron resources alone. You
|
||||
may use the Neutron API (Keystone is set to NOAUTH so that it's out of the
|
||||
picture). VMs may be simulated with a helper class that contains a container-
|
||||
like object in its own namespace and IP address. It has helper methods to send
|
||||
different kinds of traffic. The "VM" may be connected to br-int or br-ex,
|
||||
to simulate internal or external traffic.
|
||||
|
||||
Full stack testing can simulate multi node testing by starting an agent
|
||||
multiple times. Specifically, each node would have its own copy of the
|
||||
OVS/DHCP/L3 agents, all configured with the same "host" value. Each OVS agent
|
||||
is connected to its own pair of br-int/br-ex, and those bridges are then
|
||||
interconnected.
|
||||
|
||||
.. image:: images/fullstack-multinode-simulation.png
|
||||
|
||||
When?
|
||||
=====
|
||||
|
||||
1) You'd like to test the interaction between Neutron components (Server
|
||||
and agents) and have already tested each component in isolation via unit or
|
||||
functional tests. You should have many unit tests, fewer tests to test
|
||||
a component and even fewer to test their interaction. Edge cases should
|
||||
not be tested with full stack testing.
|
||||
2) You'd like to increase coverage by testing features that require multi node
|
||||
testing such as l2pop, L3 HA and DVR.
|
||||
3) You'd like to test agent restarts. We've found bugs in the OVS, DHCP and
|
||||
L3 agents and haven't found an effective way to test these scenarios. Full
|
||||
stack testing can help here as the full stack infrastructure can restart an
|
||||
agent during the test.
|
||||
|
||||
Short Term Goals
|
||||
================
|
||||
|
||||
* Multinode & Stability:
|
||||
- Interconnect the internal and external bridges
|
||||
- Convert the L3 HA failover functional test to a full stack test
|
||||
- Write a test for DHCP HA / Multiple DHCP agents per network
|
||||
* Write DVR tests
|
||||
* Write L3 HA tests
|
||||
* Write a test that validates L3 HA + l2pop integration after
|
||||
https://bugs.launchpad.net/neutron/+bug/1365476 is fixed.
|
||||
* Write a test that validates DVR + L3 HA integration after
|
||||
https://bugs.launchpad.net/neutron/+bug/1365473 is fixed.
|
||||
|
||||
None of these tasks currently have owners. Feel free to send patches!
|
||||
|
||||
After these tests are merged, it should be fair to start asking contributors to
|
||||
add full stack tests when appropriate in the patches themselves and not after
|
||||
the fact as there will probably be something to copy/paste from.
|
||||
|
||||
Long Term Goals
|
||||
===============
|
||||
|
||||
* Currently we configure the OVS agent with VLANs segmentation (Only because
|
||||
it's easier). This allows us to validate most functionality, but we might
|
||||
need to support tunneling somehow.
|
||||
* How do advanced services use the full stack testing infrastructure? I'd
|
||||
assume we treat all of the infrastructure classes as a publicly consumed
|
||||
API and have the XaaS repos import and use them.
|
||||
* Currently we configure the Neutron server with the ML2 plugin and the OVS
|
||||
mechanism driver. We may modularize the topology configuration further to
|
||||
allow to rerun full stack tests against different Neutron plugins or ML2
|
||||
mechanism drivers.
|
Binary file not shown.
After Width: | Height: | Size: 29 KiB |
|
@ -21,7 +21,8 @@ Developer Guide
|
|||
In the Developer Guide, you will find information on Neutron's lower level
|
||||
programming APIs. There are sections that cover the core pieces of Neutron,
|
||||
including its database, message queue, and scheduler components. There are
|
||||
also subsections that describe specific plugins inside Neutron.
|
||||
also subsections that describe specific plugins inside Neutron. Finally,
|
||||
the developer guide includes information about Neutron testing infrastructure.
|
||||
|
||||
|
||||
Programming HowTos and Tutorials
|
||||
|
@ -51,6 +52,12 @@ Neutron Internals
|
|||
oslo-incubator
|
||||
callbacks
|
||||
|
||||
Testing
|
||||
-------
|
||||
.. toctree::
|
||||
:maxdepth: 3
|
||||
|
||||
fullstack_testing
|
||||
|
||||
Module Reference
|
||||
----------------
|
||||
|
|
|
@ -6,7 +6,10 @@ This Agent uses the `OpenVSwitch`_ virtual switch to create L2
|
|||
connectivity for instances, along with bridges created in conjunction
|
||||
with OpenStack Nova for filtering.
|
||||
|
||||
ovs-neutron-agent can be configured to use two different networking technologies to create tenant isolation, either GRE tunnels or VLAN tags.
|
||||
ovs-neutron-agent can be configured to use different networking technologies
|
||||
to create tenant isolation.
|
||||
These technologies are implemented as ML2 type drivers which are used in
|
||||
conjunction with the OpenVSwitch mechanism driver.
|
||||
|
||||
VLAN Tags
|
||||
---------
|
||||
|
@ -23,6 +26,51 @@ GRE Tunneling is documented in depth in the `Networking in too much
|
|||
detail <http://openstack.redhat.com/Networking_in_too_much_detail>`_
|
||||
by RedHat.
|
||||
|
||||
|
||||
VXLAN Tunnels
|
||||
-------------
|
||||
|
||||
VXLAN is an overlay technology which encapsulates MAC frames
|
||||
at layer 2 into a UDP header.
|
||||
More information can be found in `The VXLAN wiki page.
|
||||
<http://en.wikipedia.org/wiki/Virtual_Extensible_LAN>`_
|
||||
|
||||
|
||||
Bridge Management
|
||||
-----------------
|
||||
|
||||
In order to make the agent capable of handling more than one tunneling
|
||||
technology, to decouple the requirements of segmentation technology
|
||||
from tenant isolation, and to preserve backward compatibility for OVS
|
||||
agents working without tunneling, the agent relies on a tunneling bridge,
|
||||
or br-tun, and the well known integration bridge, or br-int.
|
||||
|
||||
All VM VIFs are plugged into the integration bridge. VM VIFs on a given
|
||||
virtual network share a common "local" VLAN (i.e. not propagated
|
||||
externally). The VLAN id of this local VLAN is mapped to the physical
|
||||
networking details realizing that virtual network.
|
||||
|
||||
For virtual networks realized as VXLAN/GRE tunnels, a Logical Switch
|
||||
(LS) identifier is used to differentiate tenant traffic on inter-HV
|
||||
tunnels. A mesh of tunnels is created to other Hypervisors in the
|
||||
cloud. These tunnels originate and terminate on the tunneling bridge
|
||||
of each hypervisor, leaving br-int unaffected. Port patching is done
|
||||
to connect local VLANs on the integration bridge to inter-hypervisor
|
||||
tunnels on the tunnel bridge.
|
||||
|
||||
For each virtual network realized as a VLAN or flat network, a veth
|
||||
or a pair of patch ports is used to connect the local VLAN on
|
||||
the integration bridge with the physical network bridge, with flow
|
||||
rules adding, modifying, or stripping VLAN tags as necessary, thus
|
||||
preserving backward compatibility with the way the OVS agent used
|
||||
to work prior to the tunneling capability (for more details, please
|
||||
look at https://review.openstack.org/#/c/4367).
|
||||
|
||||
Bear in mind, that this design decision may be overhauled in the
|
||||
future to support existing VLAN-tagged traffic (coming from NFV VMs
|
||||
for instance) and/or to deal with potential QinQ support natively
|
||||
available in the Open vSwitch.
|
||||
|
||||
Further Reading
|
||||
---------------
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ API Extension
|
|||
The API extension is the 'front' end portion of the code, which handles defining a `REST-ful API`_, which is used by tenants.
|
||||
|
||||
|
||||
.. _`REST-ful API`: https://github.com/openstack/neutron/blob/master/neutron/extensions/securitygroup.py
|
||||
.. _`REST-ful API`: https://git.openstack.org/cgit/openstack/neutron/tree/neutron/extensions/securitygroup.py
|
||||
|
||||
|
||||
Database API
|
||||
|
@ -18,7 +18,7 @@ Database API
|
|||
|
||||
The Security Group API extension adds a number of `methods to the database layer`_ of Neutron
|
||||
|
||||
.. _`methods to the database layer`: https://github.com/openstack/neutron/blob/master/neutron/db/securitygroups_db.py
|
||||
.. _`methods to the database layer`: https://git.openstack.org/cgit/openstack/neutron/tree/neutron/db/securitygroups_db.py
|
||||
|
||||
Agent RPC
|
||||
---------
|
||||
|
@ -27,12 +27,12 @@ This portion of the code handles processing requests from tenants, after they ha
|
|||
running on the compute nodes, and modifying the IPTables rules on each hypervisor.
|
||||
|
||||
|
||||
* `Plugin RPC classes <https://github.com/openstack/neutron/blob/master/neutron/db/securitygroups_rpc_base.py>`_
|
||||
* `Plugin RPC classes <https://git.openstack.org/cgit/openstack/neutron/tree/neutron/db/securitygroups_rpc_base.py>`_
|
||||
|
||||
* `SecurityGroupServerRpcMixin <https://github.com/openstack/neutron/blob/master/neutron/db/securitygroups_rpc_base.py#39>`_ - defines the RPC API that the plugin uses to communicate with the agents running on the compute nodes
|
||||
* `SecurityGroupServerRpcMixin <https://git.openstack.org/cgit/openstack/neutron/tree/neutron/db/securitygroups_rpc_base.py#39>`_ - defines the RPC API that the plugin uses to communicate with the agents running on the compute nodes
|
||||
* SecurityGroupServerRpcMixin - Defines the API methods used to fetch data from the database, in order to return responses to agents via the RPC API
|
||||
|
||||
* `Agent RPC classes <https://github.com/openstack/neutron/blob/master/neutron/agent/securitygroups_rpc.py>`_
|
||||
* `Agent RPC classes <https://git.openstack.org/cgit/openstack/neutron/tree/neutron/agent/securitygroups_rpc.py>`_
|
||||
|
||||
* The SecurityGroupServerRpcApi defines the API methods that can be called by agents, back to the plugin that runs on the Neutron controller
|
||||
* The SecurityGroupAgentRpcCallbackMixin defines methods that a plugin uses to call back to an agent after performing an action called by an agent.
|
||||
|
@ -43,8 +43,8 @@ IPTables Driver
|
|||
|
||||
* ``prepare_port_filter`` takes a ``port`` argument, which is a ``dictionary`` object that contains information about the port - including the ``security_group_rules``
|
||||
|
||||
* ``prepare_port_filter`` `appends the port to an internal dictionary <https://github.com/openstack/neutron/blob/master/neutron/agent/linux/iptables_firewall.py#L60>`_, ``filtered_ports`` which is used to track the internal state.
|
||||
* ``prepare_port_filter`` `appends the port to an internal dictionary <https://git.openstack.org/cgit/openstack/neutron/tree/neutron/agent/linux/iptables_firewall.py#L60>`_, ``filtered_ports`` which is used to track the internal state.
|
||||
|
||||
* Each security group has a `chain <http://www.thegeekstuff.com/2011/01/iptables-fundamentals/>`_ in Iptables.
|
||||
|
||||
* The ``IptablesFirewallDriver`` has a method to `convert security group rules into iptables statements <https://github.com/openstack/neutron/blob/master/neutron/agent/linux/iptables_firewall.py#L248>`_
|
||||
* The ``IptablesFirewallDriver`` has a method to `convert security group rules into iptables statements <https://git.openstack.org/cgit/openstack/neutron/tree/neutron/agent/linux/iptables_firewall.py#L248>`_
|
||||
|
|
|
@ -56,24 +56,14 @@ The official source of all repositories that exist under the Neutron project is:
|
|||
|
||||
http://governance.openstack.org/reference/projects/neutron.html
|
||||
|
||||
The sub-projects are also listed here for convenience and as a place to provide
|
||||
some additional metadata about them:
|
||||
|
||||
+-------------------------------+-----------------------+
|
||||
| Name | Functionality |
|
||||
+===============================+=======================+
|
||||
| | |
|
||||
+-------------------------------+-----------------------+
|
||||
|
||||
Affiliated projects
|
||||
===================
|
||||
|
||||
Affiliated projects are related to Neutron in some way, but are not official
|
||||
sub-projects of Neutron.
|
||||
|
||||
This table shows the unofficial affiliated projects that integrate with Neutron,
|
||||
This table shows the affiliated projects that integrate with Neutron,
|
||||
in one form or another. These projects typically leverage the pluggable
|
||||
capabilities of Neutron, the Neutron API, or a combination of both.
|
||||
This list may contain projects that are already listed in the governance
|
||||
repo but are summarized here to describe the functionality they provide.
|
||||
|
||||
+-------------------------------+-----------------------+
|
||||
| Name | Functionality |
|
||||
|
@ -92,6 +82,8 @@ capabilities of Neutron, the Neutron API, or a combination of both.
|
|||
+-------------------------------+-----------------------+
|
||||
| networking-brocade_ | ml2,l3 |
|
||||
+-------------------------------+-----------------------+
|
||||
| networking-cisco_ | core,ml2,l3,fw,vpn |
|
||||
+-------------------------------+-----------------------+
|
||||
| networking-edge-vpn_ | vpn |
|
||||
+-------------------------------+-----------------------+
|
||||
| networking-hyperv_ | ml2 |
|
||||
|
@ -124,6 +116,8 @@ capabilities of Neutron, the Neutron API, or a combination of both.
|
|||
+-------------------------------+-----------------------+
|
||||
| neutron-powervm_ | ml2 |
|
||||
+-------------------------------+-----------------------+
|
||||
| networking-sfc_ | service composition |
|
||||
+-------------------------------+-----------------------+
|
||||
| networking-vsphere_ | ml2 |
|
||||
+-------------------------------+-----------------------+
|
||||
| vmware-nsx_ | core |
|
||||
|
@ -148,7 +142,7 @@ Functionality legend
|
|||
Arista
|
||||
------
|
||||
|
||||
* Git: https://github.com/stackforge/networking-arista
|
||||
* Git: https://git.openstack.org/cgit/stackforge/networking-arista
|
||||
* Launchpad: https://launchpad.net/networking-arista
|
||||
* Pypi: https://pypi.python.org/pypi/networking-arista
|
||||
|
||||
|
@ -157,7 +151,7 @@ Arista
|
|||
BaGPipe
|
||||
-------
|
||||
|
||||
* Git: https://github.com/stackforge/networking-bagpipe-l2
|
||||
* Git: https://git.openstack.org/cgit/stackforge/networking-bagpipe-l2
|
||||
* Launchpad: https://launchpad.net/bagpipe-l2
|
||||
* Pypi: https://pypi.python.org/pypi/bagpipe-l2
|
||||
|
||||
|
@ -166,14 +160,14 @@ BaGPipe
|
|||
BGPVPN
|
||||
-------
|
||||
|
||||
* Git: https://github.com/stackforge/networking-bgpvpn
|
||||
* Git: https://git.openstack.org/cgit/openstack/networking-bgpvpn
|
||||
|
||||
.. _networking-bigswitch:
|
||||
|
||||
Big Switch Networks
|
||||
-------------------
|
||||
|
||||
* Git: https://git.openstack.org/stackforge/networking-bigswitch
|
||||
* Git: https://git.openstack.org/cgit/stackforge/networking-bigswitch
|
||||
* Pypi: https://pypi.python.org/pypi/bsnstacklib
|
||||
|
||||
.. _networking-brocade:
|
||||
|
@ -181,14 +175,25 @@ Big Switch Networks
|
|||
Brocade
|
||||
-------
|
||||
|
||||
* Git: https://github.com/stackforge/networking-brocade
|
||||
* Git: https://git.openstack.org/cgit/stackforge/networking-brocade
|
||||
* Launchpad: https://launchpad.net/networking-brocade
|
||||
* PyPI: https://pypi.python.org/pypi/networking-brocade
|
||||
|
||||
.. _networking-cisco:
|
||||
|
||||
Cisco
|
||||
-----
|
||||
|
||||
* Git: https://git.openstack.org/cgit/stackforge/networking-cisco
|
||||
* Launchpad: https://launchpad.net/networking-cisco
|
||||
* PyPI: https://pypi.python.org/pypi/networking-cisco
|
||||
|
||||
.. _dragonflow:
|
||||
|
||||
DragonFlow
|
||||
----------
|
||||
|
||||
* Git: https://github.com/stackforge/dragonflow
|
||||
* Git: https://git.openstack.org/cgit/openstack/dragonflow
|
||||
* Launchpad: https://launchpad.net/dragonflow
|
||||
* PyPi: https://pypi.python.org/pypi/DragonFlow
|
||||
|
||||
|
@ -197,7 +202,7 @@ DragonFlow
|
|||
Edge VPN
|
||||
--------
|
||||
|
||||
* Git: https://git.openstack.org/stackforge/networking-edge-vpn
|
||||
* Git: https://git.openstack.org/cgit/stackforge/networking-edge-vpn
|
||||
* Launchpad: https://launchpad.net/edge-vpn
|
||||
|
||||
.. _networking-hyperv:
|
||||
|
@ -205,7 +210,7 @@ Edge VPN
|
|||
Hyper-V
|
||||
-------
|
||||
|
||||
* Git: https://github.com/stackforge/networking-hyperv
|
||||
* Git: https://git.openstack.org/cgit/stackforge/networking-hyperv
|
||||
* Launchpad: https://launchpad.net/networking-hyperv
|
||||
* PyPi: https://pypi.python.org/pypi/networking-hyperv
|
||||
|
||||
|
@ -214,7 +219,7 @@ Hyper-V
|
|||
Group Based Policy
|
||||
------------------
|
||||
|
||||
* Git: https://github.com/stackforge/group-based-policy
|
||||
* Git: https://git.openstack.org/cgit/stackforge/group-based-policy
|
||||
* Launchpad: https://launchpad.net/group-based-policy
|
||||
* PyPi: https://pypi.python.org/pypi/group-based-policy
|
||||
|
||||
|
@ -223,7 +228,7 @@ Group Based Policy
|
|||
IBM SDNVE
|
||||
---------
|
||||
|
||||
* Git: https://github.com/stackforge/networking-ibm
|
||||
* Git: https://git.openstack.org/cgit/stackforge/networking-ibm
|
||||
* Launchpad: https://launchpad.net/networking-ibm
|
||||
|
||||
.. _networking-l2gw:
|
||||
|
@ -231,7 +236,7 @@ IBM SDNVE
|
|||
L2 Gateway
|
||||
----------
|
||||
|
||||
* Git: https://github.com/stackforge/networking-l2gw
|
||||
* Git: https://git.openstack.org/cgit/openstack/networking-l2gw
|
||||
* Launchpad: https://launchpad.net/networking-l2gw
|
||||
|
||||
.. _networking-metaplugin:
|
||||
|
@ -246,7 +251,7 @@ Metaplugin
|
|||
MidoNet
|
||||
-------
|
||||
|
||||
* Git: https://github.com/stackforge/networking-midonet
|
||||
* Git: https://git.openstack.org/cgit/openstack/networking-midonet
|
||||
* Launchpad: https://launchpad.net/networking-midonet
|
||||
* PyPI: https://pypi.python.org/pypi/networking-midonet
|
||||
|
||||
|
@ -255,7 +260,7 @@ MidoNet
|
|||
Mellanox
|
||||
--------
|
||||
|
||||
* Git: https://github.com/stackforge/networking-mlnx
|
||||
* Git: https://git.openstack.org/cgit/stackforge/networking-mlnx
|
||||
* Launchpad: https://launchpad.net/networking-mlnx
|
||||
|
||||
.. _networking-nec:
|
||||
|
@ -263,7 +268,7 @@ Mellanox
|
|||
NEC
|
||||
---
|
||||
|
||||
* Git: https://github.com/stackforge/networking-nec
|
||||
* Git: https://git.openstack.org/cgit/stackforge/networking-nec
|
||||
* Launchpad: https://launchpad.net/networking-nec
|
||||
* PyPI: https://pypi.python.org/pypi/networking-nec
|
||||
|
||||
|
@ -279,7 +284,7 @@ Nuage
|
|||
OpenDayLight
|
||||
------------
|
||||
|
||||
* Git: https://github.com/stackforge/networking-odl
|
||||
* Git: https://git.openstack.org/cgit/openstack/networking-odl
|
||||
* Launchpad: https://launchpad.net/networking-odl
|
||||
|
||||
.. _networking-ofagent:
|
||||
|
@ -287,7 +292,7 @@ OpenDayLight
|
|||
OpenFlow Agent (ofagent)
|
||||
------------------------
|
||||
|
||||
* Git: https://github.com/stackforge/networking-ofagent
|
||||
* Git: https://git.openstack.org/cgit/openstack/networking-ofagent
|
||||
* Launchpad: https://launchpad.net/networking-ofagent
|
||||
* PyPI: https://pypi.python.org/pypi/networking-ofagent
|
||||
|
||||
|
@ -296,7 +301,7 @@ OpenFlow Agent (ofagent)
|
|||
Open Virtual Network
|
||||
--------------------
|
||||
|
||||
* Git: https://github.com/stackforge/networking-ovn
|
||||
* Git: https://git.openstack.org/cgit/openstack/networking-ovn
|
||||
* Launchpad: https://launchpad.net/networking-ovn
|
||||
* PyPI: https://pypi.python.org/pypi/networking-ovn
|
||||
|
||||
|
@ -305,7 +310,7 @@ Open Virtual Network
|
|||
Open DPDK
|
||||
---------
|
||||
|
||||
* Git: https://github.com/stackforge/networking-ovs-dpdk
|
||||
* Git: https://git.openstack.org/cgit/stackforge/networking-ovs-dpdk
|
||||
* Launchpad: https://launchpad.net/networking-ovs-dpdk
|
||||
|
||||
.. _networking-plumgrid:
|
||||
|
@ -313,7 +318,7 @@ Open DPDK
|
|||
PLUMgrid
|
||||
--------
|
||||
|
||||
* Git: https://github.com/stackforge/networking-plumgrid
|
||||
* Git: https://git.openstack.org/cgit/stackforge/networking-plumgrid
|
||||
* Launchpad: https://launchpad.net/networking-plumgrid
|
||||
* PyPI: https://pypi.python.org/pypi/networking-plumgrid
|
||||
|
||||
|
@ -322,7 +327,7 @@ PLUMgrid
|
|||
PowerVM
|
||||
-------
|
||||
|
||||
* Git: https://github.com/stackforge/neutron-powervm
|
||||
* Git: https://git.openstack.org/cgit/stackforge/neutron-powervm
|
||||
* Launchpad: https://launchpad.net/neutron-powervm
|
||||
* PyPI: https://pypi.python.org/pypi/neutron-powervm
|
||||
|
||||
|
@ -331,15 +336,22 @@ PowerVM
|
|||
PortForwarding
|
||||
--------------
|
||||
|
||||
* Git: https://github.com/stackforge/networking-portforwarding
|
||||
* Git: https://git.openstack.org/cgit/stackforge/networking-portforwarding
|
||||
* Launchpad: https://launchpad.net/networking-portforwarding
|
||||
|
||||
.. _networking-sfc:
|
||||
|
||||
SFC
|
||||
---
|
||||
|
||||
* Git: https://git.openstack.org/cgit/openstack/networking-sfc
|
||||
|
||||
.. _networking-vsphere:
|
||||
|
||||
vSphere
|
||||
-------
|
||||
|
||||
* Git: https://github.com/stackforge/networking-vsphere
|
||||
* Git: https://git.openstack.org/cgit/stackforge/networking-vsphere
|
||||
* Launchpad: https://launchpad.net/networking-vsphere
|
||||
|
||||
.. _vmware-nsx:
|
||||
|
@ -347,7 +359,7 @@ vSphere
|
|||
VMware NSX
|
||||
----------
|
||||
|
||||
* Git: https://github.com/stackforge/vmware-nsx
|
||||
* Git: https://git.openstack.org/cgit/openstack/vmware-nsx
|
||||
* Launchpad: https://launchpad.net/vmware-nsx
|
||||
* PyPI: https://pypi.python.org/pypi/vmware-nsx
|
||||
|
||||
|
@ -356,5 +368,5 @@ VMware NSX
|
|||
Octavia
|
||||
-------
|
||||
|
||||
* Git: https://github.com/stackforge/octavia
|
||||
* Git: https://git.openstack.org/cgit/openstack/octavia
|
||||
* Launchpad: https://launchpad.net/octavia
|
||||
|
|
|
@ -1,14 +0,0 @@
|
|||
README
|
||||
|
||||
This docbkx-example folder is provided for those who want to use the maven mojo supplied with the project to build their own documents to PDF and HTML (webhelp) format. It's intended to be a template and model.
|
||||
|
||||
You can edit the src/docbkx/example.xml file using vi, emacs, or another DocBook editor. At Rackspace we use Oxygen. Both Oxygen and XML Mind offer free licenses to those working on open source project documentation.
|
||||
|
||||
To build the output, install Apache Maven (https://maven.apache.org/) and then run:
|
||||
|
||||
mvn clean generate-sources
|
||||
|
||||
in the directory containing the pom.xml file.
|
||||
|
||||
Feel free to ask questions of the openstack-docs team at https://launchpad.net/~openstack-doc.
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>my-groupid</groupId>
|
||||
<artifactId>my-guide</artifactId>
|
||||
<version>1.0.0-SNAPSHOT</version>
|
||||
<packaging>jar</packaging>
|
||||
<name>OpenStack stand alone documentation examples</name>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>com.agilejava.docbkx</groupId>
|
||||
<artifactId>docbkx-maven-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>generate-pdf</goal>
|
||||
<goal>generate-webhelp</goal>
|
||||
</goals>
|
||||
<phase>generate-sources</phase>
|
||||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<xincludeSupported>true</xincludeSupported>
|
||||
<chunkSectionDepth>100</chunkSectionDepth>
|
||||
<postProcess>
|
||||
<copy todir="target/docbkx/webhelp/example/content/figures">
|
||||
<fileset dir="src/docbkx/figures">
|
||||
<include name="**/*.png" />
|
||||
</fileset>
|
||||
</copy>
|
||||
</postProcess>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
</project>
|
|
@ -1,318 +0,0 @@
|
|||
<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:html="http://www.w3.org/1999/xhtml" version="5.0" status="DRAFT">
|
||||
<title>Maven Example Documentation</title>
|
||||
<info>
|
||||
<author>
|
||||
<personname>
|
||||
<firstname/>
|
||||
<surname/>
|
||||
</personname>
|
||||
<affiliation>
|
||||
<orgname>Badges! We don't need any stinking badges!</orgname>
|
||||
</affiliation>
|
||||
</author>
|
||||
<copyright>
|
||||
<year>2011</year>
|
||||
<holder>Timothy D. Witham</holder>
|
||||
</copyright>
|
||||
<releaseinfo>Example v0.1</releaseinfo>
|
||||
<productname>Product Name Doesn't Exist - it's an example!™</productname>
|
||||
<pubdate>2011-01-01</pubdate>
|
||||
<legalnotice role="rs-api">
|
||||
<annotation>
|
||||
<remark>Copyright details are filled in by the template. Change the value of the role
|
||||
attribute on the legalnotice element to change the license. </remark>
|
||||
</annotation>
|
||||
</legalnotice>
|
||||
<abstract>
|
||||
<para> This document is intended for individuals who whish to produce documentation using Maven and having
|
||||
the same "feel" as the documentation that is produced by the mainline OpenStack projects.
|
||||
</para>
|
||||
</abstract>
|
||||
<cover>
|
||||
<para>this is a placeholder for the front cover</para>
|
||||
</cover>
|
||||
<cover>
|
||||
<para>this is a placeholder for the back cover</para>
|
||||
</cover>
|
||||
</info>
|
||||
<chapter>
|
||||
<title>Overview</title>
|
||||
<para>Welcome to the getting started with Maven documentation. Congratulations you have
|
||||
successfully downloaded and built the example.
|
||||
</para>
|
||||
<para>For more details on the Product Name service, please refer to <link
|
||||
xlink:href="http://www.rackspacecloud.com/cloud_hosting_products/files"
|
||||
>http://www.rackspacecloud.com/cloud_hosting_products/product name</link>
|
||||
</para>
|
||||
<para>We welcome feedback, comments, and bug reports at <link
|
||||
xlink:href="mailto:support@rackspacecloud.com">support@rackspacecloud.com</link>. </para>
|
||||
<section>
|
||||
<title>Intended Audience</title>
|
||||
<para>This guide is intended to individuals who want to develop standalone documentation
|
||||
to use within an OpenStack deployment. Using this tool chain will give you the look and
|
||||
feel of the mainline OpenStack documentation.
|
||||
</para>
|
||||
</section>
|
||||
<section>
|
||||
<title>Document Change History</title>
|
||||
<para>This version of the Maven Getting Started Guide replaces and obsoletes all previous versions. The
|
||||
most recent changes are described in the table below:</para>
|
||||
<informaltable rules="all">
|
||||
<thead>
|
||||
<tr>
|
||||
<td align="center" colspan="1">Revision Date</td>
|
||||
<td align="center" colspan="4">Summary of Changes</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="1" align="center">July. 14, 2011</td>
|
||||
<td colspan="4">
|
||||
<itemizedlist spacing="compact">
|
||||
<listitem>
|
||||
<para>Initial document creation.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</informaltable>
|
||||
</section>
|
||||
<section>
|
||||
<title>Additional Resources</title>
|
||||
<itemizedlist spacing="compact">
|
||||
<listitem>
|
||||
<para>
|
||||
<link xlink:href="http://www.openstack.org">
|
||||
Openstack - Cloud Software
|
||||
</link>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<link xlink:href="http://www.docbook.org">
|
||||
Docbook Main Web Site
|
||||
</link>
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
<link xlink:href="http://docbook.org/tdg/en/html/quickref.html">
|
||||
Docbook Quick Reference
|
||||
</link>
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</section>
|
||||
</chapter>
|
||||
<chapter>
|
||||
<title>Concepts</title>
|
||||
<para>
|
||||
Need to put something here.
|
||||
</para>
|
||||
</chapter>
|
||||
<chapter>
|
||||
<title>How do I?</title>
|
||||
|
||||
<section>
|
||||
<title>Notes and including images</title>
|
||||
<para>So I want an note and an image in this section ...</para>
|
||||
<note>
|
||||
<para>This is an example of a note. </para>
|
||||
</note>
|
||||
|
||||
<para>Here's a sample figure in svg and png formats:</para>
|
||||
<figure xml:id="CFinterfaces">
|
||||
<title>Sample Image</title>
|
||||
<mediaobject>
|
||||
<imageobject role="fo">
|
||||
<imagedata fileref="figures/example.svg" contentwidth="5in"/>
|
||||
</imageobject>
|
||||
<imageobject role="html">
|
||||
<imagedata fileref="figures/example.png"/>
|
||||
</imageobject>
|
||||
</mediaobject>
|
||||
</figure>
|
||||
</section>
|
||||
<section>
|
||||
<title>Multiple Related Documents</title>
|
||||
<para>
|
||||
What you need to do in order to have multiple documents fit within the
|
||||
build structure.
|
||||
</para>
|
||||
</section>
|
||||
<section>
|
||||
<title>Using multiple files for a document</title>
|
||||
<para>
|
||||
What you need to do in order to have a single document that is made up of multiple
|
||||
files.
|
||||
</para>
|
||||
</section>
|
||||
<section>
|
||||
<title>Who, What, Where, When and Why of pom.xml</title>
|
||||
<para>
|
||||
You will of noticed the <emphasis>pom.xml</emphasis> file at the root directory.
|
||||
This file is used to set the project parameters for the documentation. Including
|
||||
what type of documentation to produce and any post processing that needs to happen.
|
||||
If you want to know more about
|
||||
<link
|
||||
xlink:href="http://www.openstack.org">
|
||||
pom.xml - need a link
|
||||
</link>
|
||||
then follow the link.
|
||||
</para>
|
||||
<para> For the <emphasis>pom.xml</emphasis>file that was included in this distribution we will
|
||||
parse the individual lines and explaine the meaning.
|
||||
</para>
|
||||
<para>
|
||||
<programlisting language="xml"> <xi:include href="../../pom.xml" parse="text" /></programlisting>
|
||||
</para>
|
||||
<section>
|
||||
<title> <project> </title>
|
||||
<para>
|
||||
What is all of this stuff and why is it important?
|
||||
</para>
|
||||
</section>
|
||||
<section>
|
||||
<title> <modelVersion> </title>
|
||||
<para>
|
||||
What goes in here and why?
|
||||
</para>
|
||||
</section>
|
||||
<section>
|
||||
<title> <groupId> </title>
|
||||
<para>
|
||||
What goes in here and why?
|
||||
</para>
|
||||
</section>
|
||||
<section>
|
||||
<title> <artifactId> </title>
|
||||
<para>
|
||||
What goes in here and why?
|
||||
</para>
|
||||
</section>
|
||||
<section>
|
||||
<title> <version> </title>
|
||||
<para>
|
||||
What goes in here and why?
|
||||
</para>
|
||||
</section>
|
||||
<section>
|
||||
<title> <packaging> </title>
|
||||
<para>
|
||||
What goes in here and why?
|
||||
</para>
|
||||
</section>
|
||||
<section>
|
||||
<title> <name> </title>
|
||||
<para>
|
||||
Name of your document.
|
||||
</para>
|
||||
</section>
|
||||
<section>
|
||||
<title> <build> </title>
|
||||
<para>
|
||||
Make some documents.
|
||||
</para>
|
||||
<section>
|
||||
<title> <plugin(s)> </title>
|
||||
<para>
|
||||
What does this do and why?
|
||||
</para>
|
||||
<section>
|
||||
<title> <groupId> </title>
|
||||
<para>
|
||||
What goes in here and why?
|
||||
</para>
|
||||
</section>
|
||||
<section>
|
||||
<title> <artifactId> </title>
|
||||
<para>
|
||||
What goes in here and why?
|
||||
</para>
|
||||
</section>
|
||||
<section>
|
||||
<title> <execution(s)> </title>
|
||||
<para>
|
||||
What goes in here and why?
|
||||
</para>
|
||||
<section>
|
||||
<title> <goal(s)> </title>
|
||||
<para>
|
||||
Different types of goals and why you use them.
|
||||
</para>
|
||||
</section>
|
||||
<section>
|
||||
<title> <phase> </title>
|
||||
<para>
|
||||
What does this section do? What phases can you specify.
|
||||
</para>
|
||||
</section>
|
||||
</section>
|
||||
<section>
|
||||
<title> <configuration> </title>
|
||||
<para>
|
||||
What does this section do?
|
||||
</para>
|
||||
<section>
|
||||
<title> <xincludeSupported> </title>
|
||||
<para>
|
||||
What does this do and why?
|
||||
</para>
|
||||
</section>
|
||||
<section>
|
||||
<title> <chunkSectionDepth> </title>
|
||||
<para>
|
||||
What does this do and why?
|
||||
</para>
|
||||
</section>
|
||||
<section>
|
||||
<title> <postprocess> </title>
|
||||
<para>
|
||||
What does this section do? What are possible pieces?
|
||||
</para>
|
||||
<section>
|
||||
<title> <copy> </title>
|
||||
<para>
|
||||
What does this section do? What are possible pieces?
|
||||
</para>
|
||||
<section>
|
||||
<title> <fileset> </title>
|
||||
<para>
|
||||
What does this section do? What are possible pieces?
|
||||
</para>
|
||||
<section>
|
||||
<title> <include> </title>
|
||||
<para>
|
||||
What does this section do? What are possible pieces?
|
||||
</para>
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
</section>
|
||||
<section>
|
||||
<title>Who, What, Where, When and Why of build.xml</title>
|
||||
<para>
|
||||
You will of noticed the <emphasis>build.xml</emphasis> file at the root directory.
|
||||
This file is used to set the project parameters for the documentation. Including
|
||||
what type of documentation to produce and any post processing that needs to happen.
|
||||
If you want to know more about
|
||||
<link
|
||||
xlink:href="http://www.openstack.org">
|
||||
pom.xml - need a link
|
||||
</link>
|
||||
then follow the link.
|
||||
</para>
|
||||
</section>
|
||||
</chapter>
|
||||
<chapter>
|
||||
<title>Troubleshooting</title>
|
||||
<para>Sometimes things go wrong...</para>
|
||||
</chapter>
|
||||
</book>
|
|
@ -1,79 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<diagram>
|
||||
<source><![CDATA[bfs:BFS[a]
|
||||
/queue:FIFO
|
||||
someNode:Node
|
||||
node:Node
|
||||
adjList:List
|
||||
adj:Node
|
||||
|
||||
bfs:queue.new
|
||||
bfs:someNode.setLevel(0)
|
||||
bfs:queue.insert(someNode)
|
||||
[c:loop while queue != ()]
|
||||
bfs:node=queue.remove()
|
||||
bfs:level=node.getLevel()
|
||||
bfs:adjList=node.getAdjacentNodes()
|
||||
[c:loop 0 <= i < #adjList]
|
||||
bfs:adj=adjList.get(i)
|
||||
bfs:nodeLevel=adj.getLevel()
|
||||
[c:alt nodeLevel IS NOT defined]
|
||||
bfs:adj.setLevel(level+1)
|
||||
bfs:queue.insert(adj)
|
||||
--[else]
|
||||
bfs:nothing to do
|
||||
[/c]
|
||||
[/c]
|
||||
[/c]
|
||||
bfs:queue.destroy()]]></source>
|
||||
<configuration>
|
||||
<property name="actorWidth" value="25"/>
|
||||
<property name="allowMessageProperties" value="false"/>
|
||||
<property name="arrowSize" value="6"/>
|
||||
<property name="colorizeThreads" value="true"/>
|
||||
<property name="destructorWidth" value="30"/>
|
||||
<property family="Dialog" name="font" size="12" style="0"/>
|
||||
<property name="fragmentMargin" value="8"/>
|
||||
<property name="fragmentPadding" value="10"/>
|
||||
<property name="fragmentTextPadding" value="3"/>
|
||||
<property name="glue" value="10"/>
|
||||
<property name="headHeight" value="35"/>
|
||||
<property name="headLabelPadding" value="5"/>
|
||||
<property name="headWidth" value="100"/>
|
||||
<property name="initialSpace" value="10"/>
|
||||
<property name="leftMargin" value="5"/>
|
||||
<property name="lineWrap" value="false"/>
|
||||
<property name="lowerMargin" value="5"/>
|
||||
<property name="mainLifelineWidth" value="8"/>
|
||||
<property name="messageLabelSpace" value="3"/>
|
||||
<property name="messagePadding" value="6"/>
|
||||
<property name="noteMargin" value="6"/>
|
||||
<property name="notePadding" value="6"/>
|
||||
<property name="opaqueMessageText" value="false"/>
|
||||
<property name="returnArrowVisible" value="true"/>
|
||||
<property name="rightMargin" value="5"/>
|
||||
<property name="selfMessageHorizontalSpace" value="15"/>
|
||||
<property name="separatorBottomMargin" value="8"/>
|
||||
<property name="separatorTopMargin" value="15"/>
|
||||
<property name="shouldShadowParticipants" value="true"/>
|
||||
<property name="spaceBeforeActivation" value="2"/>
|
||||
<property name="spaceBeforeAnswerToSelf" value="10"/>
|
||||
<property name="spaceBeforeConstruction" value="6"/>
|
||||
<property name="spaceBeforeSelfMessage" value="7"/>
|
||||
<property name="subLifelineWidth" value="6"/>
|
||||
<property name="tc0" value="-1118482"/>
|
||||
<property name="tc1" value="-256"/>
|
||||
<property name="tc2" value="-65536"/>
|
||||
<property name="tc3" value="-16776961"/>
|
||||
<property name="tc4" value="-16711936"/>
|
||||
<property name="tc5" value="-4144960"/>
|
||||
<property name="tc6" value="-65281"/>
|
||||
<property name="tc7" value="-14336"/>
|
||||
<property name="tc8" value="-20561"/>
|
||||
<property name="tc9" value="-12566464"/>
|
||||
<property name="threadNumbersVisible" value="false"/>
|
||||
<property name="threaded" value="true"/>
|
||||
<property name="upperMargin" value="5"/>
|
||||
<property name="verticallySplit" value="true"/>
|
||||
</configuration>
|
||||
</diagram>
|
File diff suppressed because one or more lines are too long
Before Width: | Height: | Size: 207 KiB |
|
@ -1,112 +0,0 @@
|
|||
|
||||
<!--
|
||||
A collection of common faults, these are pretty much expected
|
||||
in every request.
|
||||
-->
|
||||
<!ENTITY commonFaults
|
||||
'
|
||||
<response xmlns="http://wadl.dev.java.net/2009/02">
|
||||
<representation mediaType="application/xml" element="osapi:computeFault"/>
|
||||
<representation mediaType="application/json"/>
|
||||
</response>
|
||||
<response status="503" xmlns="http://wadl.dev.java.net/2009/02">
|
||||
<representation mediaType="application/xml" element="osapi:serviceUnavailable"/>
|
||||
<representation mediaType="application/json"/>
|
||||
</response>
|
||||
<response status="401" xmlns="http://wadl.dev.java.net/2009/02">
|
||||
<representation mediaType="application/xml" element="osapi:unauthorized"/>
|
||||
<representation mediaType="application/json"/>
|
||||
</response>
|
||||
<response status="403" xmlns="http://wadl.dev.java.net/2009/02">
|
||||
<representation mediaType="application/xml" element="osapi:forbidden"/>
|
||||
<representation mediaType="application/json"/>
|
||||
</response>
|
||||
<response status="400" xmlns="http://wadl.dev.java.net/2009/02">
|
||||
<representation mediaType="application/xml" element="osapi:badRequest"/>
|
||||
<representation mediaType="application/json"/>
|
||||
</response>
|
||||
<response status="405" xmlns="http://wadl.dev.java.net/2009/02">
|
||||
<representation mediaType="application/xml" element="osapi:badMethod"/>
|
||||
<representation mediaType="application/json"/>
|
||||
</response>
|
||||
<response status="413" xmlns="http://wadl.dev.java.net/2009/02">
|
||||
<representation mediaType="application/xml" element="osapi:overLimit"/>
|
||||
<representation mediaType="application/json"/>
|
||||
</response>
|
||||
'>
|
||||
<!--
|
||||
Faults on GET
|
||||
-->
|
||||
<!ENTITY getFaults
|
||||
'
|
||||
<response status="404" xmlns="http://wadl.dev.java.net/2009/02">
|
||||
<representation mediaType="application/xml" element="osapi:itemNotFound"/>
|
||||
<representation mediaType="application/json"/>
|
||||
</response>
|
||||
'>
|
||||
<!--
|
||||
Faults on POST/PUT
|
||||
-->
|
||||
<!ENTITY postPutFaults
|
||||
'
|
||||
<response status="415" xmlns="http://wadl.dev.java.net/2009/02">
|
||||
<representation mediaType="application/xml" element="osapi:badMediaType"/>
|
||||
<representation mediaType="application/json"/>
|
||||
</response>
|
||||
'>
|
||||
<!--
|
||||
Faults that can occur when we are building servers or images.
|
||||
-->
|
||||
<!ENTITY buildFaults
|
||||
'
|
||||
<response status="503" xmlns="http://wadl.dev.java.net/2009/02">
|
||||
<representation mediaType="application/xml" element="osapi:serverCapacityUnavailable"/>
|
||||
<representation mediaType="application/json"/>
|
||||
</response>
|
||||
'>
|
||||
<!--
|
||||
Holds build in progress which occurs when an operation fails
|
||||
because the server is in the process of being built.
|
||||
-->
|
||||
<!ENTITY inProgressFault
|
||||
'
|
||||
<response status="409" xmlns="http://wadl.dev.java.net/2009/02">
|
||||
<representation mediaType="application/xml" element="osapi:buildInProgress"/>
|
||||
<representation mediaType="application/json"/>
|
||||
</response>
|
||||
'>
|
||||
|
||||
<!-- Image List Parameters -->
|
||||
|
||||
<!ENTITY imageListParameters
|
||||
'
|
||||
<param xmlns="http://wadl.dev.java.net/2009/02" name="changes-since" style="query" required="false" type="xsd:dateTime"/>
|
||||
<param xmlns="http://wadl.dev.java.net/2009/02" name="server" style="query" required="false" type="xsd:anyURI"/>
|
||||
<param xmlns="http://wadl.dev.java.net/2009/02" name="name" style="query" required="false" type="xsd:string"/>
|
||||
<param xmlns="http://wadl.dev.java.net/2009/02" name="status" style="query" required="false" type="osapi:ImageStatus"/>
|
||||
<param xmlns="http://wadl.dev.java.net/2009/02" name="type" style="query" required="false" type="xsd:string" default="ALL">
|
||||
<option value="BASE"/>
|
||||
<option value="SERVER"/>
|
||||
<option value="ALL"/>
|
||||
</param>
|
||||
'>
|
||||
|
||||
<!-- Server List Parameters -->
|
||||
|
||||
<!ENTITY serverListParameters
|
||||
'
|
||||
<param xmlns="http://wadl.dev.java.net/2009/02" name="changes-since" style="query" required="false" type="xsd:dateTime"/>
|
||||
<param xmlns="http://wadl.dev.java.net/2009/02" name="image" style="query" required="false" type="xsd:anyURI"/>
|
||||
<param xmlns="http://wadl.dev.java.net/2009/02" name="flavor" style="query" required="false" type="xsd:anyURI"/>
|
||||
<param xmlns="http://wadl.dev.java.net/2009/02" name="name" style="query" required="false" type="xsd:string"/>
|
||||
<param xmlns="http://wadl.dev.java.net/2009/02" name="status" style="query" required="false" type="osapi:ServerStatus"/>
|
||||
'>
|
||||
|
||||
<!-- Flavor List Parameters -->
|
||||
|
||||
<!ENTITY flavorListParameters
|
||||
'
|
||||
<param xmlns="http://wadl.dev.java.net/2009/02" name="changes-since" style="query" required="false" type="xsd:dateTime"/>
|
||||
<param xmlns="http://wadl.dev.java.net/2009/02" name="minDisk" style="query" required="false" type="xsd:int"/>
|
||||
<param xmlns="http://wadl.dev.java.net/2009/02" name="minRam" style="query" required="false" type="xsd:int"/>
|
||||
'>
|
|
@ -1,70 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg:svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.0"
|
||||
width="13.895596"
|
||||
height="6.3500013"
|
||||
viewBox="0 0 13.895595 6.3500013"
|
||||
id="svg2868"
|
||||
xml:space="preserve"
|
||||
inkscape:version="0.48.0 r9654"
|
||||
sodipodi:docname="Arrow_east.svg"><svg:metadata
|
||||
id="metadata3857"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></svg:metadata><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1131"
|
||||
inkscape:window-height="740"
|
||||
id="namedview3855"
|
||||
showgrid="false"
|
||||
inkscape:zoom="11.313708"
|
||||
inkscape:cx="8.6182271"
|
||||
inkscape:cy="-2.2709277"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg2868"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0" /><svg:defs
|
||||
id="defs2874" />
|
||||
|
||||
|
||||
<namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
pageopacity="0.0"
|
||||
pageshadow="2"
|
||||
window-width="640"
|
||||
window-height="541"
|
||||
zoom="0.34493828"
|
||||
cx="372.04722"
|
||||
cy="256.66814"
|
||||
window-x="75"
|
||||
window-y="152"
|
||||
current-layer="svg2033">
|
||||
</namedview>
|
||||
<svg:g
|
||||
transform="matrix(-0.01540104,0,0,-0.01741068,13.895596,6.3500014)"
|
||||
id="Ebene_1">
|
||||
<svg:polygon
|
||||
points="902.25049,222.98633 233.17773,222.98633 233.17773,364.71875 0,182.35938 233.17773,0 233.17773,141.73242 902.25049,141.73242 902.25049,222.98633 "
|
||||
id="path2050" />
|
||||
</svg:g>
|
||||
</svg:svg>
|
Before Width: | Height: | Size: 2.1 KiB |
|
@ -1,60 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://web.resource.org/cc/"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="19.21315"
|
||||
height="18.294994"
|
||||
id="svg2"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.45"
|
||||
sodipodi:modified="true"
|
||||
version="1.0">
|
||||
<defs
|
||||
id="defs4" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
gridtolerance="10000"
|
||||
guidetolerance="10"
|
||||
objecttolerance="10"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="7.9195959"
|
||||
inkscape:cx="17.757032"
|
||||
inkscape:cy="7.298821"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
inkscape:window-width="984"
|
||||
inkscape:window-height="852"
|
||||
inkscape:window-x="148"
|
||||
inkscape:window-y="66" />
|
||||
<metadata
|
||||
id="metadata7">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-192.905,-516.02064)">
|
||||
<path
|
||||
style="fill:#000000"
|
||||
d="M 197.67968,534.31563 C 197.40468,534.31208 196.21788,532.53719 195.04234,530.37143 L 192.905,526.43368 L 193.45901,525.87968 C 193.76371,525.57497 194.58269,525.32567 195.27896,525.32567 L 196.5449,525.32567 L 197.18129,527.33076 L 197.81768,529.33584 L 202.88215,523.79451 C 205.66761,520.74678 208.88522,517.75085 210.03239,517.13691 L 212.11815,516.02064 L 207.90871,520.80282 C 205.59351,523.43302 202.45735,527.55085 200.93947,529.95355 C 199.42159,532.35625 197.95468,534.31919 197.67968,534.31563 z "
|
||||
id="path2223" />
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 2.1 KiB |
|
@ -1,337 +0,0 @@
|
|||
if (! this.sh_languages) {
|
||||
this.sh_languages = {};
|
||||
}
|
||||
sh_languages['java'] = [
|
||||
[
|
||||
[
|
||||
/\b(?:import|package)\b/g,
|
||||
'sh_preproc',
|
||||
-1
|
||||
],
|
||||
[
|
||||
/\/\/\//g,
|
||||
'sh_comment',
|
||||
1
|
||||
],
|
||||
[
|
||||
/\/\//g,
|
||||
'sh_comment',
|
||||
7
|
||||
],
|
||||
[
|
||||
/\/\*\*/g,
|
||||
'sh_comment',
|
||||
8
|
||||
],
|
||||
[
|
||||
/\/\*/g,
|
||||
'sh_comment',
|
||||
9
|
||||
],
|
||||
[
|
||||
/\b[+-]?(?:(?:0x[A-Fa-f0-9]+)|(?:(?:[\d]*\.)?[\d]+(?:[eE][+-]?[\d]+)?))u?(?:(?:int(?:8|16|32|64))|L)?\b/g,
|
||||
'sh_number',
|
||||
-1
|
||||
],
|
||||
[
|
||||
/"/g,
|
||||
'sh_string',
|
||||
10
|
||||
],
|
||||
[
|
||||
/'/g,
|
||||
'sh_string',
|
||||
11
|
||||
],
|
||||
[
|
||||
/(\b(?:class|interface))([ \t]+)([$A-Za-z0-9_]+)/g,
|
||||
['sh_keyword', 'sh_normal', 'sh_classname'],
|
||||
-1
|
||||
],
|
||||
[
|
||||
/\b(?:abstract|assert|break|case|catch|class|const|continue|default|do|else|extends|false|final|finally|for|goto|if|implements|instanceof|interface|native|new|null|private|protected|public|return|static|strictfp|super|switch|synchronized|throw|throws|true|this|transient|try|volatile|while)\b/g,
|
||||
'sh_keyword',
|
||||
-1
|
||||
],
|
||||
[
|
||||
/\b(?:int|byte|boolean|char|long|float|double|short|void)\b/g,
|
||||
'sh_type',
|
||||
-1
|
||||
],
|
||||
[
|
||||
/~|!|%|\^|\*|\(|\)|-|\+|=|\[|\]|\\|:|;|,|\.|\/|\?|&|<|>|\|/g,
|
||||
'sh_symbol',
|
||||
-1
|
||||
],
|
||||
[
|
||||
/\{|\}/g,
|
||||
'sh_cbracket',
|
||||
-1
|
||||
],
|
||||
[
|
||||
/(?:[A-Za-z]|_)[A-Za-z0-9_]*(?=[ \t]*\()/g,
|
||||
'sh_function',
|
||||
-1
|
||||
],
|
||||
[
|
||||
/([A-Za-z](?:[^`~!@#$%&*()_=+{}|;:",<.>\/?'\\[\]\^\-\s]|[_])*)((?:<.*>)?)(\s+(?=[*&]*[A-Za-z][^`~!@#$%&*()_=+{}|;:",<.>\/?'\\[\]\^\-\s]*\s*[`~!@#$%&*()_=+{}|;:",<.>\/?'\\[\]\^\-\[\]]+))/g,
|
||||
['sh_usertype', 'sh_usertype', 'sh_normal'],
|
||||
-1
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
/$/g,
|
||||
null,
|
||||
-2
|
||||
],
|
||||
[
|
||||
/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,
|
||||
'sh_url',
|
||||
-1
|
||||
],
|
||||
[
|
||||
/<\?xml/g,
|
||||
'sh_preproc',
|
||||
2,
|
||||
1
|
||||
],
|
||||
[
|
||||
/<!DOCTYPE/g,
|
||||
'sh_preproc',
|
||||
4,
|
||||
1
|
||||
],
|
||||
[
|
||||
/<!--/g,
|
||||
'sh_comment',
|
||||
5
|
||||
],
|
||||
[
|
||||
/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)(?:\/)?>/g,
|
||||
'sh_keyword',
|
||||
-1
|
||||
],
|
||||
[
|
||||
/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)/g,
|
||||
'sh_keyword',
|
||||
6,
|
||||
1
|
||||
],
|
||||
[
|
||||
/&(?:[A-Za-z0-9]+);/g,
|
||||
'sh_preproc',
|
||||
-1
|
||||
],
|
||||
[
|
||||
/<(?:\/)?[A-Za-z][A-Za-z0-9]*(?:\/)?>/g,
|
||||
'sh_keyword',
|
||||
-1
|
||||
],
|
||||
[
|
||||
/<(?:\/)?[A-Za-z][A-Za-z0-9]*/g,
|
||||
'sh_keyword',
|
||||
6,
|
||||
1
|
||||
],
|
||||
[
|
||||
/@[A-Za-z]+/g,
|
||||
'sh_type',
|
||||
-1
|
||||
],
|
||||
[
|
||||
/(?:TODO|FIXME|BUG)(?:[:]?)/g,
|
||||
'sh_todo',
|
||||
-1
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
/\?>/g,
|
||||
'sh_preproc',
|
||||
-2
|
||||
],
|
||||
[
|
||||
/([^=" \t>]+)([ \t]*)(=?)/g,
|
||||
['sh_type', 'sh_normal', 'sh_symbol'],
|
||||
-1
|
||||
],
|
||||
[
|
||||
/"/g,
|
||||
'sh_string',
|
||||
3
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
/\\(?:\\|")/g,
|
||||
null,
|
||||
-1
|
||||
],
|
||||
[
|
||||
/"/g,
|
||||
'sh_string',
|
||||
-2
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
/>/g,
|
||||
'sh_preproc',
|
||||
-2
|
||||
],
|
||||
[
|
||||
/([^=" \t>]+)([ \t]*)(=?)/g,
|
||||
['sh_type', 'sh_normal', 'sh_symbol'],
|
||||
-1
|
||||
],
|
||||
[
|
||||
/"/g,
|
||||
'sh_string',
|
||||
3
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
/-->/g,
|
||||
'sh_comment',
|
||||
-2
|
||||
],
|
||||
[
|
||||
/<!--/g,
|
||||
'sh_comment',
|
||||
5
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
/(?:\/)?>/g,
|
||||
'sh_keyword',
|
||||
-2
|
||||
],
|
||||
[
|
||||
/([^=" \t>]+)([ \t]*)(=?)/g,
|
||||
['sh_type', 'sh_normal', 'sh_symbol'],
|
||||
-1
|
||||
],
|
||||
[
|
||||
/"/g,
|
||||
'sh_string',
|
||||
3
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
/$/g,
|
||||
null,
|
||||
-2
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
/\*\//g,
|
||||
'sh_comment',
|
||||
-2
|
||||
],
|
||||
[
|
||||
/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,
|
||||
'sh_url',
|
||||
-1
|
||||
],
|
||||
[
|
||||
/<\?xml/g,
|
||||
'sh_preproc',
|
||||
2,
|
||||
1
|
||||
],
|
||||
[
|
||||
/<!DOCTYPE/g,
|
||||
'sh_preproc',
|
||||
4,
|
||||
1
|
||||
],
|
||||
[
|
||||
/<!--/g,
|
||||
'sh_comment',
|
||||
5
|
||||
],
|
||||
[
|
||||
/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)(?:\/)?>/g,
|
||||
'sh_keyword',
|
||||
-1
|
||||
],
|
||||
[
|
||||
/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)/g,
|
||||
'sh_keyword',
|
||||
6,
|
||||
1
|
||||
],
|
||||
[
|
||||
/&(?:[A-Za-z0-9]+);/g,
|
||||
'sh_preproc',
|
||||
-1
|
||||
],
|
||||
[
|
||||
/<(?:\/)?[A-Za-z][A-Za-z0-9]*(?:\/)?>/g,
|
||||
'sh_keyword',
|
||||
-1
|
||||
],
|
||||
[
|
||||
/<(?:\/)?[A-Za-z][A-Za-z0-9]*/g,
|
||||
'sh_keyword',
|
||||
6,
|
||||
1
|
||||
],
|
||||
[
|
||||
/@[A-Za-z]+/g,
|
||||
'sh_type',
|
||||
-1
|
||||
],
|
||||
[
|
||||
/(?:TODO|FIXME|BUG)(?:[:]?)/g,
|
||||
'sh_todo',
|
||||
-1
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
/\*\//g,
|
||||
'sh_comment',
|
||||
-2
|
||||
],
|
||||
[
|
||||
/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,
|
||||
'sh_url',
|
||||
-1
|
||||
],
|
||||
[
|
||||
/(?:TODO|FIXME|BUG)(?:[:]?)/g,
|
||||
'sh_todo',
|
||||
-1
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
/"/g,
|
||||
'sh_string',
|
||||
-2
|
||||
],
|
||||
[
|
||||
/\\./g,
|
||||
'sh_specialchar',
|
||||
-1
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
/'/g,
|
||||
'sh_string',
|
||||
-2
|
||||
],
|
||||
[
|
||||
/\\./g,
|
||||
'sh_specialchar',
|
||||
-1
|
||||
]
|
||||
]
|
||||
];
|
|
@ -1,347 +0,0 @@
|
|||
if (! this.sh_languages) {
|
||||
this.sh_languages = {};
|
||||
}
|
||||
sh_languages['javascript'] = [
|
||||
[
|
||||
[
|
||||
/\/\/\//g,
|
||||
'sh_comment',
|
||||
1
|
||||
],
|
||||
[
|
||||
/\/\//g,
|
||||
'sh_comment',
|
||||
7
|
||||
],
|
||||
[
|
||||
/\/\*\*/g,
|
||||
'sh_comment',
|
||||
8
|
||||
],
|
||||
[
|
||||
/\/\*/g,
|
||||
'sh_comment',
|
||||
9
|
||||
],
|
||||
[
|
||||
/\b(?:abstract|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|final|finally|for|function|goto|if|implements|in|instanceof|interface|native|new|null|private|protected|prototype|public|return|static|super|switch|synchronized|throw|throws|this|transient|true|try|typeof|var|volatile|while|with)\b/g,
|
||||
'sh_keyword',
|
||||
-1
|
||||
],
|
||||
[
|
||||
/(\+\+|--|\)|\])(\s*)(\/=?(?![*\/]))/g,
|
||||
['sh_symbol', 'sh_normal', 'sh_symbol'],
|
||||
-1
|
||||
],
|
||||
[
|
||||
/(0x[A-Fa-f0-9]+|(?:[\d]*\.)?[\d]+(?:[eE][+-]?[\d]+)?)(\s*)(\/(?![*\/]))/g,
|
||||
['sh_number', 'sh_normal', 'sh_symbol'],
|
||||
-1
|
||||
],
|
||||
[
|
||||
/([A-Za-z$_][A-Za-z0-9$_]*\s*)(\/=?(?![*\/]))/g,
|
||||
['sh_normal', 'sh_symbol'],
|
||||
-1
|
||||
],
|
||||
[
|
||||
/\/(?:\\.|[^*\\\/])(?:\\.|[^\\\/])*\/[gim]*/g,
|
||||
'sh_regexp',
|
||||
-1
|
||||
],
|
||||
[
|
||||
/\b[+-]?(?:(?:0x[A-Fa-f0-9]+)|(?:(?:[\d]*\.)?[\d]+(?:[eE][+-]?[\d]+)?))u?(?:(?:int(?:8|16|32|64))|L)?\b/g,
|
||||
'sh_number',
|
||||
-1
|
||||
],
|
||||
[
|
||||
/"/g,
|
||||
'sh_string',
|
||||
10
|
||||
],
|
||||
[
|
||||
/'/g,
|
||||
'sh_string',
|
||||
11
|
||||
],
|
||||
[
|
||||
/~|!|%|\^|\*|\(|\)|-|\+|=|\[|\]|\\|:|;|,|\.|\/|\?|&|<|>|\|/g,
|
||||
'sh_symbol',
|
||||
-1
|
||||
],
|
||||
[
|
||||
/\{|\}/g,
|
||||
'sh_cbracket',
|
||||
-1
|
||||
],
|
||||
[
|
||||
/\b(?:Math|Infinity|NaN|undefined|arguments)\b/g,
|
||||
'sh_predef_var',
|
||||
-1
|
||||
],
|
||||
[
|
||||
/\b(?:Array|Boolean|Date|Error|EvalError|Function|Number|Object|RangeError|ReferenceError|RegExp|String|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt)\b/g,
|
||||
'sh_predef_func',
|
||||
-1
|
||||
],
|
||||
[
|
||||
/(?:[A-Za-z]|_)[A-Za-z0-9_]*(?=[ \t]*\()/g,
|
||||
'sh_function',
|
||||
-1
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
/$/g,
|
||||
null,
|
||||
-2
|
||||
],
|
||||
[
|
||||
/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,
|
||||
'sh_url',
|
||||
-1
|
||||
],
|
||||
[
|
||||
/<\?xml/g,
|
||||
'sh_preproc',
|
||||
2,
|
||||
1
|
||||
],
|
||||
[
|
||||
/<!DOCTYPE/g,
|
||||
'sh_preproc',
|
||||
4,
|
||||
1
|
||||
],
|
||||
[
|
||||
/<!--/g,
|
||||
'sh_comment',
|
||||
5
|
||||
],
|
||||
[
|
||||
/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)(?:\/)?>/g,
|
||||
'sh_keyword',
|
||||
-1
|
||||
],
|
||||
[
|
||||
/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)/g,
|
||||
'sh_keyword',
|
||||
6,
|
||||
1
|
||||
],
|
||||
[
|
||||
/&(?:[A-Za-z0-9]+);/g,
|
||||
'sh_preproc',
|
||||
-1
|
||||
],
|
||||
[
|
||||
/<(?:\/)?[A-Za-z][A-Za-z0-9]*(?:\/)?>/g,
|
||||
'sh_keyword',
|
||||
-1
|
||||
],
|
||||
[
|
||||
/<(?:\/)?[A-Za-z][A-Za-z0-9]*/g,
|
||||
'sh_keyword',
|
||||
6,
|
||||
1
|
||||
],
|
||||
[
|
||||
/@[A-Za-z]+/g,
|
||||
'sh_type',
|
||||
-1
|
||||
],
|
||||
[
|
||||
/(?:TODO|FIXME|BUG)(?:[:]?)/g,
|
||||
'sh_todo',
|
||||
-1
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
/\?>/g,
|
||||
'sh_preproc',
|
||||
-2
|
||||
],
|
||||
[
|
||||
/([^=" \t>]+)([ \t]*)(=?)/g,
|
||||
['sh_type', 'sh_normal', 'sh_symbol'],
|
||||
-1
|
||||
],
|
||||
[
|
||||
/"/g,
|
||||
'sh_string',
|
||||
3
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
/\\(?:\\|")/g,
|
||||
null,
|
||||
-1
|
||||
],
|
||||
[
|
||||
/"/g,
|
||||
'sh_string',
|
||||
-2
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
/>/g,
|
||||
'sh_preproc',
|
||||
-2
|
||||
],
|
||||
[
|
||||
/([^=" \t>]+)([ \t]*)(=?)/g,
|
||||
['sh_type', 'sh_normal', 'sh_symbol'],
|
||||
-1
|
||||
],
|
||||
[
|
||||
/"/g,
|
||||
'sh_string',
|
||||
3
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
/-->/g,
|
||||
'sh_comment',
|
||||
-2
|
||||
],
|
||||
[
|
||||
/<!--/g,
|
||||
'sh_comment',
|
||||
5
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
/(?:\/)?>/g,
|
||||
'sh_keyword',
|
||||
-2
|
||||
],
|
||||
[
|
||||
/([^=" \t>]+)([ \t]*)(=?)/g,
|
||||
['sh_type', 'sh_normal', 'sh_symbol'],
|
||||
-1
|
||||
],
|
||||
[
|
||||
/"/g,
|
||||
'sh_string',
|
||||
3
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
/$/g,
|
||||
null,
|
||||
-2
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
/\*\//g,
|
||||
'sh_comment',
|
||||
-2
|
||||
],
|
||||
[
|
||||
/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,
|
||||
'sh_url',
|
||||
-1
|
||||
],
|
||||
[
|
||||
/<\?xml/g,
|
||||
'sh_preproc',
|
||||
2,
|
||||
1
|
||||
],
|
||||
[
|
||||
/<!DOCTYPE/g,
|
||||
'sh_preproc',
|
||||
4,
|
||||
1
|
||||
],
|
||||
[
|
||||
/<!--/g,
|
||||
'sh_comment',
|
||||
5
|
||||
],
|
||||
[
|
||||
/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)(?:\/)?>/g,
|
||||
'sh_keyword',
|
||||
-1
|
||||
],
|
||||
[
|
||||
/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)/g,
|
||||
'sh_keyword',
|
||||
6,
|
||||
1
|
||||
],
|
||||
[
|
||||
/&(?:[A-Za-z0-9]+);/g,
|
||||
'sh_preproc',
|
||||
-1
|
||||
],
|
||||
[
|
||||
/<(?:\/)?[A-Za-z][A-Za-z0-9]*(?:\/)?>/g,
|
||||
'sh_keyword',
|
||||
-1
|
||||
],
|
||||
[
|
||||
/<(?:\/)?[A-Za-z][A-Za-z0-9]*/g,
|
||||
'sh_keyword',
|
||||
6,
|
||||
1
|
||||
],
|
||||
[
|
||||
/@[A-Za-z]+/g,
|
||||
'sh_type',
|
||||
-1
|
||||
],
|
||||
[
|
||||
/(?:TODO|FIXME|BUG)(?:[:]?)/g,
|
||||
'sh_todo',
|
||||
-1
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
/\*\//g,
|
||||
'sh_comment',
|
||||
-2
|
||||
],
|
||||
[
|
||||
/(?:<?)[A-Za-z0-9_\.\/\-_~]+@[A-Za-z0-9_\.\/\-_~]+(?:>?)|(?:<?)[A-Za-z0-9_]+:\/\/[A-Za-z0-9_\.\/\-_~]+(?:>?)/g,
|
||||
'sh_url',
|
||||
-1
|
||||
],
|
||||
[
|
||||
/(?:TODO|FIXME|BUG)(?:[:]?)/g,
|
||||
'sh_todo',
|
||||
-1
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
/"/g,
|
||||
'sh_string',
|
||||
-2
|
||||
],
|
||||
[
|
||||
/\\./g,
|
||||
'sh_specialchar',
|
||||
-1
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
/'/g,
|
||||
'sh_string',
|
||||
-2
|
||||
],
|
||||
[
|
||||
/\\./g,
|
||||
'sh_specialchar',
|
||||
-1
|
||||
]
|
||||
]
|
||||
];
|
|
@ -1,538 +0,0 @@
|
|||
/*
|
||||
SHJS - Syntax Highlighting in JavaScript
|
||||
Copyright (C) 2007, 2008 gnombat@users.sourceforge.net
|
||||
License: http://shjs.sourceforge.net/doc/gplv3.html
|
||||
*/
|
||||
|
||||
if (! this.sh_languages) {
|
||||
this.sh_languages = {};
|
||||
}
|
||||
var sh_requests = {};
|
||||
|
||||
function sh_isEmailAddress(url) {
|
||||
if (/^mailto:/.test(url)) {
|
||||
return false;
|
||||
}
|
||||
return url.indexOf('@') !== -1;
|
||||
}
|
||||
|
||||
function sh_setHref(tags, numTags, inputString) {
|
||||
var url = inputString.substring(tags[numTags - 2].pos, tags[numTags - 1].pos);
|
||||
if (url.length >= 2 && url.charAt(0) === '<' && url.charAt(url.length - 1) === '>') {
|
||||
url = url.substr(1, url.length - 2);
|
||||
}
|
||||
if (sh_isEmailAddress(url)) {
|
||||
url = 'mailto:' + url;
|
||||
}
|
||||
tags[numTags - 2].node.href = url;
|
||||
}
|
||||
|
||||
/*
|
||||
Konqueror has a bug where the regular expression /$/g will not match at the end
|
||||
of a line more than once:
|
||||
|
||||
var regex = /$/g;
|
||||
var match;
|
||||
|
||||
var line = '1234567890';
|
||||
regex.lastIndex = 10;
|
||||
match = regex.exec(line);
|
||||
|
||||
var line2 = 'abcde';
|
||||
regex.lastIndex = 5;
|
||||
match = regex.exec(line2); // fails
|
||||
*/
|
||||
function sh_konquerorExec(s) {
|
||||
var result = [''];
|
||||
result.index = s.length;
|
||||
result.input = s;
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
Highlights all elements containing source code in a text string. The return
|
||||
value is an array of objects, each representing an HTML start or end tag. Each
|
||||
object has a property named pos, which is an integer representing the text
|
||||
offset of the tag. Every start tag also has a property named node, which is the
|
||||
DOM element started by the tag. End tags do not have this property.
|
||||
@param inputString a text string
|
||||
@param language a language definition object
|
||||
@return an array of tag objects
|
||||
*/
|
||||
function sh_highlightString(inputString, language) {
|
||||
if (/Konqueror/.test(navigator.userAgent)) {
|
||||
if (! language.konquered) {
|
||||
for (var s = 0; s < language.length; s++) {
|
||||
for (var p = 0; p < language[s].length; p++) {
|
||||
var r = language[s][p][0];
|
||||
if (r.source === '$') {
|
||||
r.exec = sh_konquerorExec;
|
||||
}
|
||||
}
|
||||
}
|
||||
language.konquered = true;
|
||||
}
|
||||
}
|
||||
|
||||
var a = document.createElement('a');
|
||||
var span = document.createElement('span');
|
||||
|
||||
// the result
|
||||
var tags = [];
|
||||
var numTags = 0;
|
||||
|
||||
// each element is a pattern object from language
|
||||
var patternStack = [];
|
||||
|
||||
// the current position within inputString
|
||||
var pos = 0;
|
||||
|
||||
// the name of the current style, or null if there is no current style
|
||||
var currentStyle = null;
|
||||
|
||||
var output = function(s, style) {
|
||||
var length = s.length;
|
||||
// this is more than just an optimization - we don't want to output empty <span></span> elements
|
||||
if (length === 0) {
|
||||
return;
|
||||
}
|
||||
if (! style) {
|
||||
var stackLength = patternStack.length;
|
||||
if (stackLength !== 0) {
|
||||
var pattern = patternStack[stackLength - 1];
|
||||
// check whether this is a state or an environment
|
||||
if (! pattern[3]) {
|
||||
// it's not a state - it's an environment; use the style for this environment
|
||||
style = pattern[1];
|
||||
}
|
||||
}
|
||||
}
|
||||
if (currentStyle !== style) {
|
||||
if (currentStyle) {
|
||||
tags[numTags++] = {pos: pos};
|
||||
if (currentStyle === 'sh_url') {
|
||||
sh_setHref(tags, numTags, inputString);
|
||||
}
|
||||
}
|
||||
if (style) {
|
||||
var clone;
|
||||
if (style === 'sh_url') {
|
||||
clone = a.cloneNode(false);
|
||||
}
|
||||
else {
|
||||
clone = span.cloneNode(false);
|
||||
}
|
||||
clone.className = style;
|
||||
tags[numTags++] = {node: clone, pos: pos};
|
||||
}
|
||||
}
|
||||
pos += length;
|
||||
currentStyle = style;
|
||||
};
|
||||
|
||||
var endOfLinePattern = /\r\n|\r|\n/g;
|
||||
endOfLinePattern.lastIndex = 0;
|
||||
var inputStringLength = inputString.length;
|
||||
while (pos < inputStringLength) {
|
||||
var start = pos;
|
||||
var end;
|
||||
var startOfNextLine;
|
||||
var endOfLineMatch = endOfLinePattern.exec(inputString);
|
||||
if (endOfLineMatch === null) {
|
||||
end = inputStringLength;
|
||||
startOfNextLine = inputStringLength;
|
||||
}
|
||||
else {
|
||||
end = endOfLineMatch.index;
|
||||
startOfNextLine = endOfLinePattern.lastIndex;
|
||||
}
|
||||
|
||||
var line = inputString.substring(start, end);
|
||||
|
||||
var matchCache = [];
|
||||
for (;;) {
|
||||
var posWithinLine = pos - start;
|
||||
|
||||
var stateIndex;
|
||||
var stackLength = patternStack.length;
|
||||
if (stackLength === 0) {
|
||||
stateIndex = 0;
|
||||
}
|
||||
else {
|
||||
// get the next state
|
||||
stateIndex = patternStack[stackLength - 1][2];
|
||||
}
|
||||
|
||||
var state = language[stateIndex];
|
||||
var numPatterns = state.length;
|
||||
var mc = matchCache[stateIndex];
|
||||
if (! mc) {
|
||||
mc = matchCache[stateIndex] = [];
|
||||
}
|
||||
var bestMatch = null;
|
||||
var bestPatternIndex = -1;
|
||||
for (var i = 0; i < numPatterns; i++) {
|
||||
var match;
|
||||
if (i < mc.length && (mc[i] === null || posWithinLine <= mc[i].index)) {
|
||||
match = mc[i];
|
||||
}
|
||||
else {
|
||||
var regex = state[i][0];
|
||||
regex.lastIndex = posWithinLine;
|
||||
match = regex.exec(line);
|
||||
mc[i] = match;
|
||||
}
|
||||
if (match !== null && (bestMatch === null || match.index < bestMatch.index)) {
|
||||
bestMatch = match;
|
||||
bestPatternIndex = i;
|
||||
if (match.index === posWithinLine) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (bestMatch === null) {
|
||||
output(line.substring(posWithinLine), null);
|
||||
break;
|
||||
}
|
||||
else {
|
||||
// got a match
|
||||
if (bestMatch.index > posWithinLine) {
|
||||
output(line.substring(posWithinLine, bestMatch.index), null);
|
||||
}
|
||||
|
||||
var pattern = state[bestPatternIndex];
|
||||
|
||||
var newStyle = pattern[1];
|
||||
var matchedString;
|
||||
if (newStyle instanceof Array) {
|
||||
for (var subexpression = 0; subexpression < newStyle.length; subexpression++) {
|
||||
matchedString = bestMatch[subexpression + 1];
|
||||
output(matchedString, newStyle[subexpression]);
|
||||
}
|
||||
}
|
||||
else {
|
||||
matchedString = bestMatch[0];
|
||||
output(matchedString, newStyle);
|
||||
}
|
||||
|
||||
switch (pattern[2]) {
|
||||
case -1:
|
||||
// do nothing
|
||||
break;
|
||||
case -2:
|
||||
// exit
|
||||
patternStack.pop();
|
||||
break;
|
||||
case -3:
|
||||
// exitall
|
||||
patternStack.length = 0;
|
||||
break;
|
||||
default:
|
||||
// this was the start of a delimited pattern or a state/environment
|
||||
patternStack.push(pattern);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// end of the line
|
||||
if (currentStyle) {
|
||||
tags[numTags++] = {pos: pos};
|
||||
if (currentStyle === 'sh_url') {
|
||||
sh_setHref(tags, numTags, inputString);
|
||||
}
|
||||
currentStyle = null;
|
||||
}
|
||||
pos = startOfNextLine;
|
||||
}
|
||||
|
||||
return tags;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// DOM-dependent functions
|
||||
|
||||
function sh_getClasses(element) {
|
||||
var result = [];
|
||||
var htmlClass = element.className;
|
||||
if (htmlClass && htmlClass.length > 0) {
|
||||
var htmlClasses = htmlClass.split(' ');
|
||||
for (var i = 0; i < htmlClasses.length; i++) {
|
||||
if (htmlClasses[i].length > 0) {
|
||||
result.push(htmlClasses[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
function sh_addClass(element, name) {
|
||||
var htmlClasses = sh_getClasses(element);
|
||||
for (var i = 0; i < htmlClasses.length; i++) {
|
||||
if (name.toLowerCase() === htmlClasses[i].toLowerCase()) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
htmlClasses.push(name);
|
||||
element.className = htmlClasses.join(' ');
|
||||
}
|
||||
|
||||
/**
|
||||
Extracts the tags from an HTML DOM NodeList.
|
||||
@param nodeList a DOM NodeList
|
||||
@param result an object with text, tags and pos properties
|
||||
*/
|
||||
function sh_extractTagsFromNodeList(nodeList, result) {
|
||||
var length = nodeList.length;
|
||||
for (var i = 0; i < length; i++) {
|
||||
var node = nodeList.item(i);
|
||||
switch (node.nodeType) {
|
||||
case 1:
|
||||
if (node.nodeName.toLowerCase() === 'br') {
|
||||
var terminator;
|
||||
if (/MSIE/.test(navigator.userAgent)) {
|
||||
terminator = '\r';
|
||||
}
|
||||
else {
|
||||
terminator = '\n';
|
||||
}
|
||||
result.text.push(terminator);
|
||||
result.pos++;
|
||||
}
|
||||
else {
|
||||
result.tags.push({node: node.cloneNode(false), pos: result.pos});
|
||||
sh_extractTagsFromNodeList(node.childNodes, result);
|
||||
result.tags.push({pos: result.pos});
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
case 4:
|
||||
result.text.push(node.data);
|
||||
result.pos += node.length;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
Extracts the tags from the text of an HTML element. The extracted tags will be
|
||||
returned as an array of tag objects. See sh_highlightString for the format of
|
||||
the tag objects.
|
||||
@param element a DOM element
|
||||
@param tags an empty array; the extracted tag objects will be returned in it
|
||||
@return the text of the element
|
||||
@see sh_highlightString
|
||||
*/
|
||||
function sh_extractTags(element, tags) {
|
||||
var result = {};
|
||||
result.text = [];
|
||||
result.tags = tags;
|
||||
result.pos = 0;
|
||||
sh_extractTagsFromNodeList(element.childNodes, result);
|
||||
return result.text.join('');
|
||||
}
|
||||
|
||||
/**
|
||||
Merges the original tags from an element with the tags produced by highlighting.
|
||||
@param originalTags an array containing the original tags
|
||||
@param highlightTags an array containing the highlighting tags - these must not overlap
|
||||
@result an array containing the merged tags
|
||||
*/
|
||||
function sh_mergeTags(originalTags, highlightTags) {
|
||||
var numOriginalTags = originalTags.length;
|
||||
if (numOriginalTags === 0) {
|
||||
return highlightTags;
|
||||
}
|
||||
|
||||
var numHighlightTags = highlightTags.length;
|
||||
if (numHighlightTags === 0) {
|
||||
return originalTags;
|
||||
}
|
||||
|
||||
var result = [];
|
||||
var originalIndex = 0;
|
||||
var highlightIndex = 0;
|
||||
|
||||
while (originalIndex < numOriginalTags && highlightIndex < numHighlightTags) {
|
||||
var originalTag = originalTags[originalIndex];
|
||||
var highlightTag = highlightTags[highlightIndex];
|
||||
|
||||
if (originalTag.pos <= highlightTag.pos) {
|
||||
result.push(originalTag);
|
||||
originalIndex++;
|
||||
}
|
||||
else {
|
||||
result.push(highlightTag);
|
||||
if (highlightTags[highlightIndex + 1].pos <= originalTag.pos) {
|
||||
highlightIndex++;
|
||||
result.push(highlightTags[highlightIndex]);
|
||||
highlightIndex++;
|
||||
}
|
||||
else {
|
||||
// new end tag
|
||||
result.push({pos: originalTag.pos});
|
||||
|
||||
// new start tag
|
||||
highlightTags[highlightIndex] = {node: highlightTag.node.cloneNode(false), pos: originalTag.pos};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
while (originalIndex < numOriginalTags) {
|
||||
result.push(originalTags[originalIndex]);
|
||||
originalIndex++;
|
||||
}
|
||||
|
||||
while (highlightIndex < numHighlightTags) {
|
||||
result.push(highlightTags[highlightIndex]);
|
||||
highlightIndex++;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
Inserts tags into text.
|
||||
@param tags an array of tag objects
|
||||
@param text a string representing the text
|
||||
@return a DOM DocumentFragment representing the resulting HTML
|
||||
*/
|
||||
function sh_insertTags(tags, text) {
|
||||
var doc = document;
|
||||
|
||||
var result = document.createDocumentFragment();
|
||||
var tagIndex = 0;
|
||||
var numTags = tags.length;
|
||||
var textPos = 0;
|
||||
var textLength = text.length;
|
||||
var currentNode = result;
|
||||
|
||||
// output one tag or text node every iteration
|
||||
while (textPos < textLength || tagIndex < numTags) {
|
||||
var tag;
|
||||
var tagPos;
|
||||
if (tagIndex < numTags) {
|
||||
tag = tags[tagIndex];
|
||||
tagPos = tag.pos;
|
||||
}
|
||||
else {
|
||||
tagPos = textLength;
|
||||
}
|
||||
|
||||
if (tagPos <= textPos) {
|
||||
// output the tag
|
||||
if (tag.node) {
|
||||
// start tag
|
||||
var newNode = tag.node;
|
||||
currentNode.appendChild(newNode);
|
||||
currentNode = newNode;
|
||||
}
|
||||
else {
|
||||
// end tag
|
||||
currentNode = currentNode.parentNode;
|
||||
}
|
||||
tagIndex++;
|
||||
}
|
||||
else {
|
||||
// output text
|
||||
currentNode.appendChild(doc.createTextNode(text.substring(textPos, tagPos)));
|
||||
textPos = tagPos;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
Highlights an element containing source code. Upon completion of this function,
|
||||
the element will have been placed in the "sh_sourceCode" class.
|
||||
@param element a DOM <pre> element containing the source code to be highlighted
|
||||
@param language a language definition object
|
||||
*/
|
||||
function sh_highlightElement(element, language) {
|
||||
sh_addClass(element, 'sh_sourceCode');
|
||||
var originalTags = [];
|
||||
var inputString = sh_extractTags(element, originalTags);
|
||||
var highlightTags = sh_highlightString(inputString, language);
|
||||
var tags = sh_mergeTags(originalTags, highlightTags);
|
||||
var documentFragment = sh_insertTags(tags, inputString);
|
||||
while (element.hasChildNodes()) {
|
||||
element.removeChild(element.firstChild);
|
||||
}
|
||||
element.appendChild(documentFragment);
|
||||
}
|
||||
|
||||
function sh_getXMLHttpRequest() {
|
||||
if (window.ActiveXObject) {
|
||||
return new ActiveXObject('Msxml2.XMLHTTP');
|
||||
}
|
||||
else if (window.XMLHttpRequest) {
|
||||
return new XMLHttpRequest();
|
||||
}
|
||||
throw 'No XMLHttpRequest implementation available';
|
||||
}
|
||||
|
||||
function sh_load(language, element, prefix, suffix) {
|
||||
if (language in sh_requests) {
|
||||
sh_requests[language].push(element);
|
||||
return;
|
||||
}
|
||||
sh_requests[language] = [element];
|
||||
var request = sh_getXMLHttpRequest();
|
||||
var url = prefix + 'sh_' + language + suffix;
|
||||
request.open('GET', url, true);
|
||||
request.onreadystatechange = function () {
|
||||
if (request.readyState === 4) {
|
||||
try {
|
||||
if (! request.status || request.status === 200) {
|
||||
eval(request.responseText);
|
||||
var elements = sh_requests[language];
|
||||
for (var i = 0; i < elements.length; i++) {
|
||||
sh_highlightElement(elements[i], sh_languages[language]);
|
||||
}
|
||||
}
|
||||
else {
|
||||
throw 'HTTP error: status ' + request.status;
|
||||
}
|
||||
}
|
||||
finally {
|
||||
request = null;
|
||||
}
|
||||
}
|
||||
};
|
||||
request.send(null);
|
||||
}
|
||||
|
||||
/**
|
||||
Highlights all elements containing source code on the current page. Elements
|
||||
containing source code must be "pre" elements with a "class" attribute of
|
||||
"sh_LANGUAGE", where LANGUAGE is a valid language identifier; e.g., "sh_java"
|
||||
identifies the element as containing "java" language source code.
|
||||
*/
|
||||
function sh_highlightDocument(prefix, suffix) {
|
||||
var nodeList = document.getElementsByTagName('pre');
|
||||
for (var i = 0; i < nodeList.length; i++) {
|
||||
var element = nodeList.item(i);
|
||||
var htmlClasses = sh_getClasses(element);
|
||||
for (var j = 0; j < htmlClasses.length; j++) {
|
||||
var htmlClass = htmlClasses[j].toLowerCase();
|
||||
if (htmlClass === 'sh_sourcecode') {
|
||||
continue;
|
||||
}
|
||||
if (htmlClass.substr(0, 3) === 'sh_') {
|
||||
var language = htmlClass.substring(3);
|
||||
if (language in sh_languages) {
|
||||
sh_highlightElement(element, sh_languages[language]);
|
||||
}
|
||||
else if (typeof(prefix) === 'string' && typeof(suffix) === 'string') {
|
||||
sh_load(language, element, prefix, suffix);
|
||||
}
|
||||
else {
|
||||
throw 'Found <pre> element with class="' + htmlClass + '", but no such language exists';
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,115 +0,0 @@
|
|||
if (! this.sh_languages) {
|
||||
this.sh_languages = {};
|
||||
}
|
||||
sh_languages['xml'] = [
|
||||
[
|
||||
[
|
||||
/<\?xml/g,
|
||||
'sh_preproc',
|
||||
1,
|
||||
1
|
||||
],
|
||||
[
|
||||
/<!DOCTYPE/g,
|
||||
'sh_preproc',
|
||||
3,
|
||||
1
|
||||
],
|
||||
[
|
||||
/<!--/g,
|
||||
'sh_comment',
|
||||
4
|
||||
],
|
||||
[
|
||||
/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)(?:\/)?>/g,
|
||||
'sh_keyword',
|
||||
-1
|
||||
],
|
||||
[
|
||||
/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)/g,
|
||||
'sh_keyword',
|
||||
5,
|
||||
1
|
||||
],
|
||||
[
|
||||
/&(?:[A-Za-z0-9]+);/g,
|
||||
'sh_preproc',
|
||||
-1
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
/\?>/g,
|
||||
'sh_preproc',
|
||||
-2
|
||||
],
|
||||
[
|
||||
/([^=" \t>]+)([ \t]*)(=?)/g,
|
||||
['sh_type', 'sh_normal', 'sh_symbol'],
|
||||
-1
|
||||
],
|
||||
[
|
||||
/"/g,
|
||||
'sh_string',
|
||||
2
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
/\\(?:\\|")/g,
|
||||
null,
|
||||
-1
|
||||
],
|
||||
[
|
||||
/"/g,
|
||||
'sh_string',
|
||||
-2
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
/>/g,
|
||||
'sh_preproc',
|
||||
-2
|
||||
],
|
||||
[
|
||||
/([^=" \t>]+)([ \t]*)(=?)/g,
|
||||
['sh_type', 'sh_normal', 'sh_symbol'],
|
||||
-1
|
||||
],
|
||||
[
|
||||
/"/g,
|
||||
'sh_string',
|
||||
2
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
/-->/g,
|
||||
'sh_comment',
|
||||
-2
|
||||
],
|
||||
[
|
||||
/<!--/g,
|
||||
'sh_comment',
|
||||
4
|
||||
]
|
||||
],
|
||||
[
|
||||
[
|
||||
/(?:\/)?>/g,
|
||||
'sh_keyword',
|
||||
-2
|
||||
],
|
||||
[
|
||||
/([^=" \t>]+)([ \t]*)(=?)/g,
|
||||
['sh_type', 'sh_normal', 'sh_symbol'],
|
||||
-1
|
||||
],
|
||||
[
|
||||
/"/g,
|
||||
'sh_string',
|
||||
2
|
||||
]
|
||||
]
|
||||
];
|
|
@ -1,184 +0,0 @@
|
|||
/**
|
||||
controller.js
|
||||
|
||||
(C) 2009 Rackspace Hosting, All Rights Reserved
|
||||
|
||||
This file definas a single object in global scope:
|
||||
|
||||
trc.schema.controller
|
||||
|
||||
The controller object is responsible for displaying a menu that
|
||||
allows users to view schema source and jump to various definitions
|
||||
in the schema.
|
||||
**/
|
||||
|
||||
|
||||
//
|
||||
// Initialization code...
|
||||
//
|
||||
(function()
|
||||
{
|
||||
//
|
||||
// Make sure dependecies are defined in the global scope, throw
|
||||
// an error if they are not.
|
||||
//
|
||||
if ((!window.trc) ||
|
||||
(!trc.util))
|
||||
{
|
||||
throw new Error("Require trc/util.js to be loaded.");
|
||||
}
|
||||
|
||||
//
|
||||
// We use YUI to build our controller menu make sure we have the
|
||||
// proper dependecies loaded, call init when we do...
|
||||
//
|
||||
|
||||
function InitController()
|
||||
{
|
||||
trc.schema.controller._init();
|
||||
}
|
||||
|
||||
trc.util.yui.loadYUIDeps (["menu"], InitController);
|
||||
})();
|
||||
|
||||
|
||||
if (!trc.schema)
|
||||
{
|
||||
trc.schema = new Object();
|
||||
}
|
||||
|
||||
trc.schema.controller = {
|
||||
//
|
||||
// Internal and external links by type:
|
||||
//
|
||||
// type --> array of links
|
||||
//
|
||||
// possible types include: import, include, element,
|
||||
// attribute, complextype, simpleType
|
||||
//
|
||||
// each link contains the following properties:
|
||||
// name : the name of the link
|
||||
// href : the link itself
|
||||
// title : a description of the link
|
||||
links : new Object(),
|
||||
|
||||
//
|
||||
// A single link that points to the schema index document.
|
||||
//
|
||||
index : null,
|
||||
|
||||
//
|
||||
// Our initialization function
|
||||
//
|
||||
_init : function() {
|
||||
//
|
||||
// Load the menu...
|
||||
//
|
||||
var controllerDiv = document.getElementById("Controller");
|
||||
var mainMenu = this._menuMarkup("mainmenu");
|
||||
|
||||
for (var linkType in this.links)
|
||||
{
|
||||
var subItem = this._menuItemMarkup(mainMenu, linkType, "#", null);
|
||||
var subMenu = this._menuMarkup (linkType+"_subMenu");
|
||||
|
||||
var items = this.links[linkType];
|
||||
for (var i=0;i<items.length;i++)
|
||||
{
|
||||
this._menuItemMarkup (subMenu,
|
||||
items[i].name,
|
||||
items[i].href,
|
||||
items[i].title);
|
||||
}
|
||||
subItem.item.appendChild (subMenu.main);
|
||||
}
|
||||
|
||||
//
|
||||
// Toggle view source menu
|
||||
//
|
||||
this._menuItemMarkup (mainMenu, "toggle src view",
|
||||
"javascript:trc.schema.sampleManager.toggleSrcView()", null);
|
||||
|
||||
//
|
||||
// Index schema document
|
||||
//
|
||||
if (this.index != null)
|
||||
{
|
||||
this._menuItemMarkup (mainMenu, this.index.name,
|
||||
this.index.href, this.index.title);
|
||||
}
|
||||
|
||||
controllerDiv.appendChild (mainMenu.main);
|
||||
var oMenu = new YAHOO.widget.Menu("mainmenu", {position: "static"});
|
||||
oMenu.render();
|
||||
oMenu.show();
|
||||
},
|
||||
|
||||
//
|
||||
// Builds menu markup returns the associated divs in the
|
||||
// properties main, body, header, footer, and list
|
||||
//
|
||||
_menuMarkup : function(id /*Id for main part*/)
|
||||
{
|
||||
//
|
||||
// Build our menu div...
|
||||
//
|
||||
var mainDiv = document.createElement("div");
|
||||
var headerDiv = document.createElement("div");
|
||||
var bodyDiv = document.createElement("div");
|
||||
var footerDiv = document.createElement("div");
|
||||
var listDiv = document.createElement("ul");
|
||||
|
||||
mainDiv.setAttribute ("id", id);
|
||||
trc.util.dom.setClassName (mainDiv, "yuimenu");
|
||||
trc.util.dom.setClassName (headerDiv, "hd");
|
||||
trc.util.dom.setClassName (bodyDiv, "bd");
|
||||
trc.util.dom.setClassName (footerDiv, "ft");
|
||||
|
||||
mainDiv.appendChild (headerDiv);
|
||||
mainDiv.appendChild (bodyDiv);
|
||||
mainDiv.appendChild (footerDiv);
|
||||
bodyDiv.appendChild (listDiv);
|
||||
|
||||
return {
|
||||
main : mainDiv,
|
||||
body : bodyDiv,
|
||||
header : headerDiv,
|
||||
footer : footerDiv,
|
||||
list : listDiv
|
||||
};
|
||||
},
|
||||
|
||||
//
|
||||
// Adds a menu item to existing markup.
|
||||
//
|
||||
_menuItemMarkup : function (menu, /*Markup returned from _menuMarkup*/
|
||||
name, /* String, menu item name */
|
||||
href, /* String, menu item href */
|
||||
title /* String, title (tool tip)*/
|
||||
)
|
||||
{
|
||||
var listItem = document.createElement ("li");
|
||||
var link = document.createElement ("a");
|
||||
|
||||
trc.util.dom.setClassName (listItem, "yuimenuitem");
|
||||
trc.util.dom.setClassName (link, "yuimenuitemlabel");
|
||||
|
||||
link.setAttribute ("href", href);
|
||||
|
||||
if (title != null)
|
||||
{
|
||||
link.setAttribute ("title", title);
|
||||
}
|
||||
|
||||
link.appendChild (document.createTextNode(name));
|
||||
|
||||
listItem.appendChild (link);
|
||||
menu.list.appendChild(listItem);
|
||||
|
||||
return {
|
||||
item : listItem,
|
||||
anchor : link
|
||||
};
|
||||
}
|
||||
};
|
|
@ -1,137 +0,0 @@
|
|||
/**
|
||||
layoutManager.js
|
||||
|
||||
(C) 2009 Rackspace Hosting, All Rights Reserved
|
||||
|
||||
This file contains code that adjusts the layout of a schema
|
||||
document after a dom has been loaded. It does not modify the
|
||||
global scope.
|
||||
**/
|
||||
|
||||
(function()
|
||||
{
|
||||
//
|
||||
// Make sure dependecies are defined in the global scope, throw
|
||||
// an error if they are not.
|
||||
//
|
||||
if ((!window.trc) ||
|
||||
(!trc.util))
|
||||
{
|
||||
throw new Error("Require trc/util.js to be loaded.");
|
||||
}
|
||||
|
||||
//
|
||||
// This function should be called when the DOM is loaded so we
|
||||
// can get to work adjusting things.
|
||||
//
|
||||
function InitLayoutManager()
|
||||
{
|
||||
layoutManager._init();
|
||||
}
|
||||
trc.util.browser.addInitFunction (InitLayoutManager);
|
||||
|
||||
var layoutManager={
|
||||
//
|
||||
// Initialization function...
|
||||
//
|
||||
_init : function()
|
||||
{
|
||||
this._adjustMain();
|
||||
this._adjustSubElements();
|
||||
},
|
||||
|
||||
//
|
||||
// Applies appropriate styles to body and other main content
|
||||
// tags.
|
||||
//
|
||||
_adjustMain : function()
|
||||
{
|
||||
//
|
||||
// Change the class name for the correct YUI skin name.
|
||||
//
|
||||
var bodyTags = document.getElementsByTagName("body");
|
||||
if (bodyTags.length == 0)
|
||||
{
|
||||
throw new Error ("Couldn't find body element, bad DOM?");
|
||||
}
|
||||
else
|
||||
{
|
||||
trc.util.dom.setClassName(bodyTags[0], "yui-skin-sam");
|
||||
}
|
||||
|
||||
//
|
||||
// Setout the layout...
|
||||
//
|
||||
var docDiv = document.getElementById("doc");
|
||||
var mainDiv = document.getElementById("Main");
|
||||
|
||||
trc.util.dom.setClassName (docDiv, "yui-t1");
|
||||
docDiv.setAttribute ("id", "doc3");
|
||||
mainDiv.setAttribute ("id", "yui-main");
|
||||
|
||||
//
|
||||
// Old IE browser hacks...
|
||||
//
|
||||
switch (trc.util.browser.detectIEVersion())
|
||||
{
|
||||
//
|
||||
// IE 6 does not support fixed positioning. The
|
||||
// following is a little hack to get it to work.
|
||||
//
|
||||
//
|
||||
case 6:
|
||||
var controllerDiv = document.getElementById("Controller");
|
||||
controllerDiv.style.position="absolute";
|
||||
window.setInterval((function(){
|
||||
/* avoid leak by constantly querying for the
|
||||
* controller. */
|
||||
var ctrlDiv = document.getElementById("Controller");
|
||||
ctrlDiv.style.top = document.documentElement.scrollTop+10;
|
||||
}), 1000);
|
||||
break;
|
||||
|
||||
//
|
||||
// The controler doesn't work **at all** in IE 7
|
||||
// don't even show it.
|
||||
//
|
||||
case 7:
|
||||
var controllerDiv = document.getElementById("Controller");
|
||||
controllerDiv.style.display = "none";
|
||||
break;
|
||||
}
|
||||
},
|
||||
|
||||
//
|
||||
// Adds appropriate classes for subElements...
|
||||
//
|
||||
_adjustSubElements : function()
|
||||
{
|
||||
var divs = document.getElementsByTagName("div");
|
||||
for (var i=0;i<divs.length;i++)
|
||||
{
|
||||
var currentClass = divs[i].getAttribute ("class");
|
||||
var newClassName = currentClass;
|
||||
switch (currentClass)
|
||||
{
|
||||
case "SubItem" :
|
||||
newClassName += " yui-gd";
|
||||
break;
|
||||
case "SubItemProps" :
|
||||
newClassName += " yui-gd first";
|
||||
break;
|
||||
case "SubName" :
|
||||
newClassName += " yui-u first";
|
||||
break;
|
||||
case "SubAttributes" :
|
||||
case "SubDocumentation" :
|
||||
newClassName += " yui-u";
|
||||
break;
|
||||
}
|
||||
if (currentClass != newClassName)
|
||||
{
|
||||
trc.util.dom.setClassName (divs[i], newClassName);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
})();
|
|
@ -1,342 +0,0 @@
|
|||
/**
|
||||
schemaManager.js:
|
||||
|
||||
(C) 2009 Rackspace Hosting, All Rights Reserved
|
||||
|
||||
This file defines a single object in global scope:
|
||||
|
||||
trc.schema.sampleManager
|
||||
|
||||
The object is responsible for loading, formatting, and displaying
|
||||
samples in schema files. It expects trc.util to be defined which is
|
||||
provided in trc/util.js.
|
||||
|
||||
Code highlighting is provided by SHJS
|
||||
(http://shjs.sourceforge.net/). It should also be loaded before
|
||||
this code is initialized.
|
||||
|
||||
All methods/properties prepended with an underscore (_) are meant
|
||||
for internal use.
|
||||
**/
|
||||
|
||||
//
|
||||
// Initialization code...
|
||||
//
|
||||
(function()
|
||||
{
|
||||
//
|
||||
// Make sure dependecies are defined in the global scope, throw
|
||||
// an error if they are not.
|
||||
//
|
||||
if ((!window.trc) ||
|
||||
(!trc.util))
|
||||
{
|
||||
throw new Error("Require trc/util.js to be loaded.");
|
||||
}
|
||||
|
||||
//
|
||||
// Make sure syntax highlighter scripts are loaded, if not then
|
||||
// load them.
|
||||
//
|
||||
if (!window.sh_highlightDocument)
|
||||
{
|
||||
trc.util.dom.addStyle ("../style/shjs/sh_darkblue.css");
|
||||
|
||||
trc.util.dom.addScript ("../js/shjs/sh_main.js");
|
||||
trc.util.dom.addScript ("../js/shjs/sh_xml.js");
|
||||
trc.util.dom.addScript ("../js/shjs/sh_javascript.js");
|
||||
trc.util.dom.addScript ("../js/shjs/sh_java.js");
|
||||
}
|
||||
|
||||
function InitSchemaSampleManager()
|
||||
{
|
||||
trc.schema.sampleManager._init();
|
||||
}
|
||||
|
||||
trc.util.browser.addInitFunction(InitSchemaSampleManager);
|
||||
})();
|
||||
|
||||
//
|
||||
// Define trc.schema.sampleManager...
|
||||
//
|
||||
if (!trc.schema)
|
||||
{
|
||||
trc.schema = new Object();
|
||||
}
|
||||
trc.schema.sampleManager = {
|
||||
//
|
||||
// All sample data in an associative array:
|
||||
//
|
||||
// Select Element ID -> Array of sample ids.
|
||||
//
|
||||
samples : new Object(),
|
||||
|
||||
//
|
||||
// An array of code data..
|
||||
//
|
||||
// Code data is defined as an object with the following
|
||||
// properties:
|
||||
//
|
||||
// type: The mimetype of the code...href: The location of the code
|
||||
// or null if it's inline
|
||||
//
|
||||
// id: The id of the pre that contains the code.
|
||||
//
|
||||
// The initial object is the source code for the current document.
|
||||
//
|
||||
codes : new Array({
|
||||
id : "SrcContentCode",
|
||||
type : "application/xml",
|
||||
href : (function() {
|
||||
var ret = location.href;
|
||||
if (location.hash && (location.hash.length != 0))
|
||||
{
|
||||
ret = ret.replace (location.hash, "");
|
||||
}
|
||||
return ret;
|
||||
})()
|
||||
}),
|
||||
|
||||
//
|
||||
// Sets up the manager, begins the loading process...
|
||||
//
|
||||
_init : function() {
|
||||
//
|
||||
// Setup an array to hold data items to load, this is used by
|
||||
// the loadSample method.
|
||||
//
|
||||
this._toLoad = new Array();
|
||||
|
||||
for (var i=0;i<this.codes.length;i++)
|
||||
{
|
||||
if ((this.codes[i] != null) &&
|
||||
(this.codes[i].href != null))
|
||||
{
|
||||
this._toLoad.push (this.codes[i]);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Loads the code text
|
||||
//
|
||||
this._loadCode();
|
||||
},
|
||||
|
||||
//
|
||||
// Loads the next sample in the toLoad array.
|
||||
//
|
||||
_loadCode : function() {
|
||||
if (this._toLoad.length == 0)
|
||||
{
|
||||
//
|
||||
// All samples have been loaded, fire the loadComplete
|
||||
// method.
|
||||
//
|
||||
this._loadComplete();
|
||||
return;
|
||||
}
|
||||
|
||||
var codeData = this._toLoad.pop();
|
||||
var request = trc.util.net.getHTTPRequest();
|
||||
var manager = this;
|
||||
|
||||
request.onreadystatechange = function() {
|
||||
if (request.readyState == 4 /* Ready */) {
|
||||
if (request.status == 200 /* OKAY */) {
|
||||
manager._setCodeText (codeData, request.responseText);
|
||||
}
|
||||
else
|
||||
{
|
||||
manager._setCodeText (codeData, "Could not load sample ("+request.status+") "+request.responseText);
|
||||
}
|
||||
manager._loadCode();
|
||||
}
|
||||
};
|
||||
|
||||
request.open ("GET", codeData.href);
|
||||
request.send(null);
|
||||
},
|
||||
|
||||
//
|
||||
// Called after all samples are loaded into the DOM.
|
||||
//
|
||||
_loadComplete : function()
|
||||
{
|
||||
//
|
||||
// Normalize all code samples..
|
||||
//
|
||||
this._normalizeCodeText(1, 1, 5);
|
||||
|
||||
//
|
||||
// Perform syntax highlighting...
|
||||
//
|
||||
sh_highlightDocument();
|
||||
|
||||
//
|
||||
// All samples are initially hidden, show the selected
|
||||
// samples...
|
||||
//
|
||||
for (var optionID in this.samples)
|
||||
{
|
||||
this.showSample(optionID);
|
||||
}
|
||||
|
||||
//
|
||||
// We've adjusted the document, we need to setup the view so
|
||||
// that we're still pointing to the hash target.
|
||||
//
|
||||
if (window.location.hash &&
|
||||
(window.location.hash.length != 0))
|
||||
{
|
||||
window.location.href = window.location.hash;
|
||||
}
|
||||
},
|
||||
|
||||
//
|
||||
// Sets code text replacing any text already existing there.
|
||||
//
|
||||
_setCodeText : function ( codeData /* Info of the code to set (code object) */,
|
||||
code /* Code text to set (string) */)
|
||||
{
|
||||
//
|
||||
// Preprocess the txt if nessesary...
|
||||
//
|
||||
var ieVersion = trc.util.browser.detectIEVersion();
|
||||
if ((ieVersion > -1) &&
|
||||
(ieVersion < 8))
|
||||
{
|
||||
code = trc.util.text.unix2dos (code);
|
||||
}
|
||||
|
||||
var pre = document.getElementById(codeData.id);
|
||||
var preNodes = pre.childNodes;
|
||||
//
|
||||
// Remove placeholder data...
|
||||
//
|
||||
while (preNodes.length != 0)
|
||||
{
|
||||
pre.removeChild (preNodes[0]);
|
||||
}
|
||||
|
||||
//
|
||||
// Set the correct class type...
|
||||
//
|
||||
switch (codeData.type)
|
||||
{
|
||||
/*
|
||||
Javascript mimetypes
|
||||
*/
|
||||
case 'application/json':
|
||||
case 'application/javascript':
|
||||
case 'application/x-javascript':
|
||||
case 'application/ecmascript':
|
||||
case 'text/ecmascript':
|
||||
case 'text/javascript':
|
||||
trc.util.dom.setClassName (pre, "sh_javascript");
|
||||
break;
|
||||
/*
|
||||
Not real mimetypes but this is what we'll use for Java.
|
||||
*/
|
||||
case 'application/java':
|
||||
case 'text/java':
|
||||
trc.util.dom.setClassName (pre, "sh_java");
|
||||
break;
|
||||
default:
|
||||
trc.util.dom.setClassName (pre, "sh_xml");
|
||||
break;
|
||||
}
|
||||
|
||||
//
|
||||
// Add new code...
|
||||
//
|
||||
pre.appendChild (document.createTextNode (code));
|
||||
},
|
||||
|
||||
//
|
||||
// Retrives source code text
|
||||
//
|
||||
_getCodeText : function (codeData /* Info for the code to get*/)
|
||||
{
|
||||
var pre = document.getElementById(codeData.id);
|
||||
pre.normalize();
|
||||
//
|
||||
// Should be a single text node after pre...
|
||||
//
|
||||
return pre.firstChild.nodeValue;
|
||||
},
|
||||
|
||||
|
||||
//
|
||||
// Normalizes text by ensuring that top, bottom, right indent
|
||||
// levels are equal for all samples.
|
||||
//
|
||||
_normalizeCodeText : function (top, /* integer, top indent in lines */
|
||||
bottom, /* integer, bottom indent in lines */
|
||||
right /* integer, right indent in spaces */
|
||||
)
|
||||
{
|
||||
for (var i=0;i<this.codes.length;i++)
|
||||
{
|
||||
if (this.codes[i] != null)
|
||||
{
|
||||
var code = this._getCodeText (this.codes[i]);
|
||||
code = trc.util.text.setIndent (code, top, bottom, right);
|
||||
this._setCodeText (this.codes[i], code);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
//
|
||||
// This event handler shows the appropriate sample given an ID
|
||||
// to the select element.
|
||||
//
|
||||
showSample : function (selectID) /* ID of the Select element */
|
||||
{
|
||||
//
|
||||
// Get the selected value
|
||||
//
|
||||
var selected = document.getElementById(selectID);
|
||||
var selectedValue = selected.options[selected.selectedIndex].value;
|
||||
var samples = this.samples[selectID];
|
||||
|
||||
//
|
||||
// Undisplay old samples, display selected ones.
|
||||
//
|
||||
for (var i=0;i<samples.length;i++)
|
||||
{
|
||||
if (samples[i] != null)
|
||||
{
|
||||
var sample = document.getElementById (samples[i]);
|
||||
if (samples[i] == selectedValue)
|
||||
{
|
||||
sample.style.display = "block";
|
||||
}
|
||||
else
|
||||
{
|
||||
sample.style.display = "none";
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
//
|
||||
// Toggles the current source view. If the source is displayed it
|
||||
// undisplays it and vice versa.
|
||||
//
|
||||
toggleSrcView : function()
|
||||
{
|
||||
var content = document.getElementById ("Content");
|
||||
var src = document.getElementById ("SrcContent");
|
||||
|
||||
if (content.style.display != "none")
|
||||
{
|
||||
content.style.display = "none";
|
||||
src.style.display = "block";
|
||||
}
|
||||
else
|
||||
{
|
||||
content.style.display = "block";
|
||||
src.style.display = "none";
|
||||
}
|
||||
}
|
||||
};
|
|
@ -1,564 +0,0 @@
|
|||
/**
|
||||
util.js:
|
||||
|
||||
(C) 2009 Rackspace Hosting, All Rights Reserved
|
||||
|
||||
This file defines a single object in global scope:
|
||||
|
||||
trc.util
|
||||
|
||||
The util object contains internal objects which contain useful
|
||||
utility properties and methods.
|
||||
|
||||
trc.util.browser: contains methods for browser detection.
|
||||
|
||||
trc.util.dom: contains methods for manipulating the DOM.
|
||||
|
||||
trc.util.text: contains methods and properties useful when working
|
||||
with plain text.
|
||||
|
||||
trc.util.net: contains methods for creating HTTP requests.
|
||||
|
||||
trc.util.yui : contains methods for working with the YUI toolkit.
|
||||
|
||||
All methods/properties prepended with an underscore (_) are meant
|
||||
for internal use.
|
||||
**/
|
||||
|
||||
//
|
||||
// Define TRC
|
||||
//
|
||||
if (!window.trc)
|
||||
{
|
||||
trc= new Object();
|
||||
}
|
||||
trc.util = new Object();
|
||||
trc.util.browser = {
|
||||
//
|
||||
// Returns the current version of IE, or -1 if it's not an IE
|
||||
// browser. This is one of the recommended ways of detecting IE
|
||||
// see:
|
||||
//
|
||||
// http://msdn.microsoft.com/en-us/library/ms537509%28VS.85%29.aspx
|
||||
//
|
||||
detectIEVersion : function() {
|
||||
var rv = -1; // Return value assumes failure.
|
||||
if (navigator.appName == 'Microsoft Internet Explorer')
|
||||
{
|
||||
var ua = navigator.userAgent;
|
||||
var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
|
||||
if (re.exec(ua) != null)
|
||||
rv = parseFloat( RegExp.$1 );
|
||||
}
|
||||
return rv;
|
||||
},
|
||||
|
||||
//
|
||||
// A list of functions to execute on init.
|
||||
//
|
||||
_initFuns : new Array(),
|
||||
|
||||
//
|
||||
// Has the init function event been set?
|
||||
//
|
||||
_initFunSet: false,
|
||||
|
||||
//
|
||||
// Function called when the DOM has loaded. It launches all init
|
||||
// functions.
|
||||
//
|
||||
_onInit : function()
|
||||
{
|
||||
//
|
||||
// Sort by order...
|
||||
//
|
||||
this._initFuns.sort(function(a, b){ return a.order - b.order; });
|
||||
for (var i=0;i<this._initFuns.length;i++)
|
||||
{
|
||||
this._initFuns[i]();
|
||||
}
|
||||
},
|
||||
|
||||
//
|
||||
// Adds a function that should be executed when the dom is
|
||||
// loaded.
|
||||
//
|
||||
addInitFunction : function(init, /*Function to call after dom
|
||||
* is loaded*/
|
||||
|
||||
order /* An optional it specifing
|
||||
* order. The bigger the int the
|
||||
* later it will run. Default is
|
||||
* 1.*/
|
||||
) {
|
||||
if (arguments.length < 2)
|
||||
{
|
||||
init.order = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
init.order = order;
|
||||
}
|
||||
this._initFuns.push (init);
|
||||
|
||||
if (!this._initFunSet)
|
||||
{
|
||||
var butil = this;
|
||||
function initFun()
|
||||
{
|
||||
return (function(){ butil._onInit(); });
|
||||
}
|
||||
|
||||
//
|
||||
// Try event listeners, attachEvent and if that fails use
|
||||
// window.onload...
|
||||
//
|
||||
if (window.addEventListener)
|
||||
{
|
||||
window.addEventListener("load", initFun(), false);
|
||||
} else if (window.attachEvent)
|
||||
{
|
||||
window.attachEvent ("onload", initFun());
|
||||
} else
|
||||
{
|
||||
window.onload = initFun();
|
||||
}
|
||||
|
||||
this._initFunSet = true;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
trc.util.dom = {
|
||||
//
|
||||
// Adds a new script tag to the current DOM.
|
||||
//
|
||||
addScript : function (src /* Script href */)
|
||||
{
|
||||
var scriptElement = document.createElement ("script");
|
||||
scriptElement.setAttribute ("type", "text/javascript");
|
||||
scriptElement.setAttribute ("src", src);
|
||||
|
||||
this.addToHead (scriptElement);
|
||||
},
|
||||
|
||||
//
|
||||
// Adds a new stylesheet to the current DOM.
|
||||
//
|
||||
addStyle : function (src /* Stylesheet href */)
|
||||
{
|
||||
var linkElement = document.createElement ("link");
|
||||
linkElement.setAttribute ("rel", "stylesheet");
|
||||
linkElement.setAttribute ("type", "text/css");
|
||||
linkElement.setAttribute ("href", src);
|
||||
|
||||
this.addToHead (linkElement);
|
||||
},
|
||||
|
||||
//
|
||||
// Adds a DOM node to the HTTP head element. The element is
|
||||
// always added as the last child an error is thrown if the
|
||||
// head element can't be found.
|
||||
//
|
||||
addToHead : function (node /* A DOM node */)
|
||||
{
|
||||
var headArray = document.getElementsByTagName("head");
|
||||
if (headArray.length == 0)
|
||||
{
|
||||
throw new Error("Couldn't find head element, bad DOM?");
|
||||
}
|
||||
else
|
||||
{
|
||||
headArray[0].appendChild (node);
|
||||
}
|
||||
},
|
||||
|
||||
//
|
||||
// Dumb utility function for setting the class name of an
|
||||
// element. Eventually we'll move completely to XHTML, but
|
||||
// this will never work in IE 6, so for now we need this
|
||||
// method for setting the class name.
|
||||
//
|
||||
setClassName : function (element, /* DOM Element*/
|
||||
name /* Class name to use */
|
||||
)
|
||||
{
|
||||
var ieVersion = trc.util.browser.detectIEVersion();
|
||||
|
||||
if ((ieVersion > -1) &&
|
||||
(ieVersion < 7))
|
||||
{
|
||||
element.className = name;
|
||||
}
|
||||
else
|
||||
{
|
||||
element.setAttribute ("class",name);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
trc.util.text = {
|
||||
//
|
||||
// Useful RegExps
|
||||
//
|
||||
blank : new RegExp ("^\\s*$"), /* A blank string */
|
||||
indent : new RegExp ("^\\s+"), /* Line indent */
|
||||
lines : new RegExp ("$","m"), /* All lines */
|
||||
linechars : new RegExp ("(\n|\r)"), /* EOL line characters */
|
||||
tabs : new RegExp ("\t","g"), /* All tabs */
|
||||
|
||||
//
|
||||
// We need this because microsoft browsers before IE 7, connot
|
||||
// display pre-formatted text correctly win unix style line
|
||||
// endings.
|
||||
//
|
||||
unix2dos : function(txt /* String */) {
|
||||
//if already DOS...
|
||||
if (txt.search(/\r\n/) != -1)
|
||||
{
|
||||
return txt;
|
||||
}
|
||||
return txt.replace (/\n/g, "\r\n");
|
||||
},
|
||||
|
||||
//
|
||||
// Useful to normalize text.
|
||||
//
|
||||
dos2unix : function(txt /* String */) {
|
||||
//if already unix...
|
||||
if (txt.search(/\r\n/) == -1)
|
||||
{
|
||||
return txt;
|
||||
}
|
||||
|
||||
return txt.replace(/\r/g, "");
|
||||
},
|
||||
|
||||
//
|
||||
// Create a string with a character repeated x times.
|
||||
//
|
||||
repString : function (length, /* integer, size of the string to create */
|
||||
ch /* string, The character to set the string to */
|
||||
)
|
||||
{
|
||||
var ret = new String();
|
||||
for (var i=0;i<length;i++) {ret=ret.concat(ch);}
|
||||
|
||||
return ret;
|
||||
},
|
||||
|
||||
//
|
||||
// Replace tabs in a text with strings.
|
||||
//
|
||||
replaceTabs : function (txt, /* String to modify */
|
||||
length /* integer, tab length in spaces */
|
||||
)
|
||||
{
|
||||
var tabs = this.repString(length, " ");
|
||||
return txt.replace (this.tabs, tabs);
|
||||
},
|
||||
|
||||
//
|
||||
// Given multi-line text returns Adjust top and bottom indent
|
||||
// (in lines) and right indent (in spaces)
|
||||
//
|
||||
setIndent : function (txt, /* String */
|
||||
top, /* integer, top indent in lines */
|
||||
bottom, /* integer, bottom indent in lines */
|
||||
right /* integer, right indent in spaces */
|
||||
)
|
||||
{
|
||||
//
|
||||
// Can't indent an empty string..
|
||||
//
|
||||
if (txt.length == 0)
|
||||
{
|
||||
return txt;
|
||||
}
|
||||
|
||||
//
|
||||
// If not 0, bottom will be off by one...
|
||||
//
|
||||
if (bottom != 0)
|
||||
{
|
||||
bottom++;
|
||||
}
|
||||
|
||||
var head=this.repString (top, "\n");
|
||||
var tail=this.repString (bottom, "\n");
|
||||
var marg=this.repString (right, " ");
|
||||
var ntxt = this.dos2unix(txt);
|
||||
var ntxt = this.replaceTabs (ntxt, 8);
|
||||
var lines = ntxt.split (this.lines);
|
||||
var origIndent=Number.MAX_VALUE;
|
||||
var origIndentStr;
|
||||
|
||||
//
|
||||
// Look up indent.
|
||||
//
|
||||
for (var i=0;i<lines.length;i++)
|
||||
{
|
||||
//
|
||||
// Remove EOL characters...
|
||||
//
|
||||
lines[i] = lines[i].replace (this.linechars, "");
|
||||
|
||||
//
|
||||
// Ignore blank lines
|
||||
//
|
||||
if (lines[i].match(this.blank) != null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
//
|
||||
// Detect the indent if any...
|
||||
//
|
||||
var result = lines[i].match(this.indent);
|
||||
if (result == null)
|
||||
{
|
||||
origIndent = 0;
|
||||
origIndentStr = "";
|
||||
}
|
||||
else if (result[0].length < origIndent)
|
||||
{
|
||||
origIndent = result[0].length;
|
||||
origIndentStr = result[0];
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// This implys all line are blank...can't indent.
|
||||
//
|
||||
if (origIndent == Number.MAX_VALUE)
|
||||
{
|
||||
return txt;
|
||||
}
|
||||
|
||||
if (origIndent != 0)
|
||||
{
|
||||
var regExStr = "^";
|
||||
for (var i=0;i<origIndent;i++)
|
||||
{
|
||||
regExStr=regExStr.concat("\\s");
|
||||
}
|
||||
var indent = new RegExp(regExStr);
|
||||
for (var i=0;i<lines.length;i++)
|
||||
{
|
||||
lines[i] = lines[i].replace(indent,marg);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (var i=0;i<lines.length;i++)
|
||||
{
|
||||
lines[i] = marg.concat (lines[i]);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Remove top...
|
||||
//
|
||||
while (lines.length != 0)
|
||||
{
|
||||
if (lines[0].match(this.blank))
|
||||
{
|
||||
lines.shift();
|
||||
}
|
||||
else
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Remove bottom...
|
||||
//
|
||||
while (lines.length != 0)
|
||||
{
|
||||
if (lines[lines.length-1].match(this.blank))
|
||||
{
|
||||
lines.pop();
|
||||
}
|
||||
else
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
var indented = lines.join("\n");
|
||||
indented=head.concat(indented, tail);
|
||||
|
||||
return indented;
|
||||
}
|
||||
};
|
||||
|
||||
trc.util.net = {
|
||||
//
|
||||
// A list of possible factories for creating an XMLHTTPRequest
|
||||
//
|
||||
_HTTPReqFactories :
|
||||
[
|
||||
function() { return new XMLHttpRequest(); },
|
||||
function() { return new ActiveXObject("Msxml2.XMLHTTP"); },
|
||||
function() { return new ActiveXObject("Microsoft.XMLHTTP"); }
|
||||
],
|
||||
|
||||
//
|
||||
// A cached XMLHTTPRequest factory that we know works in this
|
||||
// browser
|
||||
//
|
||||
_HTTPReqFactory : null,
|
||||
|
||||
//
|
||||
// Provides a way of getting an HTTPRequest object in a
|
||||
// platform independent manner
|
||||
//
|
||||
getHTTPRequest : function()
|
||||
{
|
||||
//
|
||||
// Use cache if available..
|
||||
//
|
||||
if (this._HTTPReqFactory != null) return this._HTTPReqFactory();
|
||||
|
||||
//
|
||||
// Search for a factory..
|
||||
//
|
||||
for (var i=0; i< this._HTTPReqFactories.length; i++)
|
||||
{
|
||||
try {
|
||||
var factory = this._HTTPReqFactories[i];
|
||||
var request = factory();
|
||||
if (request != null)
|
||||
{
|
||||
this._HTTPReqFactory = factory;
|
||||
return request;
|
||||
}
|
||||
} catch (e) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Looks like we don't have support for XMLHttpRequest...
|
||||
//
|
||||
this._HTTPReqFactory = function() {throw new Error("XMLHttpRequest not supported");}
|
||||
this._HTTPReqFactory();
|
||||
return;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
//
|
||||
// Init code for trc.util.yui...
|
||||
//
|
||||
(function()
|
||||
{
|
||||
//
|
||||
// Menu make sure we have the YUI loader as it's used by our
|
||||
// init function to load YUI components.
|
||||
//
|
||||
if (!window.YAHOO)
|
||||
{
|
||||
//
|
||||
// We are currently using YUI on YAHOO!'s servers we may
|
||||
// want to change this.
|
||||
//
|
||||
var YUI_BASE="http://yui.yahooapis.com/2.7.0/";
|
||||
|
||||
trc.util.dom.addScript (YUI_BASE+"build/yuiloader/yuiloader-min.js");
|
||||
}
|
||||
|
||||
function InitYUIUtil()
|
||||
{
|
||||
trc.util.yui._init();
|
||||
}
|
||||
trc.util.browser.addInitFunction (InitYUIUtil);
|
||||
})();
|
||||
|
||||
trc.util.yui = {
|
||||
//
|
||||
// A list of dependecies to be passed to the YUI loader. This is
|
||||
// essentially a hash set: dep->dep.
|
||||
//
|
||||
_deps : new Object(),
|
||||
|
||||
//
|
||||
// An array of callback functions, these should be called when all
|
||||
// dependecies are loaded.
|
||||
//
|
||||
_callbacks : new Array(),
|
||||
|
||||
//
|
||||
// The init function simply calls the YUI loader...
|
||||
//
|
||||
_init : function() {
|
||||
var yuiUtil = this;
|
||||
|
||||
//
|
||||
// It takes safari a while to load the YUI Loader if it hasn't
|
||||
// loaded yet keep trying at 1/4 second intervals
|
||||
//
|
||||
if (!window.YAHOO)
|
||||
{
|
||||
window.setTimeout (function() {
|
||||
yuiUtil._init();
|
||||
}, 250);
|
||||
return;
|
||||
}
|
||||
|
||||
//
|
||||
// Collect requirements...
|
||||
//
|
||||
var required = new Array();
|
||||
for (var req in this._deps)
|
||||
{
|
||||
required.push (req);
|
||||
}
|
||||
|
||||
//
|
||||
// Load YUI dependecies...
|
||||
//
|
||||
var loader = new YAHOO.util.YUILoader({
|
||||
require: required,
|
||||
loadOptional: true,
|
||||
filter: "RAW",
|
||||
onSuccess: function() {
|
||||
yuiUtil._depsLoaded();
|
||||
},
|
||||
timeout: 10000,
|
||||
combine: true
|
||||
});
|
||||
loader.insert();
|
||||
},
|
||||
|
||||
//
|
||||
// Called after all dependecies have been loaded
|
||||
//
|
||||
_depsLoaded : function() {
|
||||
//
|
||||
// Dependecies are loaded let everyone know.
|
||||
//
|
||||
for (var i=0;i<this._callbacks.length;i++)
|
||||
{
|
||||
this._callbacks[i]();
|
||||
}
|
||||
},
|
||||
|
||||
//
|
||||
// Request that one or more YUI dependecies are loaded.
|
||||
//
|
||||
loadYUIDeps : function (deps, /*An array of dep strings */
|
||||
callback /*A function to call when deps are loaded*/
|
||||
)
|
||||
{
|
||||
for (var i=0;i<deps.length;i++)
|
||||
{
|
||||
this._deps[deps[i]] = deps[i];
|
||||
}
|
||||
if (callback != null)
|
||||
{
|
||||
this._callbacks.push (callback);
|
||||
}
|
||||
}
|
||||
};
|
File diff suppressed because it is too large
Load Diff
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
"attachment": {}
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
<attachment />
|
|
@ -1,6 +0,0 @@
|
|||
{
|
||||
"attachment":
|
||||
{
|
||||
"id": "test_interface_identifier"
|
||||
}
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
<attachment id="test_interface_identifier"/>
|
|
@ -1,6 +0,0 @@
|
|||
{
|
||||
"attachment":
|
||||
{
|
||||
"id": "test_interface_identifier"
|
||||
}
|
||||
}
|
|
@ -1,2 +0,0 @@
|
|||
<attachment
|
||||
id="test_interface_identifier"/>
|
|
@ -1,19 +0,0 @@
|
|||
{
|
||||
"extensions": [
|
||||
{
|
||||
"name": "Cisco Port Profile",
|
||||
"namespace": "http://docs.ciscocloud.com/api/ext/portprofile/v1.0",
|
||||
"alias": "Cisco Port Profile",
|
||||
"updated": "2011-07-23T13:25:27-06:00",
|
||||
"description": "Portprofile include QoS information",
|
||||
},
|
||||
{
|
||||
"name": "Cisco qos",
|
||||
"namespace": "http://docs.ciscocloud.com/api/ext/qos/v1.0",
|
||||
"alias": "Cisco qos",
|
||||
"updated": "2011-07-25T13:25:27-06:00",
|
||||
"description": "qos include qos_name and qos_desc",
|
||||
},
|
||||
|
||||
]
|
||||
}
|
|
@ -1,21 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<extensions>
|
||||
|
||||
<extension
|
||||
name="Cisco Port Profile"
|
||||
namespace="http://docs.ciscocloud.com/api/ext/portprofile/v1.0"
|
||||
alias="Cisco Port Profile"
|
||||
updated="2011-07-23T13:25:27-06:00">
|
||||
<description>Portprofile include QoS information</description>
|
||||
</extension>
|
||||
|
||||
<extension
|
||||
name="Cisco qos"
|
||||
namespace="http://docs.ciscocloud.com/api/ext/qos/v1.0"
|
||||
alias="Cisco qos"
|
||||
updated="2011-07-25T13:25:27-06:00">
|
||||
<description>qos include qos_name and qos_desc</description>
|
||||
</extension>
|
||||
|
||||
</extensions>
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
"networkNotFound": {
|
||||
"message": "Unable to find a network with the specified identifier.",
|
||||
"code": 420,
|
||||
"detail": "Network 8de6af7c-ef95-4ac1-9d37-172f8df33a1f could not be found"
|
||||
}
|
||||
}
|
|
@ -1,8 +0,0 @@
|
|||
<networkNotFound code="420" xmlns="http://netstack.org/quantum/api/v1.0">
|
||||
<message>
|
||||
Unable to find a network with the specified identifier.
|
||||
</message>
|
||||
<detail>
|
||||
Network 8de6af7c-ef95-4ac1-9d37-172f8df33a1f could not be found
|
||||
</detail>
|
||||
</networkNotFound
|
|
@ -1,22 +0,0 @@
|
|||
{
|
||||
"network":
|
||||
{
|
||||
"id": "8bec1293-16bd-4568-ba75-1f58bec0b4c3",
|
||||
"name": "test_network"
|
||||
"ports":
|
||||
[
|
||||
{
|
||||
"id": "98017ddc-efc8-4c25-a915-774b2a633855",
|
||||
"state": "DOWN"
|
||||
},
|
||||
{
|
||||
"id": b832be00-6553-4f69-af33-acd554e36d08",
|
||||
"state": "ACTIVE",
|
||||
"attachment":
|
||||
{
|
||||
"id": "test_interface_identifier"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
|
@ -1,14 +0,0 @@
|
|||
<network
|
||||
id="8bec1293-16bd-4568-ba75-1f58bec0b4c3"
|
||||
name="test_network">
|
||||
<ports>
|
||||
<port
|
||||
id="98017ddc-efc8-4c25-a915-774b2a633855"
|
||||
status="DOWN"/>
|
||||
<port
|
||||
id="b832be00-6553-4f69-af33-acd554e36d08"
|
||||
status="ACTIVE">
|
||||
<attachment id="test_interface_identifier"/>
|
||||
</port>
|
||||
</ports>
|
||||
</network>
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
"network":
|
||||
{
|
||||
"id": "8bec1293-16bd-4568-ba75-1f58bec0b4c3",
|
||||
"name": "test_network"
|
||||
}
|
||||
}
|
|
@ -1,3 +0,0 @@
|
|||
<network
|
||||
id="8bec1293-16bd-4568-ba75-1f58bec0b4c3"
|
||||
name="test_network"/>
|
|
@ -1,6 +0,0 @@
|
|||
{
|
||||
"network":
|
||||
{
|
||||
"name": "test_create_network"
|
||||
}
|
||||
}
|
|
@ -1,2 +0,0 @@
|
|||
<network
|
||||
name="test_create_network"/>
|
|
@ -1,6 +0,0 @@
|
|||
{
|
||||
"network":
|
||||
{
|
||||
"id": "158233b0-ca9a-40b4-8614-54a4a99d47d1",
|
||||
}
|
||||
}
|
|
@ -1,2 +0,0 @@
|
|||
<network
|
||||
id="158233b0-ca9a-40b4-8614-54a4a99d47d1"/>
|
|
@ -1,13 +0,0 @@
|
|||
{
|
||||
"networks":
|
||||
[
|
||||
{
|
||||
"id": "8bec1293-16bd-4568-ba75-1f58bec0b4c3",
|
||||
"name": "network_1"
|
||||
},
|
||||
{
|
||||
"id": "2a39409c-7146-4501-8429-3579e03e9b56",
|
||||
"name": "network_2"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,8 +0,0 @@
|
|||
<networks>
|
||||
<network
|
||||
id="8bec1293-16bd-4568-ba75-1f58bec0b4c3"
|
||||
name="network_1"/>
|
||||
<network
|
||||
id="2a39409c-7146-4501-8429-3579e03e9b56"
|
||||
name="network_2"/>
|
||||
</networks>
|
|
@ -1,11 +0,0 @@
|
|||
{
|
||||
"networks":
|
||||
[
|
||||
{
|
||||
"id": "8bec1293-16bd-4568-ba75-1f58bec0b4c3"
|
||||
},
|
||||
{
|
||||
"id": "2a39409c-7146-4501-8429-3579e03e9b56"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,4 +0,0 @@
|
|||
<networks>
|
||||
<network id="8bec1293-16bd-4568-ba75-1f58bec0b4c3"/>
|
||||
<network id="2a39409c-7146-4501-8429-3579e03e9b56"/>
|
||||
</networks>
|
|
@ -1,5 +0,0 @@
|
|||
{
|
||||
"network": {
|
||||
"name": "test"
|
||||
}
|
||||
}
|
|
@ -1,2 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<network name="test"/>
|
|
@ -1,5 +0,0 @@
|
|||
{
|
||||
"network": {
|
||||
"id": "611851f2-df8b-4455-b84b-8c73b7ca5dec"
|
||||
}
|
||||
}
|
|
@ -1,2 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<network id="e1150d1c-e953-402d-aa75-e35d803d914b"/>
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
"itemNotFound" : {
|
||||
"code" : 404,
|
||||
"message" : "Not Found",
|
||||
"details" : "Error Details..."
|
||||
}
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<itemNotFound
|
||||
xmlns="http://docs.openstack.org/compute/api/v1.1"
|
||||
code="404">
|
||||
<message>Not Found</message>
|
||||
<details>Error Details...</details>
|
||||
</itemNotFound>
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
"notImplemented" : {
|
||||
"code" : 501,
|
||||
"message" : "Not Implemented",
|
||||
"details" : "Error Details..."
|
||||
}
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<notImplemented xmlns="http://docs.openstack.org/compute/api/v1.1" code="501">
|
||||
<message>Not Implemented</message>
|
||||
<details>Error Details...</details>
|
||||
</notImplemented>
|
|
@ -1,12 +0,0 @@
|
|||
{
|
||||
"port":
|
||||
{
|
||||
"state": "DOWN",
|
||||
"id": "98017ddc-efc8-4c25-a915-774b2a633855"
|
||||
"attachment":
|
||||
{
|
||||
"id": "test_interface_identifier"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
<port
|
||||
id="98017ddc-efc8-4c25-a915-774b2a633855"
|
||||
state="DOWN">
|
||||
<attachment
|
||||
id="test_interface_identifier"/>
|
||||
</port>
|
|
@ -1,8 +0,0 @@
|
|||
{
|
||||
"port":
|
||||
{
|
||||
"state": "DOWN",
|
||||
"id": "98017ddc-efc8-4c25-a915-774b2a633855"
|
||||
}
|
||||
}
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
<port
|
||||
id="98017ddc-efc8-4c25-a915-774b2a633855"
|
||||
state="DOWN"/>
|
|
@ -1,6 +0,0 @@
|
|||
{
|
||||
"port":
|
||||
{
|
||||
"state": "ACTIVE"
|
||||
}
|
||||
}
|
|
@ -1,2 +0,0 @@
|
|||
<port
|
||||
state="ACTIVE"/>
|
|
@ -1,6 +0,0 @@
|
|||
{
|
||||
"port":
|
||||
{
|
||||
"id": "98017ddc-efc8-4c25-a915-774b2a633855"
|
||||
}
|
||||
}
|
|
@ -1,2 +0,0 @@
|
|||
<port
|
||||
id="98017ddc-efc8-4c25-a915-774b2a633855"/>
|
|
@ -1,12 +0,0 @@
|
|||
{
|
||||
"ports": [
|
||||
{
|
||||
"id": "98017ddc-efc8-4c25-a915-774b2a633855",
|
||||
"state": "ACTIVE",
|
||||
},
|
||||
{
|
||||
"id": "b832be00-6553-4f69-af33-acd554e36d08",
|
||||
"state": "ACTIVE",
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,8 +0,0 @@
|
|||
<ports>
|
||||
<port
|
||||
id="98017ddc-efc8-4c25-a915-774b2a633855"
|
||||
state="ACTIVE"/>
|
||||
<port
|
||||
id="b832be00-6553-4f69-af33-acd554e36d08"
|
||||
state="ACTIVE"/>
|
||||
</ports>
|
|
@ -1,11 +0,0 @@
|
|||
{
|
||||
"ports":
|
||||
[
|
||||
{
|
||||
"id": "98017ddc-efc8-4c25-a915-774b2a633855"
|
||||
},
|
||||
{
|
||||
"id": "b832be00-6553-4f69-af33-acd554e36d08"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
<ports>
|
||||
<port
|
||||
id="98017ddc-efc8-4c25-a915-774b2a633855"/>
|
||||
<port
|
||||
id="b832be00-6553-4f69-af33-acd554e36d08"/>
|
||||
</ports>
|
|
@ -1,9 +0,0 @@
|
|||
{
|
||||
"network" {
|
||||
"id" : "private",
|
||||
"ip" : [
|
||||
{"version" : 4, "addr" : "10.176.42.16"},
|
||||
{"version" : 6, "addr" : "::babe:10.176.42.16"}
|
||||
]
|
||||
}
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<network xmlns="http://docs.openstack.org/compute/api/v1.1"
|
||||
id="private">
|
||||
<ip version="4" addr="10.176.42.16"/>
|
||||
<ip version="6" addr="::babe:10.176.42.16"/>
|
||||
</network>
|
|
@ -1,11 +0,0 @@
|
|||
{
|
||||
"network" {
|
||||
"id" : "public",
|
||||
"ip" : [
|
||||
{"version" : 4, "addr" : "67.23.10.132"},
|
||||
{"version" : 6, "addr" : "::babe:67.23.10.132"},
|
||||
{"version" : 4, "addr" : "67.23.10.131"},
|
||||
{"version" : 6, "addr" : "::babe:4317:0A83"}
|
||||
]
|
||||
}
|
||||
}
|
|
@ -1,8 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<network xmlns="http://docs.openstack.org/compute/api/v1.1"
|
||||
id="public">
|
||||
<ip version="4" addr="67.23.10.132"/>
|
||||
<ip version="6" addr="::babe:67.23.10.132"/>
|
||||
<ip version="4" addr="67.23.10.131"/>
|
||||
<ip version="6" addr="::babe:4317:0A83"/>
|
||||
</network>
|
|
@ -1,22 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<feed xmlns="http://www.w3.org/2005/Atom">
|
||||
<title type="text">Available API Versions</title>
|
||||
<updated>2010-12-12T18:30:02.25Z</updated>
|
||||
<id>http://servers.api.openstack.org/</id>
|
||||
<author><name>Rackspace</name><uri>http://www.rackspace.com/</uri></author>
|
||||
<link rel="self" href="http://servers.api.openstack.org/"/>
|
||||
<entry>
|
||||
<id>http://servers.api.openstack.org/v1.1/</id>
|
||||
<title type="text">Version v1.1</title>
|
||||
<updated>2010-12-12T18:30:02.25Z</updated>
|
||||
<link rel="self" href="http://servers.api.openstack.org/v1.1/"/>
|
||||
<content type="text">Version v1.1 CURRENT (2010-12-12T18:30:02.25Z)</content>
|
||||
</entry>
|
||||
<entry>
|
||||
<id>http://servers.api.openstack.org/v1.0/</id>
|
||||
<title type="text">Version v1.0</title>
|
||||
<updated>2009-10-09T11:30:00Z</updated>
|
||||
<link rel="self" href="http://servers.api.openstack.org/v1.0/"/>
|
||||
<content type="text">Version v1.0 DEPRECATED (2009-10-09T11:30:00Z)</content>
|
||||
</entry>
|
||||
</feed>
|
|
@ -1,24 +0,0 @@
|
|||
{
|
||||
"versions": [
|
||||
{
|
||||
"status": "CURRENT",
|
||||
"id": "v1.0",
|
||||
"links": [
|
||||
{
|
||||
"href": "http://127.0.0.1:9696/v1.0",
|
||||
"rel": "self"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"status": "FUTURE",
|
||||
"id": "v1.1",
|
||||
"links": [
|
||||
{
|
||||
"href": "http://127.0.0.1:9696/v1.1",
|
||||
"rel": "self"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
<versions>
|
||||
<version id="v1.0" status="CURRENT">
|
||||
<links>
|
||||
<link href="http://127.0.0.1:9696/v1.0" rel="self"/>
|
||||
</links>
|
||||
</version>
|
||||
<version id="v1.1" status="FUTURE">
|
||||
<links>
|
||||
<link href="http://127.0.0.1:9696/v1.1" rel="self"/>
|
||||
</links>
|
||||
</version>
|
||||
</versions>
|
|
@ -1,82 +0,0 @@
|
|||
/*
|
||||
* (C) 2009 Rackspace Hosting, All Rights Reserved.
|
||||
*/
|
||||
body, div, dl, dt, dd, ul, ol, li, h2, h3,
|
||||
h4, h5, h6, pre, code, form, fieldset, legend,
|
||||
input, button, textarea, p, blockquote, th, td {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 350%;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
#Content {
|
||||
border: 1px solid;
|
||||
padding: 0px 40px 40px;
|
||||
margin-left: 155px;
|
||||
}
|
||||
|
||||
#SrcContent {
|
||||
padding: 0px 40px 40px;
|
||||
display: none;
|
||||
margin-left: 155px;
|
||||
}
|
||||
|
||||
#Controller {
|
||||
position: fixed;
|
||||
width: 145px;
|
||||
left: 10px;
|
||||
top: 10px;
|
||||
}
|
||||
|
||||
.Sample {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.EnumValue{
|
||||
padding: 10px 0px;
|
||||
}
|
||||
|
||||
.EnumDoc{
|
||||
padding: 10px 10px 10px 0px;
|
||||
}
|
||||
|
||||
.ExternHref{
|
||||
padding-top: 5px;
|
||||
}
|
||||
|
||||
.ExternDoc{
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
pre {
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
td {
|
||||
padding: 0px 0px 0px 10px;
|
||||
width: 50%;
|
||||
font-size: 90%;
|
||||
}
|
||||
|
||||
table {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
a:link {
|
||||
color: #000090;
|
||||
}
|
||||
|
||||
a:visited {
|
||||
color: #000090;
|
||||
}
|
|
@ -1,151 +0,0 @@
|
|||
pre.sh_sourceCode {
|
||||
background-color: #eeeeee;
|
||||
color: #000000;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_keyword {
|
||||
color: #bb7977;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_type {
|
||||
color: #8080c0;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_string {
|
||||
color: #a68500;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_regexp {
|
||||
color: #a68500;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_specialchar {
|
||||
color: #ff00ff;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_comment {
|
||||
color: #ff8000;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_number {
|
||||
color: #800080;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_preproc {
|
||||
color: #0080c0;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_symbol {
|
||||
color: #ff0080;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_function {
|
||||
color: #004466;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_cbracket {
|
||||
color: #ff0080;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_url {
|
||||
color: #a68500;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_date {
|
||||
color: #bb7977;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_time {
|
||||
color: #bb7977;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_file {
|
||||
color: #bb7977;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_ip {
|
||||
color: #a68500;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_name {
|
||||
color: #a68500;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_variable {
|
||||
color: #0080c0;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_oldfile {
|
||||
color: #ff00ff;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_newfile {
|
||||
color: #a68500;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_difflines {
|
||||
color: #bb7977;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_selector {
|
||||
color: #0080c0;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_property {
|
||||
color: #bb7977;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_value {
|
||||
color: #a68500;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
|
@ -1,151 +0,0 @@
|
|||
pre.sh_sourceCode {
|
||||
background-color: #000040;
|
||||
color: #C7C7C7;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_keyword {
|
||||
color: #ffff60;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_type {
|
||||
color: #60ff60;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_string {
|
||||
color: #ffa0a0;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_regexp {
|
||||
color: #ffa0a0;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_specialchar {
|
||||
color: #ffa500;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_comment {
|
||||
color: #80a0ff;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_number {
|
||||
color: #42cad9;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_preproc {
|
||||
color: #ff80ff;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_symbol {
|
||||
color: #d8e91b;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_function {
|
||||
color: #ffffff;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_cbracket {
|
||||
color: #d8e91b;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_url {
|
||||
color: #ffa0a0;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_date {
|
||||
color: #ffff60;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_time {
|
||||
color: #ffff60;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_file {
|
||||
color: #ffff60;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_ip {
|
||||
color: #ffa0a0;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_name {
|
||||
color: #ffa0a0;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_variable {
|
||||
color: #26e0e7;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_oldfile {
|
||||
color: #ffa500;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_newfile {
|
||||
color: #ffa0a0;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_difflines {
|
||||
color: #ffff60;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_selector {
|
||||
color: #26e0e7;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_property {
|
||||
color: #ffff60;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_value {
|
||||
color: #ffa0a0;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
|
@ -1,139 +0,0 @@
|
|||
pre.sh_sourceCode {
|
||||
background-color: #ffffff;
|
||||
color: #000000;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_keyword {
|
||||
color: #9c20ee;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_type {
|
||||
color: #208920;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_string {
|
||||
color: #bd8d8b;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_regexp {
|
||||
color: #bd8d8b;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_specialchar {
|
||||
color: #bd8d8b;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_comment {
|
||||
color: #ac2020;
|
||||
font-weight: normal;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_number {
|
||||
color: #000000;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_preproc {
|
||||
color: #000000;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_function {
|
||||
color: #000000;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_url {
|
||||
color: #bd8d8b;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_date {
|
||||
color: #9c20ee;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_time {
|
||||
color: #9c20ee;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_file {
|
||||
color: #9c20ee;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_ip {
|
||||
color: #bd8d8b;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_name {
|
||||
color: #bd8d8b;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_variable {
|
||||
color: #0000ff;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_oldfile {
|
||||
color: #bd8d8b;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_newfile {
|
||||
color: #bd8d8b;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_difflines {
|
||||
color: #9c20ee;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_selector {
|
||||
color: #0000ff;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_property {
|
||||
color: #9c20ee;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_value {
|
||||
color: #bd8d8b;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
|
@ -1,151 +0,0 @@
|
|||
pre.sh_sourceCode {
|
||||
background-color: #000044;
|
||||
color: #dd00ff;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_keyword {
|
||||
color: #ffffff;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_type {
|
||||
color: #f1157c;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_string {
|
||||
color: #ffffff;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_regexp {
|
||||
color: #ffffff;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_specialchar {
|
||||
color: #82d66d;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_comment {
|
||||
color: #bfbfbf;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_number {
|
||||
color: #8ee119;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_preproc {
|
||||
color: #00bb00;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_symbol {
|
||||
color: #e7ee5c;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_function {
|
||||
color: #ff06cd;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_cbracket {
|
||||
color: #e7ee5c;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_url {
|
||||
color: #ffffff;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_date {
|
||||
color: #ffffff;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_time {
|
||||
color: #ffffff;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_file {
|
||||
color: #ffffff;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_ip {
|
||||
color: #ffffff;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_name {
|
||||
color: #ffffff;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_variable {
|
||||
color: #7aec27;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_oldfile {
|
||||
color: #82d66d;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_newfile {
|
||||
color: #ffffff;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_difflines {
|
||||
color: #ffffff;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_selector {
|
||||
color: #7aec27;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_property {
|
||||
color: #ffffff;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_value {
|
||||
color: #ffffff;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
|
@ -1,151 +0,0 @@
|
|||
pre.sh_sourceCode {
|
||||
background-color: #000000;
|
||||
color: #ffffff;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_keyword {
|
||||
color: #c0c000;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_type {
|
||||
color: #00c000;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_string {
|
||||
color: #00ffff;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_regexp {
|
||||
color: #00ffff;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_specialchar {
|
||||
color: #0000ff;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_comment {
|
||||
color: #808080;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_number {
|
||||
color: #00ffff;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_preproc {
|
||||
color: #00ff00;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_symbol {
|
||||
color: #ff0000;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_function {
|
||||
color: #ff22b9;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_cbracket {
|
||||
color: #ff0000;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_url {
|
||||
color: #00ffff;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_date {
|
||||
color: #c0c000;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_time {
|
||||
color: #c0c000;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_file {
|
||||
color: #c0c000;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_ip {
|
||||
color: #00ffff;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_name {
|
||||
color: #00ffff;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_variable {
|
||||
color: #0000c0;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_oldfile {
|
||||
color: #0000ff;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_newfile {
|
||||
color: #00ffff;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_difflines {
|
||||
color: #c0c000;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_selector {
|
||||
color: #0000c0;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_property {
|
||||
color: #c0c000;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_value {
|
||||
color: #00ffff;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
|
@ -1,145 +0,0 @@
|
|||
pre.sh_sourceCode {
|
||||
background-color: #ffffff;
|
||||
color: #000000;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_keyword {
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_type {
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_string {
|
||||
color: #000000;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_regexp {
|
||||
color: #000000;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_specialchar {
|
||||
color: #000000;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_comment {
|
||||
color: #666666;
|
||||
font-weight: normal;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_number {
|
||||
color: #000000;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_preproc {
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_symbol {
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_cbracket {
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_url {
|
||||
color: #000000;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_date {
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_time {
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_file {
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_ip {
|
||||
color: #000000;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_name {
|
||||
color: #000000;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_variable {
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_oldfile {
|
||||
color: #000000;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_newfile {
|
||||
color: #000000;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_difflines {
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_selector {
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_property {
|
||||
color: #000000;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_value {
|
||||
color: #000000;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
|
@ -1,66 +0,0 @@
|
|||
pre.sh_sourceCode {
|
||||
background-color: white;
|
||||
color: black;
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_keyword { color: blue; font-weight: bold; } /* language keywords */
|
||||
pre.sh_sourceCode .sh_type { color: darkgreen; } /* basic types */
|
||||
pre.sh_sourceCode .sh_usertype { color: teal; } /* user defined types */
|
||||
pre.sh_sourceCode .sh_string { color: red; font-family: monospace; } /* strings and chars */
|
||||
pre.sh_sourceCode .sh_regexp { color: orange; font-family: monospace; } /* regular expressions */
|
||||
pre.sh_sourceCode .sh_specialchar { color: pink; font-family: monospace; } /* e.g., \n, \t, \\ */
|
||||
pre.sh_sourceCode .sh_comment { color: brown; font-style: italic; } /* comments */
|
||||
pre.sh_sourceCode .sh_number { color: purple; } /* literal numbers */
|
||||
pre.sh_sourceCode .sh_preproc { color: darkblue; font-weight: bold; } /* e.g., #include, import */
|
||||
pre.sh_sourceCode .sh_symbol { color: darkred; } /* e.g., <, >, + */
|
||||
pre.sh_sourceCode .sh_function { color: black; font-weight: bold; } /* function calls and declarations */
|
||||
pre.sh_sourceCode .sh_cbracket { color: red; } /* block brackets (e.g., {, }) */
|
||||
pre.sh_sourceCode .sh_todo { font-weight: bold; background-color: cyan; } /* TODO and FIXME */
|
||||
|
||||
/* Predefined variables and functions (for instance glsl) */
|
||||
pre.sh_sourceCode .sh_predef_var { color: darkblue; }
|
||||
pre.sh_sourceCode .sh_predef_func { color: darkblue; font-weight: bold; }
|
||||
|
||||
/* for OOP */
|
||||
pre.sh_sourceCode .sh_classname { color: teal; }
|
||||
|
||||
/* line numbers (not yet implemented) */
|
||||
pre.sh_sourceCode .sh_linenum { color: black; font-family: monospace; }
|
||||
|
||||
/* Internet related */
|
||||
pre.sh_sourceCode .sh_url { color: blue; text-decoration: underline; font-family: monospace; }
|
||||
|
||||
/* for ChangeLog and Log files */
|
||||
pre.sh_sourceCode .sh_date { color: blue; font-weight: bold; }
|
||||
pre.sh_sourceCode .sh_time, pre.sh_sourceCode .sh_file { color: darkblue; font-weight: bold; }
|
||||
pre.sh_sourceCode .sh_ip, pre.sh_sourceCode .sh_name { color: darkgreen; }
|
||||
|
||||
/* for Prolog, Perl... */
|
||||
pre.sh_sourceCode .sh_variable { color: darkgreen; }
|
||||
|
||||
/* for LaTeX */
|
||||
pre.sh_sourceCode .sh_italics { color: darkgreen; font-style: italic; }
|
||||
pre.sh_sourceCode .sh_bold { color: darkgreen; font-weight: bold; }
|
||||
pre.sh_sourceCode .sh_underline { color: darkgreen; text-decoration: underline; }
|
||||
pre.sh_sourceCode .sh_fixed { color: green; font-family: monospace; }
|
||||
pre.sh_sourceCode .sh_argument { color: darkgreen; }
|
||||
pre.sh_sourceCode .sh_optionalargument { color: purple; }
|
||||
pre.sh_sourceCode .sh_math { color: orange; }
|
||||
pre.sh_sourceCode .sh_bibtex { color: blue; }
|
||||
|
||||
/* for diffs */
|
||||
pre.sh_sourceCode .sh_oldfile { color: orange; }
|
||||
pre.sh_sourceCode .sh_newfile { color: darkgreen; }
|
||||
pre.sh_sourceCode .sh_difflines { color: blue; }
|
||||
|
||||
/* for css */
|
||||
pre.sh_sourceCode .sh_selector { color: purple; }
|
||||
pre.sh_sourceCode .sh_property { color: blue; }
|
||||
pre.sh_sourceCode .sh_value { color: darkgreen; font-style: italic; }
|
||||
|
||||
/* other */
|
||||
pre.sh_sourceCode .sh_section { color: black; font-weight: bold; }
|
||||
pre.sh_sourceCode .sh_paren { color: red; }
|
||||
pre.sh_sourceCode .sh_attribute { color: darkgreen; }
|
|
@ -1,139 +0,0 @@
|
|||
pre.sh_sourceCode {
|
||||
background-color: #ffffff;
|
||||
color: #696969;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_keyword {
|
||||
color: #696969;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_type {
|
||||
color: #696969;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_string {
|
||||
color: #008800;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_regexp {
|
||||
color: #008800;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_specialchar {
|
||||
color: #008800;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_comment {
|
||||
color: #1326a2;
|
||||
font-weight: normal;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_number {
|
||||
color: #bb00ff;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_preproc {
|
||||
color: #470000;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_function {
|
||||
color: #000000;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_url {
|
||||
color: #008800;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_date {
|
||||
color: #696969;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_time {
|
||||
color: #696969;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_file {
|
||||
color: #696969;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_ip {
|
||||
color: #008800;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_name {
|
||||
color: #008800;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_variable {
|
||||
color: #696969;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_oldfile {
|
||||
color: #008800;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_newfile {
|
||||
color: #008800;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_difflines {
|
||||
color: #696969;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_selector {
|
||||
color: #696969;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_property {
|
||||
color: #696969;
|
||||
font-weight: bold;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
pre.sh_sourceCode .sh_value {
|
||||
color: #008800;
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
<Directory />
|
||||
DirectoryIndex api.xsd
|
||||
AddType application/xml wadl
|
||||
AddType application/xml xsd
|
||||
AddType application/xml xslt
|
||||
</Directory>
|
|
@ -1,439 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?xml-stylesheet type="text/xsl" href="../xslt/schema.xsl"?>
|
||||
|
||||
<!-- (C) 2011 OpenStack Foundation., All Rights Reserved -->
|
||||
|
||||
<schema
|
||||
elementFormDefault="qualified"
|
||||
attributeFormDefault="unqualified"
|
||||
xmlns="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:csapi="http://docs.openstack.org/compute/api/v1.1"
|
||||
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
targetNamespace="http://docs.openstack.org/compute/api/v1.1"
|
||||
>
|
||||
<annotation>
|
||||
<xsd:appinfo
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<xsdxt:title>Server Actions</xsdxt:title>
|
||||
<xsdxt:link rel="index" href="api.xsd" />
|
||||
</xsd:appinfo>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
This schema file defines actions that can be performed on a
|
||||
cloud server. All cloud server actions are derived from the <a
|
||||
href="#type_Action" title="See definition of
|
||||
Action">Action</a> type.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
|
||||
<include schemaLocation="server.xsd">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
Types related to servers.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</include>
|
||||
|
||||
<element name="reboot" type="csapi:Reboot">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
Performs a HARD or SOFT reboot.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
<xsd:appinfo>
|
||||
<xsdxt:samples>
|
||||
<xsdxt:sample>
|
||||
<xsdxt:code type="application/xml" href="../samples/reboot.xml" />
|
||||
</xsdxt:sample>
|
||||
<xsdxt:sample>
|
||||
<xsdxt:code type="application/json" href="../samples/reboot.json" />
|
||||
</xsdxt:sample>
|
||||
</xsdxt:samples>
|
||||
</xsd:appinfo>
|
||||
</annotation>
|
||||
</element>
|
||||
<element name="rebuild" type="csapi:Rebuild">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
Rebuilds a server.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
<xsd:appinfo>
|
||||
<xsdxt:samples>
|
||||
<xsdxt:sample>
|
||||
<xsdxt:code type="application/xml" href="../samples/rebuild.xml" />
|
||||
</xsdxt:sample>
|
||||
<xsdxt:sample>
|
||||
<xsdxt:code type="application/json" href="../samples/rebuild.json" />
|
||||
</xsdxt:sample>
|
||||
</xsdxt:samples>
|
||||
</xsd:appinfo>
|
||||
</annotation>
|
||||
</element>
|
||||
<element name="resize" type="csapi:Resize">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
Resizes a server.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
<xsd:appinfo>
|
||||
<xsdxt:samples>
|
||||
<xsdxt:sample>
|
||||
<xsdxt:code type="application/xml" href="../samples/resize.xml" />
|
||||
</xsdxt:sample>
|
||||
<xsdxt:sample>
|
||||
<xsdxt:code type="application/json" href="../samples/resize.json" />
|
||||
</xsdxt:sample>
|
||||
</xsdxt:samples>
|
||||
</xsd:appinfo>
|
||||
</annotation>
|
||||
</element>
|
||||
<element name="confirmResize" type="csapi:ConfirmResize">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
Confirms a resize action.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
<xsd:appinfo>
|
||||
<xsdxt:samples>
|
||||
<xsdxt:sample>
|
||||
<xsdxt:code type="application/xml" href="../samples/confirmresize.xml" />
|
||||
</xsdxt:sample>
|
||||
<xsdxt:sample>
|
||||
<xsdxt:code type="application/json" href="../samples/confirmresize.json" />
|
||||
</xsdxt:sample>
|
||||
</xsdxt:samples>
|
||||
</xsd:appinfo>
|
||||
</annotation>
|
||||
</element>
|
||||
<element name="revertResize" type="csapi:RevertResize">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
Reverts a resize action.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
<xsd:appinfo>
|
||||
<xsdxt:samples>
|
||||
<xsdxt:sample>
|
||||
<xsdxt:code type="application/xml" href="../samples/revertresize.xml" />
|
||||
</xsdxt:sample>
|
||||
<xsdxt:sample>
|
||||
<xsdxt:code type="application/json" href="../samples/revertresize.json" />
|
||||
</xsdxt:sample>
|
||||
</xsdxt:samples>
|
||||
</xsd:appinfo>
|
||||
</annotation>
|
||||
</element>
|
||||
<element name="changePassword" type="csapi:ChangePassword">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
Changes a server's password.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
<xsd:appinfo>
|
||||
<xsdxt:samples>
|
||||
<xsdxt:sample>
|
||||
<xsdxt:code type="application/xml" href="../samples/changepassword.xml" />
|
||||
</xsdxt:sample>
|
||||
<xsdxt:sample>
|
||||
<xsdxt:code type="application/json" href="../samples/changepassword.json" />
|
||||
</xsdxt:sample>
|
||||
</xsdxt:samples>
|
||||
</xsd:appinfo>
|
||||
</annotation>
|
||||
</element>
|
||||
<element name="createImage" type="csapi:CreateImage">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
The action creates a new image for the server.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
<xsd:appinfo>
|
||||
<xsdxt:samples>
|
||||
<xsdxt:sample>
|
||||
<xsdxt:code type="application/xml" href="../samples/createimage.xml" />
|
||||
</xsdxt:sample>
|
||||
<xsdxt:sample>
|
||||
<xsdxt:code type="application/json" href="../samples/createimage.json" />
|
||||
</xsdxt:sample>
|
||||
</xsdxt:samples>
|
||||
</xsd:appinfo>
|
||||
</annotation>
|
||||
</element>
|
||||
|
||||
<!-- Complex Types -->
|
||||
|
||||
<complexType abstract="true" name="Action">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
This is the base type for all server actions. It is simply
|
||||
a marker abstract type used to differentiate an Action
|
||||
element from other elements.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
<anyAttribute namespace="##other" processContents="lax"/>
|
||||
</complexType>
|
||||
|
||||
<complexType name="Reboot">
|
||||
<complexContent>
|
||||
<extension base="csapi:Action">
|
||||
<sequence>
|
||||
<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
|
||||
</sequence>
|
||||
<attribute name="type" type="csapi:RebootType" use="required">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
The <a href="#type_RebootType" title="See definition
|
||||
of RebootType">type</a> of reboot to perform.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
</extension>
|
||||
</complexContent>
|
||||
</complexType>
|
||||
|
||||
<complexType name="Rebuild">
|
||||
<complexContent>
|
||||
<extension base="csapi:Action">
|
||||
<sequence>
|
||||
<element name="metadata" type="csapi:Metadata" minOccurs="0">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
A collection of meta data items
|
||||
associated with the server. If not
|
||||
specified the original server metadata
|
||||
will be kept.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</element>
|
||||
<element name="personality" type="csapi:Personality" minOccurs="0">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
A collection of small <a
|
||||
href="#type_File" title="See definition
|
||||
of file">files</a> used to personalize a
|
||||
new server instance. Exisiting server
|
||||
personality files are deleted by the
|
||||
rebuild process.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</element>
|
||||
<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
|
||||
</sequence>
|
||||
<attribute type="xsd:string" name="name" use="optional">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
The name of the server. If not specified the
|
||||
original server name will be kept.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<attribute type="xsd:string" name="adminPass" use="optional">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
The server's administration password.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<attribute name="imageRef" type="xsd:anyURI" use="required">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
A reference to an image to use for the
|
||||
rebuild. A local image need contain only an
|
||||
Image ID. External images must contain a
|
||||
link that provides the full path to the
|
||||
image resource. You must supply an image
|
||||
when rebuilding.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
</extension>
|
||||
</complexContent>
|
||||
</complexType>
|
||||
|
||||
<complexType name="Resize">
|
||||
<complexContent>
|
||||
<extension base="csapi:Action">
|
||||
<sequence>
|
||||
<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
|
||||
</sequence>
|
||||
<attribute name="flavorRef" type="xsd:anyURI" use="required">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
A reference to the flavor to convert to.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
</extension>
|
||||
</complexContent>
|
||||
</complexType>
|
||||
|
||||
<complexType name="ConfirmResize">
|
||||
<complexContent>
|
||||
<extension base="csapi:Action">
|
||||
<sequence>
|
||||
<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
|
||||
</sequence>
|
||||
</extension>
|
||||
</complexContent>
|
||||
</complexType>
|
||||
|
||||
<complexType name="RevertResize">
|
||||
<complexContent>
|
||||
<extension base="csapi:Action" >
|
||||
<sequence>
|
||||
<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
|
||||
</sequence>
|
||||
</extension>
|
||||
</complexContent>
|
||||
</complexType>
|
||||
|
||||
<complexType name="ChangePassword">
|
||||
<complexContent>
|
||||
<extension base="csapi:Action" >
|
||||
<sequence>
|
||||
<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
|
||||
</sequence>
|
||||
<attribute type="xsd:string" name="adminPass" use="required">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
The server's administration password.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
</extension>
|
||||
</complexContent>
|
||||
</complexType>
|
||||
|
||||
<complexType name="CreateImage">
|
||||
<complexContent>
|
||||
<extension base="csapi:Action" >
|
||||
<sequence>
|
||||
<element name="metadata" type="csapi:Metadata" minOccurs="0">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
A collection of meta data items
|
||||
associated with the image.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</element>
|
||||
<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
|
||||
</sequence>
|
||||
<attribute type="xsd:string" name="name" use="required">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
The name of the image to create.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
</extension>
|
||||
</complexContent>
|
||||
</complexType>
|
||||
|
||||
<!-- Simple Types -->
|
||||
<simpleType name="RebootType">
|
||||
<restriction base="xsd:string">
|
||||
<enumeration value="HARD">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
A HARD reboot is equivalent to power cycling the server.
|
||||
The operating system is not allowed to gracefully
|
||||
shutdown.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</enumeration>
|
||||
<enumeration value="SOFT">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
With a SOFT reboot, the operating system is signaled to
|
||||
restart. This allows for a graceful shutdown of all
|
||||
processes.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</enumeration>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
</schema>
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<bindings xmlns="http://java.sun.com/xml/ns/jaxb" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
version="2.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://java.sun.com/xml/ns/jaxb http://java.sun.com/xml/ns/jaxb/bindingschema_2_0.xsd"
|
||||
schemaLocation="affinity-id.xsd">
|
||||
<schemaBindings>
|
||||
<package name="com.rackspace.cloud.servers.api.extension.beans"/>
|
||||
</schemaBindings>
|
||||
</bindings>
|
|
@ -1,39 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?xml-stylesheet type="text/xsl" href="../xslt/schema.xslt"?>
|
||||
|
||||
<schema
|
||||
elementFormDefault="qualified"
|
||||
attributeFormDefault="unqualified"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:rsaide="http://docs.rackspacecloud.com/servers/api/ext/aide/v1.0"
|
||||
targetNamespace="http://docs.rackspacecloud.com/servers/api/ext/aide/v1.0"
|
||||
>
|
||||
|
||||
<element name="affinityId" type="rsaide:affinityId" />
|
||||
|
||||
<simpleType name="affinityId">
|
||||
<annotation>
|
||||
<documentation>
|
||||
An ID that identifies the proximity of customer slices.
|
||||
</documentation>
|
||||
</annotation>
|
||||
<restriction base="xsd:string" />
|
||||
</simpleType>
|
||||
|
||||
<simpleType name="ipv6AddressRangeValue">
|
||||
<annotation>
|
||||
<documentation>
|
||||
The IPv6 address range in CIDR notation of the server.
|
||||
</documentation>
|
||||
</annotation>
|
||||
<restriction base="xsd:string" />
|
||||
</simpleType>
|
||||
|
||||
<element name="ipv6AddressRange" type="rsaide:ipv6AddressRange" />
|
||||
|
||||
<complexType name="ipv6AddressRange">
|
||||
<attribute name="value" type="rsaide:ipv6AddressRangeValue"/>
|
||||
</complexType>
|
||||
|
||||
</schema>
|
|
@ -1,11 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<bindings xmlns="http://java.sun.com/xml/ns/jaxb" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:capi="http://docs.openstack.org/common/api/v1.0" version="2.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://java.sun.com/xml/ns/jaxb http://java.sun.com/xml/ns/jaxb/bindingschema_2_0.xsd"
|
||||
schemaLocation="api-common.xsd">
|
||||
<schemaBindings>
|
||||
<package name="com.rackspace.cloud.common.api.beans" />
|
||||
</schemaBindings>
|
||||
</bindings>
|
|
@ -1,66 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?xml-stylesheet type="text/xsl" href="../xslt/schema.xsl"?>
|
||||
|
||||
<!-- (C) 2011 OpenStack Foundation., All Rights Reserved -->
|
||||
|
||||
<schema
|
||||
elementFormDefault="qualified"
|
||||
attributeFormDefault="unqualified"
|
||||
xmlns="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:capi="http://docs.openstack.org/common/api/v1.0"
|
||||
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
targetNamespace="http://docs.openstack.org/common/api/v1.0"
|
||||
>
|
||||
<annotation>
|
||||
<xsd:appinfo
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<xsdxt:title>Open Stack Common API Schema Types 1.0</xsdxt:title>
|
||||
<xsdxt:link rev="index" href="extensions.xsd" />
|
||||
<xsdxt:link rev="index" href="limits.xsd" />
|
||||
<xsdxt:link rev="index" href="version.xsd" />
|
||||
</xsd:appinfo>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
This is the main index XML Schema document
|
||||
for Common API Schema Types Version 1.0.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
<include schemaLocation="extensions.xsd">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
Types related to extensions.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</include>
|
||||
<include schemaLocation="limits.xsd">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
Types related to rate and absolute limits.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</include>
|
||||
<include schemaLocation="version.xsd">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
Types related to API version details.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</include>
|
||||
</schema>
|
|
@ -1,21 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<bindings xmlns="http://java.sun.com/xml/ns/jaxb" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:csapi="http://docs.openstack.org/compute/api/v1.1"
|
||||
version="2.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://java.sun.com/xml/ns/jaxb http://java.sun.com/xml/ns/jaxb/bindingschema_2_0.xsd"
|
||||
schemaLocation="api.xsd">
|
||||
<globalBindings>
|
||||
<serializable />
|
||||
<javaType name="java.util.Calendar" xmlType="xsd:dateTime"
|
||||
parseMethod="javax.xml.bind.DatatypeConverter.parseDateTime"
|
||||
printMethod="javax.xml.bind.DatatypeConverter.printDateTime"/>
|
||||
<javaType name="java.lang.Integer" xmlType="csapi:UUID"
|
||||
parseMethod="com.rackspace.cloud.servers.api.jaxb.TypeConverter.parseUUID"
|
||||
printMethod="com.rackspace.cloud.servers.api.jaxb.TypeConverter.printUUID"/>
|
||||
</globalBindings>
|
||||
<schemaBindings>
|
||||
<package name="com.rackspace.cloud.servers.api.beans" />
|
||||
</schemaBindings>
|
||||
</bindings>
|
|
@ -1,103 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?xml-stylesheet type="text/xsl" href="../xslt/schema.xsl"?>
|
||||
|
||||
<!-- (C) 2011 OpenStack Foundation., All Rights Reserved -->
|
||||
|
||||
<schema
|
||||
elementFormDefault="qualified"
|
||||
attributeFormDefault="unqualified"
|
||||
xmlns="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:csapi="http://docs.openstack.org/compute/api/v1.1"
|
||||
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
targetNamespace="http://docs.openstack.org/compute/api/v1.1"
|
||||
>
|
||||
<annotation>
|
||||
<xsd:appinfo
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<xsdxt:title>Open Stack Compute™ API Schema Types 1.1</xsdxt:title>
|
||||
<xsdxt:link rev="index" href="actions.xsd" />
|
||||
<xsdxt:link rev="index" href="common.xsd" />
|
||||
<xsdxt:link rev="index" href="faults.xsd" />
|
||||
<xsdxt:link rev="index" href="flavor.xsd" />
|
||||
<xsdxt:link rev="index" href="image.xsd" />
|
||||
<xsdxt:link rev="index" href="server.xsd" />
|
||||
</xsd:appinfo>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
This is the main index XML Schema document
|
||||
for the Open Stack Compute API Version 1.1.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
<include schemaLocation="server.xsd">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
Servers and all internal Entities including Addresses and
|
||||
Files.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</include>
|
||||
<include schemaLocation="image.xsd">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
Types related to images.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</include>
|
||||
<include schemaLocation="flavor.xsd">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
Types related to flavors.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</include>
|
||||
<include schemaLocation="actions.xsd">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
Defines server actions: reboot, rebuild, resize...
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</include>
|
||||
<include schemaLocation="metadata.xsd">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
Metadata for Server and Image.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</include>
|
||||
<include schemaLocation="faults.xsd">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
All fault types.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</include>
|
||||
</schema>
|
|
@ -1,11 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<bindings xmlns="http://java.sun.com/xml/ns/jaxb" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
version="2.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://java.sun.com/xml/ns/jaxb http://java.sun.com/xml/ns/jaxb/bindingschema_2_0.xsd"
|
||||
schemaLocation="atom/atom.xsd">
|
||||
<schemaBindings>
|
||||
<package name="org.w3.www.atom"/>
|
||||
</schemaBindings>
|
||||
</bindings>
|
|
@ -1,105 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?xml-stylesheet type="text/xsl" href="../../xslt/schema.xslt"?>
|
||||
|
||||
<xs:schema elementFormDefault="qualified" attributeFormDefault="unqualified"
|
||||
targetNamespace="http://www.w3.org/2005/Atom"
|
||||
xmlns:html="http://www.w3.org/1999/xhtml"
|
||||
xmlns:atom="http://www.w3.org/2005/Atom"
|
||||
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
|
||||
xmlns:xml="http://www.w3.org/XML/1998/namespace"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
xsdxt:base="../..">
|
||||
|
||||
<xs:annotation>
|
||||
<xs:appinfo
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<xsdxt:title>Atom Link</xsdxt:title>
|
||||
</xs:appinfo>
|
||||
<xs:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
This schema file simple defines an atom link according
|
||||
to <a
|
||||
href="http://tools.ietf.org/html/rfc4287">RFC4287</a>
|
||||
</p>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
|
||||
|
||||
<!-- Common Link Relations -->
|
||||
<xs:simpleType name="relation">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="alternate" />
|
||||
<xs:enumeration value="appendix" />
|
||||
<xs:enumeration value="archives" />
|
||||
<xs:enumeration value="author" />
|
||||
<xs:enumeration value="bookmark" />
|
||||
<xs:enumeration value="chapter" />
|
||||
<xs:enumeration value="contents" />
|
||||
<xs:enumeration value="copyright" />
|
||||
<xs:enumeration value="current" />
|
||||
<xs:enumeration value="describedby" />
|
||||
<xs:enumeration value="edit" />
|
||||
<xs:enumeration value="edit-media" />
|
||||
<xs:enumeration value="first" />
|
||||
<xs:enumeration value="glossary" />
|
||||
<xs:enumeration value="help" />
|
||||
<xs:enumeration value="hub" />
|
||||
<xs:enumeration value="icon" />
|
||||
<xs:enumeration value="index" />
|
||||
<xs:enumeration value="last" />
|
||||
<xs:enumeration value="latest-version" />
|
||||
<xs:enumeration value="license" />
|
||||
<xs:enumeration value="monitor" />
|
||||
<xs:enumeration value="monitor-group" />
|
||||
<xs:enumeration value="next" />
|
||||
<xs:enumeration value="next-arvhice" />
|
||||
<xs:enumeration value="nofollow" />
|
||||
<xs:enumeration value="payment" />
|
||||
<xs:enumeration value="predecessor-version" />
|
||||
<xs:enumeration value="prefetch" />
|
||||
<xs:enumeration value="prev" />
|
||||
<xs:enumeration value="previous" />
|
||||
<xs:enumeration value="prev-archive" />
|
||||
<xs:enumeration value="replies" />
|
||||
<xs:enumeration value="search" />
|
||||
<xs:enumeration value="section" />
|
||||
<xs:enumeration value="self" />
|
||||
<xs:enumeration value="service" />
|
||||
<xs:enumeration value="start" />
|
||||
<xs:enumeration value="stylesheet" />
|
||||
<xs:enumeration value="subsection" />
|
||||
<xs:enumeration value="successor-version" />
|
||||
<xs:enumeration value="up" />
|
||||
<xs:enumeration value="version-history" />
|
||||
<xs:enumeration value="via" />
|
||||
<xs:enumeration value="working-copy" />
|
||||
<xs:enumeration value="working-copy-of" />
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:simpleType name="extRelation">
|
||||
<xs:union memberTypes="atom:relation xs:string"/>
|
||||
</xs:simpleType>
|
||||
|
||||
<xs:element name="link" type="atom:link" />
|
||||
|
||||
<xs:complexType name="link">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<html:p>See section 3.4 of the ATOM RFC <html:a href="http://tools.ietf.org/html/rfc4287">RFC4287</html:a></html:p>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:attribute name="rel" use="required" type="atom:extRelation" />
|
||||
<xs:attribute name="type" use="optional" type="xs:string" />
|
||||
<xs:attribute name="href" use="required" type="xs:anyURI" />
|
||||
<xs:attribute name="hreflang" use="optional" type="xs:NMTOKEN" />
|
||||
<xs:attribute name="title" use="optional" type="xs:string" />
|
||||
<xs:attribute ref="xml:base" />
|
||||
<xs:attribute ref="xml:lang" />
|
||||
</xs:complexType>
|
||||
</xs:schema>
|
|
@ -1,294 +0,0 @@
|
|||
<?xml version='1.0'?>
|
||||
<?xml-stylesheet type="text/xsl" href="../../xslt/schema.xslt"?>
|
||||
<xs:schema targetNamespace="http://www.w3.org/XML/1998/namespace"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
|
||||
xmlns ="http://www.w3.org/1999/xhtml"
|
||||
xml:lang="en"
|
||||
xsdxt:base="../..">
|
||||
|
||||
<xs:annotation>
|
||||
<xs:appinfo
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<xsdxt:title>The XML Namespace</xsdxt:title>
|
||||
</xs:appinfo>
|
||||
<xs:documentation>
|
||||
<div>
|
||||
<h1>About the XML namespace</h1>
|
||||
|
||||
<div class="bodytext">
|
||||
<p>
|
||||
This schema document describes the XML namespace, in a form
|
||||
suitable for import by other schema documents.
|
||||
</p>
|
||||
<p>
|
||||
See <a href="http://www.w3.org/XML/1998/namespace.html">
|
||||
http://www.w3.org/XML/1998/namespace.html</a> and
|
||||
<a href="http://www.w3.org/TR/REC-xml">
|
||||
http://www.w3.org/TR/REC-xml</a> for information
|
||||
about this namespace.
|
||||
</p>
|
||||
<p>
|
||||
Note that local names in this namespace are intended to be
|
||||
defined only by the World Wide Web Consortium or its subgroups.
|
||||
The names currently defined in this namespace are listed below.
|
||||
They should not be used with conflicting semantics by any Working
|
||||
Group, specification, or document instance.
|
||||
</p>
|
||||
<p>
|
||||
See further below in this document for more information about <a
|
||||
href="#usage">how to refer to this schema document from your own
|
||||
XSD schema documents</a> and about <a href="#nsversioning">the
|
||||
namespace-versioning policy governing this schema document</a>.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:attribute name="lang">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<div>
|
||||
|
||||
<h3>lang (as an attribute name)</h3>
|
||||
<p>
|
||||
denotes an attribute whose value
|
||||
is a language code for the natural language of the content of
|
||||
any element; its value is inherited. This name is reserved
|
||||
by virtue of its definition in the XML specification.</p>
|
||||
|
||||
</div>
|
||||
<div>
|
||||
<h4>Notes</h4>
|
||||
<p>
|
||||
Attempting to install the relevant ISO 2- and 3-letter
|
||||
codes as the enumerated possible values is probably never
|
||||
going to be a realistic possibility.
|
||||
</p>
|
||||
<p>
|
||||
See BCP 47 at <a href="http://www.rfc-editor.org/rfc/bcp/bcp47.txt">
|
||||
http://www.rfc-editor.org/rfc/bcp/bcp47.txt</a>
|
||||
and the IANA language subtag registry at
|
||||
<a href="http://www.iana.org/assignments/language-subtag-registry">
|
||||
http://www.iana.org/assignments/language-subtag-registry</a>
|
||||
for further information.
|
||||
</p>
|
||||
<p>
|
||||
The union allows for the 'un-declaration' of xml:lang with
|
||||
the empty string.
|
||||
</p>
|
||||
</div>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:union memberTypes="xs:language">
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value=""/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:union>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
|
||||
<xs:attribute name="space">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<div>
|
||||
|
||||
<h3>space (as an attribute name)</h3>
|
||||
<p>
|
||||
denotes an attribute whose
|
||||
value is a keyword indicating what whitespace processing
|
||||
discipline is intended for the content of the element; its
|
||||
value is inherited. This name is reserved by virtue of its
|
||||
definition in the XML specification.</p>
|
||||
|
||||
</div>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:simpleType>
|
||||
<xs:restriction base="xs:NCName">
|
||||
<xs:enumeration value="default"/>
|
||||
<xs:enumeration value="preserve"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
</xs:attribute>
|
||||
|
||||
<xs:attribute name="base" type="xs:anyURI"> <xs:annotation>
|
||||
<xs:documentation>
|
||||
<div>
|
||||
|
||||
<h3>base (as an attribute name)</h3>
|
||||
<p>
|
||||
denotes an attribute whose value
|
||||
provides a URI to be used as the base for interpreting any
|
||||
relative URIs in the scope of the element on which it
|
||||
appears; its value is inherited. This name is reserved
|
||||
by virtue of its definition in the XML Base specification.</p>
|
||||
|
||||
<p>
|
||||
See <a
|
||||
href="http://www.w3.org/TR/xmlbase/">http://www.w3.org/TR/xmlbase/</a>
|
||||
for information about this attribute.
|
||||
</p>
|
||||
</div>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
|
||||
<xs:attribute name="id" type="xs:ID">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<div>
|
||||
|
||||
<h3>id (as an attribute name)</h3>
|
||||
<p>
|
||||
denotes an attribute whose value
|
||||
should be interpreted as if declared to be of type ID.
|
||||
This name is reserved by virtue of its definition in the
|
||||
xml:id specification.</p>
|
||||
|
||||
<p>
|
||||
See <a
|
||||
href="http://www.w3.org/TR/xml-id/">http://www.w3.org/TR/xml-id/</a>
|
||||
for information about this attribute.
|
||||
</p>
|
||||
</div>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
</xs:attribute>
|
||||
|
||||
<xs:attributeGroup name="specialAttrs">
|
||||
<xs:attribute ref="xml:base"/>
|
||||
<xs:attribute ref="xml:lang"/>
|
||||
<xs:attribute ref="xml:space"/>
|
||||
<xs:attribute ref="xml:id"/>
|
||||
</xs:attributeGroup>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<div>
|
||||
|
||||
<h3>Father (in any context at all)</h3>
|
||||
|
||||
<div class="bodytext">
|
||||
<p>
|
||||
denotes Jon Bosak, the chair of
|
||||
the original XML Working Group. This name is reserved by
|
||||
the following decision of the W3C XML Plenary and
|
||||
XML Coordination groups:
|
||||
</p>
|
||||
<blockquote>
|
||||
<p>
|
||||
In appreciation for his vision, leadership and
|
||||
dedication the W3C XML Plenary on this 10th day of
|
||||
February, 2000, reserves for Jon Bosak in perpetuity
|
||||
the XML name "xml:Father".
|
||||
</p>
|
||||
</blockquote>
|
||||
</div>
|
||||
</div>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<div xml:id="usage" id="usage">
|
||||
<h2><a name="usage">About this schema document</a></h2>
|
||||
|
||||
<div class="bodytext">
|
||||
<p>
|
||||
This schema defines attributes and an attribute group suitable
|
||||
for use by schemas wishing to allow <code>xml:base</code>,
|
||||
<code>xml:lang</code>, <code>xml:space</code> or
|
||||
<code>xml:id</code> attributes on elements they define.
|
||||
</p>
|
||||
<p>
|
||||
To enable this, such a schema must import this schema for
|
||||
the XML namespace, e.g. as follows:
|
||||
</p>
|
||||
<pre>
|
||||
<schema . . .>
|
||||
. . .
|
||||
<import namespace="http://www.w3.org/XML/1998/namespace"
|
||||
schemaLocation="http://www.w3.org/2001/xml.xsd"/>
|
||||
</pre>
|
||||
<p>
|
||||
or
|
||||
</p>
|
||||
<pre>
|
||||
<import namespace="http://www.w3.org/XML/1998/namespace"
|
||||
schemaLocation="http://www.w3.org/2009/01/xml.xsd"/>
|
||||
</pre>
|
||||
<p>
|
||||
Subsequently, qualified reference to any of the attributes or the
|
||||
group defined below will have the desired effect, e.g.
|
||||
</p>
|
||||
<pre>
|
||||
<type . . .>
|
||||
. . .
|
||||
<attributeGroup ref="xml:specialAttrs"/>
|
||||
</pre>
|
||||
<p>
|
||||
will define a type which will schema-validate an instance element
|
||||
with any of those attributes.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
<div id="nsversioning" xml:id="nsversioning">
|
||||
<h2><a name="nsversioning">Versioning policy for this schema document</a></h2>
|
||||
<div class="bodytext">
|
||||
<p>
|
||||
In keeping with the XML Schema WG's standard versioning
|
||||
policy, this schema document will persist at
|
||||
<a href="http://www.w3.org/2009/01/xml.xsd">
|
||||
http://www.w3.org/2009/01/xml.xsd</a>.
|
||||
</p>
|
||||
<p>
|
||||
At the date of issue it can also be found at
|
||||
<a href="http://www.w3.org/2001/xml.xsd">
|
||||
http://www.w3.org/2001/xml.xsd</a>.
|
||||
</p>
|
||||
<p>
|
||||
The schema document at that URI may however change in the future,
|
||||
in order to remain compatible with the latest version of XML
|
||||
Schema itself, or with the XML namespace itself. In other words,
|
||||
if the XML Schema or XML namespaces change, the version of this
|
||||
document at <a href="http://www.w3.org/2001/xml.xsd">
|
||||
http://www.w3.org/2001/xml.xsd
|
||||
</a>
|
||||
will change accordingly; the version at
|
||||
<a href="http://www.w3.org/2009/01/xml.xsd">
|
||||
http://www.w3.org/2009/01/xml.xsd
|
||||
</a>
|
||||
will not change.
|
||||
</p>
|
||||
<p>
|
||||
Previous dated (and unchanging) versions of this schema
|
||||
document are at:
|
||||
</p>
|
||||
<ul>
|
||||
<li><a href="http://www.w3.org/2009/01/xml.xsd">
|
||||
http://www.w3.org/2009/01/xml.xsd</a></li>
|
||||
<li><a href="http://www.w3.org/2007/08/xml.xsd">
|
||||
http://www.w3.org/2007/08/xml.xsd</a></li>
|
||||
<li><a href="http://www.w3.org/2004/10/xml.xsd">
|
||||
http://www.w3.org/2004/10/xml.xsd</a></li>
|
||||
<li><a href="http://www.w3.org/2001/03/xml.xsd">
|
||||
http://www.w3.org/2001/03/xml.xsd</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
|
||||
</xs:schema>
|
||||
|
|
@ -1,378 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?xml-stylesheet type="text/xsl" href="../xslt/schema.xsl"?>
|
||||
|
||||
<!-- (C) 2009-2011 Rackspace Hosting, All Rights Reserved -->
|
||||
|
||||
<schema
|
||||
elementFormDefault="qualified"
|
||||
attributeFormDefault="unqualified"
|
||||
xmlns="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:csapi="http://docs.openstack.org/compute/api/v1.1"
|
||||
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
targetNamespace="http://docs.openstack.org/compute/api/v1.1"
|
||||
>
|
||||
|
||||
<annotation>
|
||||
<xsd:appinfo
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<xsdxt:title>Backup Schedule</xsdxt:title>
|
||||
<xsdxt:link rel="index" href="api.xsd" />
|
||||
</xsd:appinfo>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
This schema file defines all entities related to <a
|
||||
href="#type_BackupSchedule" title="See definition of
|
||||
BackupSchedule">Backup Schedules</a>.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
|
||||
<element name="backupSchedule" type="csapi:BackupSchedule">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
This element is used to create periodic daily and weekly
|
||||
images automatically.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
<xsd:appinfo>
|
||||
<xsdxt:samples>
|
||||
<xsdxt:sample>
|
||||
<xsdxt:code type="application/xml" href="../samples/backup.xml" />
|
||||
</xsdxt:sample>
|
||||
<xsdxt:sample>
|
||||
<xsdxt:code type="application/json" href="../samples/backup.json" />
|
||||
</xsdxt:sample>
|
||||
</xsdxt:samples>
|
||||
</xsd:appinfo>
|
||||
</annotation>
|
||||
</element>
|
||||
|
||||
<!-- Complex Types -->
|
||||
<complexType name="BackupSchedule">
|
||||
<sequence>
|
||||
<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
|
||||
</sequence>
|
||||
<attribute type="xsd:boolean" name="enabled" use="required">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
If true, both daily and weekly backup schedules are
|
||||
disabled.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<attribute type="csapi:WeeklyBackup" name="weekly" use="required">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
A <a href="#type_WeeklyBackup" title="See definition of
|
||||
WeeklyBackup">WeeklyBackup</a> type that describes the day
|
||||
of the week in which to perform a weekly backup or
|
||||
DISABLED if weekly backups are disabled.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<attribute type="csapi:DailyBackup" name="daily" use="required">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
A <a href="#type_DailyBackup" title="See definition of
|
||||
DailyBackup">DailyBackup</a> type that describes an hour
|
||||
range in which to perform a daily backup or DISABLED if
|
||||
daily backups are disabled.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<anyAttribute namespace="##other" processContents="lax"/>
|
||||
</complexType>
|
||||
|
||||
<!-- Simple Types -->
|
||||
<simpleType name="DailyBackup">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
A target GMT hour range in which to perform a daily backup
|
||||
or DISABLED if daily backups are disabled.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
<restriction base="xsd:string">
|
||||
<enumeration value="DISABLED">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
Daily backups are disabled.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</enumeration>
|
||||
<enumeration value="H_0000_0200">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
Daily backup target of 00:00–02:00 GMT.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</enumeration>
|
||||
<enumeration value="H_0200_0400">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
Daily backup target of 02:00–04:00 GMT.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</enumeration>
|
||||
<enumeration value="H_0400_0600">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
Daily backup target of 04:00–06:00 GMT.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</enumeration>
|
||||
<enumeration value="H_0600_0800">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
Daily backup target of 06:00–08:00 GMT.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</enumeration>
|
||||
<enumeration value="H_0800_1000">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
Daily backup target of 08:00–10:00 GMT.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</enumeration>
|
||||
<enumeration value="H_1000_1200">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
Daily backup target of 10:00–12:00 GMT.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</enumeration>
|
||||
<enumeration value="H_1200_1400">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
Daily backup target of 12:00–14:00 GMT.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</enumeration>
|
||||
<enumeration value="H_1400_1600">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
Daily backup target of 14:00–16:00 GMT.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</enumeration>
|
||||
<enumeration value="H_1600_1800">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
Daily backup target of 16:00–18:00 GMT.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</enumeration>
|
||||
<enumeration value="H_1800_2000">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
Daily backup target of 18:00–20:00 GMT.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</enumeration>
|
||||
<enumeration value="H_2000_2200">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
Daily backup target of 20:00–22:00 GMT.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</enumeration>
|
||||
<enumeration value="H_2200_0000">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
Daily backup target of 22:00–00:00 GMT.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</enumeration>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<simpleType name="WeeklyBackup">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
A target day of the week in which to perform a weekly backup
|
||||
or DISABLED if daily backups are disabled.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
<restriction base="xsd:string">
|
||||
<enumeration value="DISABLED">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
Weekly backups are disabled.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</enumeration>
|
||||
<enumeration value="SUNDAY">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
A weekly backup target of Sunday.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</enumeration>
|
||||
<enumeration value="MONDAY">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
A weekly backup target of Monday.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</enumeration>
|
||||
<enumeration value="TUESDAY">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
A weekly backup target of Tuesday.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</enumeration>
|
||||
<enumeration value="WEDNESDAY">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
A weekly backup target of Wednesday.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</enumeration>
|
||||
<enumeration value="THURSDAY">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
A weekly backup target of Thursday.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</enumeration>
|
||||
<enumeration value="FRIDAY">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
A weekly backup target of Friday.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</enumeration>
|
||||
<enumeration value="SATURDAY">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
A weekly backup target of Saturday.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</enumeration>
|
||||
<enumeration value="SUNDAY">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
A weekly backup target of Sunday.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</enumeration>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
</schema>
|
||||
|
|
@ -1,156 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?xml-stylesheet type="text/xsl" href="../xslt/schema.xsl"?>
|
||||
|
||||
<!-- (C) 2011 OpenStack Foundation., All Rights Reserved -->
|
||||
|
||||
<schema
|
||||
elementFormDefault="qualified"
|
||||
attributeFormDefault="unqualified"
|
||||
xmlns="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:csapi="http://docs.openstack.org/compute/api/v1.1"
|
||||
xmlns:xsdxt="http://docs.rackspacecloud.com/xsd-ext/v1.0"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:atom="http://www.w3.org/2005/Atom"
|
||||
xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning"
|
||||
targetNamespace="http://docs.openstack.org/compute/api/v1.1"
|
||||
>
|
||||
|
||||
<annotation>
|
||||
<xsd:appinfo
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<xsdxt:title>Common Types</xsdxt:title>
|
||||
<xsdxt:link rel="index" href="api.xsd" />
|
||||
</xsd:appinfo>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
This schema file defines common types used by multiple
|
||||
entities and possibly spanning several types of requests.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
|
||||
<!-- Import ATOM specific schema definitions -->
|
||||
<import vc:minVersion="1.1" namespace="http://www.w3.org/2005/Atom" schemaLocation="atom/atom.xsd" />
|
||||
|
||||
<complexType name="Metadata">
|
||||
<sequence>
|
||||
<element name="meta" type="csapi:MetadataItem" minOccurs="0" maxOccurs="1000">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
A collection of metadata items. There may be an
|
||||
absolute limit that imposes additional constraints on
|
||||
the number of metadata items.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</element>
|
||||
<element vc:minVersion="1.1" ref="atom:link" minOccurs="0" maxOccurs="unbounded" />
|
||||
<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
|
||||
</sequence>
|
||||
<anyAttribute namespace="##other" processContents="lax"/>
|
||||
</complexType>
|
||||
<complexType name="MetadataItem">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
A MetadataItem is simply a name-value pair. The name is
|
||||
specified in the key attribute and the <a
|
||||
href="#type_MetadataValue" title="See definition of
|
||||
MetadataValue">value</a> is included inline.
|
||||
</p>
|
||||
<xsdxt:code type="application/xml">
|
||||
<![CDATA[
|
||||
<meta xmlns="http://docs.openstack.org/compute/api/v1.0"
|
||||
key="Server Label">Web Head 1</meta>
|
||||
]]>
|
||||
</xsdxt:code>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
<simpleContent>
|
||||
<extension base="csapi:MetadataValue">
|
||||
<attribute name="key" type="csapi:MetadataKey" use="required">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
A meta data name-value pair.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
<anyAttribute namespace="##other" processContents="lax"/>
|
||||
</extension>
|
||||
</simpleContent>
|
||||
</complexType>
|
||||
|
||||
<!-- Simple types that span multiple requests -->
|
||||
<simpleType name="Progress">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
An integer between 0 and 100 that denotes the progress of an
|
||||
operation.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
<restriction base="xsd:int">
|
||||
<minInclusive value="0"/>
|
||||
<maxInclusive value="100" />
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<simpleType name="UUID">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
A universally unique identifier.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
<restriction base="xsd:string">
|
||||
<length value="36" fixed="true"/>
|
||||
<pattern value="[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<simpleType name="ExtendedStatus">
|
||||
<annotation>
|
||||
<xsd:documentation
|
||||
xml:lang="EN"
|
||||
xmlns="http://www.w3.org/1999/xhtml">
|
||||
<p>
|
||||
An extended status must contain a prefix.
|
||||
</p>
|
||||
</xsd:documentation>
|
||||
</annotation>
|
||||
<restriction base="xsd:string">
|
||||
<pattern value="(\w|-)+:\w+"/>
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<simpleType name="MetadataKey">
|
||||
<restriction base="xsd:string">
|
||||
<maxLength value="255" />
|
||||
</restriction>
|
||||
</simpleType>
|
||||
|
||||
<simpleType name="MetadataValue">
|
||||
<restriction base="xsd:string">
|
||||
<maxLength value="255" />
|
||||
</restriction>
|
||||
</simpleType>
|
||||
</schema>
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue