xo-vmdk-to-vhd
Version:
JS lib reading and writing .vmdk and .ova files
103 lines (102 loc) • 4.09 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "ParsableFile", {
enumerable: true,
get: function () {
return _ovaRead.ParsableFile;
}
});
exports.computeVmdkLength = computeVmdkLength;
Object.defineProperty(exports, "parseOVAFile", {
enumerable: true,
get: function () {
return _ovaRead.parseOVAFile;
}
});
Object.defineProperty(exports, "readCapacityAndGrainTable", {
enumerable: true,
get: function () {
return _vmdkReadTable.readCapacityAndGrainTable;
}
});
Object.defineProperty(exports, "readVmdkGrainTable", {
enumerable: true,
get: function () {
return _vmdkReadTable.default;
}
});
exports.vhdToVMDK = vhdToVMDK;
exports.vhdToVMDKIterator = vhdToVMDKIterator;
exports.vmdkToVhd = vmdkToVhd;
Object.defineProperty(exports, "writeOvaOn", {
enumerable: true,
get: function () {
return _ovaGenerate.writeOvaOn;
}
});
var _asyncIteratorToStream = _interopRequireDefault(require("async-iterator-to-stream"));
var _createReadableSparseStream = _interopRequireDefault(require("vhd-lib/createReadableSparseStream.js"));
var _ovaRead = require("./ova-read");
var _vmdkRead = _interopRequireDefault(require("./vmdk-read"));
var _vmdkGenerate = require("./vmdk-generate");
var _ovaGenerate = require("./ova-generate");
var _parseVhdToBlocks = require("./parseVhdToBlocks");
var _vmdkReadTable = _interopRequireWildcard(require("./vmdk-read-table"));
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
async function vmdkToVhd(vmdkReadStream, grainLogicalAddressList, grainFileOffsetList, gzipped = false, length) {
const parser = new _vmdkRead.default(vmdkReadStream, grainLogicalAddressList, grainFileOffsetList, gzipped, length);
const header = await parser.readHeader();
const vhdStream = await (0, _createReadableSparseStream.default)(header.capacitySectors * 512, header.grainSizeSectors * 512, grainLogicalAddressList, parser.blockIterator());
vhdStream._rawLength = parser.descriptor.extents[0].size;
return vhdStream;
}
async function computeVmdkLength(diskName, vhdReadStream) {
let length = 0;
const {
iterator
} = await vhdToVMDKIterator(diskName, vhdReadStream);
for await (const b of iterator) {
length += b.length;
}
return length;
}
async function vhdToVMDK(diskName, vhdReadStreamGetter, withLength = false) {
const {
iterator,
size
} = await vhdToVMDKIterator(diskName, await vhdReadStreamGetter());
let length;
const stream = await (0, _asyncIteratorToStream.default)(iterator);
if (withLength) {
if (size === undefined) {
length = await computeVmdkLength(diskName, await vhdReadStreamGetter());
} else {
length = size;
}
stream.length = length;
}
return stream;
}
async function vhdToVMDKIterator(diskName, vhdReadStream) {
const {
blockSize,
blockCount,
blocks,
diskSize,
geometry
} = await (0, _parseVhdToBlocks.parseVhdToBlocks)(vhdReadStream);
const dataSize = blockSize * blockCount;
const {
iterator,
metadataSize
} = await (0, _vmdkGenerate.generateVmdkData)(diskName, diskSize, blockSize, blocks, geometry, dataSize);
return {
iterator,
size: dataSize + metadataSize
};
}
//# sourceMappingURL=index.js.map
;