def run(self, connection, max_end_time, args=None): # pylint: disable=too-many-locals connection = super(CopyToLxcAction, self).run(connection, max_end_time, args) # this is the device namespace - the lxc namespace is not accessible lxc_name = None protocol = [protocol for protocol in self.job.protocols if protocol.name == LxcProtocol.name][0] if protocol: lxc_name = protocol.lxc_name else: return connection # Copy each file to LXC. namespace = self.parameters['namespace'] images = self.data[namespace]['download-action'].keys() for image in images: src = self.get_namespace_data(action='download-action', label=image, key='file') # The archive extraction logic and some deploy logic in # DownloadHandler will set a label 'file' in the namespace but # that file would have been dealt with and the actual path may not # exist, though the key exists as part of the namespace, which we # can ignore safely, hence we continue on invalid src. if not src: continue copy_to_lxc(lxc_name, src, self.job.parameters['dispatcher']) overlay_file = self.get_namespace_data(action='compress-overlay', label='output', key='file') if overlay_file is None: self.logger.debug("skipped %s", self.name) else: copy_overlay_to_lxc(lxc_name, overlay_file, self.job.parameters['dispatcher'], namespace) return connection
def run(self, connection, max_end_time): connection = super().run(connection, max_end_time) # this is the device namespace - the lxc namespace is not accessible lxc_name = None protocols = [ protocol for protocol in self.job.protocols if protocol.name == LxcProtocol.name ] if protocols: lxc_name = protocols[0].lxc_name else: return connection # Copy each file to LXC. for image in self.get_namespace_keys("download-action"): src = self.get_namespace_data( action="download-action", label=image, key="file" ) # The archive extraction logic and some deploy logic in # DownloadHandler will set a label 'file' in the namespace but # that file would have been dealt with and the actual path may not # exist, though the key exists as part of the namespace, which we # can ignore safely, hence we continue on invalid src. if not src: continue copy_to_lxc(lxc_name, src, self.job.parameters["dispatcher"]) overlay_file = self.get_namespace_data( action="compress-overlay", label="output", key="file" ) if overlay_file is None: self.logger.debug("skipped %s", self.name) else: copy_overlay_to_lxc( lxc_name, overlay_file, self.job.parameters["dispatcher"], self.parameters["namespace"], ) return connection
def run(self, connection, max_end_time, args=None): # pylint: disable=too-many-locals connection = super(CopyToLxcAction, self).run(connection, max_end_time, args) # this is the device namespace - the lxc namespace is not accessible lxc_name = None protocol = [ protocol for protocol in self.job.protocols if protocol.name == LxcProtocol.name ][0] if protocol: lxc_name = protocol.lxc_name else: return connection # Copy each file to LXC. namespace = self.parameters['namespace'] images = self.data[namespace]['download-action'].keys() for image in images: src = self.get_namespace_data(action='download-action', label=image, key='file') # The archive extraction logic and some deploy logic in # DownloadHandler will set a label 'file' in the namespace but # that file would have been dealt with and the actual path may not # exist, though the key exists as part of the namespace, which we # can ignore safely, hence we continue on invalid src. if not src: continue copy_to_lxc(lxc_name, src, self.job.parameters['dispatcher']) overlay_file = self.get_namespace_data(action='compress-overlay', label='output', key='file') if overlay_file is None: self.logger.debug("skipped %s", self.name) else: copy_overlay_to_lxc(lxc_name, overlay_file, self.job.parameters['dispatcher'], namespace) return connection