service.py 文件源码

python
阅读 27 收藏 0 点赞 0 评论 0

项目:inspect-docker-image 作者: giantswarm 项目源码 文件源码
def canonical_image_details(registry, namespace, image):
    start = time.time()
    if ":" in image:
        (image, tag) = image.split(":")
    else:
        tag = "latest"
    result = {}
    error = None
    try:
        if registry == app.config["DEFAULT_REGISTRY"]:
            dii = DockerHubImageInspector(namespace + "/" + image, tag)
        else:
            dii = DockerImageInspector(registry, namespace + "/" + image, tag)

        result = {
            "schema_version": dii.manifest["schemaVersion"],
            "name": dii.manifest["name"],
            "tag": dii.manifest["tag"],
            "architecture": dii.manifest["architecture"],
            "create_date": None,
            "history_length": len(dii.manifest["history"]),
            "num_layers": len(dii.layers),
            "config": json.loads(dii.manifest["history"][0]["v1Compatibility"])["container_config"],
            "layers": [],
            "image_size": 0
        }
        if dii.create_date is not None:
            result["create_date"] = dii.create_date.isoformat()
        for l in dii.layers:
            bytesize = dii.get_layer_size(l)
            if bytesize is not None:
                result["image_size"] += bytesize
            result["layers"].append({"digest": l, "size": bytesize})
    except HTTPError, e:
        if "404" in str(e):
            abort(404)
        else:
            error = str(e)
    except ConnectTimeout, e:
        error = str(e)
    except Exception, e:
        error = str(e)
    duration = time.time() - start
    return jsonify(metadata=result, duration=duration, error=error)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号