Beispiel #1
0
 def test_meta(self):
     print "test vps meta"
     logger = Log("test", config=conf)
     vpsops = VPSOps(logger)
     vps = XenVPS(0)
     vps.setup(os_id=50001,
               vcpu=1,
               mem_m=500000,
               disk_g=7,
               ip="10.10.1.2",
               netmask="255.255.255.0",
               gateway="10.10.1.1",
               root_pw="fdfdfd")
     vps.add_extra_storage(disk_id=1, size_g=1, fs_type='ext3')
     vps.add_netinf('vps0_inter', "10.10.3.2", '255.255.255.0', 'xenbr0',
                    None)
     vps.data_disks['xvdc1']._set_expire_days(1)
     print "trash_date", vps.data_disks['xvdc1'].trash_date
     print "expire_date", vps.data_disks['xvdc1'].expire_date
     vpsops.save_vps_meta(vps)
     _vps = vpsops.load_vps_meta(0)
     self.assertEqual(_vps.vps_id, vps.vps_id)
     self.assertEqual(_vps.os_id, vps.os_id)
     self.assertEqual(_vps.vcpu, vps.vcpu)
     self.assertEqual(_vps.mem_m, vps.mem_m)
     self.assertEqual(_vps.ip, vps.ip)
     self.assertEqual(_vps.netmask, vps.netmask)
     self.assertEqual(_vps.gateway, vps.gateway)
     self.assertEqual(_vps.root_store.size_g, vps.root_store.size_g)
     self.assertEqual(_vps.swap_store.size_g, vps.swap_store.size_g)
     self.assertEqual(_vps.data_disks['xvdc1'].size_g, 1)
     self.assertEqual(_vps.data_disks['xvdc1'].fs_type, 'ext3')
     self.assertEqual(_vps.data_disks['xvdc1'].mount_point, '/mnt/data1')
     self.assertEqual(_vps.data_disks['xvdc1'].xen_dev, 'xvdc1')
     self.assertEqual(_vps.data_disks['xvdc1'].trash_date,
                      vps.data_disks['xvdc1'].trash_date)
     self.assertEqual(_vps.data_disks['xvdc1'].expire_date,
                      vps.data_disks['xvdc1'].expire_date)
     print _vps.data_disks['xvdc1'].__class__.__name__
     self.assertEqual(len(_vps.vifs.values()), 2)
     self.assertEqual(_vps.vifs['vps0_inter'].ip, '10.10.3.2')
     self.assertEqual(_vps.vifs['vps0_inter'].netmask, '255.255.255.0')
     self.assertEqual(_vps.vifs['vps0_inter'].bridge, 'xenbr0')
     self.assertEqual(_vps.vifs['vps0_inter'].mac,
                      vps.vifs['vps0_inter'].mac)
     print "test trash expire date None"
     vps.data_disks['xvdc1']._set_expire_days(None)
     self.assertEqual(vps.data_disks['xvdc1'].trash_date, None)
     self.assertEqual(vps.data_disks['xvdc1'].expire_date, None)
     vpsops.save_vps_meta(vps)
     _vps = vpsops.load_vps_meta(0)
     self.assertEqual(_vps.data_disks['xvdc1'].trash_date, None)
     self.assertEqual(_vps.data_disks['xvdc1'].expire_date, None)
Beispiel #2
0
 def test_meta (self):
     print "test vps meta"
     logger = Log ("test", config=conf)
     vpsops = VPSOps (logger)
     vps = XenVPS (0)
     vps.setup (os_id=50001, vcpu=1, mem_m=500000, disk_g=7, ip="10.10.1.2", netmask="255.255.255.0", gateway="10.10.1.1", root_pw="fdfdfd")
     vps.add_extra_storage (disk_id=1, size_g=1, fs_type='ext3')
     vps.add_netinf ('vps0_inter', "10.10.3.2", '255.255.255.0', 'xenbr0', None)
     vps.data_disks['xvdc1']._set_expire_days (1)
     print "trash_date", vps.data_disks['xvdc1'].trash_date
     print "expire_date", vps.data_disks['xvdc1'].expire_date
     vpsops.save_vps_meta (vps)
     _vps = vpsops.load_vps_meta (0)
     self.assertEqual (_vps.vps_id, vps.vps_id)
     self.assertEqual (_vps.os_id, vps.os_id)
     self.assertEqual (_vps.vcpu, vps.vcpu)
     self.assertEqual (_vps.mem_m, vps.mem_m)
     self.assertEqual (_vps.ip, vps.ip)
     self.assertEqual (_vps.netmask, vps.netmask)
     self.assertEqual (_vps.gateway, vps.gateway)
     self.assertEqual (_vps.root_store.size_g, vps.root_store.size_g)
     self.assertEqual (_vps.swap_store.size_g, vps.swap_store.size_g)
     self.assertEqual (_vps.data_disks['xvdc1'].size_g, 1)
     self.assertEqual (_vps.data_disks['xvdc1'].fs_type, 'ext3')
     self.assertEqual (_vps.data_disks['xvdc1'].mount_point, '/mnt/data1')
     self.assertEqual (_vps.data_disks['xvdc1'].xen_dev, 'xvdc1')
     self.assertEqual (_vps.data_disks['xvdc1'].trash_date, vps.data_disks['xvdc1'].trash_date)
     self.assertEqual (_vps.data_disks['xvdc1'].expire_date, vps.data_disks['xvdc1'].expire_date)
     print _vps.data_disks['xvdc1'].__class__.__name__
     self.assertEqual (len (_vps.vifs.values ()), 2)
     self.assertEqual (_vps.vifs['vps0_inter'].ip, '10.10.3.2')
     self.assertEqual (_vps.vifs['vps0_inter'].netmask, '255.255.255.0')
     self.assertEqual (_vps.vifs['vps0_inter'].bridge, 'xenbr0')
     self.assertEqual (_vps.vifs['vps0_inter'].mac, vps.vifs['vps0_inter'].mac)
     print "test trash expire date None"
     vps.data_disks['xvdc1']._set_expire_days (None)
     self.assertEqual (vps.data_disks['xvdc1'].trash_date, None)
     self.assertEqual (vps.data_disks['xvdc1'].expire_date, None)
     vpsops.save_vps_meta (vps)
     _vps = vpsops.load_vps_meta (0)
     self.assertEqual (_vps.data_disks['xvdc1'].trash_date, None)
     self.assertEqual (_vps.data_disks['xvdc1'].expire_date, None)
