Skip to content

Commit 22773b6

Browse files
ujwalbendalecaphrim007
authored andcommitted
added firewall rule creation under policy (#1471)
1 parent 73be362 commit 22773b6

3 files changed

Lines changed: 43 additions & 43 deletions

File tree

f5/bigip/tm/security/firewall.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -124,13 +124,13 @@ def __init__(self, rule_lists):
124124

125125
class Rules_s(Collection):
126126
"""BIG-IP® AFM® Rules sub-collection."""
127-
def __init__(self, rule_list):
128-
super(Rules_s, self).__init__(rule_list)
127+
def __init__(self, policy):
128+
super(Rules_s, self).__init__(policy)
129129
self._meta_data['required_json_kind'] = \
130-
'tm:security:firewall:rule-list:rules:rulescollectionstate'
130+
'tm:security:firewall:policy:rules:rulescollectionstate'
131131
self._meta_data['allowed_lazy_attributes'] = [Rule]
132132
self._meta_data['attribute_registry'] = \
133-
{'tm:security:firewall:rule-list:rules:rulesstate':
133+
{'tm:security:firewall:policy:rules:rulesstate':
134134
Rule}
135135

136136

@@ -148,7 +148,7 @@ class Rule(Resource, CheckExistenceMixin):
148148
def __init__(self, rules_s):
149149
super(Rule, self).__init__(rules_s)
150150
self._meta_data['required_json_kind'] = \
151-
'tm:security:firewall:rule-list:rules:rulesstate'
151+
'tm:security:firewall:policy:rules:rulesstate'
152152
self._meta_data['required_creation_parameters'].update(('action',))
153153
self._meta_data['exclusive_attributes'].append(
154154
('place-after', 'place-before'))
@@ -223,7 +223,7 @@ def __init__(self, policy_s):
223223
self._meta_data['required_load_parameters'].update(('partition',))
224224
self._meta_data['allowed_lazy_attributes'] = [Rules_s]
225225
self._meta_data['attribute_registry'] = \
226-
{'tm:security:firewall:rule-list:rules:rulescollectionstate':
226+
{'tm:security:firewall:policy:rules:rulescollectionstate':
227227
Rules_s}
228228

229229

f5/bigip/tm/security/test/functional/test_firewall.py

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -55,15 +55,6 @@ def rulelst(mgmt_root):
5555
r1.delete()
5656

5757

58-
@pytest.fixture(scope='function')
59-
def rule(rulelst):
60-
param_set = {'name': 'fake_rule', 'place-after': 'first',
61-
'action': 'reject'}
62-
r1 = rulelst.rules_s.rule.create(**param_set)
63-
yield r1
64-
r1.delete()
65-
66-
6758
@pytest.fixture(scope='function')
6859
def policy(mgmt_root):
6960
p1 = mgmt_root.tm.security.firewall.policy_s.policy.create(
@@ -72,6 +63,15 @@ def policy(mgmt_root):
7263
p1.delete()
7364

7465

66+
@pytest.fixture(scope='function')
67+
def rule(policy):
68+
param_set = {'name': 'fake_rule', 'place-after': 'first',
69+
'action': 'reject'}
70+
r1 = policy.rules_s.rule.create(**param_set)
71+
yield r1
72+
r1.delete()
73+
74+
7575
@pytest.fixture(scope='function')
7676
def dsnresolver(mgmt_root):
7777
d1 = mgmt_root.tm.net.dns_resolvers.dns_resolver.create(
@@ -352,43 +352,43 @@ def test_portlist_collection(self, mgmt_root):
352352

353353

354354
class TestRules(object):
355-
def test_mutually_exclusive_raises(self, rulelst):
355+
def test_mutually_exclusive_raises(self, policy):
356356
param_set = {'name': 'fake_rule', 'place-after': 'first',
357357
'action': 'reject', 'place-before': 'last'}
358358
ERR = 'Mutually exclusive arguments submitted. The following arguments cannot be set together: "place-after, place-before".'
359359
with pytest.raises(ExclusiveAttributesPresent) as err:
360-
rulelst.rules_s.rule.create(**param_set)
360+
policy.rules_s.rule.create(**param_set)
361361
assert str(err.value) == ERR
362362

363-
def test_mandatory_attribute_missing(self, rulelst):
363+
def test_mandatory_attribute_missing(self, policy):
364364
param_set = {'name': 'fake_rule', 'action': 'reject'}
365365
ERR = "This resource requires at least one of the mandatory additional parameters to be provided: place-after, place-before"
366366
with pytest.raises(MissingRequiredCreationParameter) as err:
367-
rulelst.rules_s.rule.create(**param_set)
367+
policy.rules_s.rule.create(**param_set)
368368
assert str(err.value) == ERR
369369

370370
def test_create_req_arg(self, rule):
371371
r1 = rule
372372
URI = 'https://localhost/mgmt/tm/security/' \
373-
'firewall/rule-list/~Common~fake_rule_list/rules/fake_rule'
373+
'firewall/policy/~Common~fake_policy/rules/fake_rule'
374374
assert r1.name == 'fake_rule'
375375
assert r1.selfLink.startswith(URI)
376376
assert not hasattr(r1, 'description')
377377

378-
def test_create_optional_args(self, rulelst):
378+
def test_create_optional_args(self, policy):
379379
param_set = {'name': 'fake_rule', 'place-after': 'first',
380380
'action': 'reject', 'description': DESC}
381-
r1 = rulelst.rules_s.rule.create(**param_set)
381+
r1 = policy.rules_s.rule.create(**param_set)
382382
URI = 'https://localhost/mgmt/tm/security/' \
383-
'firewall/rule-list/~Common~fake_rule_list/rules/fake_rule'
383+
'firewall/policy/~Common~fake_policy/rules/fake_rule'
384384
assert r1.name == 'fake_rule'
385385
assert r1.selfLink.startswith(URI)
386386
assert hasattr(r1, 'description')
387387
assert r1.description == DESC
388388

389-
def test_refresh(self, rulelst, rule):
389+
def test_refresh(self, policy, rule):
390390
r1 = rule
391-
r2 = rulelst.rules_s.rule.load(name='fake_rule')
391+
r2 = policy.rules_s.rule.load(name='fake_rule')
392392
assert r1.name == r2.name
393393
assert r1.selfLink == r2.selfLink
394394
assert r1.kind == r2.kind
@@ -409,13 +409,13 @@ def test_refresh(self, rulelst, rule):
409409
) == LooseVersion('11.6.0'),
410410
reason='This test will fail on 11.6.0 due to a known bug.'
411411
)
412-
def test_delete(self, rulelst):
412+
def test_delete(self, policy):
413413
param_set = {'name': 'delete_me', 'place-after': 'first',
414414
'action': 'reject'}
415-
r1 = rulelst.rules_s.rule.create(**param_set)
415+
r1 = policy.rules_s.rule.create(**param_set)
416416
r1.delete()
417417
with pytest.raises(HTTPError) as err:
418-
rulelst.rules_s.rule.load(name='delete_me')
418+
policy.rules_s.rule.load(name='delete_me')
419419
assert err.value.response.status_code == 404
420420

421421
@pytest.mark.skipif(
@@ -424,9 +424,9 @@ def test_delete(self, rulelst):
424424
) == LooseVersion('11.6.0'),
425425
reason='This test will fail on 11.6.0 due to a known bug.'
426426
)
427-
def test_load_no_object(self, rulelst):
427+
def test_load_no_object(self, policy):
428428
with pytest.raises(HTTPError) as err:
429-
rulelst.rules_s.rule.load(name='not_exist')
429+
policy.rules_s.rule.load(name='not_exist')
430430
assert err.value.response.status_code == 404
431431

432432
@pytest.mark.skipif(
@@ -435,13 +435,13 @@ def test_load_no_object(self, rulelst):
435435
) != LooseVersion('11.6.0'),
436436
reason='This test is for 11.6.0 TMOS only, due to a known bug.'
437437
)
438-
def test_delete_11_6_0(self, rulelst):
438+
def test_delete_11_6_0(self, policy):
439439
param_set = {'name': 'delete_me', 'place-after': 'first',
440440
'action': 'reject'}
441-
r1 = rulelst.rules_s.rule.create(**param_set)
441+
r1 = policy.rules_s.rule.create(**param_set)
442442
r1.delete()
443443
try:
444-
rulelst.rules_s.rule.load(name='delete_me')
444+
policy.rules_s.rule.load(name='delete_me')
445445

446446
except NonExtantFirewallRule as err:
447447
msg = 'The application resource named, delete_me, ' \
@@ -455,42 +455,42 @@ def test_delete_11_6_0(self, rulelst):
455455
) != LooseVersion('11.6.0'),
456456
reason='This test is for 11.6.0 TMOS only, due to a known bug.'
457457
)
458-
def test_load_no_object_11_6_0(self, rulelst):
458+
def test_load_no_object_11_6_0(self, policy):
459459
try:
460-
rulelst.rules_s.rule.load(name='not_exist')
460+
policy.rules_s.rule.load(name='not_exist')
461461

