def _to_container()

in libcloud/container/drivers/docker.py [0:0]


    def _to_container(self, data):
        """
        Convert container in Container instances
        """
        try:
            name = data.get("Name").strip("/")
        except Exception:
            try:
                name = data.get("Names")[0].strip("/")
            except Exception:
                name = data.get("Id")
        state = data.get("State")
        if isinstance(state, dict):
            status = data.get("Status", state.get("Status") if state is not None else None)
        else:
            status = data.get("Status")
        if "Exited" in status:
            state = ContainerState.STOPPED
        elif status.startswith("Up "):
            state = ContainerState.RUNNING
        elif "running" in status:
            state = ContainerState.RUNNING
        else:
            state = ContainerState.STOPPED
        image = data.get("Image")
        ports = data.get("Ports", [])
        created = data.get("Created")
        if isinstance(created, float):
            created = ts_to_str(created)
        extra = {
            "id": data.get("Id"),
            "status": data.get("Status"),
            "created": created,
            "image": image,
            "ports": ports,
            "command": data.get("Command"),
            "sizerw": data.get("SizeRw"),
            "sizerootfs": data.get("SizeRootFs"),
        }
        ips = []
        if ports is not None:
            for port in ports:
                if port.get("IP") is not None:
                    ips.append(port.get("IP"))
        return Container(
            id=data["Id"],
            name=name,
            image=ContainerImage(
                id=data.get("ImageID", None),
                path=image,
                name=image,
                version=None,
                driver=self.connection.driver,
            ),
            ip_addresses=ips,
            state=state,
            driver=self.connection.driver,
            extra=extra,
        )