def __init__(self, volumeData, newSize, callbackFunction=None): if ('poolID' not in volumeData) or \ ('domainID' not in volumeData) or \ ('volumeID' not in volumeData): self.log.error('create extend msg failed for volume: %s, size:' ' %d', '-'.join(volumeData.values()), newSize) raise InvalidParameterException('volumeData dictionary', volumeData) if (newSize < 0) or (newSize > VOLUME_MAX_SIZE): raise InvalidParameterException('volumeSize', newSize) misc.validateUUID(volumeData['domainID'], 'domainID') misc.validateUUID(volumeData['volumeID'], 'volumeID') self.pool = volumeData['poolID'] self.volumeData = volumeData self.newSize = str(dec2hex(newSize)) self.callback = callbackFunction # Message structure is rigid (order must be kept and is relied upon): # Version (1 byte), OpCode (4 bytes), Domain UUID (16 bytes), Volume # UUID (16 bytes), Requested size (16 bytes), Padding to 64 bytes (14 # bytes) domain = misc.packUuid(volumeData['domainID']) volume = misc.packUuid(volumeData['volumeID']) # Build base payload payload = MESSAGE_VERSION + EXTEND_CODE + domain + volume + \ self.newSize.rjust(SIZE_CHARS, "0") # Pad payload with zeros self.payload = payload.ljust(MESSAGE_SIZE, "0") self.log.debug('new extend msg created: domain: %s, volume: %s', volumeData['domainID'], volumeData['volumeID'])
def test_pack_uuid_random(): # Use pseudo random numbers for repeatable tests results. r = random.Random(42) for i in range(1000): u = str(uuid.UUID(int=r.randint(0, 2**128), version=4)) packed = misc.packUuid(u) assert misc.unpackUuid(packed) == u
def test(self): """ Test that the uuid that was packed can be unpacked without being changed """ for i in range(1000): origUuid = str(uuid.uuid4()) packedUuid = misc.packUuid(origUuid) self.assertEqual(misc.unpackUuid(packedUuid), origUuid)
def test(self): """ Test that the uuid that was packed can be unpacked without being changed """ for i in range(1000): origUuid = str(uuid.uuid4()) packedUuid = misc.packUuid(origUuid) self.assertEquals(misc.unpackUuid(packedUuid), origUuid)
def test_pack_uuid(bytes, packed): # Create uuid version 4 - note that this modifies the bytes so variant and # version number set according to RFC 4122. u = str(uuid.UUID(bytes=bytes, version=4)) assert misc.packUuid(u) == packed assert misc.unpackUuid(packed) == u