40 lines
1.0 KiB
TypeScript
40 lines
1.0 KiB
TypeScript
import * as plugins from '../npmci.plugins.js';
|
|
|
|
import { Npmci } from '../npmci.classes.npmci.js';
|
|
import { logger } from '../npmci.logging.js';
|
|
|
|
/**
|
|
* connects to cloudly
|
|
*/
|
|
export class CloudlyConnector {
|
|
public npmciRef: Npmci;
|
|
|
|
constructor(npmciRefArg: Npmci) {
|
|
this.npmciRef = npmciRefArg;
|
|
}
|
|
|
|
public async announceDockerContainer(
|
|
optionsArg: plugins.tsclass.container.IContainer,
|
|
testCloudlyUrlArg?: string
|
|
) {
|
|
const cloudlyUrl = testCloudlyUrlArg || this.npmciRef.npmciConfig.getConfig().urlCloudly;
|
|
if (!cloudlyUrl) {
|
|
logger.log(
|
|
'warn',
|
|
'no cloudly url provided. Thus we cannot announce the newly built Dockerimage!'
|
|
);
|
|
return;
|
|
}
|
|
|
|
const typedrequest =
|
|
new plugins.typedrequest.TypedRequest<plugins.servezoneInterfaces.requests.IRequest_InformAboutNewContainerImage>(
|
|
`https://${cloudlyUrl}/typedrequest`,
|
|
'servezonestandard_InformAboutNewContainerVersion'
|
|
);
|
|
|
|
const response = await typedrequest.fire({
|
|
containerImageInfo: optionsArg,
|
|
});
|
|
}
|
|
}
|