console/SWSCloudCore/controllers/ips/manage.py

87 lines
2.5 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# coding: utf-8
import socket
from SWSCloudCore import models
class ControllerManageIPs:
def item_create(self, datacenter_id, server_id, ipv4, ipv4_gateway, ipv6, ipv6_gateway, status):
"""
Запись данных об IP
:param datacenter_id:
:param server_id:
:param ipv4:
:param ipv4_gateway:
:param ipv6:
:param ipv6_gateway:
:param status:
:return:
"""
models.Ips.create(
server=server_id,
datacenter=datacenter_id,
ipv4=ipv4,
ipv4_gateway=ipv4_gateway,
ipv6=ipv6,
ipv6_gateway=ipv6_gateway,
status=status
)
def item_update(self, ip_id, server_id, ipv4, ipv4_gateway, ipv6, ipv6_gateway, status):
# def update(self, user_id, **kwargs):
x = models.Ips.update(
server=server_id,
ipv4=ipv4,
ipv4_gateway=ipv4_gateway,
ipv6=ipv6,
ipv6_gateway=ipv6_gateway,
status=status
).where(
models.Ips.id == ip_id
)
x.execute()
return True
def items_get(self):
return {
'total': models.Ips.select().count(),
'items': models.Ips.select()
}
def item_get(self, ip_id):
return models.Ips.select().where(models.Ips.id == ip_id)[0]
def check_ipv4_exists(self, ipv4):
if models.Ips.select().where(models.Ips.ipv4 == ipv4).count() == 0:
return False
return True
def check_ipv6_exists(self, ipv6):
if models.Ips.select().where(models.Ips.ipv4 == ipv6).count() > 0:
return False
return True
def is_valid_ipv4_address(self, address):
# from: http://stackoverflow.com/questions/319279/how-to-validate-ip-address-in-python
try:
socket.inet_pton(socket.AF_INET, address)
except AttributeError: # no inet_pton here, sorry
try:
socket.inet_aton(address)
except socket.error:
return False
return address.count('.') == 3
except socket.error: # not a valid address
return False
return True
def is_valid_ipv6_address(self, address):
# from: http://stackoverflow.com/questions/319279/how-to-validate-ip-address-in-python
try:
socket.inet_pton(socket.AF_INET6, address)
except socket.error: # not a valid address
return False
return True