def test_create_firewall_policy(self): with open('mock-api/create-fp.json') as f: data = json.load(f) fp1 = FirewallPolicy(name=data['name'], description=data['description']) rule1 = FirewallPolicyRule(protocol=data['rules'][0]['protocol'], port_from=data['rules'][0]['port_from'], port_to=data['rules'][0]['port_to'], source=data['rules'][0]['source']) rule2 = FirewallPolicyRule(protocol=data['rules'][1]['protocol'], port_from=data['rules'][1]['port_from'], port_to=data['rules'][1]['port_to'], source=data['rules'][1]['source']) rules = [rule1, rule2] responses.add(responses.POST, 'https://cloudpanel-api.1and1.com/v1/firewall_policies', body=json.dumps(data), status=202, content_type="application/json") r = self.client.create_firewall_policy(firewall_policy=fp1, firewall_policy_rules=rules) self.assertEqual(r['name'], fp1.specs['name']) self.assertEqual(r['description'], fp1.specs['description']) self.assertEqual(r['rules'][0]['protocol'], rule1.rule_set['protocol']) self.assertEqual(r['rules'][1]['protocol'], rule2.rule_set['protocol'])
def _get_firewall_policy(kwargs): ''' Construct FirewallPolicy and FirewallPolicy instances from passed arguments ''' fp_name = kwargs.get('name', None) fp_description = kwargs.get('description', None) firewallPolicy = FirewallPolicy(name=fp_name, description=fp_description) fpr_json = kwargs.get('rules', None) jdata = json.loads(fpr_json) rules = [] for fwpr in jdata: firewallPolicyRule = FirewallPolicyRule() if 'protocol' in fwpr: firewallPolicyRule.rule_set['protocol'] = fwpr['protocol'] if 'port_from' in fwpr: firewallPolicyRule.rule_set['port_from'] = fwpr['port_from'] if 'port_to' in fwpr: firewallPolicyRule.rule_set['port_to'] = fwpr['port_to'] if 'source' in fwpr: firewallPolicyRule.rule_set['source'] = fwpr['source'] if 'action' in fwpr: firewallPolicyRule.rule_set['action'] = fwpr['action'] if 'description' in fwpr: firewallPolicyRule.rule_set['description'] = fwpr['description'] if 'port' in fwpr: firewallPolicyRule.rule_set['port'] = fwpr['port'] rules.append(firewallPolicyRule) return {'firewall_policy': firewallPolicy, 'firewall_policy_rules': rules}
def test_add_rule(self): with open('mock-api/add-rule-fp.json') as f: data = json.load(f) firewall_id = data['id'] rule1 = FirewallPolicyRule(protocol=data['rules'][2]['protocol'], port_from=data['rules'][2]['port_from'], port_to=data['rules'][2]['port_to'], source=data['rules'][2]['source']) rules = [rule1] responses.add( responses.POST, 'https://cloudpanel-api.1and1.com/v1/firewall_policies/%s/rules' % firewall_id, body=json.dumps(data), status=202, content_type="application/json") r = self.client.add_firewall_policy_rule(firewall_id=firewall_id, firewall_policy_rules=rules) self.assertEqual(r['rules'][2]['protocol'], rule1.rule_set['protocol']) self.assertEqual(r['rules'][2]['port_from'], rule1.rule_set['port_from']) self.assertEqual(r['rules'][2]['port_to'], rule1.rule_set['port_to']) self.assertEqual(r['rules'][2]['source'], rule1.rule_set['source'])
client = OneAndOneService('675fbe491b27896b57e76867604f8255') rule = client.get_firewall_policy_rule(firewall_id='', rule_id='') # Create a firewall from oneandone.client import OneAndOneService from oneandone.client import FirewallPolicy, FirewallPolicyRule client = OneAndOneService('675fbe491b27896b57e76867604f8255') fp1 = FirewallPolicy(name='Test Firewall Policy', description='Test Description') rule1 = FirewallPolicyRule(protocol='TCP', port_from=80, port_to=80, source='0.0.0.0') rule2 = FirewallPolicyRule(protocol='UDP', port_from=443, port_to=443, source='0.0.0.0') rules = [rule1, rule2] new_firewall = client.create_firewall_policy(firewall_policy=fp1, firewall_policy_rules=rules) # Add rules to a firewall from oneandone.client import OneAndOneService from oneandone.client import FirewallPolicyRule
hdd1 = Hdd(size=120, is_main=True) hdds = [hdd1] new_server = client.create_server(server=server1, hdds=hdds) print server1.wait_for() serverResp = client.get_server(server_id=new_server['id']) # Create a firewall fp1 = FirewallPolicy(name='Python Test Firewall Policy12', description='Test Description') rule1 = FirewallPolicyRule(protocol='TCP', port=80, source='0.0.0.0', action='allow') rule2 = FirewallPolicyRule(protocol='UDP', port=443, source='0.0.0.0', action='allow') rules = [rule1, rule2] new_firewall = client.create_firewall_policy(firewall_policy=fp1, firewall_policy_rules=rules) fp1.wait_for() # Attach servers to a firewall
source='0.0.0.0') rules = [rule1] new_load_balancer = client.create_load_balancer(load_balancer=lb1, load_balancer_rules=rules) ## Wait for Load Balancer to go live print 'Creating load balancer...' print lb1.wait_for() # Create Firewall Policy fp1 = FirewallPolicy(name='Example App FP', description='Test Description') rule1 = FirewallPolicyRule(protocol='TCP', port_from=80, port_to=80, source='0.0.0.0') rules = [rule1] new_firewall = client.create_firewall_policy(firewall_policy=fp1, firewall_policy_rules=rules) ## Wait for Firewall Policy to go live print 'Creating firewall policy...' print fp1.wait_for() # Preapare hdds hdds = [] hdd1 = Hdd(size=40, is_main=True) hdd2 = Hdd(size=20, is_main=False)