UNPKG

@vmngr/libvirt

Version:

Libvirt bindings for Node.js®

61 lines (60 loc) 2.1 kB
"use strict"; /** * Copyright 2019 Leon Rinkel <leon@rinkel.me> and vmngr/libvirt contributers. * * This file is part of the vmngr/libvirt project and is subject to the MIT * license as in the LICENSE file in the project root. * * @brief Contains a builder class to construct domain descriptions. */ Object.defineProperty(exports, "__esModule", { value: true }); var DomainBuilder = /** @class */ (function () { function DomainBuilder() { var _this = this; this.domainDesc = {}; this.build = function () { return _this.domainDesc; }; } DomainBuilder.prototype.fromTemplate = function (templateDesc) { this.domainDesc = templateDesc; return this; }; DomainBuilder.prototype.setName = function (name) { this.domainDesc.name = name; return this; }; DomainBuilder.prototype.setUUID = function (uuid) { this.domainDesc.uuid = uuid; return this; }; DomainBuilder.prototype.addDisk = function (diskDesc) { if (!this.domainDesc.devices) this.domainDesc.devices = []; this.domainDesc.devices.push({ type: "disk", disk: diskDesc }); return this; }; DomainBuilder.prototype.removeDisks = function () { if (this.domainDesc.devices) { this.domainDesc.devices = this.domainDesc.devices .filter(function (device) { return device.type !== "disk"; }); } return this; }; DomainBuilder.prototype.addInterface = function (interfaceDesc) { if (!this.domainDesc.devices) this.domainDesc.devices = []; this.domainDesc.devices.push({ type: "interface", interface: interfaceDesc }); return this; }; DomainBuilder.prototype.addGraphics = function (graphicsDesc) { if (!this.domainDesc.devices) this.domainDesc.devices = []; this.domainDesc.devices.push({ type: "graphics", graphics: graphicsDesc }); return this; }; return DomainBuilder; }()); exports.DomainBuilder = DomainBuilder;