Beispiel #3
0
def main():
    bridge = args[0]
    vif_name = args[1]

    logger = Log("vps_mgr", config=conf)
    vpsops = VPSOps(logger)
    logger.debug("set %s" % vif_name)
    try:
        ovsops = OVSOps()
        om = re.match(r'^\w+?(\d+)\w*?$', vif_name)
        if not om:
            print >> sys.stderr, "wrong vif format %s" % (vif_name)
            return 1
        vps_id = int(om.group(1))
        xv = vpsops.load_vps_meta(vps_id)
        vif = xv.vifs.get(vif_name)
        if not vif:
            logger.error("no vif %s in metadata of %s" % (vif_name, vps_id))
            return 1
        ofport = ovsops.find_ofport_by_name(vif_name)
        if ofport < 0:
            logger.error(
                "vif %s ofport=%s, fix it by delete the port from bridge " %
                (vif_name, ofport))
            ovsops.del_port_from_bridge(bridge, vif_name)
            ovsops.add_port_to_bridge(bridge, vif_name)
            ofport = ovsops.find_ofport_by_name(vif_name)
            if ofport < 0:
                logger.error("vif %s ofport=%s, impossible " %
                             (vif_name, ofport))
        if ofport >= 0:
            ovsops.set_mac_filter(bridge, ofport, vif.ip_dict.keys())
        ovsops.unset_traffic_limit(vif_name)
        bandwidth = float(vif.bandwidth or 0)
        ovsops.set_traffic_limit(vif_name, int(bandwidth * 1000))
        print "set vif %s bandwidth %sm/s" % (vif_name, vif.bandwidth)
        return 0
    except Exception, e:
        logger.exception(e)
        print >> sys.stderr, str(e)
        return 1
Beispiel #4
0
def main():
    bridge = args[0]
    vif_name = args[1]

    logger = Log("vps_mgr", config=conf)
    vpsops = VPSOps(logger)
    logger.debug("set %s" % vif_name)
    try:
        ovsops = OVSOps()
        om = re.match(r"^\w+?(\d+)\w*?$", vif_name)
        if not om:
            print >> sys.stderr, "wrong vif format %s" % (vif_name)
            return 1
        vps_id = int(om.group(1))
        xv = vpsops.load_vps_meta(vps_id)
        vif = xv.vifs.get(vif_name)
        if not vif:
            logger.error("no vif %s in metadata of %s" % (vif_name, vps_id))
            return 1
        ofport = ovsops.find_ofport_by_name(vif_name)
        if ofport < 0:
            logger.error("vif %s ofport=%s, fix it by delete the port from bridge " % (vif_name, ofport))
            ovsops.del_port_from_bridge(bridge, vif_name)
            ovsops.add_port_to_bridge(bridge, vif_name)
            ofport = ovsops.find_ofport_by_name(vif_name)
            if ofport < 0:
                logger.error("vif %s ofport=%s, impossible " % (vif_name, ofport))
        if ofport >= 0:
            ovsops.set_mac_filter(bridge, ofport, vif.ip_dict.keys())
        ovsops.unset_traffic_limit(vif_name)
        bandwidth = float(vif.bandwidth or 0)
        ovsops.set_traffic_limit(vif_name, int(bandwidth * 1000))
        print "set vif %s bandwidth %sm/s" % (vif_name, vif.bandwidth)
        return 0
    except Exception, e:
        logger.exception(e)
        print >> sys.stderr, str(e)
        return 1