Przeglądaj źródła

Composer update

Remove link
root 6 lat temu
rodzic
commit
5a5ae02b82
3 zmienionych plików z 88 dodań i 19 usunięć
  1. 2 2
      tools/composer.lock
  2. 85 16
      tools/src/Release.php
  3. 1 1
      tools/src/Services/Dhcp.php

+ 2 - 2
tools/composer.lock

@@ -674,7 +674,7 @@
             "source": {
                 "type": "git",
                 "url": "ssh://git@infra.flowdat.com:222/VendorSoftwareFlowdat3/php-docker-lib.git",
-                "reference": "c6903dda95343948edacde7dd52fb2b11142109b"
+                "reference": "dec0418094fbf0c2a37766542b291cf5b4a54c3c"
             },
             "require": {
                 "symfony/yaml": "^3.3"
@@ -694,7 +694,7 @@
                     "email": "info@interlink.com.ar"
                 }
             ],
-            "time": "2019-02-21T13:38:19+00:00"
+            "time": "2019-02-26T15:47:41+00:00"
         },
         {
             "name": "jane/jane",

+ 85 - 16
tools/src/Release.php

@@ -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;
     }
 }

+ 1 - 1
tools/src/Services/Dhcp.php

@@ -29,7 +29,7 @@ class Dhcp extends InitialService
             ])
             ->setOauth(true)
             ->setRequired(false)
-            ->setDepends([]);
+            ->setDepends(['cablemodem']);
     }
 
     /**