Revision bbc826ca ci/utils.py

b/ci/utils.py
306 306
            networks.append({'port': port['id']})
307 307
        private_networks = self.config.get('Deployment', 'private_networks')
308 308
        if private_networks:
309
            private_networks = private_networks.split(",")
310
            networks.extend([{"uuid": uuid.strip()}
311
                             for uuid in private_networks])
309
            private_networks = [p.strip() for p in private_networks.split(",")]
310
            networks.extend([{"uuid": uuid} for uuid in private_networks])
312 311
        if server_name is None:
313 312
            server_name = self.config.get("Deployment", "server_name")
314 313
            server_name = "%s(BID: %s)" % (server_name, self.build_id)
......
324 323
        self.write_temp_config('server_passwd', server_passwd)
325 324

  
326 325
        server = self._wait_transition(server_id, "BUILD", "ACTIVE")
327
        self._get_server_ip_and_port(server)
326
        self._get_server_ip_and_port(server, private_networks)
328 327
        self._copy_ssh_keys(ssh_keys)
329 328

  
330 329
        # Setup Firewall
......
468 467
        self.logger.error("No matching image found.. aborting")
469 468
        sys.exit(1)
470 469

  
471
    def _get_server_ip_and_port(self, server):
470
    def _get_server_ip_and_port(self, server, private_networks):
472 471
        """Compute server's IPv4 and ssh port number"""
473 472
        self.logger.info("Get server connection details..")
474
        server_ip = server['attachments'][0]['ipv4']
473
        if private_networks:
474
            # Choose the networks that belong to private_networks
475
            networks = [n for n in server['attachments']
476
                        if n['network_id'] in private_networks]
477
        else:
478
            # Choose the networks that are public
479
            networks = \
480
                [n for n in server['attachments']
481
                 if self.network_client.get_network_details(n['id'])['public']]
482
        # Choose the networks with IPv4
483
        networks = [n for n in networks if n['ipv4']]
484
        # Use the first network as IPv4
485
        server_ip = networks[0]['ipv4']
486

  
475 487
        if (".okeanos.io" in self.cyclades_client.base_url or
476 488
           ".demo.synnefo.org" in self.cyclades_client.base_url):
477 489
            tmp1 = int(server_ip.split(".")[2])

Also available in: Unified diff