/** * Copyright (c) 2015 INRIA. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * - Fawaz PARAISO * - Philippe MERLE */ package org.occiware.clouddesigner.occi.docker.connector; import org.apache.commons.lang.StringUtils; import org.occiware.clouddesigner.occi.docker.connector.MachineManager; import org.occiware.clouddesigner.occi.docker.connector.dockermachine.manager.DockerObserver; import org.occiware.clouddesigner.occi.docker.impl.Machine_VirtualBoxImpl; import org.occiware.clouddesigner.occi.infrastructure.RestartMethod; import org.occiware.clouddesigner.occi.infrastructure.StopMethod; import org.occiware.clouddesigner.occi.infrastructure.SuspendMethod; /** * This class implements executable Docker Machine on Virtualbox. */ @SuppressWarnings("all") public class ExecutableMachine_VirtualBox extends Machine_VirtualBoxImpl { /** * The machine manager. */ private final MachineManager manager = new MachineManager(this) { @Override public String getDriverName() { return "virtualbox"; } @Override public void appendDriverParameters(final StringBuilder sb) { if ((ExecutableMachine_VirtualBox.this.disk_size > 0)) { StringBuilder _append = sb.append(" --virtualbox-disk-size "); _append.append(ExecutableMachine_VirtualBox.this.disk_size); } if ((ExecutableMachine_VirtualBox.this.memory > 0.0F)) { StringBuilder _append_1 = sb.append(" --virtualbox-memory "); int _intValue = Float.valueOf(ExecutableMachine_VirtualBox.this.memory).intValue(); _append_1.append(_intValue); } else { if ((ExecutableMachine_VirtualBox.this.memory == 0.0F)) { StringBuilder _append_2 = sb.append(" --virtualbox-memory "); _append_2.append(1024); } } if ((ExecutableMachine_VirtualBox.this.cores > 0)) { StringBuilder _append_3 = sb.append(" --virtualbox-cpu-count "); _append_3.append(ExecutableMachine_VirtualBox.this.cores); } else { if ((ExecutableMachine_VirtualBox.this.cores == 0)) { StringBuilder _append_4 = sb.append(" --virtualbox-cpu-count "); _append_4.append((-1)); } } boolean _isEmpty = StringUtils.isEmpty(ExecutableMachine_VirtualBox.this.boot2docker_url); boolean _not = (!_isEmpty); if (_not) { StringBuilder _append_5 = sb.append(" --virtualbox-boot2docker-url "); _append_5.append(ExecutableMachine_VirtualBox.this.boot2docker_url); } else { StringBuilder _append_6 = sb.append(" --virtualbox-boot2docker-url "); _append_6.append("https://github.com/boot2docker/boot2docker/releases/download/v1.11.2/boot2docker.iso"); } if (ExecutableMachine_VirtualBox.this.host_dns_resolver) { StringBuilder _append_7 = sb.append(" --virtualbox-host-dns-resolver "); _append_7.append(ExecutableMachine_VirtualBox.this.host_dns_resolver); } boolean _isEmpty_1 = StringUtils.isEmpty(ExecutableMachine_VirtualBox.this.import_boot2docker_vm); boolean _not_1 = (!_isEmpty_1); if (_not_1) { StringBuilder _append_8 = sb.append(" --virtualbox-import-boot2docker-vm "); _append_8.append(ExecutableMachine_VirtualBox.this.import_boot2docker_vm); } if (ExecutableMachine_VirtualBox.this.host_dns_resolver) { StringBuilder _append_9 = sb.append(" --virtualbox-host-dns-resolver "); _append_9.append(ExecutableMachine_VirtualBox.this.host_dns_resolver); } boolean _isEmpty_2 = StringUtils.isEmpty(ExecutableMachine_VirtualBox.this.hostonly_nictype); boolean _not_2 = (!_isEmpty_2); if (_not_2) { StringBuilder _append_10 = sb.append(" --virtualbox-hostonly-nictype "); _append_10.append(ExecutableMachine_VirtualBox.this.hostonly_nictype); } if (ExecutableMachine_VirtualBox.this.no_share) { StringBuilder _append_11 = sb.append(" --virtualbox-no-share "); _append_11.append(ExecutableMachine_VirtualBox.this.no_share); } if (ExecutableMachine_VirtualBox.this.no_dns_proxy) { StringBuilder _append_12 = sb.append(" --virtualbox-no-dns-proxy "); _append_12.append(ExecutableMachine_VirtualBox.this.no_dns_proxy); } if (ExecutableMachine_VirtualBox.this.no_vtx_check) { StringBuilder _append_13 = sb.append(" --virtualbox-no-vtx-check "); _append_13.append(ExecutableMachine_VirtualBox.this.no_vtx_check); } boolean _isEmpty_3 = StringUtils.isEmpty(ExecutableMachine_VirtualBox.this.share_folder); boolean _not_3 = (!_isEmpty_3); if (_not_3) { StringBuilder _append_14 = sb.append(" --virtualbox-share-folder "); _append_14.append(ExecutableMachine_VirtualBox.this.share_folder); } } }; @Override public void start() { this.manager.start(); final DockerObserver observer = new DockerObserver(); observer.listener(this); } public void startAll() { this.manager.startAll(); } @Override public void stop(final StopMethod method) { this.manager.stop(method); } @Override public void restart(final RestartMethod method) { this.manager.restart(method); } @Override public void suspend(final SuspendMethod method) { this.manager.suspend(method); } public void synchronize() { this.manager.synchronize(); } }