import Base from '../client/base';
import { novaBase } from '../client/constants';
export class NovaClient extends Base {
get baseUrl() {
return novaBase();
}
get resources() {
return [
{
key: 'servers',
responseKey: 'server',
subResources: [
{
name: 'interfaces',
key: 'os-interface',
},
{
name: 'volumeAttachments',
key: 'os-volume_attachments',
responseKey: 'volumeAttachment',
},
{
name: 'instanceActions',
key: 'os-instance-actions',
responseKey: 'instanceAction',
},
{
name: 'tags',
key: 'tags',
responseKey: 'tag',
},
],
extendOperations: [
{
name: 'createConsole',
key: 'remote-consoles',
method: 'post',
},
{
key: 'action',
method: 'post',
},
{
name: 'updateTags',
key: 'tags',
method: 'put',
},
],
},
{
name: 'zone',
key: 'os-availability-zone',
responseKey: 'availabilityZoneInfo',
},
{
key: 'flavors',
responseKey: 'flavor',
extendOperations: [
{
name: 'action',
key: 'action',
method: 'post',
},
],
subResources: [
{
name: 'access',
key: 'os-flavor-access',
},
{
name: 'extraSpecs',
key: 'os-extra_specs',
},
],
},
{
name: 'keypairs',
key: 'os-keypairs',
responseKey: 'keypair',
},
{
name: 'serverGroups',
key: 'os-server-groups',
responseKey: 'server_group',
},
{
name: 'aggregates',
key: 'os-aggregates',
responseKey: 'aggregate',
extendOperations: [
{
name: 'action',
key: 'action',
method: 'post',
},
],
},
{
name: 'services',
key: 'os-services',
responseKey: 'service',
},
{
name: 'quotaSets',
key: 'os-quota-sets',
responseKey: 'quota_set',
extendOperations: [
{
key: 'detail',
},
],
},
{
name: 'hypervisors',
key: 'os-hypervisors',
responseKey: 'hypervisor',
},
{
name: 'pciDevices',
key: 'os-pci-devices',
responseKey: 'pci_device',
},
];
}
}
const novaClient = new NovaClient();
export default novaClient;