462462
except NonExtantFirewallRule as err:
463463
msg = 'The application resource named, not_exist, ' \
464464
'does not exist on the device.'
465465

466466
assert err.message == msg
467467

468-
def test_load_and_update(self, rulelst, rule):
468+
def test_load_and_update(self, policy, rule):
469469
r1 = rule
470470
URI = 'https://localhost/mgmt/tm/security/' \
471-
'firewall/rule-list/~Common~fake_rule_list/rules/fake_rule'
471+
'firewall/policy/~Common~fake_policy/rules/fake_rule'
472472
assert r1.name == 'fake_rule'
473473
assert r1.selfLink.startswith(URI)
474474
assert not hasattr(r1, 'description')
475475
r1.description = DESC
476476
r1.update()
477477
assert hasattr(r1, 'description')
478478
assert r1.description == DESC
479-
r2 = rulelst.rules_s.rule.load(name='fake_rule')
479+
r2 = policy.rules_s.rule.load(name='fake_rule')
480480
assert r1.name == r2.name
481481
assert r1.selfLink == r2.selfLink
482482
assert hasattr(r2, 'description')
483483
assert r1.description == r2.description
484484

485-
def test_rules_subcollection(self, rulelst, rule):
485+
def test_rules_subcollection(self, policy, rule):
486486
r1 = rule
487487
URI = 'https://localhost/mgmt/tm/security/' \
488-
'firewall/rule-list/~Common~fake_rule_list/rules/fake_rule'
488+
'firewall/policy/~Common~fake_policy/rules/fake_rule'
489489
assert r1.name == 'fake_rule'
490490
assert r1.selfLink.startswith(URI)
491491
assert not hasattr(r1, 'description')
492492

