|
@@ -492,6 +492,8 @@ class Release extends Command
|
|
|
->setIp($ip)
|
|
|
->add();
|
|
|
}
|
|
|
+
|
|
|
+ $this->checkLinkDependencyDockerCompose($composer);
|
|
|
$this->_dObj->file("docker-compose.yml")->content($composer->render());
|
|
|
|
|
|
// escribo un archivo inventory.ini por defecto para no tener que lanzar los docker
|
|
@@ -740,27 +742,94 @@ class Release extends Command
|
|
|
public function addNginxLinks($module, FileFormat $composer)
|
|
|
{
|
|
|
if ($this->_add_nginx_links) {
|
|
|
- $composer->service($module)
|
|
|
- ->addLinks((new Nginx())->getModuleName(), $this->getDomain((new Base())->getModuleName()))
|
|
|
- ->addLinks((new Nginx())->getModuleName(), $this->getDomain((new Ftth())->getModuleName()))
|
|
|
- ->addLinks((new Nginx())->getModuleName(), $this->getDomain((new Cablemodem())->getModuleName()))
|
|
|
- ->addLinks((new Nginx())->getModuleName(), $this->getDomain((new Stats())->getModuleName()))
|
|
|
- ->addLinks((new Nginx())->getModuleName(), $this->getDomain((new Dhcp())->getModuleName()))
|
|
|
- ->addLinks((new Nginx())->getModuleName(), $this->getDomain((new Radius())->getModuleName()));
|
|
|
+ if (in_array((new Base())->getModuleName(), $this->_modules_all)) {
|
|
|
+ $composer->service($module)->addLinks((new Nginx())->getModuleName(), $this->getDomain((new Base())->getModuleName()));
|
|
|
+ }
|
|
|
+ if (in_array((new Ftth())->getModuleName(), $this->_modules_all)) {
|
|
|
+ $composer->service($module)->addLinks((new Nginx())->getModuleName(), $this->getDomain((new Ftth())->getModuleName()));
|
|
|
+ }
|
|
|
+ if (in_array((new Cablemodem())->getModuleName(), $this->_modules_all)) {
|
|
|
+ $composer->service($module)->addLinks((new Nginx())->getModuleName(), $this->getDomain((new Cablemodem())->getModuleName()));
|
|
|
+ }
|
|
|
+ if (in_array((new Stats())->getModuleName(), $this->_modules_all)) {
|
|
|
+ $composer->service($module)->addLinks((new Nginx())->getModuleName(), $this->getDomain((new Stats())->getModuleName()));
|
|
|
+ }
|
|
|
+ if (in_array((new Dhcp())->getModuleName(), $this->_modules_all)) {
|
|
|
+ $composer->service($module)->addLinks((new Nginx())->getModuleName(), $this->getDomain((new Dhcp())->getModuleName()));
|
|
|
+ }
|
|
|
+ if (in_array((new Radius())->getModuleName(), $this->_modules_all)) {
|
|
|
+ $composer->service($module)->addLinks((new Nginx())->getModuleName(), $this->getDomain((new Radius())->getModuleName()));
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
private function registerVolumes(FileFormat $composer)
|
|
|
{
|
|
|
- $composer->getVolumes()->addVolumen(Pma::PMA_VOLUMEN, 'local');
|
|
|
- $composer->getVolumes()->addVolumen(Swagger::SWAGGER_VOLUMEN, 'local');
|
|
|
- $composer->getVolumes()->addVolumen(Base::BASE_SOCKET_VOLUMEN, 'local');
|
|
|
- $composer->getVolumes()->addVolumen(Cablemodem::CABLEMODEM_SOCKET_VOLUMEN, 'local');
|
|
|
- $composer->getVolumes()->addVolumen(Dhcp::DHCP_SOCKET_VOLUMEN, 'local');
|
|
|
- $composer->getVolumes()->addVolumen(Ftth::FTTH_SOCKET_VOLUMEN, 'local');
|
|
|
- $composer->getVolumes()->addVolumen(Radius::RADIUS_SOCKET_VOLUMEN, 'local');
|
|
|
- $composer->getVolumes()->addVolumen(Stats::STATS_SOCKET_VOLUMEN, 'local');
|
|
|
- $composer->getVolumes()->addVolumen(Api::API_SOCKET_VOLUMEN, 'local');
|
|
|
+ if (in_array((new Pma())->getModuleName(), $this->_modules_all)) {
|
|
|
+ $composer->getVolumes()->addVolumen(Pma::PMA_VOLUMEN, 'local');
|
|
|
+ }
|
|
|
+ if (in_array((new Swagger())->getModuleName(), $this->_modules_all)) {
|
|
|
+ $composer->getVolumes()->addVolumen(Swagger::SWAGGER_VOLUMEN, 'local');
|
|
|
+ }
|
|
|
+ if (in_array((new Base())->getModuleName(), $this->_modules_all)) {
|
|
|
+ $composer->getVolumes()->addVolumen(Base::BASE_SOCKET_VOLUMEN, 'local');
|
|
|
+ }
|
|
|
+ if (in_array((new Cablemodem())->getModuleName(), $this->_modules_all)) {
|
|
|
+ $composer->getVolumes()->addVolumen(Cablemodem::CABLEMODEM_SOCKET_VOLUMEN, 'local');
|
|
|
+ }
|
|
|
+ if (in_array((new Dhcp())->getModuleName(), $this->_modules_all)) {
|
|
|
+ $composer->getVolumes()->addVolumen(Dhcp::DHCP_SOCKET_VOLUMEN, 'local');
|
|
|
+ }
|
|
|
+ if (in_array((new Ftth())->getModuleName(), $this->_modules_all)) {
|
|
|
+ $composer->getVolumes()->addVolumen(Ftth::FTTH_SOCKET_VOLUMEN, 'local');
|
|
|
+ }
|
|
|
+ if (in_array((new Radius())->getModuleName(), $this->_modules_all)) {
|
|
|
+ $composer->getVolumes()->addVolumen(Radius::RADIUS_SOCKET_VOLUMEN, 'local');
|
|
|
+ }
|
|
|
+ if (in_array((new Stats())->getModuleName(), $this->_modules_all)) {
|
|
|
+ $composer->getVolumes()->addVolumen(Stats::STATS_SOCKET_VOLUMEN, 'local');
|
|
|
+ }
|
|
|
+ if (in_array((new Api())->getModuleName(), $this->_modules_all)) {
|
|
|
+ $composer->getVolumes()->addVolumen(Api::API_SOCKET_VOLUMEN, 'local');
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
+ /**
|
|
|
+ * @param FileFormat $composer Contains composer.
|
|
|
+ * @return FileFormat Return composer with corrected link.
|
|
|
+ */
|
|
|
+ private function checkLinkDependencyDockerCompose(FileFormat $composer)
|
|
|
+ {
|
|
|
+ foreach ($composer->getServices() as $key => $value) {
|
|
|
+ // every service in docker compose
|
|
|
+ if ($value->getLinks()) {
|
|
|
+ $arrtmp = [];
|
|
|
+ foreach ($value->getLinks() as $link) {
|
|
|
+ // every link in service in docker compose
|
|
|
+ $found = false;
|
|
|
+ foreach ($this->_modules as $module => $env) {
|
|
|
+ // every module selected for install
|
|
|
+ if (strpos($module, "genieacs") !== false) {
|
|
|
+ $moduleg = str_replace("-", "_", $module);
|
|
|
+ } else {
|
|
|
+ $moduleg = "";
|
|
|
+ }
|
|
|
+ //remove nginx: to compare because nginx is always TRUE
|
|
|
+ $linkTmp = str_replace("nginx:", "", $link);
|
|
|
+ if (strpos($linkTmp, $module) === false) {
|
|
|
+ } else if ($moduleg != "" && strpos($linkTmp, $moduleg) === false) {
|
|
|
+ } else {
|
|
|
+ $found = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if ($found) {
|
|
|
+ // add link only if is in list of modules install
|
|
|
+ $arrtmp[] = $link;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $value->setLinks($arrtmp);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return $composer;
|
|
|
}
|
|
|
}
|