You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@libcloud.apache.org by an...@apache.org on 2016/02/29 05:12:26 UTC
[13/19] libcloud git commit: fix to create a firewall rule with the
specific source ip
fix to create a firewall rule with the specific source ip
Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/f254354f
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/f254354f
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/f254354f
Branch: refs/heads/trunk
Commit: f254354f1bc2fc1d1dfa4249c15cbeb32a5b2a93
Parents: 6d9e820
Author: kumar Chockalingam <ku...@gmail.com>
Authored: Mon Feb 29 10:55:31 2016 +1100
Committer: kumar Chockalingam <ku...@gmail.com>
Committed: Mon Feb 29 10:55:31 2016 +1100
----------------------------------------------------------------------
libcloud/compute/drivers/dimensiondata.py | 3 ++-
...4d8a_9cbc_8dabe5a7d0e4_network_firewallRule.xml | 17 ++++++++++++++++-
libcloud/test/compute/test_dimensiondata.py | 11 ++++++++++-
3 files changed, 28 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/libcloud/blob/f254354f/libcloud/compute/drivers/dimensiondata.py
----------------------------------------------------------------------
diff --git a/libcloud/compute/drivers/dimensiondata.py b/libcloud/compute/drivers/dimensiondata.py
index 651536e..3a38744 100644
--- a/libcloud/compute/drivers/dimensiondata.py
+++ b/libcloud/compute/drivers/dimensiondata.py
@@ -1135,7 +1135,8 @@ class DimensionDataNodeDriver(NodeDriver):
source_ip.set('address', 'ANY')
else:
source_ip.set('address', rule.source.ip_address)
- source_ip.set('prefixSize', str(rule.source.ip_prefix_size))
+ if rule.source.ip_prefix_size is not None:
+ source_ip.set('prefixSize', str(rule.source.ip_prefix_size))
if rule.source.port_begin is not None:
source_port = ET.SubElement(source, 'port')
source_port.set('begin', rule.source.port_begin)
http://git-wip-us.apache.org/repos/asf/libcloud/blob/f254354f/libcloud/test/compute/fixtures/dimensiondata/caas_2_1_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_firewallRule.xml
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/fixtures/dimensiondata/caas_2_1_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_firewallRule.xml b/libcloud/test/compute/fixtures/dimensiondata/caas_2_1_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_firewallRule.xml
index b09d963..fb5b6ed 100644
--- a/libcloud/test/compute/fixtures/dimensiondata/caas_2_1_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_firewallRule.xml
+++ b/libcloud/test/compute/fixtures/dimensiondata/caas_2_1_8a8f6abc_2745_4d8a_9cbc_8dabe5a7d0e4_network_firewallRule.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<firewallRules xmlns="urn:didata.com:api:cloud:types" pageNumber="1" pageCount="13" totalCount="13" pageSize="50">
+<firewallRules xmlns="urn:didata.com:api:cloud:types" pageNumber="1" pageCount="13" totalCount="13" pageSize="50">
<firewallRule id="756cba02-b0bc-48f4-aea5-9445870b6148" datacenterId="NA9" ruleType="DEFAULT_RULE">
<networkDomainId>b30c224c-c95b-4cd9-bb8b-bfdfb5486abf</networkDomainId>
<name>CCDEFAULT.BlockOutboundMailIPv4</name>
@@ -207,4 +207,19 @@
<enabled>true</enabled>
<state>NORMAL</state>
</firewallRule>
+ <firewallRule id="b976e0e6-4fb2-4f3e-a016-652e02d211b4" datacenterId="NA9" ruleType="CLIENT_RULE">
+ <networkDomainId>b30c224c-c95b-4cd9-bb8b-bfdfb5486abf</networkDomainId>
+ <name>SpecificSourceIP</name>
+ <action>ACCEPT_DECISIVELY</action>
+ <ipVersion>IPV6</ipVersion>
+ <protocol>TCP</protocol>
+ <source>
+ <ip address="2607:f480:111:1336:6503:544c:74a6:3a28"/>
+ </source>
+ <destination>
+ <ip address="ANY"/>
+ </destination>
+ <enabled>true</enabled>
+ <state>NORMAL</state>
+ </firewallRule>
</firewallRules>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/libcloud/blob/f254354f/libcloud/test/compute/test_dimensiondata.py
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/test_dimensiondata.py b/libcloud/test/compute/test_dimensiondata.py
index 3bb0210..dff3ba3 100644
--- a/libcloud/test/compute/test_dimensiondata.py
+++ b/libcloud/test/compute/test_dimensiondata.py
@@ -33,6 +33,7 @@ from libcloud.test.file_fixtures import ComputeFileFixtures
from libcloud.test.secrets import DIMENSIONDATA_PARAMS
+
class DimensionDataTests(unittest.TestCase, TestCaseMixin):
def setUp(self):
@@ -448,9 +449,17 @@ class DimensionDataTests(unittest.TestCase, TestCaseMixin):
def test_ex_create_firewall_rule(self):
net = self.driver.ex_get_network_domain('8cdfd607-f429-4df6-9352-162cfc0891be')
- rules = self.driver.ex_list_firewall_rules(net)
+ rules = self.driver.ex_list_firewall_rules(net)
rule = self.driver.ex_create_firewall_rule(net, rules[0], 'FIRST')
self.assertEqual(rule.id, 'd0a20f59-77b9-4f28-a63b-e58496b73a6c')
+
+ def test_ex_create_firewall_rule_with_specific_source_ip(self):
+ net = self.driver.ex_get_network_domain('8cdfd607-f429-4df6-9352-162cfc0891be')
+ rules = self.driver.ex_list_firewall_rules(net)
+ specific_source_ip_rule = list(filter(lambda x: x.name == 'SpecificSourceIP',
+ rules))[0]
+ rule = self.driver.ex_create_firewall_rule(net, specific_source_ip_rule, 'FIRST')
+ self.assertEqual(rule.id, 'd0a20f59-77b9-4f28-a63b-e58496b73a6c')
def test_ex_get_firewall_rule(self):
net = self.driver.ex_get_network_domain('8cdfd607-f429-4df6-9352-162cfc0891be')