示例#1
0
    def test_0030_update_nat_rule(self):
        """Update a Nat Rule.

        Invokes the update_nat_rule of the NatRule.
        """
        gateway = Environment. \
            get_test_gateway(TestNatRule._client)
        gateway_obj = Gateway(TestNatRule._client,
                              TestNatRule._name,
                              href=gateway.get('href'))
        nat_rule = gateway_obj.get_nat_rules()
        rule_id = self.__get_snat_rule_id(nat_rule)
        nat_obj = NatRule(TestNatRule._client, self._name, rule_id)
        nat_obj.update_nat_rule(
            original_address=TestNatRule._new_snat_orig_addr,
            translated_address=TestNatRule._new_snat_trans_addr,
            description=TestNatRule._new_snat_desc)
        #Verify
        nat_rule = gateway_obj.get_nat_rules()
        match_found = False
        for natRule in nat_rule.natRules.natRule:
            if natRule.originalAddress == TestNatRule._new_snat_orig_addr and \
                natRule.translatedAddress == TestNatRule._new_snat_trans_addr and \
                natRule.description == TestNatRule._new_snat_desc:
                match_found = True
        self.assertTrue(match_found)
示例#2
0
    def test_0030_update_nat_rule(self):
        """Update a Nat Rule.

        Invokes the update_nat_rule of the NatRule.
        """
        gateway = Environment. \
            get_test_gateway(TestNatRule._client)
        gateway_obj = Gateway(TestNatRule._client,
                              TestNatRule._name,
                              href=gateway.get('href'))
        nat_rule = gateway_obj.get_nat_rules()
        rule_id = self.__get_snat_rule_id(nat_rule)
        nat_obj = NatRule(TestNatRule._client, self._name, rule_id)
        nat_obj.update_nat_rule(
            original_address=TestNatRule._new_snat_orig_addr,
            translated_address=TestNatRule._new_snat_trans_addr,
            description=TestNatRule._new_snat_desc)
        #Verify
        nat_rule = gateway_obj.get_nat_rules()
        match_found = False
        for natRule in nat_rule.natRules.natRule:
            if natRule.originalAddress == TestNatRule._new_snat_orig_addr and \
                natRule.translatedAddress == TestNatRule._new_snat_trans_addr and \
                natRule.description == TestNatRule._new_snat_desc:
                match_found = True
        self.assertTrue(match_found)
示例#3
0
 def get_nat_rule_from_definition(self, nat_definition):
     for rule in self.gateway.list_nat_rules():
         nat_rule = NatRule(
             self.client, self.gateway_name, rule_id=rule['ID'])
         if self.compare_nat_rule(nat_rule.get_nat_rule_info(), nat_definition):
            return nat_rule.get_nat_rule_info()
     return {}
示例#4
0
    def update(self):
        response = dict()
        response['changed'] = False
        response['msg'] = list()

        for service_param in self.service_params:
            nat_rule_id = service_param.get("nat_rule_id")
            original_address = service_param.get("original_address")
            translated_address = service_param.get("translated_address")
            description = service_param.get("description", '')
            protocol = service_param.get("protocol", 'any')
            original_port = service_param.get("original_port", 'any')
            translated_port = service_param.get("translated_port", 'any')
            icmp_type = service_param.get("icmp_type", 'any')
            enabled = service_param.get("enabled", True)
            logging_enabled = service_param.get("logging_enabled", False)
            vnic = service_param.get("vnic", 0)
            nat_rule_obj = NatRule(client=self.gateway.client,
                                   gateway_name=self.gateway.name,
                                   rule_id=nat_rule_id)
            nat_rule_obj.href = self.get_nat_rule_href(nat_rule_id)
            nat_rule_obj.update_nat_rule(original_address, translated_address,
                                         description, protocol, original_port,
                                         translated_port, icmp_type,
                                         logging_enabled, enabled, vnic)
            response['msg'].append(nat_rule_id)
        response['msg'] = 'Nat rule(s) {0} are updated'.format(response['msg'])
        response['changed'] = True

        return response
