@canonical/jujulib
Version:
Juju API client
231 lines (230 loc) • 7.42 kB
JavaScript
/**
Juju ModelManager version 2.
This facade is available on:
Controller-machine-agent
Machine-agent
Unit-agent
Controllers
NOTE: This file was generated using the Juju schema
from Juju 2.9-rc3 at the git SHA cb361902f8.
Do not manually edit this file.
*/
import { autoBind } from "../../utils.js";
/**
ModelManagerAPIV2 provides a way to wrap the different calls between
version 2 and version 3 of the model manager API
*/
class ModelManagerV2 {
constructor(transport, info) {
this.NAME = "ModelManager";
this.VERSION = 2;
this._transport = transport;
this._info = info;
// Automatically bind all methods to instances.
autoBind(this);
}
/**
CreateModel creates a new model using the account and
model config specified in the args.
*/
createModel(params) {
return new Promise((resolve, reject) => {
const req = {
type: "ModelManager",
request: "CreateModel",
version: 2,
params: params,
};
this._transport.write(req, resolve, reject);
});
}
/**
DestroyModels will try to destroy the specified models.
If there is a block on destruction, this method will return an error.
*/
destroyModels(params) {
return new Promise((resolve, reject) => {
const req = {
type: "ModelManager",
request: "DestroyModels",
version: 2,
params: params,
};
this._transport.write(req, resolve, reject);
});
}
/**
DumpModels will export the models into the database agnostic
representation. The user needs to either be a controller admin, or have
admin privileges on the model itself.
*/
dumpModels(params) {
return new Promise((resolve, reject) => {
const req = {
type: "ModelManager",
request: "DumpModels",
version: 2,
params: params,
};
this._transport.write(req, resolve, reject);
});
}
/**
DumpModelsDB will gather all documents from all model collections
for the specified model. The map result contains a map of collection
names to lists of documents represented as maps.
*/
dumpModelsDB(params) {
return new Promise((resolve, reject) => {
const req = {
type: "ModelManager",
request: "DumpModelsDB",
version: 2,
params: params,
};
this._transport.write(req, resolve, reject);
});
}
/**
ListModelSummaries returns models that the specified user
has access to in the current server. Controller admins (superuser)
can list models for any user. Other users
can only ask about their own models.
*/
listModelSummaries(params) {
return new Promise((resolve, reject) => {
const req = {
type: "ModelManager",
request: "ListModelSummaries",
version: 2,
params: params,
};
this._transport.write(req, resolve, reject);
});
}
/**
ListModels returns the models that the specified user
has access to in the current server. Controller admins (superuser)
can list models for any user. Other users
can only ask about their own models.
*/
listModels(params) {
return new Promise((resolve, reject) => {
const req = {
type: "ModelManager",
request: "ListModels",
version: 2,
params: params,
};
this._transport.write(req, resolve, reject);
});
}
/**
ModelDefaults returns the default config values used when creating a new model.
*/
modelDefaults(params) {
return new Promise((resolve, reject) => {
const req = {
type: "ModelManager",
request: "ModelDefaults",
version: 2,
params: params,
};
this._transport.write(req, resolve, reject);
});
}
/**
ModelInfo returns information about the specified models.
*/
modelInfo(params) {
return new Promise((resolve, reject) => {
const req = {
type: "ModelManager",
request: "ModelInfo",
version: 2,
params: params,
};
this._transport.write(req, resolve, reject);
});
}
/**
ModelStatus is a legacy method call to ensure that we preserve
backward compatibility.
TODO (anastasiamac 2017-10-26) This should be made obsolete/removed.
*/
modelStatus(params) {
return new Promise((resolve, reject) => {
const req = {
type: "ModelManager",
request: "ModelStatus",
version: 2,
params: params,
};
this._transport.write(req, resolve, reject);
});
}
/**
ModifyModelAccess changes the model access granted to users.
*/
modifyModelAccess(params) {
return new Promise((resolve, reject) => {
const req = {
type: "ModelManager",
request: "ModifyModelAccess",
version: 2,
params: params,
};
this._transport.write(req, resolve, reject);
});
}
/**
SetModelDefaults writes new values for the specified default model settings.
*/
setModelDefaults(params) {
return new Promise((resolve, reject) => {
const req = {
type: "ModelManager",
request: "SetModelDefaults",
version: 2,
params: params,
};
this._transport.write(req, resolve, reject);
});
}
/**
UnsetModelDefaults removes the specified default model settings.
*/
unsetModelDefaults(params) {
return new Promise((resolve, reject) => {
const req = {
type: "ModelManager",
request: "UnsetModelDefaults",
version: 2,
params: params,
};
this._transport.write(req, resolve, reject);
});
}
/**
ValidateModelUpgrades validates if a model is allowed to perform an upgrade.
Examples of why you would want to block a model upgrade, would be situations
like upgrade-series. If performing an upgrade-series we don't know the
current status of the machine, so performing an upgrade-model can lead to
bad unintended errors down the line.
*/
validateModelUpgrades(params) {
return new Promise((resolve, reject) => {
const req = {
type: "ModelManager",
request: "ValidateModelUpgrades",
version: 2,
params: params,
};
this._transport.write(req, resolve, reject);
});
}
}
ModelManagerV2.NAME = "ModelManager";
ModelManagerV2.VERSION = 2;
export default ModelManagerV2;
//# sourceMappingURL=ModelManagerV2.js.map