@vmngr/libvirt
Version:
Libvirt bindings for Node.js®
61 lines (60 loc) • 2.1 kB
JavaScript
"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;