示例#5
0
 def delete_nat_rule(self, nat_id=None, nat_definition=None):
     nat_rule = None
     if nat_definition:
         nat_rule = self.get_nat_rule_from_definition(nat_definition)
     elif nat_id:
         nat_rule = NatRule(self.client, self.gateway_name, rule_id=nat_id)
     elif not nat_rule:
         raise VCloudSDKException(
             'Unable to find nat rule for deletion, because neither '
             'nat_id {nat_id}, nor nat_definition {definition} '
             'resolved to any known rules for gateway {gateway}.'.format(
                 nat_id=nat_id,
                 definition=nat_definition,
                 gateway=self.gateway_name))
     return nat_rule.delete_nat_rule()
示例#6
0
    def delete(self):
        response = dict()
        response['changed'] = False
        response['msg'] = list()

        for service_param in self.service_params:
            nat_rule_id = service_param.get("nat_rule_id")
            nat_rule_obj = NatRule(client=self.gateway.client,
                                   gateway_name=self.gateway.name,
                                   rule_id=nat_rule_id)
            nat_rule_obj.href = self.get_nat_rule_href(nat_rule_id)
            nat_rule_obj.delete_nat_rule()
            response['msg'].append(nat_rule_id)
        response['msg'] = 'Nat rule(s) {0} are deleted'.format(response['msg'])
        response['changed'] = True

        return response
示例#7
0
    def test_0015_get_nat_rule_info(self):
        """Get the details of nat rule.

        Invokes the get_nat_rule_info of the NatRule.
        """
        gateway = Environment. \
            get_test_gateway(TestNatRule._client)
        gateway_obj = Gateway(TestNatRule._client,
                              TestNatRule._name,
                              href=gateway.get('href'))
        nat_rule = gateway_obj.get_nat_rules()
        rule_id = self.__get_snat_rule_id(nat_rule)
        nat_obj = NatRule(TestNatRule._client, self._name, rule_id)
        nat_rule_info =  nat_obj.get_nat_rule_info()
        #Verify
        self.assertTrue(len(nat_rule_info) > 0)
        self.assertEqual(nat_rule_info['Action'], TestNatRule._snat_action)
        self.assertEqual(nat_rule_info['OriginalAddress'],
                         TestNatRule._snat_orig_addr)
示例#8
0
def get_nat_rule(ctx, gateway_name, rule_id):
    """Get the Nat Rule resource.

    It will restore sessions if expired. It will reads the client and
    creates the Nat Rule resource object.
    """
    restore_session(ctx, vdc_required=True)
    client = ctx.obj['client']
    resource = NatRule(client, gateway_name, rule_id)
    return resource
示例#9
0
    def test_0015_get_nat_rule_info(self):
        """Get the details of nat rule.

        Invokes the get_nat_rule_info of the NatRule.
        """
        gateway = Environment. \
            get_test_gateway(TestNatRule._client)
        gateway_obj = Gateway(TestNatRule._client,
                              TestNatRule._name,
                              href=gateway.get('href'))
        nat_rule = gateway_obj.get_nat_rules()
        rule_id = self.__get_snat_rule_id(nat_rule)
        nat_obj = NatRule(TestNatRule._client, self._name, rule_id)
        nat_rule_info = nat_obj.get_nat_rule_info()
        #Verify
        self.assertTrue(len(nat_rule_info) > 0)
        self.assertEqual(nat_rule_info['Action'], TestNatRule._snat_action)
        self.assertEqual(nat_rule_info['OriginalAddress'],
                         TestNatRule._snat_orig_addr)
示例#10
0
    def test_0090_delete_nat_rule(self):
        """Delete Nat Rule in the gateway.

        Invokes the delete_nat_rule of the NatRule.
        """
        gateway = Environment. \
            get_test_gateway(TestNatRule._client)
        gateway_obj = Gateway(TestNatRule._client,
                              TestNatRule._name,
                              href=gateway.get('href'))
        nat_rule = gateway_obj.get_nat_rules()

        nat_objects = []
        for natRule in nat_rule.natRules.natRule:
            nat_objects.append(
                NatRule(TestNatRule._client, self._name, natRule.ruleId))

        for nat_object in nat_objects:
            nat_object.delete_nat_rule()
        #Verify
        nat_rule = gateway_obj.get_nat_rules()
        self.assertFalse(hasattr(nat_rule.natRules, 'natRule'))