mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-11-06 03:14:12 +08:00
188 lines
3.6 KiB
JavaScript
188 lines
3.6 KiB
JavaScript
'use strict';
|
|
|
|
'require baseclass';
|
|
'require podman.model.Model as Model';
|
|
'require podman.model.Container as Container';
|
|
'require podman.model.Image as Image';
|
|
'require podman.model.Network as Network';
|
|
'require podman.model.Volume as Volume';
|
|
'require podman.model.Secret as Secret';
|
|
'require podman.model.Pod as Pod';
|
|
|
|
return baseclass.extend({
|
|
/**
|
|
* Container methods.
|
|
*/
|
|
containers: {
|
|
list: Model.declareRPC({
|
|
object: 'podman',
|
|
method: 'containers_list',
|
|
params: ['query'],
|
|
expect: {
|
|
data: []
|
|
},
|
|
filter: (containers) => containers
|
|
.map((container) => Container.getSingleton(container))
|
|
.sort((containerA, containerB) => containerA
|
|
.getName()
|
|
.localeCompare(containerB.getName()))
|
|
}),
|
|
|
|
create: Model.declareRPC({
|
|
object: 'podman',
|
|
method: 'container_create',
|
|
params: ['data']
|
|
}),
|
|
},
|
|
|
|
/**
|
|
* Image methods.
|
|
*/
|
|
images: {
|
|
list: Model.declareRPC({
|
|
object: 'podman',
|
|
method: 'images_list',
|
|
params: [],
|
|
expect: {
|
|
data: []
|
|
},
|
|
filter: (images) => images
|
|
.map((image) => Image.getSingleton(image))
|
|
.sort((imageA, imageB) => imageA.getDisplayTag().localeCompare(imageB.getDisplayTag())),
|
|
}),
|
|
},
|
|
|
|
/**
|
|
* Pod methods.
|
|
*/
|
|
pods: {
|
|
list: Model.declareRPC({
|
|
object: 'podman',
|
|
method: 'pods_list',
|
|
params: [],
|
|
expect: {
|
|
data: []
|
|
},
|
|
filter: (pods) => pods
|
|
.map((pod) => Pod.getSingleton(pod))
|
|
.sort((a, b) => a.getName().localeCompare(b.getName()))
|
|
}),
|
|
|
|
create: Model.declareRPC({
|
|
object: 'podman',
|
|
method: 'pod_create',
|
|
params: ['data']
|
|
}),
|
|
},
|
|
|
|
/**
|
|
* Network management methods.
|
|
*/
|
|
networks: {
|
|
list: Model.declareRPC({
|
|
object: 'podman',
|
|
method: 'networks_list',
|
|
params: [],
|
|
expect: {
|
|
data: []
|
|
},
|
|
filter: (networks) => networks
|
|
.map((network) => Network.getSingleton(network))
|
|
.sort((networkA, networkB) => networkA.getName().localeCompare(networkB.getName())),
|
|
}),
|
|
|
|
create: Model.declareRPC({
|
|
object: 'podman',
|
|
method: 'network_create',
|
|
params: ['data']
|
|
}),
|
|
},
|
|
|
|
/**
|
|
* Volume management methods.
|
|
*/
|
|
volumes: {
|
|
list: Model.declareRPC({
|
|
object: 'podman',
|
|
method: 'volumes_list',
|
|
params: [],
|
|
expect: {
|
|
data: []
|
|
},
|
|
filter: (volumes) => volumes
|
|
.map((volume) => Volume.getSingleton(volume))
|
|
.sort((volumeA, volumeB) => volumeA.getName().localeCompare(volumeB.getName()))
|
|
}),
|
|
|
|
create: Model.declareRPC({
|
|
object: 'podman',
|
|
method: 'volume_create',
|
|
params: ['data']
|
|
}),
|
|
|
|
import: Model.declareRPC({
|
|
object: 'podman',
|
|
method: 'volume_import',
|
|
params: ['name', 'compressed']
|
|
}),
|
|
},
|
|
|
|
/**
|
|
* Secret management methods.
|
|
*/
|
|
secrets: {
|
|
list: Model.declareRPC({
|
|
object: 'podman',
|
|
method: 'secrets_list',
|
|
params: [],
|
|
expect: {
|
|
data: []
|
|
},
|
|
filter: (secrets) => secrets
|
|
.map((secret) => Secret.getSingleton(secret))
|
|
.sort((secretA, secretB) => secretA.getName().localeCompare(secretB.getName()))
|
|
}),
|
|
|
|
create: Model.declareRPC({
|
|
object: 'podman',
|
|
method: 'secret_create',
|
|
params: ['name', 'data', 'labels']
|
|
}),
|
|
},
|
|
|
|
/**
|
|
* System information methods.
|
|
*/
|
|
system: {
|
|
version: Model.declareRPC({
|
|
object: 'podman',
|
|
method: 'version',
|
|
params: []
|
|
}),
|
|
|
|
info: Model.declareRPC({
|
|
object: 'podman',
|
|
method: 'info',
|
|
params: []
|
|
}),
|
|
|
|
df: Model.declareRPC({
|
|
object: 'podman',
|
|
method: 'system_df',
|
|
params: []
|
|
}),
|
|
|
|
prune: Model.declareRPC({
|
|
object: 'podman',
|
|
method: 'system_prune',
|
|
params: ['all', 'volumes']
|
|
}),
|
|
|
|
debug: Model.declareRPC({
|
|
object: 'podman',
|
|
method: 'system_debug',
|
|
params: []
|
|
})
|
|
},
|
|
});
|