Example #1
0
 def on_delete(self, widget):
     highlighter.apply(widget, 'deleted', 'deleted')
     reactor.callLater(10, highlighter.remove, widget)
     if widget.tag == "<none>:<none>":
         widget.tag = widget.image
     d = threads.deferToThread(app.client.remove_image, widget.tag)
     d.addErrback(lambda _: highlighter.remove(widget) or _)
     return d
Example #2
0
 def on_delete(self, widget):
     highlighter.apply(widget, "deleted", "deleted")
     reactor.callLater(10, highlighter.remove, widget)
     if widget.tag == "<none>:<none>":
         widget.tag = widget.image
     d = threads.deferToThread(app.client.remove_image, widget.tag)
     d.addErrback(lambda _: highlighter.remove(widget) or _)
     return d
Example #3
0
    def set_containers(self, containers, force=False):
        # save the current position
        _, current_focus = self.listing.get_focus()

        if containers == self.container_data and not force:
            return

        self.listing.clear()
        self.old_containers = self.containers
        self.containers = {}

        running = [c for c in containers if 'Exited' not in c['status']]
        stopped = [c for c in containers if 'Exited' in c['status']]

        filter = self.filter.lower()

        def remove_highlight(row):
            highlighter.remove(row)

        for container in running:
            in_names = any(filter in name.lower()
                           for name in container['names'])
            in_id = filter in container['id'].lower()
            in_status = filter in container['status'].lower()
            in_image = filter in container['image'].lower()
            row = self.make_container_row(container)
            if any((in_names, in_id, in_status, in_image)):
                self.listing.walker.append(row)
                if self.old_containers and row.container not in self.old_containers:
                    highlighter.apply(row, 'created', 'created')
                    reactor.callLater(1, highlighter.remove, row)

        for container in stopped:
            in_names = any(filter in name.lower()
                           for name in container['names'])
            in_id = filter in container['id'].lower()
            in_status = filter in container['status'].lower()
            in_image = filter in container['image'].lower()
            row = self.make_container_row(container)
            if any((in_names, in_id, in_status, in_image)):
                self.listing.walker.append(row)
                if self.old_containers and row.container not in self.old_containers:
                    highlighter.apply(row, 'created', 'created')
                    reactor.callLater(1, highlighter.remove, row)

        self.container_data = containers
        self.listing.set_focus(current_focus)
        self.listing.fix_focus()
        app.draw_screen()
Example #4
0
    def set_containers(self, containers, force=False):
        # save the current position
        _, current_focus = self.listing.get_focus()

        if containers == self.container_data and not force:
            return

        self.listing.clear()
        self.old_containers = self.containers
        self.containers = {}

        running = [c for c in containers if 'Exited' not in c['status']]
        stopped = [c for c in containers if 'Exited' in c['status']]

        filter = self.filter.lower()

        def remove_highlight(row):
            highlighter.remove(row)

        for container in running:
            in_names = any(filter in name.lower() for name in container['names'])
            in_id = filter in container['id'].lower()
            in_status = filter in container['status'].lower()
            in_image = filter in container['image'].lower()
            row = self.make_container_row(container)
            if any((in_names, in_id, in_status, in_image)):
                self.listing.walker.append(row)
                if self.old_containers and row.container not in self.old_containers:
                    highlighter.apply(row, 'created', 'created')
                    reactor.callLater(1, highlighter.remove, row)

        for container in stopped:
            in_names = any(filter in name.lower() for name in container['names'])
            in_id = filter in container['id'].lower()
            in_status = filter in container['status'].lower()
            in_image = filter in container['image'].lower()
            row = self.make_container_row(container)
            if any((in_names, in_id, in_status, in_image)):
                self.listing.walker.append(row)
                if self.old_containers and row.container not in self.old_containers:
                    highlighter.apply(row, 'created', 'created')
                    reactor.callLater(1, highlighter.remove, row)

        self.container_data = containers
        self.listing.set_focus(current_focus)
        self.listing.fix_focus()
        app.draw_screen()
