def create_bridge(self, req):
        cmd = jsonobject.loads(req[http.REQUEST_BODY])
        rsp = CreateBridgeResponse()

        self._ifup_device_if_down(cmd.physicalInterfaceName)

        if linux.is_vif_on_bridge(cmd.bridgeName, cmd.physicalInterfaceName):
            logger.debug(
                '%s is a bridge device. Interface %s is attached to bridge. No need to create bridge or attach device interface'
                % (cmd.bridgeName, cmd.physicalInterfaceName))
            self._configure_bridge()
            linux.set_device_uuid_alias(cmd.physicalInterfaceName,
                                        cmd.l2NetworkUuid)
            return jsonobject.dumps(rsp)

        try:
            linux.create_bridge(cmd.bridgeName, cmd.physicalInterfaceName)
            linux.set_device_uuid_alias(cmd.physicalInterfaceName,
                                        cmd.l2NetworkUuid)

            self._configure_bridge()
            logger.debug('successfully realize bridge[%s] from device[%s]' %
                         (cmd.bridgeName, cmd.physicalInterfaceName))
        except Exception as e:
            logger.warning(traceback.format_exc())
            rsp.error = 'unable to create bridge[%s] from device[%s], because %s' % (
                cmd.bridgeName, cmd.physicalInterfaceName, str(e))
            rsp.success = False

        return jsonobject.dumps(rsp)
 def create_bridge(self, req):
     cmd = jsonobject.loads(req[http.REQUEST_BODY])
     rsp = CreateBridgeResponse()
     if linux.is_vif_on_bridge(cmd.bridgeName, cmd.physicalInterfaceName):
         logger.debug('%s is a bridge device. Interface %s is attached to bridge. No need to create bridge or attach device interface' % (cmd.physicalInterfaceName, cmd.bridgeName))
         return jsonobject.dumps(rsp)
     
     try:
         linux.create_bridge(cmd.bridgeName, cmd.physicalInterfaceName)
         logger.debug('successfully realize bridge[%s] from device[%s]' % (cmd.bridgeName, cmd.physicalInterfaceName))
     except Exception as e:
         logger.warning(traceback.format_exc())
         rsp.error = 'unable to create bridge[%s] from device[%s], because %s' % (cmd.bridgeName, cmd.physicalInterfaceName, str(e))
         rsp.success = False
         
     return jsonobject.dumps(rsp)
示例#3
0
    def _setup_docker_bridge(self):
        #enable bridge. use default l2network setting.
        br_dev = 'br_%s' % self.br_dev
        if not linux.is_bridge(br_dev):
            linux.create_bridge(br_dev, br_dev)

        #set docker args
        rhel_docker_config = '/etc/sysconfig/docker'
        ubuntu_docker_config = '/etc/default/docker'

        if os.path.exists(rhel_docker_config):
            open(rhel_docker_config, 'w').write('other_args="-b=%s"' % br_dev)
            shell.ShellCmd('service docker restart')()

        if os.path.exists(ubuntu_docker_config):
            open(ubuntu_docker_config, 'w').write('other_args="-b=%s"' % \
                    br_dev)
            shell.ShellCmd('service docker restart')()
 def _setup_docker_bridge(self):
     #enable bridge. use default l2network setting.
     br_dev = 'br_%s' % self.br_dev
     if not linux.is_bridge(br_dev):
         linux.create_bridge(br_dev, br_dev)
 
     #set docker args
     rhel_docker_config = '/etc/sysconfig/docker'
     ubuntu_docker_config = '/etc/default/docker'
 
     if os.path.exists(rhel_docker_config):
         open(rhel_docker_config, 'w').write('other_args="-b=%s"' % br_dev)
         shell.ShellCmd('service docker restart')()
 
     if os.path.exists(ubuntu_docker_config):
         open(ubuntu_docker_config, 'w').write('other_args="-b=%s"' % \
                 br_dev)
         shell.ShellCmd('service docker restart')()
示例#5
0
 def testName(self):
     linux.create_bridge('testbr0', 'eth0')
 def testName(self):
     linux.create_bridge('testbr0', 'eth0')