You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@libcloud.apache.org by to...@apache.org on 2014/01/31 19:32:55 UTC
[5/7] git commit: Allow user to create server with VLAN.
Allow user to create server with VLAN.
Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/24350fd7
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/24350fd7
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/24350fd7
Branch: refs/heads/trunk
Commit: 24350fd75eb37911c5cfff606c71979e91c05da0
Parents: 1c6caeb
Author: Tomaz Muraus <to...@apache.org>
Authored: Fri Jan 31 18:55:56 2014 +0100
Committer: Tomaz Muraus <to...@apache.org>
Committed: Fri Jan 31 18:55:56 2014 +0100
----------------------------------------------------------------------
libcloud/compute/drivers/cloudsigma.py | 50 ++++++++++++++++++++---------
1 file changed, 34 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/libcloud/blob/24350fd7/libcloud/compute/drivers/cloudsigma.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/cloudsigma.py b/libcloud/compute/drivers/cloudsigma.py
index 034f55a..5d38537 100644
--- a/libcloud/compute/drivers/cloudsigma.py
+++ b/libcloud/compute/drivers/cloudsigma.py
@@ -1060,7 +1060,7 @@ class CloudSigma_2_0_NodeDriver(CloudSigmaNodeDriver):
return images
def create_node(self, name, size, image, ex_metadata=None,
- ex_vnc_password=None, ex_avoid=None):
+ ex_vnc_password=None, ex_avoid=None, ex_vlan=None):
"""
Create a new server.
@@ -1082,6 +1082,11 @@ class CloudSigma_2_0_NodeDriver(CloudSigmaNodeDriver):
:param ex_avoid: A list of server UUIDs to avoid when starting this
node. (optional)
:type ex_avoid: ``list``
+
+ :param ex_vlan: Optional UUID of a VLAN network to use. If specified,
+ server will have two nics assigned - 1 with a public ip and 1 with the
+ provided VLAN.
+ :type ex_vlan: ``str``
"""
# Only pre-installed images can be used with create_node
@@ -1123,24 +1128,37 @@ class CloudSigma_2_0_NodeDriver(CloudSigmaNodeDriver):
data['meta'] = ex_metadata
# Assign 1 public interface (DHCP) to the node
- data['nics'] = [
- {
+ nic = {
+ 'boot_order': None,
+ 'ip_v4_conf': {
+ 'conf': 'dhcp',
+ },
+ 'ip_v6_conf': None
+ }
+
+ nics = [nic]
+
+ if ex_vlan:
+ # Assign another interface for VLAN
+ nic = {
'boot_order': None,
- 'ip_v4_conf': {
- 'conf': 'dhcp',
- },
- 'ip_v6_conf': None
+ 'ip_v4_conf': None,
+ 'ip_v6_conf': None,
+ 'vlan': ex_vlan
}
- ]
+ nics.append(nic)
- data['drives'] = [
- {
- 'boot_order': 1,
- 'dev_channel': '0:0',
- 'device': 'ide',
- 'drive': drive.id
- }
- ]
+ drive = {
+ 'boot_order': 1,
+ 'dev_channel': '0:0',
+ 'device': 'ide',
+ 'drive': drive.id
+ }
+
+ drives = [drive]
+
+ data['nics'] = nics
+ data['drives'] = drives
action = '/servers/'
response = self.connection.request(action=action, method='POST',