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'])
예제 #2
0
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
예제 #5
0
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
예제 #6
0
                         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)