def delete_StaticNatRule_For_VM(self, public_ip): self.debug("Disabling Static NAT rule on public IP - %s" % public_ip.ipaddress.ipaddress) StaticNATRule.disable(self.api_client, ipaddressid=public_ip.ipaddress.id) self.debug("Static NAT rule disabled on public IP - %s" % public_ip.ipaddress.ipaddress)
def delete_StaticNatRule_For_VM(self, vm, public_ip): self.debug("Disabling static NAT for public IP - %s" % public_ip.ipaddress.ipaddress) StaticNATRule.disable(self.api_client, ipaddressid=public_ip.ipaddress.id, virtualmachineid=vm.id ) self.debug("Static NAT disabled for public IP - %s" % public_ip.ipaddress.ipaddress)
def delete_StaticNatRule_For_VM(self, public_ip): self.debug("Disabling Static NAT rule on public IP - %s" % public_ip.ipaddress.ipaddress) StaticNATRule.disable(self.api_client, ipaddressid=public_ip.ipaddress.id ) self.debug("Static NAT rule disabled on public IP - %s" % public_ip.ipaddress.ipaddress)
def delete_StaticNatRule_For_VM(self, vm, public_ip): self.debug("Disabling static NAT for IP: %s" % public_ip.ipaddress.ipaddress) try: StaticNATRule.disable( self.apiclient, ipaddressid=public_ip.ipaddress.id, virtualmachineid=vm.id, ) self.debug("Static NAT disabled for IP: %s" % public_ip.ipaddress.ipaddress) except Exception as e: self.fail("Failed to disabled static NAT on IP: %s - %s" % ( public_ip.ipaddress.ipaddress, e))
def removeNetworkRules(self, rule, ipaddressobj): """ Remove specified rule on acquired public IP and default network of virtual machine """ self.fw_rule.delete(self.apiclient) if rule == STATIC_NAT_RULE: StaticNATRule.disable(self.apiclient, ipaddressobj.ipaddress.id) elif rule == LB_RULE: self.lb_rule.delete(self.apiclient) else: self.nat_rule.delete(self.apiclient) return
def delete_StaticNatRule_For_VM(self, vm, public_ip): self.debug("Disabling static NAT for IP: %s" % public_ip.ipaddress.ipaddress) try: StaticNATRule.disable( self.apiclient, ipaddressid=public_ip.ipaddress.id, virtualmachineid=vm.id, ) self.debug("Static NAT disabled for IP: %s" % public_ip.ipaddress.ipaddress) except Exception as e: self.fail("Failed to disabled static NAT on IP: %s - %s" % ( public_ip.ipaddress.ipaddress, e))
def removeNetworkRules(self, rule, ipaddressobj): """ Remove specified rule on acquired public IP and default network of virtual machine """ self.fw_rule.delete(self.apiclient) if rule == STATIC_NAT_RULE: StaticNATRule.disable( self.apiclient, ipaddressobj.ipaddress.id) elif rule == LB_RULE: self.lb_rule.delete(self.apiclient) else: self.nat_rule.delete(self.apiclient) return
def removeNetworkRules(self, rule): """ Remove specified rule on acquired public IP and default network of virtual machine """ self.fw_rule.delete(self.apiclient) if rule == STATIC_NAT_RULE: StaticNATRule.disable(self.apiclient, self.ipaddress.ipaddress.id) elif rule == LB_RULE: self.lb_rule.delete(self.apiclient) else: self.nat_rule.delete(self.apiclient) logger.debug("Releasing IP %s from account %s" % (self.ipaddress.ipaddress.ipaddress, self.account.name)) self.ipaddress.delete(self.apiclient) return
def removeNetworkRules(self, rule): """ Remove specified rule on acquired public IP and default network of virtual machine """ self.fw_rule.delete(self.apiclient) if rule == STATIC_NAT_RULE: StaticNATRule.disable( self.apiclient, self.ipaddress.ipaddress.id) elif rule == LB_RULE: self.lb_rule.delete(self.apiclient) else: self.nat_rule.delete(self.apiclient) logger.debug("Releasing IP %s from account %s" % (self.ipaddress.ipaddress.ipaddress, self.account.name)) self.ipaddress.delete(self.apiclient) return
def test_static_nat_on_ip_from_non_src_nat_ip_range(self): """Test for static nat on a IP which is in pubic IP range different from public IP range that has source NAT IP associated with network """ # Validate the following: # 1. Create a new public IP range and dedicate to a account # 2. Acquire a IP from new public range # 3. Enable static NAT on acquired IP from new range # 4. Create a firewall rule to open up the port # 5. Test SSH works to the VM self.services["extrapubliciprange"]["zoneid"] = self.services["zoneid"] self.public_ip_range = PublicIpRange.create( self.apiclient, self.services["extrapubliciprange"] ) self.cleanup.append(self.public_ip_range) logger.debug("Dedicating Public IP range to the account"); dedicate_public_ip_range_response = PublicIpRange.dedicate( self.apiclient, self.public_ip_range.vlan.id, account=self.account.name, domainid=self.account.domainid ) ip_address = PublicIPAddress.create( self.apiclient, self.account.name, self.zone.id, self.account.domainid, self.services["virtual_machine"] ) self.cleanup.append(ip_address) # Check if VM is in Running state before creating NAT and firewall rules vm_response = VirtualMachine.list( self.apiclient, id=self.virtual_machine.id ) self.assertEqual( isinstance(vm_response, list), True, "Check list VM returns a valid list" ) self.assertNotEqual( len(vm_response), 0, "Check Port Forwarding Rule is created" ) self.assertEqual( vm_response[0].state, 'Running', "VM state should be Running before creating a NAT rule." ) # Open up firewall port for SSH fwr = FireWallRule.create( self.apiclient, ipaddressid=ip_address.ipaddress.id, protocol=self.services["natrule"]["protocol"], cidrlist=['0.0.0.0/0'], startport=self.services["natrule"]["publicport"], endport=self.services["natrule"]["publicport"] ) self.cleanup.append(fwr) # Create Static NAT rule StaticNATRule.enable( self.apiclient, ip_address.ipaddress.id, self.virtual_machine.id, self.defaultNetworkId ) try: logger.debug("SSHing into VM with IP address %s with NAT IP %s" % ( self.virtual_machine.ipaddress, ip_address.ipaddress.ipaddress )) self.virtual_machine.get_ssh_client(ip_address.ipaddress.ipaddress) except Exception as e: self.fail( "SSH Access failed for %s: %s" % (self.virtual_machine.ipaddress, e) ) StaticNATRule.disable( self.apiclient, ip_address.ipaddress.id, self.virtual_machine.id )