Пример #1
0
Файл: xnbd.py Проект: slawr/lava
 def set_port(self, action):
     msg = {"data": {"nbd_server_port": 10809}}
     nbd_port = self.parameters["protocols"]["lava-xnbd"]["port"]
     if nbd_port == "auto":
         self.logger.debug("Get a port from pool")
         nbd_port = get_free_port(self.parameters["dispatcher"])
     self.ports.append(nbd_port)
     msg["data"]["nbd_server_port"] = nbd_port
     action.set_namespace_data(
         "nbd-deploy",
         label="nbd",
         key="nbd_server_port",
         value=nbd_port,
         parameters=action.parameters,
     )
     nbd_ip = dispatcher_ip(self.parameters["dispatcher"])
     action.set_namespace_data(
         "nbd-deploy",
         label="nbd",
         key="nbd_server_ip",
         value=nbd_ip,
         parameters=action.parameters,
     )
     self.logger.debug("Set_port %d", nbd_port)
     return msg["data"]
Пример #2
0
    def populate(self, parameters):
        self.tftp_dir = self.mkdtemp(override=tftpd_dir())
        self.internal_pipeline = Pipeline(parent=self,
                                          job=self.job,
                                          parameters=parameters)
        self.set_namespace_data(action=self.name,
                                label='tftp',
                                key='tftp_dir',
                                value=self.tftp_dir,
                                parameters=parameters)

        for key in ['initrd', 'kernel', 'dtb', 'nbdroot']:
            if key in parameters:
                download = DownloaderAction(key, path=self.tftp_dir)
                download.max_retries = 3  # overridden by failure_retry in the parameters, if set.
                self.internal_pipeline.add_action(download)
                if key == 'initrd':
                    self.set_namespace_data(action="tftp-deploy",
                                            label='tftp',
                                            key='ramdisk',
                                            value=True,
                                            parameters=parameters)
                    self.set_namespace_data(action=self.name,
                                            label='nbd',
                                            key='initrd',
                                            value=True,
                                            parameters=parameters)

        # prepare overlay
        self.internal_pipeline.add_action(OverlayAction())
        # setup values for protocol and later steps
        self.set_namespace_data(action=self.name,
                                label='nbd',
                                key='initrd',
                                value=True,
                                parameters=parameters)
        # store in parameters for protocol 'xnbd' to tear-down xnbd-server
        # and store in namespace for boot action
        # ip
        parameters['lava-xnbd'] = {}
        self.nbd_ip = dispatcher_ip(self.job.parameters['dispatcher'])
        parameters['lava-xnbd']['ip'] = self.nbd_ip
        self.set_namespace_data(action=self.name,
                                label='nbd',
                                key='nbd_server_ip',
                                value=self.nbd_ip,
                                parameters=parameters)
        # port
        self.nbd_port = get_free_port(self.job.parameters['dispatcher'])
        parameters['lava-xnbd']['port'] = self.nbd_port
        self.set_namespace_data(action=self.name,
                                label='nbd',
                                key='nbd_server_port',
                                value=self.nbd_port,
                                parameters=parameters)
        # handle XnbdAction next - bring-up xnbd-server
        self.internal_pipeline.add_action(XnbdAction())
Пример #3
0
 def set_port(self, action):
     msg = {'data': {'nbd_server_port': 10809}}
     nbd_port = self.parameters['protocols']['lava-xnbd']['port']
     if nbd_port == 'auto':
         self.logger.debug("Get a port from pool")
         nbd_port = get_free_port(self.parameters['dispatcher'])
     self.ports.append(nbd_port)
     msg['data']['nbd_server_port'] = nbd_port
     action.set_namespace_data('nbd-deploy',
                               label='nbd',
                               key='nbd_server_port',
                               value=nbd_port,
                               parameters=action.parameters)
     nbd_ip = dispatcher_ip(self.parameters['dispatcher'])
     action.set_namespace_data('nbd-deploy',
                               label='nbd',
                               key='nbd_server_ip',
                               value=nbd_ip,
                               parameters=action.parameters)
     self.logger.debug("Set_port %d", nbd_port)
     return msg['data']