493-
rc = rulelst.rules_s.get_collection()
493+
rc = policy.rules_s.get_collection()
494494
assert isinstance(rc, list)
495495
assert len(rc)
496496
assert isinstance(rc[0], Rule)

f5/bigip/tm/security/test/unit/test_firewall.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ def test_create_no_args(self, FakeRuleLst):
142142
class TestRulesSubcollection(object):
143143
def test_rule_subcollection(self, fakeicontrolsession):
144144
pc = Rules_s(Makerulelist(fakeicontrolsession))
145-
kind = 'tm:security:firewall:rule-list:rules:rulesstate'
145+
kind = 'tm:security:firewall:policy:rules:rulesstate'
146146
test_meta = pc._meta_data['attribute_registry']
147147
test_meta2 = pc._meta_data['allowed_lazy_attributes']
148148
assert isinstance(pc, Rules_s)
@@ -177,7 +177,7 @@ def test_create_no_args(self, FakePolicy):
177177
class TestPolicyRuleSubCollection(object):
178178
def test_policy_rule_subcollection(self, fakeicontrolsession):
179179
pc = Rules_s(MakePolicyRules(fakeicontrolsession))
180-
kind = 'tm:security:firewall:rule-list:rules:rulesstate'
180+
kind = 'tm:security:firewall:policy:rules:rulesstate'
181181
test_meta = pc._meta_data['attribute_registry']
182182
test_meta2 = pc._meta_data['allowed_lazy_attributes']
183183
assert isinstance(pc, Rules_s)

0 commit comments

Comments
 (0)