fix(core): update

This commit is contained in:
Philipp Kunz 2019-08-16 12:48:40 +02:00
parent f772ca15ef
commit b2a7e67868
5 changed files with 57 additions and 3 deletions

View File

@ -52,4 +52,14 @@ tap.test('should return a change Observable', async tools => {
subscription.unsubscribe();
});
// SERVICES
tap.test('should activate swarm mode', async () => {
await testDockerHost.activateSwarm();
});
tap.test('should list all services', async tools => {
const services = await docker.DockerService.getServices(testDockerHost);
console.log(services);
});
tap.start();

View File

@ -65,10 +65,10 @@ export class DockerHost {
/**
* activates docker swarm
*/
public async activateSwarm(addvertisementIpArg: string) {
public async activateSwarm(addvertisementIpArg?: string) {
const response = await this.request('POST', '/swarm/init', {
ListenAddr: '0.0.0.0:2377',
AdvertiseAddr: `${addvertisementIpArg}:2377`,
AdvertiseAddr: addvertisementIpArg ? `${addvertisementIpArg}:2377`: undefined,
DataPathPort: 4789,
DefaultAddrPool: ['10.10.0.0/8', '20.20.0.0/8'],
SubnetSize: 24,

View File

@ -3,4 +3,39 @@ import * as interfaces from './interfaces';
import { DockerHost } from './docker.classes.host';
export class DockerService {}
export class DockerService {
// STATIC
public static async getServices(dockerHost: DockerHost) {
const services: DockerService[] = [];
const response = await dockerHost.request('GET', '/services');
for (const serviceObject of response.body) {
services.push(new DockerService(dockerHost, serviceObject));
}
return services;
}
/**
* creates a service
*/
public static async createService(dockerHost: DockerHost, serviceCreationDescriptor: interfaces.IServiceCreationDescriptor) {
dockerHost.request('POST', '/services/create', {
Name: serviceCreationDescriptor.Name,
TaskTemplate: {
ContainerSpec: {
Image: serviceCreationDescriptor.Image,
Labels: serviceCreationDescriptor.Labels
}
},
Labels: serviceCreationDescriptor.Labels
});
}
// INSTANCE
public dockerHost: DockerHost;
constructor(dockerHostArg: DockerHost, serviceObject) {
this.dockerHost = dockerHostArg;
Object.assign(this, serviceObject);
}
}

View File

@ -3,3 +3,5 @@ export * from './image';
export * from './label';
export * from './network';
export * from './port';
export * from './service';

7
ts/interfaces/service.ts Normal file
View File

@ -0,0 +1,7 @@
import * as interfaces from './'
export interface IServiceCreationDescriptor {
Name: string;
Image: string;
Labels: interfaces.TLabels;
}