Example #5
0
    def push(self):
        widget, idx = self.listing.get_focus()
        name, tag = split_repo_name(widget.tag)
        highlighter.apply(widget, "uploading", "uploading_focus")
        d = threads.deferToThread(app.client.push, name)

        def handle_response(r):
            r = r.replace("}{", "},{")
            r = r.replace('1)"}', '1)"},')
            r = r.replace('2)"}', '2)"},')
            r = "[%s]" % r
            messages = [d.get("status") or d.get("error") for d in json.loads(r)]
            self.show_dialog(MessageListBox(messages, title="Push Response", width=100))
            reactor.callLater(5.0, highlighter.remove, widget)

        d.addCallback(handle_response)
        return d
Example #6
0
    def set_images(self, images, force=False):
        # save the current position
        _, current_focus = self.listing.get_focus()

        if images == self.image_data and not force:
            return

        self.listing.clear()
        self.old_images = self.images
        self.images = {}

        untagged = [i for i in images if i['tag'] == '<none>:<none>']
        tagged = [i for i in images if i['tag'] != '<none>:<none>']

        filter = self.filter.lower()

        def remove_highlight(row):
            highlighter.remove(row)

        for image in tagged:
            in_tag = filter in image['tag'].lower()
            in_id = filter in image['id'].lower()
            row = self.make_image_row(image)
            if in_tag or in_id:
                self.listing.walker.append(row)
                if self.old_images and row.tag not in self.old_images:
                    highlighter.apply(row, 'created', 'created')
                    reactor.callLater(1, highlighter.remove, row)

        for image in untagged:
            in_tag = filter in image['tag'].lower()
            in_id = filter in image['id'].lower()
            row = self.make_image_row(image)
            if in_tag or in_id:
                self.listing.walker.append(row)
                if self.old_images and row.tag not in self.old_images:
                    highlighter.apply(row, 'created', 'created')
                    reactor.callLater(1, highlighter.remove, row)

        self.image_data = images
        self.listing.set_focus(current_focus)
        self.listing.fix_focus()
        app.draw_screen()
Example #7
0
    def set_images(self, images, force=False):
        # save the current position
        _, current_focus = self.listing.get_focus()

        if images == self.image_data and not force:
            return

        self.listing.clear()
        self.old_images = self.images
        self.images = {}

        untagged = [i for i in images if i["tag"] == "<none>:<none>"]
        tagged = [i for i in images if i["tag"] != "<none>:<none>"]

        filter = self.filter.lower()

        def remove_highlight(row):
            highlighter.remove(row)

        for image in tagged:
            in_tag = filter in image["tag"].lower()
            in_id = filter in image["id"].lower()
            row = self.make_image_row(image)
            if in_tag or in_id:
                self.listing.walker.append(row)
                if self.old_images and row.tag not in self.old_images:
                    highlighter.apply(row, "created", "created")
                    reactor.callLater(1, highlighter.remove, row)

        for image in untagged:
            in_tag = filter in image["tag"].lower()
            in_id = filter in image["id"].lower()
            row = self.make_image_row(image)
            if in_tag or in_id:
                self.listing.walker.append(row)
                if self.old_images and row.tag not in self.old_images:
                    highlighter.apply(row, "created", "created")
                    reactor.callLater(1, highlighter.remove, row)

        self.image_data = images
        self.listing.set_focus(current_focus)
        self.listing.fix_focus()
        app.draw_screen()
Example #8
0
    def push(self):
        widget, idx = self.listing.get_focus()
        name, tag = split_repo_name(widget.tag)
        highlighter.apply(widget, 'uploading', 'uploading_focus')
        d = threads.deferToThread(app.client.push, name)

        def handle_response(r):
            r = r.replace("}{", "},{")
            r = r.replace("1)\"}", "1)\"},")
            r = r.replace("2)\"}", "2)\"},")
            r = "[%s]" % r
            messages = [
                d.get('status') or d.get('error') for d in json.loads(r)
            ]
            self.show_dialog(
                MessageListBox(messages, title='Push Response', width=100))
            reactor.callLater(5.0, highlighter.remove, widget)

        d.addCallback(handle_response)
        return d
Example #9
0
 def on_delete(self, widget):
     highlighter.apply(widget, 'deleted', 'deleted')
     reactor.callLater(2.5, highlighter.remove, widget)
     return threads.deferToThread(app.client.remove_container,
                                  widget.container)
Example #10
0
 def on_delete(self, widget):
     highlighter.apply(widget, 'deleted', 'deleted')
     reactor.callLater(2.5, highlighter.remove, widget)
     return threads.deferToThread(app.client.remove_container, widget.container)