Example #1
0
def take_gateway(netspace, ip, host):
    net = Network.get_by_netspace(netspace)
    if not net:
        print 'net %s not found' % netspace
        return
    ipnum = IPAddress(ip).value
    rds.srem(net.gatekey, ipnum)
    VLanGateway.create(ipnum, net.id, host.id)
    print '%s on %s --> %s done' % (ip, host.ip, netspace)
Example #2
0
def take_gateway(netspace, ip, host):
    net = Network.get_by_netspace(netspace)
    if not net:
        print 'net %s not found' % netspace
        return
    ipnum = IPAddress(ip).value
    rds.srem(net.gatekey, ipnum)
    VLanGateway.create(ipnum, net.id, host.id)
    print '%s on %s --> %s done' % (ip, host.ip, netspace)
Example #3
0
    def acquire_specific_ip(self, ip_str):
        """take a specific IP from network"""
        try:
            ip = IPAddress(ip_str)
        except ValueError:
            return None

        if rds.sismember(self.storekey, ip.value):
            rds.srem(self.storekey, ip.value)
            return IP.create(ip.value, self)
Example #4
0
    def acquire_specific_ip(self, ip_str):
        """take a specific IP from network"""
        try:
            ip = IPAddress(ip_str)
        except ValueError:
            return None

        if rds.sismember(self.storekey, ip.value):
            rds.srem(self.storekey, ip.value)
            return IP.create(ip.value, self)
Example #5
0
 def add_ip(self, ip):
     if isinstance(ip, basestring):
         try:
             ip = IPAddress(ip)
         except AddrFormatError:
             return False
     ipnum = ip.value
     if rds.sismember(self.gatekey, ipnum):
         rds.srem(self.gatekey, ipnum)
     rds.sadd(self.storekey, ipnum)
     return True
Example #6
0
 def add_ip(self, ip):
     if isinstance(ip, basestring):
         try:
             ip = IPAddress(ip)
         except AddrFormatError:
             return False
     ipnum = ip.value
     if rds.sismember(self.gatekey, ipnum):
         rds.srem(self.gatekey, ipnum)
     rds.sadd(self.storekey, ipnum)
     return True
Example #7
0
def fix_ip(n):
    network = n.network
    base = int(network.network_address)
    for ipnums in more_itertools.chunked(xrange(base+n.gateway_count, base+network.num_addresses), 500):
        rds.sadd(n.storekey, *ipnums)

    rds.sadd(n.gatekey, *range(base, base+n.gateway_count))

    for ip in n.ips.all():
        rds.srem(n.storekey, ip.ipnum)

    for gateway in n.gates.all():
        rds.srem(n.gatekey, gateway.ipnum)
Example #8
0
def fix_ip(n):
    network = n.network
    base = int(network.network_address)
    for ipnums in more_itertools.chunked(
            xrange(base + n.gateway_count, base + network.num_addresses), 500):
        rds.sadd(n.storekey, *ipnums)

    rds.sadd(n.gatekey, *range(base, base + n.gateway_count))

    for ip in n.ips.all():
        rds.srem(n.storekey, ip.ipnum)

    for gateway in n.gates.all():
        rds.srem(n.gatekey, gateway.ipnum)
Example #9
0
    def get_eip(self, eip=None):
        if eip is None:
            value = rds.spop(self.EIP_POOL_KEY)
            return value and IPAddress(value) or None

        value = rds.srem(self.EIP_POOL_KEY, eip.value)
        return value and eip or None
Example #10
0
def remove_container_backends(container):
    backends = container.get_backends()
    if backends:
        rds.srem(_entrypoint_key(container), *backends)
Example #11
0
def remove_container_backends(container):
    backends = container.get_backends()
    if backends:
        rds.srem(_entrypoint_key(container), *backends)