@spotinst/spinnaker-deck
Version:
Spinnaker-Deck service, forked with support to Spotinst
44 lines (38 loc) • 1.12 kB
text/typescript
import { $q } from 'ngimport';
import { REST } from '@spinnaker/core';
export interface IAmazonImage {
accounts: string[];
amis: {
[]: string[];
};
attributes: {
creationDate: string;
virtualizationType: string;
};
imageName: string;
tags: {
[]: string;
};
tagsByImageId: {
[]: IAmazonImage['tags'];
};
}
export class AwsImageReader {
public findImages(params: { q: string; region?: string }): PromiseLike<IAmazonImage[]> {
if (!params.q || params.q.length < 3) {
return $q.when([{ message: 'Please enter at least 3 characters...', disabled: true }]) as any;
}
return REST('/images/find')
.query(params)
.get()
.catch(() => [] as IAmazonImage[]);
}
public getImage(amiName: string, region: string, credentials: string): PromiseLike<IAmazonImage> {
return REST('/images')
.path(credentials, region, amiName)
.query({ provider: 'aws' })
.get()
.then((results: any[]) => (results && results.length ? results[0] : null))
.catch(() => null as IAmazonImage);
}
}