Merge changes from quantum-framework
This commit is contained in:
commit
1f5e880341
|
@ -0,0 +1,29 @@
|
|||
# -- Welcome!
|
||||
|
||||
You have come across a cloud computing network fabric controller. It has identified
|
||||
itself as "Quantum." It aims to tame your (cloud) networking!
|
||||
|
||||
# -- Basics:
|
||||
|
||||
1) Quantum REST API: Quantum supports a REST-ful programmatic interface to manage your
|
||||
cloud networking fabric.
|
||||
|
||||
2) Quantum Plugins: Quantum sports a plug-able architecture that allows Quantum's REST API
|
||||
to be backed by various entities that can create a cloud-class virtual networking fabric.
|
||||
The advantages of this plug-able architecture is two-folds:
|
||||
|
||||
a) Allows for ANY open-source project or commercial vendor to write a Quantum plug-in.
|
||||
|
||||
b) Allows Quantum users to not be tied down to a single Quantum implementation and
|
||||
enables them to switch out a plug-in by simple editing a config file - plugins.ini
|
||||
|
||||
# -- Configuring Quantum plug-in
|
||||
|
||||
# -- Launching the Quantum Service
|
||||
|
||||
# -- Making requests against the Quantum Service
|
||||
|
||||
# -- CLI tools to program the Quantum-managed network fabric
|
||||
|
||||
# -- Writing your own Quantum plug-in
|
||||
|
|
@ -35,14 +35,33 @@ class QuantumPluginBase(object):
|
|||
Returns a dictionary containing all
|
||||
<network_uuid, network_name> for
|
||||
the specified tenant.
|
||||
|
||||
:returns: a list of mapping sequences with the following signature:
|
||||
[ {'net-id': uuid that uniquely identifies the particular quantum network,
|
||||
'net-name': a human-readable name associated with network referenced by net-id
|
||||
},
|
||||
....
|
||||
{'net-id': uuid that uniquely identifies the particular quantum network,
|
||||
'net-name': a human-readable name associated with network referenced by net-id
|
||||
}
|
||||
]
|
||||
:raises: None
|
||||
"""
|
||||
pass
|
||||
|
||||
|
||||
|
||||
@abstractmethod
|
||||
def create_network(self, tenant_id, net_name):
|
||||
"""
|
||||
Creates a new Virtual Network, and assigns it
|
||||
a symbolic name.
|
||||
|
||||
:returns: a sequence of mappings with the following signature:
|
||||
{'net-id': uuid that uniquely identifies the particular quantum network,
|
||||
'net-name': a human-readable name associated with network referenced by net-id
|
||||
}
|
||||
:raises:
|
||||
"""
|
||||
pass
|
||||
|
||||
|
@ -51,14 +70,27 @@ class QuantumPluginBase(object):
|
|||
"""
|
||||
Deletes the network with the specified network identifier
|
||||
belonging to the specified tenant.
|
||||
|
||||
:returns: a sequence of mappings with the following signature:
|
||||
{'net-id': uuid that uniquely identifies the particular quantum network
|
||||
}
|
||||
:raises: exception.NetworkInUse
|
||||
:raises: exception.NetworkNotFound
|
||||
"""
|
||||
pass
|
||||
|
||||
@abstractmethod
|
||||
def get_network_details(self, tenant_id, net_id):
|
||||
"""
|
||||
retrieved a list of all the remote vifs that
|
||||
are attached to the network
|
||||
Retrieves a list of all the remote vifs that
|
||||
are attached to the network.
|
||||
|
||||
:returns: a sequence of mappings with the following signature:
|
||||
{'net-id': uuid that uniquely identifies the particular quantum network
|
||||
'net-name': a human-readable name associated with network referenced by net-id
|
||||
'net-ifaces': ['vif1_on_network_uuid', 'vif2_on_network_uuid',...,'vifn_uuid']
|
||||
}
|
||||
:raises: exception.NetworkNotFound
|
||||
"""
|
||||
pass
|
||||
|
||||
|
@ -67,6 +99,12 @@ class QuantumPluginBase(object):
|
|||
"""
|
||||
Updates the symbolic name belonging to a particular
|
||||
Virtual Network.
|
||||
|
||||
:returns: a sequence of mappings representing the new network attributes, with the following signature:
|
||||
{'net-id': uuid that uniquely identifies the particular quantum network
|
||||
'net-name': the new human-readable name associated with network referenced by net-id
|
||||
}
|
||||
:raises: exception.NetworkNotFound
|
||||
"""
|
||||
pass
|
||||
|
||||
|
@ -75,6 +113,15 @@ class QuantumPluginBase(object):
|
|||
"""
|
||||
Retrieves all port identifiers belonging to the
|
||||
specified Virtual Network.
|
||||
|
||||
:returns: a list of mapping sequences with the following signature:
|
||||
[ {'port-id': uuid representing a particular port on the specified quantum network
|
||||
},
|
||||
....
|
||||
{'port-id': uuid representing a particular port on the specified quantum network
|
||||
}
|
||||
]
|
||||
:raises: exception.NetworkNotFound
|
||||
"""
|
||||
pass
|
||||
|
||||
|
@ -82,6 +129,12 @@ class QuantumPluginBase(object):
|
|||
def create_port(self, tenant_id, net_id, port_state=None):
|
||||
"""
|
||||
Creates a port on the specified Virtual Network.
|
||||
|
||||
:returns: a mapping sequence with the following signature:
|
||||
{'port-id': uuid representing the created port on specified quantum network
|
||||
}
|
||||
:raises: exception.NetworkNotFound
|
||||
:raises: exception.StateInvalid
|
||||
"""
|
||||
pass
|
||||
|
||||
|
@ -89,7 +142,14 @@ class QuantumPluginBase(object):
|
|||
def update_port(self, tenant_id, net_id, port_id, port_state):
|
||||
"""
|
||||
Updates the state of a specific port on the
|
||||
specified Virtual Network
|
||||
specified Virtual Network.
|
||||
|
||||
:returns: a mapping sequence with the following signature:
|
||||
{'port-id': uuid representing the updated port on specified quantum network
|
||||
'port-state': update port state( UP or DOWN)
|
||||
}
|
||||
:raises: exception.StateInvalid
|
||||
:raises: exception.PortNotFound
|
||||
"""
|
||||
pass
|
||||
|
||||
|
@ -100,6 +160,13 @@ class QuantumPluginBase(object):
|
|||
if the port contains a remote interface attachment,
|
||||
the remote interface is first un-plugged and then the port
|
||||
is deleted.
|
||||
|
||||
:returns: a mapping sequence with the following signature:
|
||||
{'port-id': uuid representing the deleted port on specified quantum network
|
||||
}
|
||||
:raises: exception.PortInUse
|
||||
:raises: exception.PortNotFound
|
||||
:raises: exception.NetworkNotFound
|
||||
"""
|
||||
pass
|
||||
|
||||
|
@ -108,6 +175,14 @@ class QuantumPluginBase(object):
|
|||
"""
|
||||
This method allows the user to retrieve a remote interface
|
||||
that is attached to this particular port.
|
||||
|
||||
:returns: a mapping sequence with the following signature:
|
||||
{'port-id': uuid representing the port on specified quantum network
|
||||
'net-id': uuid representing the particular quantum network
|
||||
'attachment': uuid of the virtual interface bound to the port, None otherwise
|
||||
}
|
||||
:raises: exception.PortNotFound
|
||||
:raises: exception.NetworkNotFound
|
||||
"""
|
||||
pass
|
||||
|
||||
|
@ -116,6 +191,11 @@ class QuantumPluginBase(object):
|
|||
"""
|
||||
Attaches a remote interface to the specified port on the
|
||||
specified Virtual Network.
|
||||
|
||||
:returns: None
|
||||
:raises: exception.NetworkNotFound
|
||||
:raises: exception.PortNotFound
|
||||
:raises: exception.AlreadyAttached (? should the network automatically unplug/replug)
|
||||
"""
|
||||
pass
|
||||
|
||||
|
@ -124,6 +204,10 @@ class QuantumPluginBase(object):
|
|||
"""
|
||||
Detaches a remote interface from the specified port on the
|
||||
specified Virtual Network.
|
||||
|
||||
:returns: None
|
||||
:raises: exception.NetworkNotFound
|
||||
:raises: exception.PortNotFound
|
||||
"""
|
||||
pass
|
||||
|
||||
|
|
Loading…
Reference in New Issue