1
0
Fork 0
mirror of https://github.com/portainer/portainer.git synced 2025-07-22 23:09:41 +02:00

Cleaned up controller methods, Added placeholders, fixed PortBindings and error messages.

This commit is contained in:
Kevan Ahlquist 2015-01-25 17:59:08 -06:00
parent 4682ae4ca7
commit f75d298fe1
6 changed files with 135 additions and 88 deletions

View file

@ -20,18 +20,18 @@ describe('startContainerController', function() {
}));
function expectGetContainers() {
$httpBackend.expectGET('dockerapi/containers/json?all=1').respond([{
"Command": "./dockerui -e /docker.sock",
"Created": 1421817232,
"Id": "b17882378cee8ec0136f482681b764cca430befd52a9bfd1bde031f49b8bba9f",
"Image": "dockerui:latest",
"Names": ["/dockerui"],
"Ports": [{
"IP": "0.0.0.0",
"PrivatePort": 9000,
"PublicPort": 9000,
"Type": "tcp"
'Command': './dockerui -e /docker.sock',
'Created': 1421817232,
'Id': 'b17882378cee8ec0136f482681b764cca430befd52a9bfd1bde031f49b8bba9f',
'Image': 'dockerui:latest',
'Names': ['/dockerui'],
'Ports': [{
'IP': '0.0.0.0',
'PrivatePort': 9000,
'PublicPort': 9000,
'Type': 'tcp'
}],
"Status": "Up 2 minutes"
'Status': 'Up 2 minutes'
}]);
}
describe('Create and start a container with port bindings', function() {
@ -39,15 +39,15 @@ describe('startContainerController', function() {
var controller = createController();
var id = '6abd8bfba81cf8a05a76a4bdefcb36c4b66cd02265f4bfcd0e236468696ebc6c';
var expectedBody = {
"name": "container-name",
"ExposedPorts": {
"9000/tcp": {},
'name': 'container-name',
'ExposedPorts': {
'9000/tcp': {},
},
"HostConfig": {
"PortBindings": {
"9000/tcp": [{
"HostPort": "9999",
"HostIp": "10.20.10.15",
'HostConfig': {
'PortBindings': {
'9000/tcp': [{
'HostPort': '9999',
'HostIp': '10.20.10.15',
}]
},
}
@ -56,16 +56,16 @@ describe('startContainerController', function() {
expectGetContainers();
$httpBackend.expectPOST('dockerapi/containers/create?name=container-name', expectedBody).respond({
"Id": id,
"Warnings": null
'Id': id,
'Warnings': null
});
$httpBackend.expectPOST('dockerapi/containers/' + id + '/start?').respond({
"Id": id,
"Warnings": null
'Id': id,
'Warnings': null
});
scope.config.name = 'container-name';
scope.config.PortBindings = [{
scope.config.HostConfig.PortBindings = [{
ip: '10.20.10.15',
extPort: '9999',
intPort: '9000'
@ -81,19 +81,19 @@ describe('startContainerController', function() {
var controller = createController();
var id = '6abd8bfba81cf8a05a76a4bdefcb36c4b66cd02265f4bfcd0e236468696ebc6c';
var expectedBody = {
"name": "container-name",
"Env": ["SHELL=/bin/bash", "TERM=xterm-256color"]
'name': 'container-name',
'Env': ['SHELL=/bin/bash', 'TERM=xterm-256color']
};
expectGetContainers();
$httpBackend.expectPOST('dockerapi/containers/create?name=container-name', expectedBody).respond({
"Id": id,
"Warnings": null
'Id': id,
'Warnings': null
});
$httpBackend.expectPOST('dockerapi/containers/' + id + '/start?').respond({
"Id": id,
"Warnings": null
'Id': id,
'Warnings': null
});
scope.config.name = 'container-name';
@ -116,25 +116,75 @@ describe('startContainerController', function() {
var id = '6abd8bfba81cf8a05a76a4bdefcb36c4b66cd02265f4bfcd0e236468696ebc6c';
var expectedBody = {
HostConfig: {
"VolumesFrom": ["parent", "other:ro"]
'VolumesFrom': ['parent', 'other:ro']
},
"name": "container-name"
'name': 'container-name'
};
expectGetContainers();
$httpBackend.expectPOST('dockerapi/containers/create?name=container-name', expectedBody).respond({
"Id": id,
"Warnings": null
'Id': id,
'Warnings': null
});
$httpBackend.expectPOST('dockerapi/containers/' + id + '/start?').respond({
"Id": id,
"Warnings": null
'Id': id,
'Warnings': null
});
scope.config.name = 'container-name';
scope.config.HostConfig.VolumesFrom = [{name: "parent"}, {name:"other:ro"}];
scope.config.HostConfig.VolumesFrom = [{name: 'parent'}, {name:'other:ro'}];
scope.create();
$httpBackend.flush();
});
});
describe('Create and start a container with multiple options', function() {
it('should issue a correct create request to the Docker remote API', function() {
var controller = createController();
var id = '6abd8bfba81cf8a05a76a4bdefcb36c4b66cd02265f4bfcd0e236468696ebc6c';
var expectedBody = {
Volumes: ['/var/www'],
SecurityOpts: ['label:type:svirt_apache'],
HostConfig: {
Binds: ['/app:/app'],
Links: ['web:db'],
Dns: ['8.8.8.8'],
DnsSearch: ['example.com'],
CapAdd: ['cap_sys_admin'],
CapDrop: ['cap_foo_bar']
},
name: 'container-name'
};
expectGetContainers();
$httpBackend.expectPOST('dockerapi/containers/create?name=container-name', expectedBody).respond({
'Id': id,
'Warnings': null
});
$httpBackend.expectPOST('dockerapi/containers/' + id + '/start?').respond({
'Id': id,
'Warnings': null
});
scope.config.name = 'container-name';
scope.config.Volumes = [{name: '/var/www'}];
scope.config.SecurityOpts = [{name: 'label:type:svirt_apache'}];
scope.config.NetworkDisabled = true;
scope.config.Tty = true;
scope.config.OpenStdin = true;
scope.config.StdinOnce = true;
scope.config.HostConfig.Binds = [{name: '/app:/app'}];
scope.config.HostConfig.Links = [{name: 'web:db'}];
scope.config.HostConfig.Dns = [{name: '8.8.8.8'}];
scope.config.HostConfig.DnsSearch = [{name: 'example.com'}];
scope.config.HostConfig.CapAdd = [{name: 'cap_sys_admin'}];
scope.config.HostConfig.CapDrop = [{name: 'cap_foo_bar'}];
scope.config.HostConfig.PublishAllPorts = true;
scope.config.HostConfig.Privileged = true;
scope.create();
$httpBackend.flush();