提交 a9b485a9 编写于 作者: W WangFengTu

support tag image

Signed-off-by: NWangFengTu <wangfengtu@huawei.com>
上级 2f9371a0
......@@ -752,3 +752,24 @@ func (s *grpcImageService) ListContainers(ctx context.Context, req *pb.ListConta
return &pb.ListContainersResponse{Containers: containers}, nil
}
func (s *grpcImageService) TagImage(ctx context.Context, req *pb.TagImageRequest) (*pb.TagImageResponse, error) {
if req == nil || req.SrcName == nil || req.SrcName.Image == "" ||
req.DestName == nil || req.DestName.Image == "" {
err := errors.New("Lack infomation for tag image")
return &pb.TagImageResponse{
Errmsg: err.Error(),
Cc: 1,
}, err
}
err := imageTag(s.gopts, req.SrcName.Image, req.DestName.Image)
if err != nil {
return &pb.TagImageResponse{
Errmsg: err.Error(),
Cc: 1,
}, err
}
return &pb.TagImageResponse{}, nil
}
......@@ -154,6 +154,8 @@ type ImageServer interface {
ParseImageNames(imageName string) ([]parsedImageNames, error)
// IsSecureIndex check if indexName is insecure
IsSecureIndex(indexName string) bool
// Tag image to other name
Tag(srcName, destName string) error
}
func (svc *imageService) InitImage(image parsedImageNames, options *copy.Options) (types.Image, error) {
......@@ -329,6 +331,19 @@ func (svc *imageService) UnrefImage(systemContext *types.SystemContext, imageNam
return ref.DeleteImage(svc.ctx, systemContext)
}
func (svc *imageService) Tag(srcName, destName string) error {
ref, err := svc.parseImageName(srcName)
if err != nil {
return err
}
img, err := imstorage.Transport.GetStoreImage(svc.store, ref)
if err != nil {
return err
}
return svc.store.AddName(img.ID, destName)
}
func (svc *imageService) GetStore() storage.Store {
return svc.store
}
......
// Copyright (c) Huawei Technologies Co., Ltd. 2019. All rights reserved.
// iSulad-img licensed under the Mulan PSL v1.
// You can use this software according to the terms and conditions of the Mulan PSL v1.
// You may obtain a copy of Mulan PSL v1 at:
// http://license.coscl.org.cn/MulanPSL
// THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
// PURPOSE.
// See the Mulan PSL v1 for more details.
// Description: iSulad image img
// Author: wangfengtu
// Create: 2020-04-15
package main
import (
"github.com/sirupsen/logrus"
)
func imageTag(gopts *globalOptions, srcName string, destName string) error {
imageService, err := getImageService(gopts)
if err != nil {
return err
}
err = imageService.Tag(srcName, destName)
if err != nil {
logrus.Debugf("error tagging image %v to %v: %v", srcName, destName, err)
return err
}
return err
}
......@@ -43,7 +43,7 @@ func (x Protocol) String() string {
return proto.EnumName(Protocol_name, int32(x))
}
func (Protocol) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{0}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{0}
}
type MountPropagation int32
......@@ -73,7 +73,7 @@ func (x MountPropagation) String() string {
return proto.EnumName(MountPropagation_name, int32(x))
}
func (MountPropagation) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{1}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{1}
}
type HealthCheckRequest struct {
......@@ -86,7 +86,7 @@ func (m *HealthCheckRequest) Reset() { *m = HealthCheckRequest{} }
func (m *HealthCheckRequest) String() string { return proto.CompactTextString(m) }
func (*HealthCheckRequest) ProtoMessage() {}
func (*HealthCheckRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{0}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{0}
}
func (m *HealthCheckRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_HealthCheckRequest.Unmarshal(m, b)
......@@ -118,7 +118,7 @@ func (m *HealthCheckResponse) Reset() { *m = HealthCheckResponse{} }
func (m *HealthCheckResponse) String() string { return proto.CompactTextString(m) }
func (*HealthCheckResponse) ProtoMessage() {}
func (*HealthCheckResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{1}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{1}
}
func (m *HealthCheckResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_HealthCheckResponse.Unmarshal(m, b)
......@@ -165,7 +165,7 @@ func (m *LoginRequest) Reset() { *m = LoginRequest{} }
func (m *LoginRequest) String() string { return proto.CompactTextString(m) }
func (*LoginRequest) ProtoMessage() {}
func (*LoginRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{2}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{2}
}
func (m *LoginRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_LoginRequest.Unmarshal(m, b)
......@@ -218,7 +218,7 @@ func (m *LoginResponse) Reset() { *m = LoginResponse{} }
func (m *LoginResponse) String() string { return proto.CompactTextString(m) }
func (*LoginResponse) ProtoMessage() {}
func (*LoginResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{3}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{3}
}
func (m *LoginResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_LoginResponse.Unmarshal(m, b)
......@@ -263,7 +263,7 @@ func (m *LogoutRequest) Reset() { *m = LogoutRequest{} }
func (m *LogoutRequest) String() string { return proto.CompactTextString(m) }
func (*LogoutRequest) ProtoMessage() {}
func (*LogoutRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{4}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{4}
}
func (m *LogoutRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_LogoutRequest.Unmarshal(m, b)
......@@ -302,7 +302,7 @@ func (m *LogoutResponse) Reset() { *m = LogoutResponse{} }
func (m *LogoutResponse) String() string { return proto.CompactTextString(m) }
func (*LogoutResponse) ProtoMessage() {}
func (*LogoutResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{5}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{5}
}
func (m *LogoutResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_LogoutResponse.Unmarshal(m, b)
......@@ -351,7 +351,7 @@ func (m *ContainerExportRequest) Reset() { *m = ContainerExportRequest{}
func (m *ContainerExportRequest) String() string { return proto.CompactTextString(m) }
func (*ContainerExportRequest) ProtoMessage() {}
func (*ContainerExportRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{6}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{6}
}
func (m *ContainerExportRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ContainerExportRequest.Unmarshal(m, b)
......@@ -418,7 +418,7 @@ func (m *ContainerExportResponse) Reset() { *m = ContainerExportResponse
func (m *ContainerExportResponse) String() string { return proto.CompactTextString(m) }
func (*ContainerExportResponse) ProtoMessage() {}
func (*ContainerExportResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{7}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{7}
}
func (m *ContainerExportResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ContainerExportResponse.Unmarshal(m, b)
......@@ -464,7 +464,7 @@ func (m *LoadImageRequest) Reset() { *m = LoadImageRequest{} }
func (m *LoadImageRequest) String() string { return proto.CompactTextString(m) }
func (*LoadImageRequest) ProtoMessage() {}
func (*LoadImageRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{8}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{8}
}
func (m *LoadImageRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_LoadImageRequest.Unmarshal(m, b)
......@@ -511,7 +511,7 @@ func (m *LoadImageResponose) Reset() { *m = LoadImageResponose{} }
func (m *LoadImageResponose) String() string { return proto.CompactTextString(m) }
func (*LoadImageResponose) ProtoMessage() {}
func (*LoadImageResponose) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{9}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{9}
}
func (m *LoadImageResponose) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_LoadImageResponose.Unmarshal(m, b)
......@@ -562,7 +562,7 @@ func (m *GraphdriverStatusRequest) Reset() { *m = GraphdriverStatusReque
func (m *GraphdriverStatusRequest) String() string { return proto.CompactTextString(m) }
func (*GraphdriverStatusRequest) ProtoMessage() {}
func (*GraphdriverStatusRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{10}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{10}
}
func (m *GraphdriverStatusRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GraphdriverStatusRequest.Unmarshal(m, b)
......@@ -595,7 +595,7 @@ func (m *GraphdriverStatusResponse) Reset() { *m = GraphdriverStatusResp
func (m *GraphdriverStatusResponse) String() string { return proto.CompactTextString(m) }
func (*GraphdriverStatusResponse) ProtoMessage() {}
func (*GraphdriverStatusResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{11}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{11}
}
func (m *GraphdriverStatusResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GraphdriverStatusResponse.Unmarshal(m, b)
......@@ -647,7 +647,7 @@ func (m *GraphdriverMetadataRequest) Reset() { *m = GraphdriverMetadataR
func (m *GraphdriverMetadataRequest) String() string { return proto.CompactTextString(m) }
func (*GraphdriverMetadataRequest) ProtoMessage() {}
func (*GraphdriverMetadataRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{12}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{12}
}
func (m *GraphdriverMetadataRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GraphdriverMetadataRequest.Unmarshal(m, b)
......@@ -688,7 +688,7 @@ func (m *GraphdriverMetadataResponse) Reset() { *m = GraphdriverMetadata
func (m *GraphdriverMetadataResponse) String() string { return proto.CompactTextString(m) }
func (*GraphdriverMetadataResponse) ProtoMessage() {}
func (*GraphdriverMetadataResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{13}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{13}
}
func (m *GraphdriverMetadataResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_GraphdriverMetadataResponse.Unmarshal(m, b)
......@@ -747,7 +747,7 @@ func (m *ContainerFsUsageRequest) Reset() { *m = ContainerFsUsageRequest
func (m *ContainerFsUsageRequest) String() string { return proto.CompactTextString(m) }
func (*ContainerFsUsageRequest) ProtoMessage() {}
func (*ContainerFsUsageRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{14}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{14}
}
func (m *ContainerFsUsageRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ContainerFsUsageRequest.Unmarshal(m, b)
......@@ -787,7 +787,7 @@ func (m *ContainerFsUsageResponse) Reset() { *m = ContainerFsUsageRespon
func (m *ContainerFsUsageResponse) String() string { return proto.CompactTextString(m) }
func (*ContainerFsUsageResponse) ProtoMessage() {}
func (*ContainerFsUsageResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{15}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{15}
}
func (m *ContainerFsUsageResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ContainerFsUsageResponse.Unmarshal(m, b)
......@@ -840,7 +840,7 @@ func (m *ContainerUmountRequest) Reset() { *m = ContainerUmountRequest{}
func (m *ContainerUmountRequest) String() string { return proto.CompactTextString(m) }
func (*ContainerUmountRequest) ProtoMessage() {}
func (*ContainerUmountRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{16}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{16}
}
func (m *ContainerUmountRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ContainerUmountRequest.Unmarshal(m, b)
......@@ -886,7 +886,7 @@ func (m *ContainerUmountResponse) Reset() { *m = ContainerUmountResponse
func (m *ContainerUmountResponse) String() string { return proto.CompactTextString(m) }
func (*ContainerUmountResponse) ProtoMessage() {}
func (*ContainerUmountResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{17}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{17}
}
func (m *ContainerUmountResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ContainerUmountResponse.Unmarshal(m, b)
......@@ -931,7 +931,7 @@ func (m *ContainerMountRequest) Reset() { *m = ContainerMountRequest{} }
func (m *ContainerMountRequest) String() string { return proto.CompactTextString(m) }
func (*ContainerMountRequest) ProtoMessage() {}
func (*ContainerMountRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{18}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{18}
}
func (m *ContainerMountRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ContainerMountRequest.Unmarshal(m, b)
......@@ -970,7 +970,7 @@ func (m *ContainerMountResponse) Reset() { *m = ContainerMountResponse{}
func (m *ContainerMountResponse) String() string { return proto.CompactTextString(m) }
func (*ContainerMountResponse) ProtoMessage() {}
func (*ContainerMountResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{19}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{19}
}
func (m *ContainerMountResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ContainerMountResponse.Unmarshal(m, b)
......@@ -1015,7 +1015,7 @@ func (m *ContainerRemoveRequest) Reset() { *m = ContainerRemoveRequest{}
func (m *ContainerRemoveRequest) String() string { return proto.CompactTextString(m) }
func (*ContainerRemoveRequest) ProtoMessage() {}
func (*ContainerRemoveRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{20}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{20}
}
func (m *ContainerRemoveRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ContainerRemoveRequest.Unmarshal(m, b)
......@@ -1054,7 +1054,7 @@ func (m *ContainerRemoveResponse) Reset() { *m = ContainerRemoveResponse
func (m *ContainerRemoveResponse) String() string { return proto.CompactTextString(m) }
func (*ContainerRemoveResponse) ProtoMessage() {}
func (*ContainerRemoveResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{21}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{21}
}
func (m *ContainerRemoveResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ContainerRemoveResponse.Unmarshal(m, b)
......@@ -1102,7 +1102,7 @@ func (m *ContainerPrepareRequest) Reset() { *m = ContainerPrepareRequest
func (m *ContainerPrepareRequest) String() string { return proto.CompactTextString(m) }
func (*ContainerPrepareRequest) ProtoMessage() {}
func (*ContainerPrepareRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{22}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{22}
}
func (m *ContainerPrepareRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ContainerPrepareRequest.Unmarshal(m, b)
......@@ -1164,7 +1164,7 @@ func (m *ContainerPrepareResponse) Reset() { *m = ContainerPrepareRespon
func (m *ContainerPrepareResponse) String() string { return proto.CompactTextString(m) }
func (*ContainerPrepareResponse) ProtoMessage() {}
func (*ContainerPrepareResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{23}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{23}
}
func (m *ContainerPrepareResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ContainerPrepareResponse.Unmarshal(m, b)
......@@ -1222,7 +1222,7 @@ func (m *ListContainersRequest) Reset() { *m = ListContainersRequest{} }
func (m *ListContainersRequest) String() string { return proto.CompactTextString(m) }
func (*ListContainersRequest) ProtoMessage() {}
func (*ListContainersRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{24}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{24}
}
func (m *ListContainersRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ListContainersRequest.Unmarshal(m, b)
......@@ -1255,7 +1255,7 @@ func (m *ListContainersResponse) Reset() { *m = ListContainersResponse{}
func (m *ListContainersResponse) String() string { return proto.CompactTextString(m) }
func (*ListContainersResponse) ProtoMessage() {}
func (*ListContainersResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{25}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{25}
}
func (m *ListContainersResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ListContainersResponse.Unmarshal(m, b)
......@@ -1314,7 +1314,7 @@ func (m *DNSConfig) Reset() { *m = DNSConfig{} }
func (m *DNSConfig) String() string { return proto.CompactTextString(m) }
func (*DNSConfig) ProtoMessage() {}
func (*DNSConfig) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{26}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{26}
}
func (m *DNSConfig) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DNSConfig.Unmarshal(m, b)
......@@ -1374,7 +1374,7 @@ func (m *PortMapping) Reset() { *m = PortMapping{} }
func (m *PortMapping) String() string { return proto.CompactTextString(m) }
func (*PortMapping) ProtoMessage() {}
func (*PortMapping) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{27}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{27}
}
func (m *PortMapping) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PortMapping.Unmarshal(m, b)
......@@ -1443,7 +1443,7 @@ func (m *Mount) Reset() { *m = Mount{} }
func (m *Mount) String() string { return proto.CompactTextString(m) }
func (*Mount) ProtoMessage() {}
func (*Mount) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{28}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{28}
}
func (m *Mount) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Mount.Unmarshal(m, b)
......@@ -1515,7 +1515,7 @@ func (m *NamespaceOption) Reset() { *m = NamespaceOption{} }
func (m *NamespaceOption) String() string { return proto.CompactTextString(m) }
func (*NamespaceOption) ProtoMessage() {}
func (*NamespaceOption) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{29}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{29}
}
func (m *NamespaceOption) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NamespaceOption.Unmarshal(m, b)
......@@ -1569,7 +1569,7 @@ func (m *Int64Value) Reset() { *m = Int64Value{} }
func (m *Int64Value) String() string { return proto.CompactTextString(m) }
func (*Int64Value) ProtoMessage() {}
func (*Int64Value) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{30}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{30}
}
func (m *Int64Value) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Int64Value.Unmarshal(m, b)
......@@ -1611,7 +1611,7 @@ func (m *SELinuxOption) Reset() { *m = SELinuxOption{} }
func (m *SELinuxOption) String() string { return proto.CompactTextString(m) }
func (*SELinuxOption) ProtoMessage() {}
func (*SELinuxOption) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{31}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{31}
}
func (m *SELinuxOption) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SELinuxOption.Unmarshal(m, b)
......@@ -1699,7 +1699,7 @@ func (m *LinuxSandboxSecurityContext) Reset() { *m = LinuxSandboxSecurit
func (m *LinuxSandboxSecurityContext) String() string { return proto.CompactTextString(m) }
func (*LinuxSandboxSecurityContext) ProtoMessage() {}
func (*LinuxSandboxSecurityContext) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{32}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{32}
}
func (m *LinuxSandboxSecurityContext) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_LinuxSandboxSecurityContext.Unmarshal(m, b)
......@@ -1788,7 +1788,7 @@ func (m *LinuxPodSandboxConfig) Reset() { *m = LinuxPodSandboxConfig{} }
func (m *LinuxPodSandboxConfig) String() string { return proto.CompactTextString(m) }
func (*LinuxPodSandboxConfig) ProtoMessage() {}
func (*LinuxPodSandboxConfig) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{33}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{33}
}
func (m *LinuxPodSandboxConfig) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_LinuxPodSandboxConfig.Unmarshal(m, b)
......@@ -1851,7 +1851,7 @@ func (m *PodSandboxMetadata) Reset() { *m = PodSandboxMetadata{} }
func (m *PodSandboxMetadata) String() string { return proto.CompactTextString(m) }
func (*PodSandboxMetadata) ProtoMessage() {}
func (*PodSandboxMetadata) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{34}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{34}
}
func (m *PodSandboxMetadata) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PodSandboxMetadata.Unmarshal(m, b)
......@@ -1959,7 +1959,7 @@ func (m *PodSandboxConfig) Reset() { *m = PodSandboxConfig{} }
func (m *PodSandboxConfig) String() string { return proto.CompactTextString(m) }
func (*PodSandboxConfig) ProtoMessage() {}
func (*PodSandboxConfig) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{35}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{35}
}
func (m *PodSandboxConfig) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PodSandboxConfig.Unmarshal(m, b)
......@@ -2049,7 +2049,7 @@ func (m *ImageSpec) Reset() { *m = ImageSpec{} }
func (m *ImageSpec) String() string { return proto.CompactTextString(m) }
func (*ImageSpec) ProtoMessage() {}
func (*ImageSpec) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{36}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{36}
}
func (m *ImageSpec) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ImageSpec.Unmarshal(m, b)
......@@ -2088,7 +2088,7 @@ func (m *ImageFilter) Reset() { *m = ImageFilter{} }
func (m *ImageFilter) String() string { return proto.CompactTextString(m) }
func (*ImageFilter) ProtoMessage() {}
func (*ImageFilter) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{37}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{37}
}
func (m *ImageFilter) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ImageFilter.Unmarshal(m, b)
......@@ -2128,7 +2128,7 @@ func (m *ListImagesRequest) Reset() { *m = ListImagesRequest{} }
func (m *ListImagesRequest) String() string { return proto.CompactTextString(m) }
func (*ListImagesRequest) ProtoMessage() {}
func (*ListImagesRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{38}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{38}
}
func (m *ListImagesRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ListImagesRequest.Unmarshal(m, b)
......@@ -2178,7 +2178,7 @@ func (m *HealthCheck) Reset() { *m = HealthCheck{} }
func (m *HealthCheck) String() string { return proto.CompactTextString(m) }
func (*HealthCheck) ProtoMessage() {}
func (*HealthCheck) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{39}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{39}
}
func (m *HealthCheck) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_HealthCheck.Unmarshal(m, b)
......@@ -2274,7 +2274,7 @@ func (m *Image) Reset() { *m = Image{} }
func (m *Image) String() string { return proto.CompactTextString(m) }
func (*Image) ProtoMessage() {}
func (*Image) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{40}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{40}
}
func (m *Image) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Image.Unmarshal(m, b)
......@@ -2378,7 +2378,7 @@ func (m *ListImagesResponse) Reset() { *m = ListImagesResponse{} }
func (m *ListImagesResponse) String() string { return proto.CompactTextString(m) }
func (*ListImagesResponse) ProtoMessage() {}
func (*ListImagesResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{41}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{41}
}
func (m *ListImagesResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ListImagesResponse.Unmarshal(m, b)
......@@ -2433,7 +2433,7 @@ func (m *ImageStatusRequest) Reset() { *m = ImageStatusRequest{} }
func (m *ImageStatusRequest) String() string { return proto.CompactTextString(m) }
func (*ImageStatusRequest) ProtoMessage() {}
func (*ImageStatusRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{42}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{42}
}
func (m *ImageStatusRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ImageStatusRequest.Unmarshal(m, b)
......@@ -2486,7 +2486,7 @@ func (m *ImageStatusResponse) Reset() { *m = ImageStatusResponse{} }
func (m *ImageStatusResponse) String() string { return proto.CompactTextString(m) }
func (*ImageStatusResponse) ProtoMessage() {}
func (*ImageStatusResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{43}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{43}
}
func (m *ImageStatusResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ImageStatusResponse.Unmarshal(m, b)
......@@ -2545,7 +2545,7 @@ func (m *ImageInfoRequest) Reset() { *m = ImageInfoRequest{} }
func (m *ImageInfoRequest) String() string { return proto.CompactTextString(m) }
func (*ImageInfoRequest) ProtoMessage() {}
func (*ImageInfoRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{44}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{44}
}
func (m *ImageInfoRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ImageInfoRequest.Unmarshal(m, b)
......@@ -2585,7 +2585,7 @@ func (m *ImageInfoResponse) Reset() { *m = ImageInfoResponse{} }
func (m *ImageInfoResponse) String() string { return proto.CompactTextString(m) }
func (*ImageInfoResponse) ProtoMessage() {}
func (*ImageInfoResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{45}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{45}
}
func (m *ImageInfoResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ImageInfoResponse.Unmarshal(m, b)
......@@ -2646,7 +2646,7 @@ func (m *AuthConfig) Reset() { *m = AuthConfig{} }
func (m *AuthConfig) String() string { return proto.CompactTextString(m) }
func (*AuthConfig) ProtoMessage() {}
func (*AuthConfig) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{46}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{46}
}
func (m *AuthConfig) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_AuthConfig.Unmarshal(m, b)
......@@ -2724,7 +2724,7 @@ func (m *PullImageRequest) Reset() { *m = PullImageRequest{} }
func (m *PullImageRequest) String() string { return proto.CompactTextString(m) }
func (*PullImageRequest) ProtoMessage() {}
func (*PullImageRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{47}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{47}
}
func (m *PullImageRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PullImageRequest.Unmarshal(m, b)
......@@ -2780,7 +2780,7 @@ func (m *PullImageResponse) Reset() { *m = PullImageResponse{} }
func (m *PullImageResponse) String() string { return proto.CompactTextString(m) }
func (*PullImageResponse) ProtoMessage() {}
func (*PullImageResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{48}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{48}
}
func (m *PullImageResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PullImageResponse.Unmarshal(m, b)
......@@ -2834,7 +2834,7 @@ func (m *RemoveImageRequest) Reset() { *m = RemoveImageRequest{} }
func (m *RemoveImageRequest) String() string { return proto.CompactTextString(m) }
func (*RemoveImageRequest) ProtoMessage() {}
func (*RemoveImageRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{49}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{49}
}
func (m *RemoveImageRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RemoveImageRequest.Unmarshal(m, b)
......@@ -2880,7 +2880,7 @@ func (m *RemoveImageResponse) Reset() { *m = RemoveImageResponse{} }
func (m *RemoveImageResponse) String() string { return proto.CompactTextString(m) }
func (*RemoveImageResponse) ProtoMessage() {}
func (*RemoveImageResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{50}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{50}
}
func (m *RemoveImageResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RemoveImageResponse.Unmarshal(m, b)
......@@ -2924,7 +2924,7 @@ func (m *ImageFsInfoRequest) Reset() { *m = ImageFsInfoRequest{} }
func (m *ImageFsInfoRequest) String() string { return proto.CompactTextString(m) }
func (*ImageFsInfoRequest) ProtoMessage() {}
func (*ImageFsInfoRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{51}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{51}
}
func (m *ImageFsInfoRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ImageFsInfoRequest.Unmarshal(m, b)
......@@ -2957,7 +2957,7 @@ func (m *UInt64Value) Reset() { *m = UInt64Value{} }
func (m *UInt64Value) String() string { return proto.CompactTextString(m) }
func (*UInt64Value) ProtoMessage() {}
func (*UInt64Value) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{52}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{52}
}
func (m *UInt64Value) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_UInt64Value.Unmarshal(m, b)
......@@ -2997,7 +2997,7 @@ func (m *StorageIdentifier) Reset() { *m = StorageIdentifier{} }
func (m *StorageIdentifier) String() string { return proto.CompactTextString(m) }
func (*StorageIdentifier) ProtoMessage() {}
func (*StorageIdentifier) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{53}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{53}
}
func (m *StorageIdentifier) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_StorageIdentifier.Unmarshal(m, b)
......@@ -3047,7 +3047,7 @@ func (m *FilesystemUsage) Reset() { *m = FilesystemUsage{} }
func (m *FilesystemUsage) String() string { return proto.CompactTextString(m) }
func (*FilesystemUsage) ProtoMessage() {}
func (*FilesystemUsage) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{54}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{54}
}
func (m *FilesystemUsage) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_FilesystemUsage.Unmarshal(m, b)
......@@ -3109,7 +3109,7 @@ func (m *ImageFsInfoResponse) Reset() { *m = ImageFsInfoResponse{} }
func (m *ImageFsInfoResponse) String() string { return proto.CompactTextString(m) }
func (*ImageFsInfoResponse) ProtoMessage() {}
func (*ImageFsInfoResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_45c151dee08c5805, []int{55}
return fileDescriptor_isula_image_d11549ceb17c7287, []int{55}
}
func (m *ImageFsInfoResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ImageFsInfoResponse.Unmarshal(m, b)
......@@ -3150,6 +3150,98 @@ func (m *ImageFsInfoResponse) GetCc() uint32 {
return 0
}
type TagImageRequest struct {
SrcName *ImageSpec `protobuf:"bytes,1,opt,name=srcName,proto3" json:"srcName,omitempty"`
DestName *ImageSpec `protobuf:"bytes,2,opt,name=destName,proto3" json:"destName,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *TagImageRequest) Reset() { *m = TagImageRequest{} }
func (m *TagImageRequest) String() string { return proto.CompactTextString(m) }
func (*TagImageRequest) ProtoMessage() {}
func (*TagImageRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_d11549ceb17c7287, []int{56}
}
func (m *TagImageRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TagImageRequest.Unmarshal(m, b)
}
func (m *TagImageRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_TagImageRequest.Marshal(b, m, deterministic)
}
func (dst *TagImageRequest) XXX_Merge(src proto.Message) {
xxx_messageInfo_TagImageRequest.Merge(dst, src)
}
func (m *TagImageRequest) XXX_Size() int {
return xxx_messageInfo_TagImageRequest.Size(m)
}
func (m *TagImageRequest) XXX_DiscardUnknown() {
xxx_messageInfo_TagImageRequest.DiscardUnknown(m)
}
var xxx_messageInfo_TagImageRequest proto.InternalMessageInfo
func (m *TagImageRequest) GetSrcName() *ImageSpec {
if m != nil {
return m.SrcName
}
return nil
}
func (m *TagImageRequest) GetDestName() *ImageSpec {
if m != nil {
return m.DestName
}
return nil
}
type TagImageResponse struct {
Errmsg string `protobuf:"bytes,1,opt,name=errmsg,proto3" json:"errmsg,omitempty"`
Cc uint32 `protobuf:"varint,2,opt,name=cc,proto3" json:"cc,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *TagImageResponse) Reset() { *m = TagImageResponse{} }
func (m *TagImageResponse) String() string { return proto.CompactTextString(m) }
func (*TagImageResponse) ProtoMessage() {}
func (*TagImageResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_isula_image_d11549ceb17c7287, []int{57}
}
func (m *TagImageResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TagImageResponse.Unmarshal(m, b)
}
func (m *TagImageResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_TagImageResponse.Marshal(b, m, deterministic)
}
func (dst *TagImageResponse) XXX_Merge(src proto.Message) {
xxx_messageInfo_TagImageResponse.Merge(dst, src)
}
func (m *TagImageResponse) XXX_Size() int {
return xxx_messageInfo_TagImageResponse.Size(m)
}
func (m *TagImageResponse) XXX_DiscardUnknown() {
xxx_messageInfo_TagImageResponse.DiscardUnknown(m)
}
var xxx_messageInfo_TagImageResponse proto.InternalMessageInfo
func (m *TagImageResponse) GetErrmsg() string {
if m != nil {
return m.Errmsg
}
return ""
}
func (m *TagImageResponse) GetCc() uint32 {
if m != nil {
return m.Cc
}
return 0
}
func init() {
proto.RegisterType((*HealthCheckRequest)(nil), "isula.HealthCheckRequest")
proto.RegisterType((*HealthCheckResponse)(nil), "isula.HealthCheckResponse")
......@@ -3213,6 +3305,8 @@ func init() {
proto.RegisterType((*StorageIdentifier)(nil), "isula.StorageIdentifier")
proto.RegisterType((*FilesystemUsage)(nil), "isula.FilesystemUsage")
proto.RegisterType((*ImageFsInfoResponse)(nil), "isula.ImageFsInfoResponse")
proto.RegisterType((*TagImageRequest)(nil), "isula.TagImageRequest")
proto.RegisterType((*TagImageResponse)(nil), "isula.TagImageResponse")
proto.RegisterEnum("isula.Protocol", Protocol_name, Protocol_value)
proto.RegisterEnum("isula.MountPropagation", MountPropagation_name, MountPropagation_value)
}
......@@ -3272,6 +3366,8 @@ type ImageServiceClient interface {
Logout(ctx context.Context, in *LogoutRequest, opts ...grpc.CallOption) (*LogoutResponse, error)
// health check service
HealthCheck(ctx context.Context, in *HealthCheckRequest, opts ...grpc.CallOption) (*HealthCheckResponse, error)
// Add a tag to the image
TagImage(ctx context.Context, in *TagImageRequest, opts ...grpc.CallOption) (*TagImageResponse, error)
}
type imageServiceClient struct {
......@@ -3453,6 +3549,15 @@ func (c *imageServiceClient) HealthCheck(ctx context.Context, in *HealthCheckReq
return out, nil
}
func (c *imageServiceClient) TagImage(ctx context.Context, in *TagImageRequest, opts ...grpc.CallOption) (*TagImageResponse, error) {
out := new(TagImageResponse)
err := c.cc.Invoke(ctx, "/isula.ImageService/TagImage", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
// ImageServiceServer is the server API for ImageService service.
type ImageServiceServer interface {
// ListImages lists existing images.
......@@ -3498,6 +3603,8 @@ type ImageServiceServer interface {
Logout(context.Context, *LogoutRequest) (*LogoutResponse, error)
// health check service
HealthCheck(context.Context, *HealthCheckRequest) (*HealthCheckResponse, error)
// Add a tag to the image
TagImage(context.Context, *TagImageRequest) (*TagImageResponse, error)
}
func RegisterImageServiceServer(s *grpc.Server, srv ImageServiceServer) {
......@@ -3846,6 +3953,24 @@ func _ImageService_HealthCheck_Handler(srv interface{}, ctx context.Context, dec
return interceptor(ctx, in, info, handler)
}
func _ImageService_TagImage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(TagImageRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(ImageServiceServer).TagImage(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/isula.ImageService/TagImage",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(ImageServiceServer).TagImage(ctx, req.(*TagImageRequest))
}
return interceptor(ctx, in, info, handler)
}
var _ImageService_serviceDesc = grpc.ServiceDesc{
ServiceName: "isula.ImageService",
HandlerType: (*ImageServiceServer)(nil),
......@@ -3926,182 +4051,190 @@ var _ImageService_serviceDesc = grpc.ServiceDesc{
MethodName: "HealthCheck",
Handler: _ImageService_HealthCheck_Handler,
},
{
MethodName: "TagImage",
Handler: _ImageService_TagImage_Handler,
},
},
Streams: []grpc.StreamDesc{},
Metadata: "isula/isula_image.proto",
}
func init() {
proto.RegisterFile("isula/isula_image.proto", fileDescriptor_isula_image_45c151dee08c5805)
}
var fileDescriptor_isula_image_45c151dee08c5805 = []byte{
// 2669 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x39, 0x4b, 0x6f, 0x23, 0xc7,
0xd1, 0x22, 0x29, 0x4a, 0x64, 0x51, 0x94, 0xa8, 0x96, 0xbc, 0xa2, 0xb8, 0xbb, 0xf6, 0xee, 0xac,
0xfd, 0xed, 0x7e, 0x1b, 0x44, 0xb6, 0x69, 0x3b, 0xbb, 0xb6, 0xb1, 0x86, 0x65, 0xed, 0xc3, 0x0c,
0xf4, 0x20, 0x46, 0x92, 0xb1, 0x80, 0x01, 0x0f, 0x46, 0x33, 0x4d, 0x6a, 0xb2, 0xe4, 0xf4, 0xa4,
0xbb, 0x47, 0x96, 0x72, 0x0a, 0x0c, 0xe4, 0x96, 0x7b, 0xce, 0xb9, 0x07, 0xc8, 0x3d, 0xa7, 0xdc,
0x83, 0x04, 0x39, 0xe4, 0x27, 0xe4, 0x87, 0x04, 0xfd, 0x1a, 0xf6, 0xf0, 0xb1, 0xa2, 0x7c, 0x19,
0x4c, 0x55, 0x77, 0x55, 0x57, 0xd7, 0xab, 0xab, 0xab, 0x61, 0x2b, 0x62, 0xe9, 0xc0, 0xff, 0x50,
0x7e, 0xbd, 0x68, 0xe8, 0xf7, 0xf1, 0x4e, 0x42, 0x09, 0x27, 0xa8, 0x2c, 0x51, 0xce, 0x26, 0xa0,
0x6f, 0xb1, 0x3f, 0xe0, 0xe7, 0x7b, 0xe7, 0x38, 0x78, 0xe3, 0xe2, 0xdf, 0xa6, 0x98, 0x71, 0xe7,
0x19, 0x6c, 0xe4, 0xb0, 0x2c, 0x21, 0x31, 0xc3, 0xe8, 0x16, 0x2c, 0x61, 0x4a, 0x87, 0xac, 0xdf,
0x2c, 0xdc, 0x2b, 0x3c, 0xaa, 0xba, 0x1a, 0x42, 0xab, 0x50, 0x0c, 0x82, 0x66, 0xf1, 0x5e, 0xe1,
0x51, 0xdd, 0x2d, 0x06, 0x81, 0xf3, 0x03, 0xac, 0xec, 0x93, 0x7e, 0x14, 0x6b, 0x76, 0x82, 0x8e,
0x61, 0x7a, 0x81, 0xa9, 0xa1, 0x53, 0x10, 0x6a, 0x41, 0x25, 0x65, 0x98, 0xc6, 0xfe, 0x10, 0x4b,
0xea, 0xaa, 0x9b, 0xc1, 0x62, 0x2c, 0xf1, 0x19, 0xfb, 0x91, 0xd0, 0xb0, 0x59, 0x52, 0x63, 0x06,
0x76, 0x9e, 0x40, 0x5d, 0xf3, 0xbf, 0xa1, 0x60, 0x0f, 0x25, 0x21, 0x49, 0xf9, 0x35, 0x92, 0x39,
0x4f, 0x61, 0xd5, 0x4c, 0xbc, 0xe1, 0x12, 0x7f, 0x28, 0xc0, 0xad, 0x3d, 0x12, 0x73, 0x3f, 0x8a,
0x31, 0x7d, 0x71, 0x99, 0x10, 0x9a, 0x2d, 0xb6, 0x05, 0xcb, 0x62, 0x6b, 0x5e, 0x14, 0x1a, 0x1e,
0x02, 0xec, 0x84, 0x82, 0x37, 0x49, 0x79, 0x92, 0x72, 0xad, 0x05, 0x0d, 0xa1, 0x06, 0x94, 0xd2,
0x48, 0x6d, 0xbf, 0xee, 0x8a, 0x5f, 0x81, 0xe9, 0x47, 0x61, 0x73, 0x51, 0x61, 0xfa, 0x91, 0xa2,
0xed, 0xf5, 0x18, 0xe6, 0xcd, 0xb2, 0x44, 0x6a, 0xc8, 0xd9, 0x85, 0xad, 0x09, 0x31, 0x6e, 0xb8,
0x95, 0xa7, 0xd0, 0xd8, 0x27, 0x7e, 0xd8, 0x11, 0x5e, 0x63, 0xf6, 0x80, 0x60, 0xb1, 0x17, 0x0d,
0xb0, 0xa6, 0x94, 0xff, 0x42, 0x28, 0xee, 0xf7, 0xb5, 0xec, 0xe2, 0xd7, 0x39, 0x01, 0x64, 0x51,
0x8a, 0x65, 0x89, 0x5a, 0x97, 0xa4, 0xdc, 0x5a, 0x57, 0x41, 0x96, 0x3c, 0xc5, 0x29, 0xf2, 0x94,
0x32, 0x79, 0x5a, 0xd0, 0x7c, 0x45, 0xfd, 0xe4, 0x3c, 0xa4, 0xd1, 0x05, 0xa6, 0xc7, 0xdc, 0xe7,
0x29, 0x33, 0x1e, 0xfb, 0x3d, 0x6c, 0x4f, 0x19, 0x1b, 0x6d, 0x98, 0x49, 0x4c, 0x66, 0x65, 0x09,
0xcd, 0xbd, 0xf0, 0x67, 0xd0, 0xb2, 0x98, 0x1f, 0x60, 0xee, 0x87, 0x3e, 0xf7, 0xaf, 0x33, 0xab,
0xf3, 0xdf, 0x02, 0xdc, 0x9e, 0x4a, 0xa7, 0xc5, 0xda, 0x87, 0xca, 0x50, 0xe3, 0x9a, 0x85, 0x7b,
0xa5, 0x47, 0xb5, 0xf6, 0x47, 0x3b, 0x32, 0x2a, 0x77, 0xde, 0x42, 0xb5, 0x63, 0x10, 0x2f, 0x62,
0x4e, 0xaf, 0xdc, 0x8c, 0x83, 0xb0, 0x8c, 0x15, 0x48, 0xf2, 0xdf, 0xda, 0x60, 0x69, 0xca, 0x06,
0x17, 0xcd, 0x06, 0x5b, 0x5f, 0x42, 0x3d, 0xc7, 0x56, 0x98, 0xf4, 0x0d, 0xbe, 0xd2, 0xfb, 0x11,
0xbf, 0x68, 0x13, 0xca, 0x17, 0xfe, 0x20, 0x35, 0xfc, 0x15, 0xf0, 0x45, 0xf1, 0x69, 0xc1, 0x69,
0x5b, 0x9e, 0xf6, 0x92, 0x9d, 0x32, 0xcb, 0x5b, 0x66, 0xaa, 0xe6, 0x35, 0x34, 0x27, 0x69, 0xb4,
0x5a, 0x36, 0xa1, 0x9c, 0x0a, 0x84, 0x26, 0x51, 0xc0, 0xdc, 0xb6, 0x7a, 0x65, 0x85, 0xdf, 0xe9,
0x90, 0xa4, 0xf1, 0xf5, 0xe1, 0xb7, 0x09, 0xe5, 0x1e, 0xa1, 0x81, 0xda, 0x5a, 0xc5, 0x55, 0x40,
0x2e, 0x80, 0x0c, 0xa3, 0x1b, 0x06, 0xd0, 0x47, 0xf0, 0x4e, 0xc6, 0xe2, 0x60, 0x1e, 0x51, 0x9c,
0xaf, 0x2d, 0xe9, 0x0f, 0x7e, 0xd6, 0x9a, 0x1f, 0x5b, 0x1c, 0x5c, 0x3c, 0x24, 0x17, 0xd7, 0x1b,
0xc3, 0xde, 0xa9, 0x21, 0xb9, 0xe1, 0xaa, 0x17, 0x16, 0x8b, 0x2e, 0xc5, 0x89, 0x4f, 0xb3, 0x65,
0x37, 0xa1, 0x2c, 0xcf, 0x1d, 0x63, 0x4e, 0x09, 0x08, 0x06, 0x51, 0xa8, 0x4d, 0x59, 0x8c, 0xc2,
0xcc, 0x7b, 0x4b, 0x96, 0xf7, 0xde, 0x87, 0x15, 0xc6, 0x09, 0xf5, 0xfb, 0xd8, 0x23, 0x09, 0x67,
0xcd, 0xc5, 0x7b, 0xa5, 0x47, 0x55, 0xb7, 0xa6, 0x71, 0x47, 0x09, 0x67, 0xce, 0x4f, 0x05, 0xcb,
0x91, 0xb2, 0x85, 0xb5, 0xf0, 0xef, 0x41, 0x4d, 0xda, 0xcd, 0x4b, 0x48, 0x14, 0x73, 0xbd, 0x3e,
0x48, 0x54, 0x57, 0x60, 0xd0, 0x5d, 0x00, 0x29, 0x8d, 0x17, 0x90, 0xb8, 0xa7, 0x85, 0xa9, 0x4a,
0xcc, 0x1e, 0x89, 0x7b, 0xf3, 0x46, 0x8f, 0xb3, 0x05, 0xef, 0xec, 0x47, 0x8c, 0x67, 0x72, 0x64,
0x49, 0xe9, 0x5f, 0x05, 0xb8, 0x35, 0x3e, 0xa2, 0x65, 0x3b, 0x00, 0x08, 0x32, 0xac, 0x8e, 0xfe,
0x5f, 0xea, 0xe8, 0x9f, 0x4e, 0xb2, 0x33, 0x42, 0xa9, 0xd0, 0xb7, 0x18, 0xcc, 0x1b, 0x1d, 0xad,
0x67, 0xb0, 0x36, 0xc6, 0xe6, 0xba, 0x50, 0xaf, 0xd8, 0xa1, 0xfe, 0x3d, 0x54, 0x9f, 0x1f, 0x1e,
0x0b, 0xe5, 0x44, 0x7d, 0xd4, 0x84, 0x65, 0x75, 0x5a, 0x2a, 0xf9, 0xab, 0xae, 0x01, 0xc5, 0xd9,
0xcd, 0xb0, 0x4f, 0x83, 0x73, 0xcc, 0x9a, 0x45, 0x39, 0x94, 0xc1, 0x82, 0x8a, 0x24, 0x3c, 0x22,
0x31, 0x6b, 0x96, 0x14, 0x95, 0x06, 0x9d, 0x3f, 0x15, 0xa0, 0xd6, 0x25, 0x94, 0x1f, 0xf8, 0x49,
0x12, 0xc5, 0x7d, 0xf4, 0x0b, 0xa8, 0xc8, 0x52, 0x25, 0x20, 0x03, 0x29, 0xdd, 0x6a, 0x7b, 0x4d,
0x2b, 0xa8, 0xab, 0xd1, 0x6e, 0x36, 0x01, 0x7d, 0x00, 0xab, 0x99, 0x3a, 0x3c, 0x71, 0xda, 0x49,
0xe1, 0xcb, 0x6e, 0x3d, 0xc3, 0x0a, 0xd6, 0xe8, 0x36, 0x54, 0xcf, 0x09, 0xe3, 0x6a, 0x46, 0x49,
0xce, 0xa8, 0x08, 0x84, 0x1c, 0xdc, 0x82, 0x65, 0x39, 0x18, 0x25, 0xd2, 0xb8, 0x55, 0x77, 0x49,
0x80, 0x9d, 0xc4, 0xf9, 0x47, 0x01, 0xca, 0x32, 0x1a, 0xc7, 0x96, 0xf1, 0xf9, 0xb9, 0xd6, 0x9b,
0xb5, 0x8c, 0xcf, 0xcf, 0x47, 0xcb, 0x88, 0x19, 0xba, 0xb2, 0x91, 0xcb, 0x88, 0xc1, 0x16, 0x54,
0x28, 0xf6, 0x43, 0x12, 0x0f, 0xae, 0xa4, 0x08, 0x15, 0x37, 0x83, 0xd1, 0x43, 0x58, 0x63, 0x78,
0x10, 0xc5, 0xe9, 0xa5, 0x47, 0xf1, 0xc0, 0x3f, 0xc3, 0x03, 0x29, 0x4a, 0xc5, 0x5d, 0xd5, 0x68,
0x57, 0x61, 0xd1, 0xe7, 0x50, 0x4b, 0x28, 0x49, 0xfc, 0xbe, 0x2f, 0x94, 0x27, 0xcf, 0xfe, 0xd5,
0xf6, 0x96, 0xd6, 0x8f, 0x94, 0xb5, 0x3b, 0x1a, 0x76, 0xed, 0xb9, 0xce, 0x6f, 0x60, 0xed, 0xd0,
0x1f, 0x62, 0x96, 0xf8, 0x81, 0x08, 0xa2, 0x88, 0xc4, 0x22, 0xd2, 0xa4, 0xbc, 0x31, 0xe6, 0x3f,
0x12, 0xfa, 0x46, 0x6e, 0xaa, 0xe2, 0xd6, 0x04, 0xee, 0x50, 0xa1, 0xd0, 0x36, 0x54, 0xd4, 0x96,
0x74, 0xd8, 0x56, 0x5c, 0xa9, 0xac, 0x6e, 0x14, 0x66, 0x43, 0x51, 0x12, 0xe8, 0x0d, 0x2d, 0x2b,
0xc5, 0x05, 0x8e, 0x03, 0xd0, 0x89, 0xf9, 0xaf, 0x3e, 0xfd, 0x4e, 0xb8, 0xd0, 0xc8, 0xb1, 0x04,
0xff, 0x92, 0x76, 0x2c, 0xc7, 0x87, 0xfa, 0xf1, 0x8b, 0x7d, 0xb1, 0x39, 0x2d, 0x0d, 0x82, 0x45,
0x51, 0x06, 0x9a, 0x1a, 0x43, 0xfc, 0x0b, 0x1c, 0x25, 0x83, 0xec, 0x74, 0x13, 0xff, 0x02, 0xc7,
0xaf, 0x92, 0x2c, 0x67, 0x88, 0x7f, 0xb1, 0xc4, 0x00, 0x5f, 0x68, 0xb5, 0x55, 0x5d, 0x05, 0x38,
0xbf, 0x2f, 0xc1, 0x6d, 0xb9, 0xc2, 0xb1, 0x1f, 0x87, 0x67, 0xe4, 0xf2, 0x18, 0x07, 0x29, 0x8d,
0xf8, 0x95, 0x88, 0x05, 0x7c, 0xc9, 0xd1, 0x1e, 0xac, 0xc7, 0x46, 0x25, 0x9e, 0x71, 0x4f, 0xb1,
0x7c, 0xad, 0x7d, 0x4b, 0xeb, 0x74, 0x4c, 0x65, 0x6e, 0x23, 0xce, 0x23, 0x18, 0x7a, 0x36, 0xb2,
0x9d, 0x61, 0x51, 0x94, 0x2c, 0x36, 0x35, 0x8b, 0xdc, 0x2e, 0x33, 0x8b, 0x1a, 0xf2, 0x8f, 0xa1,
0x46, 0xd3, 0xd8, 0xf3, 0x99, 0x27, 0x37, 0x5f, 0x92, 0xa4, 0xeb, 0x9a, 0x74, 0xa4, 0x44, 0xb7,
0x4a, 0xd3, 0x78, 0x97, 0x9d, 0x0a, 0xa5, 0x3c, 0x84, 0x35, 0xe3, 0x39, 0x1e, 0x25, 0x84, 0xf7,
0x98, 0xf1, 0x16, 0x83, 0x76, 0x25, 0x16, 0x7d, 0x08, 0x1b, 0x2c, 0x4d, 0x92, 0x01, 0x1e, 0xe2,
0x98, 0xfb, 0x03, 0xaf, 0x4f, 0x49, 0x9a, 0xb0, 0x66, 0xf9, 0x5e, 0xe9, 0x51, 0xc9, 0x45, 0xf6,
0xd0, 0x2b, 0x39, 0x82, 0xde, 0x05, 0x48, 0x68, 0x74, 0x11, 0x0d, 0x70, 0x1f, 0x87, 0xcd, 0x25,
0xc9, 0xd4, 0xc2, 0xa0, 0x8f, 0x60, 0x93, 0xe1, 0x20, 0x20, 0xc3, 0xc4, 0x4b, 0x28, 0x11, 0x55,
0xa0, 0xf2, 0xf5, 0x65, 0xa9, 0x75, 0xa4, 0xc7, 0xba, 0x6a, 0x48, 0x78, 0xbd, 0xf3, 0xc7, 0xa2,
0xc8, 0x92, 0x71, 0x7a, 0xd9, 0x25, 0xa1, 0xb6, 0x82, 0xce, 0x23, 0x0f, 0xa0, 0x1e, 0x48, 0x81,
0x3c, 0x91, 0xbd, 0xb3, 0x44, 0xbd, 0xa2, 0x90, 0x5d, 0x89, 0x43, 0x07, 0xd0, 0x60, 0xda, 0x68,
0x22, 0x5b, 0x0b, 0xab, 0x69, 0xed, 0x3a, 0x59, 0xd6, 0x9c, 0x69, 0x5f, 0x77, 0x8d, 0x4d, 0x18,
0x7c, 0x99, 0x5d, 0xb1, 0x80, 0x0f, 0x54, 0x16, 0xaa, 0xb5, 0xff, 0xdf, 0xe6, 0x32, 0x2e, 0xe2,
0xce, 0xb1, 0x9a, 0xab, 0xf2, 0xae, 0xa1, 0x6c, 0x7d, 0x01, 0x2b, 0xf6, 0xc0, 0x8d, 0x8a, 0x26,
0x0a, 0x68, 0xb4, 0xca, 0xc1, 0x78, 0x0d, 0x57, 0xb0, 0x4e, 0x41, 0x7d, 0x09, 0xd0, 0xd5, 0xb5,
0xb8, 0x04, 0xdc, 0x81, 0x6a, 0xe6, 0x7c, 0xda, 0xf9, 0x47, 0x08, 0x91, 0x60, 0x7d, 0xce, 0xf1,
0x30, 0xe1, 0xfa, 0x88, 0x32, 0xa0, 0xf3, 0x97, 0x45, 0x68, 0x4c, 0x68, 0xff, 0xb3, 0x5c, 0x11,
0x2a, 0x14, 0xba, 0x6d, 0xb2, 0xec, 0x84, 0x7c, 0x56, 0xb5, 0xd9, 0x52, 0x31, 0x6f, 0x5f, 0xdd,
0x0c, 0x2c, 0x0c, 0x3a, 0x20, 0x7d, 0x2f, 0x8c, 0x28, 0x0e, 0x38, 0xa1, 0x57, 0x5a, 0xc6, 0x95,
0x01, 0xe9, 0x3f, 0x37, 0x38, 0xf4, 0x21, 0x40, 0x18, 0x33, 0x79, 0xf2, 0x46, 0x7d, 0x29, 0x69,
0xad, 0xdd, 0xd0, 0x2b, 0x67, 0x67, 0x8c, 0x5b, 0x0d, 0x63, 0xa6, 0x05, 0x7d, 0x02, 0x75, 0x91,
0xb5, 0xbd, 0xa1, 0x3a, 0x1e, 0x94, 0xf7, 0xd6, 0xda, 0x28, 0x93, 0x36, 0x3b, 0x39, 0xdc, 0x95,
0x64, 0x04, 0x30, 0xf4, 0x25, 0x2c, 0xc9, 0x9c, 0xc9, 0x9a, 0x4b, 0x92, 0xe2, 0xc1, 0xc4, 0xfe,
0xb4, 0x95, 0xf7, 0xe5, 0x2c, 0x65, 0x64, 0x4d, 0x82, 0x7e, 0x0d, 0x35, 0x3f, 0x8e, 0x09, 0xf7,
0x55, 0x40, 0x2f, 0x4b, 0x0e, 0x8f, 0x66, 0x71, 0xd8, 0x1d, 0x4d, 0x55, 0x6c, 0x6c, 0x62, 0xd4,
0x86, 0xb2, 0x8c, 0xf8, 0x66, 0x45, 0xee, 0xf6, 0xce, 0xdb, 0x5c, 0xce, 0x55, 0x53, 0x5b, 0x9f,
0x43, 0xcd, 0x12, 0xeb, 0x26, 0x2e, 0xd6, 0xfa, 0x0a, 0x1a, 0xe3, 0xf2, 0xdc, 0xc8, 0x45, 0xef,
0x43, 0x55, 0x5e, 0xe0, 0x8e, 0x13, 0x1c, 0x4c, 0xaf, 0xe2, 0x9c, 0xcf, 0xa0, 0x26, 0xa7, 0xbc,
0x8c, 0x06, 0x1c, 0x53, 0xf4, 0x7f, 0xf6, 0xa4, 0x91, 0x39, 0x33, 0x2e, 0x86, 0xec, 0x14, 0xd6,
0x45, 0x8d, 0x23, 0xf1, 0xa6, 0x58, 0x42, 0x8f, 0x61, 0xa9, 0x27, 0xd9, 0x68, 0x6a, 0x64, 0x53,
0xab, 0x05, 0x5c, 0x3d, 0x43, 0x48, 0x13, 0x9c, 0xe3, 0xe0, 0x8d, 0xa9, 0x50, 0x24, 0xe0, 0xfc,
0xbd, 0x00, 0x35, 0xab, 0x6d, 0x21, 0xcf, 0x07, 0xcc, 0xb8, 0xae, 0x4e, 0xe4, 0xbf, 0xf0, 0xdb,
0x28, 0xe6, 0x98, 0x5e, 0xf8, 0x03, 0x49, 0x5c, 0x72, 0x33, 0x58, 0x44, 0x0e, 0x8f, 0x86, 0x98,
0xa4, 0xaa, 0x34, 0x28, 0xb9, 0x06, 0x54, 0x95, 0xa8, 0x4f, 0xb9, 0x97, 0x60, 0x1a, 0x11, 0x75,
0xff, 0x2e, 0x89, 0x4a, 0xd4, 0xa7, 0xbc, 0x2b, 0x51, 0x82, 0x98, 0x62, 0x4e, 0x23, 0xcc, 0xe4,
0x61, 0x5c, 0x76, 0x0d, 0x88, 0x1e, 0xc3, 0x3a, 0xbe, 0x8c, 0xb8, 0x47, 0x62, 0x2f, 0x8d, 0xcf,
0xa5, 0x7c, 0x57, 0x3a, 0xa5, 0xae, 0x89, 0x81, 0xa3, 0xf8, 0xd4, 0xa0, 0x9d, 0xbf, 0x15, 0xa1,
0xdc, 0xb1, 0x0a, 0xe4, 0x42, 0x56, 0x20, 0xdf, 0x86, 0x2a, 0xc5, 0x09, 0xf1, 0xb8, 0xdf, 0xcf,
0x8a, 0x2a, 0x81, 0x38, 0xf1, 0xfb, 0x4c, 0xc8, 0x27, 0x07, 0xc3, 0xa8, 0x8f, 0x19, 0x37, 0x95,
0x55, 0x4d, 0xe0, 0x9e, 0x2b, 0x94, 0x50, 0x06, 0x8b, 0x7e, 0x87, 0xa5, 0xe8, 0x8b, 0xae, 0xfc,
0x47, 0x0f, 0x54, 0x6a, 0x29, 0xcf, 0x3a, 0x6a, 0x64, 0xb6, 0xb1, 0x9b, 0x34, 0x4b, 0x63, 0x4d,
0x9a, 0x26, 0x2c, 0x07, 0x14, 0xfb, 0x1c, 0x87, 0x3a, 0xf3, 0x1b, 0x50, 0x14, 0xa4, 0x03, 0xe2,
0x87, 0x38, 0x94, 0xce, 0x5e, 0x75, 0x35, 0x84, 0xde, 0x87, 0x45, 0x96, 0xe0, 0xa0, 0x59, 0x9d,
0xe1, 0x21, 0x72, 0x14, 0x7d, 0x0a, 0x35, 0xa5, 0x11, 0x65, 0x65, 0xc8, 0x39, 0x84, 0xdd, 0x99,
0xb2, 0xa7, 0x39, 0x67, 0x80, 0x6c, 0xb7, 0xd2, 0x95, 0xf6, 0xfb, 0xb0, 0x24, 0xbd, 0xce, 0x54,
0xd9, 0x2b, 0xf6, 0x9a, 0xae, 0x1e, 0x9b, 0xfb, 0x7a, 0xf9, 0x1d, 0x20, 0x25, 0xac, 0xdd, 0x7d,
0x98, 0xd7, 0xf1, 0x85, 0xbe, 0x2e, 0x30, 0x3d, 0x23, 0xcc, 0xd4, 0xd6, 0x06, 0x74, 0xfe, 0x53,
0x80, 0x8d, 0x1c, 0x63, 0x2d, 0xbd, 0x93, 0xe7, 0x9c, 0x17, 0x5e, 0x73, 0x7d, 0x0a, 0x8b, 0x51,
0xdc, 0x23, 0xd2, 0x2b, 0x6a, 0xed, 0xf7, 0x73, 0x8b, 0xe7, 0xb8, 0xed, 0x74, 0xe2, 0x1e, 0x51,
0x89, 0x49, 0x52, 0xcc, 0xdd, 0x1f, 0x78, 0x02, 0xd5, 0x8c, 0xf4, 0x46, 0x39, 0xe4, 0x0b, 0x68,
0x48, 0x39, 0x04, 0xf5, 0x0d, 0x95, 0xe5, 0x1c, 0xc1, 0xba, 0x45, 0xab, 0xf5, 0x81, 0xb4, 0xff,
0xe8, 0x13, 0x52, 0x7a, 0xcb, 0xbc, 0xb6, 0xfb, 0x67, 0x01, 0x60, 0x37, 0xe5, 0xe7, 0xfa, 0x40,
0xb1, 0x1d, 0xbb, 0xf0, 0x96, 0xee, 0x63, 0x31, 0xdf, 0x7d, 0x14, 0x22, 0xf8, 0x29, 0x3f, 0x37,
0x65, 0xa7, 0xf8, 0x17, 0xf7, 0x02, 0x75, 0xf9, 0xf1, 0xfc, 0x30, 0xa4, 0x98, 0x31, 0x5d, 0x7f,
0xd6, 0x15, 0x76, 0x57, 0x21, 0xc5, 0xb4, 0x28, 0xc4, 0x31, 0x17, 0x55, 0x0c, 0x27, 0x6f, 0xb0,
0x2a, 0xdc, 0xab, 0x6e, 0xdd, 0x60, 0x4f, 0x04, 0x52, 0x4c, 0xa3, 0xb8, 0x1f, 0x31, 0x4e, 0xcd,
0x34, 0x15, 0x78, 0x75, 0x83, 0x95, 0xd3, 0x9c, 0x3f, 0x17, 0xa0, 0xd1, 0x4d, 0x07, 0x83, 0x5c,
0x83, 0x6e, 0x5e, 0x57, 0xfc, 0x40, 0xef, 0xa2, 0x98, 0x0b, 0xfe, 0x91, 0x7a, 0xf4, 0xc6, 0xbe,
0x82, 0x55, 0xa6, 0xce, 0x25, 0x73, 0x54, 0xab, 0xc2, 0x74, 0x6b, 0xc6, 0x11, 0xe8, 0xd6, 0x99,
0x0d, 0x3a, 0xaf, 0x61, 0xdd, 0x12, 0x51, 0x1b, 0xf1, 0x36, 0xa8, 0x5b, 0xb6, 0x47, 0x71, 0xcf,
0xa8, 0x3e, 0x52, 0x33, 0x7a, 0x73, 0x5b, 0xd3, 0x05, 0xa4, 0x9a, 0x15, 0x3f, 0x6b, 0xfb, 0xd3,
0x7b, 0x3e, 0xcf, 0x60, 0x23, 0xc7, 0xf3, 0x86, 0x5d, 0x90, 0x4d, 0x9d, 0x1c, 0x5e, 0x32, 0xcb,
0xdf, 0x9d, 0x07, 0x50, 0x3b, 0x9d, 0x75, 0x09, 0x5a, 0x34, 0x97, 0xa0, 0x87, 0xb0, 0x7e, 0xac,
0xfa, 0x1a, 0x1d, 0xe9, 0x0a, 0xbd, 0x48, 0x5d, 0x7a, 0xd2, 0x34, 0x3b, 0x05, 0xe4, 0xbf, 0xf3,
0xef, 0x02, 0xac, 0xbd, 0x8c, 0x06, 0x98, 0x5d, 0x31, 0x8e, 0x87, 0xb2, 0x73, 0x26, 0x0a, 0x42,
0x71, 0x52, 0x31, 0xee, 0x0f, 0x13, 0x7d, 0xb7, 0x1a, 0x21, 0xd0, 0x13, 0x00, 0xd3, 0x46, 0xd1,
0x75, 0x64, 0xad, 0xdd, 0x34, 0x57, 0x92, 0xf1, 0x35, 0xdd, 0x2a, 0x33, 0x28, 0xf4, 0x31, 0x40,
0xca, 0x70, 0xe8, 0x9d, 0x5d, 0x71, 0xcc, 0xb4, 0xdd, 0x4d, 0x12, 0x3e, 0xb5, 0x6f, 0x24, 0x62,
0xd6, 0x37, 0x62, 0x12, 0xfa, 0x04, 0x6a, 0x51, 0x4c, 0x42, 0x2c, 0x2f, 0x31, 0xa1, 0x2e, 0xeb,
0xa6, 0xd1, 0x80, 0x9a, 0x76, 0xca, 0x70, 0xe8, 0xfc, 0x64, 0x72, 0x9f, 0xd1, 0x9b, 0x56, 0xfb,
0x1e, 0xac, 0x2b, 0x37, 0xe9, 0x65, 0xfb, 0x35, 0x49, 0xdc, 0xdc, 0xca, 0xc6, 0x34, 0xe1, 0x36,
0x22, 0x5d, 0x2d, 0x98, 0xf9, 0xf3, 0xba, 0xd3, 0xe3, 0x3b, 0x50, 0x31, 0x6d, 0x05, 0xb4, 0x0c,
0xa5, 0x93, 0xbd, 0x6e, 0x63, 0x41, 0xfc, 0x9c, 0x3e, 0xef, 0x36, 0x0a, 0x8f, 0x87, 0xd0, 0x18,
0xbf, 0x54, 0xa3, 0x2d, 0xd8, 0xe8, 0xba, 0x47, 0xdd, 0xdd, 0x57, 0xbb, 0x27, 0x9d, 0xa3, 0x43,
0xaf, 0xeb, 0x76, 0xbe, 0xdb, 0x3d, 0x79, 0xd1, 0x58, 0x40, 0xf7, 0xe1, 0xae, 0x3d, 0xf0, 0xed,
0xd1, 0xf1, 0x89, 0x77, 0x72, 0xe4, 0xed, 0x1d, 0x1d, 0x9e, 0xec, 0x76, 0x0e, 0x5f, 0xb8, 0x8d,
0x02, 0xba, 0x0b, 0xdb, 0xf6, 0x94, 0x6f, 0x3a, 0xcf, 0x3b, 0xee, 0x8b, 0x3d, 0xf1, 0xbf, 0xbb,
0xdf, 0x28, 0xb6, 0xff, 0x5a, 0x83, 0x15, 0xe5, 0xb2, 0x98, 0x5e, 0x44, 0x81, 0x50, 0x05, 0x8c,
0x8e, 0x36, 0xd4, 0xb4, 0x1a, 0x45, 0xb9, 0x22, 0xaa, 0xb5, 0x3d, 0x65, 0x44, 0x69, 0xd3, 0x59,
0x40, 0x2f, 0x75, 0xb5, 0xa6, 0x0e, 0x05, 0xb4, 0x3d, 0xed, 0xa0, 0x50, 0x6c, 0x5a, 0xb3, 0xcf,
0x10, 0x67, 0x01, 0x7d, 0xad, 0x0b, 0x43, 0x61, 0x2c, 0xb4, 0x65, 0x4f, 0xb5, 0xdc, 0xbe, 0xd5,
0x9c, 0x1c, 0xb0, 0x39, 0x64, 0x59, 0x21, 0xe3, 0x30, 0x9e, 0xca, 0x32, 0x0e, 0x13, 0x09, 0x44,
0xed, 0xc5, 0x8a, 0xd4, 0x6c, 0x2f, 0x93, 0x19, 0x21, 0xdb, 0xcb, 0x94, 0xc0, 0xb6, 0x74, 0xa2,
0x5c, 0x2f, 0xaf, 0x93, 0x5c, 0x18, 0xe7, 0x75, 0x92, 0xf7, 0x54, 0x67, 0x01, 0xed, 0x42, 0x35,
0x7b, 0xf1, 0xc8, 0x76, 0x34, 0xfe, 0x7a, 0x32, 0x32, 0xcf, 0xc4, 0xe3, 0x88, 0xb3, 0x80, 0x8e,
0x60, 0x35, 0xdf, 0xf9, 0x43, 0x77, 0x66, 0x34, 0x04, 0x15, 0xb3, 0xbb, 0x6f, 0x6d, 0x17, 0x3a,
0x0b, 0xe8, 0x14, 0x1a, 0xe3, 0xbd, 0x51, 0xf4, 0xae, 0x26, 0x9a, 0xd1, 0xad, 0x6d, 0xbd, 0x37,
0x73, 0x3c, 0x63, 0xeb, 0x5a, 0x3d, 0x44, 0xa5, 0x54, 0x74, 0x77, 0x9c, 0x2a, 0xd7, 0x79, 0x6e,
0xbd, 0x3b, 0x6b, 0x38, 0xe3, 0x79, 0x04, 0xab, 0xf9, 0xbe, 0x77, 0xb6, 0xf7, 0xa9, 0x0d, 0xf4,
0xd6, 0xdd, 0x19, 0xa3, 0x53, 0x85, 0x54, 0xdd, 0xfb, 0x49, 0x21, 0x73, 0xcf, 0x03, 0x93, 0x42,
0xe6, 0x9b, 0xfe, 0x63, 0x3c, 0xd5, 0x93, 0xda, 0x24, 0xcf, 0xdc, 0x8b, 0xdf, 0x24, 0xcf, 0xfc,
0x4b, 0xdc, 0x98, 0x8d, 0xf4, 0x43, 0xc8, 0xa4, 0x8d, 0xf2, 0xaf, 0x2a, 0x93, 0x36, 0x1a, 0x7b,
0x41, 0x71, 0x16, 0xd0, 0x6b, 0x58, 0x9f, 0x78, 0x0e, 0x43, 0xef, 0x4d, 0xbe, 0x2e, 0xe5, 0xc3,
0xfe, 0xde, 0xec, 0x09, 0x19, 0xe7, 0x1f, 0x60, 0x63, 0xca, 0xeb, 0x14, 0xba, 0xff, 0xb6, 0x97,
0x2b, 0xc5, 0xdd, 0xb9, 0xfe, 0x71, 0xcb, 0x59, 0x40, 0x9f, 0x42, 0x59, 0xbe, 0xed, 0xa2, 0x8d,
0x2c, 0x56, 0x46, 0x2f, 0xc9, 0xad, 0xcd, 0x3c, 0x32, 0xa3, 0x7a, 0x02, 0x4b, 0xea, 0xbd, 0x16,
0x59, 0x33, 0x46, 0xef, 0xbc, 0xad, 0x77, 0xc6, 0xb0, 0x76, 0xfc, 0xdb, 0x57, 0xc6, 0xed, 0x29,
0x77, 0x8c, 0xb1, 0xf8, 0x9f, 0xf2, 0x30, 0xee, 0x2c, 0x9c, 0x2d, 0xc9, 0x4e, 0xf4, 0x27, 0xff,
0x0b, 0x00, 0x00, 0xff, 0xff, 0x79, 0x6e, 0xf2, 0x47, 0x70, 0x1f, 0x00, 0x00,
proto.RegisterFile("isula/isula_image.proto", fileDescriptor_isula_image_d11549ceb17c7287)
}
var fileDescriptor_isula_image_d11549ceb17c7287 = []byte{
// 2725 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x19, 0xcb, 0x72, 0x1b, 0xc7,
0x91, 0x00, 0x08, 0x12, 0x68, 0xf0, 0x01, 0x0e, 0x69, 0x11, 0x84, 0x24, 0x5b, 0x5a, 0xd9, 0x91,
0xa2, 0x24, 0xb4, 0x4d, 0xdb, 0x91, 0x6c, 0x97, 0x5c, 0xa6, 0xa9, 0x87, 0x99, 0xe2, 0x03, 0xb5,
0x24, 0x5d, 0xae, 0x72, 0x95, 0xb7, 0x56, 0xbb, 0x03, 0x70, 0x23, 0x60, 0x67, 0x33, 0x33, 0x4b,
0x8b, 0x39, 0xa5, 0x5c, 0x95, 0x5b, 0xee, 0x39, 0xe7, 0x9e, 0x2f, 0xc8, 0x29, 0xf7, 0x54, 0x52,
0x39, 0xe4, 0x13, 0x72, 0xce, 0x37, 0xa4, 0xe6, 0x89, 0x59, 0x3c, 0x44, 0xc2, 0x97, 0xad, 0xed,
0x9e, 0xee, 0x9e, 0x9e, 0x7e, 0x4d, 0xcf, 0x0c, 0x6c, 0x26, 0x2c, 0xef, 0x87, 0xef, 0xcb, 0x6f,
0x90, 0x0c, 0xc2, 0x1e, 0xde, 0xce, 0x28, 0xe1, 0x04, 0x55, 0x25, 0xca, 0xdb, 0x00, 0xf4, 0x35,
0x0e, 0xfb, 0xfc, 0x7c, 0xef, 0x1c, 0x47, 0xaf, 0x7c, 0xfc, 0xbb, 0x1c, 0x33, 0xee, 0x3d, 0x81,
0xf5, 0x02, 0x96, 0x65, 0x24, 0x65, 0x18, 0xdd, 0x80, 0x05, 0x4c, 0xe9, 0x80, 0xf5, 0x5a, 0xa5,
0x3b, 0xa5, 0x07, 0x75, 0x5f, 0x43, 0x68, 0x05, 0xca, 0x51, 0xd4, 0x2a, 0xdf, 0x29, 0x3d, 0x58,
0xf6, 0xcb, 0x51, 0xe4, 0x7d, 0x0f, 0x4b, 0x07, 0xa4, 0x97, 0xa4, 0x5a, 0x9c, 0xe0, 0x63, 0x98,
0x5e, 0x60, 0x6a, 0xf8, 0x14, 0x84, 0xda, 0x50, 0xcb, 0x19, 0xa6, 0x69, 0x38, 0xc0, 0x92, 0xbb,
0xee, 0x5b, 0x58, 0x8c, 0x65, 0x21, 0x63, 0x3f, 0x10, 0x1a, 0xb7, 0x2a, 0x6a, 0xcc, 0xc0, 0xde,
0x23, 0x58, 0xd6, 0xf2, 0x67, 0x54, 0xec, 0xbe, 0x64, 0x24, 0x39, 0xbf, 0x42, 0x33, 0xef, 0x31,
0xac, 0x18, 0xc2, 0x19, 0xa7, 0xf8, 0x63, 0x09, 0x6e, 0xec, 0x91, 0x94, 0x87, 0x49, 0x8a, 0xe9,
0xb3, 0xd7, 0x19, 0xa1, 0x76, 0xb2, 0x4d, 0x58, 0x14, 0x4b, 0x0b, 0x92, 0xd8, 0xc8, 0x10, 0xe0,
0x7e, 0x2c, 0x64, 0x93, 0x9c, 0x67, 0x39, 0xd7, 0x56, 0xd0, 0x10, 0x6a, 0x42, 0x25, 0x4f, 0xd4,
0xf2, 0x97, 0x7d, 0xf1, 0x2b, 0x30, 0xbd, 0x24, 0x6e, 0xcd, 0x2b, 0x4c, 0x2f, 0x51, 0xbc, 0xdd,
0x2e, 0xc3, 0xbc, 0x55, 0x95, 0x48, 0x0d, 0x79, 0xbb, 0xb0, 0x39, 0xa6, 0xc6, 0x8c, 0x4b, 0x79,
0x0c, 0xcd, 0x03, 0x12, 0xc6, 0xfb, 0x22, 0x6a, 0xcc, 0x1a, 0x10, 0xcc, 0x77, 0x93, 0x3e, 0xd6,
0x9c, 0xf2, 0x5f, 0x28, 0xc5, 0xc3, 0x9e, 0xd6, 0x5d, 0xfc, 0x7a, 0xa7, 0x80, 0x1c, 0x4e, 0x31,
0x2d, 0x51, 0xf3, 0x92, 0x9c, 0x3b, 0xf3, 0x2a, 0xc8, 0xd1, 0xa7, 0x3c, 0x41, 0x9f, 0x8a, 0xd5,
0xa7, 0x0d, 0xad, 0x17, 0x34, 0xcc, 0xce, 0x63, 0x9a, 0x5c, 0x60, 0x7a, 0xc2, 0x43, 0x9e, 0x33,
0x13, 0xb1, 0xdf, 0xc1, 0xd6, 0x84, 0xb1, 0xe1, 0x82, 0x99, 0xc4, 0x58, 0x2f, 0x4b, 0xe8, 0xda,
0x13, 0x7f, 0x02, 0x6d, 0x47, 0xf8, 0x21, 0xe6, 0x61, 0x1c, 0xf2, 0xf0, 0x2a, 0xb7, 0x7a, 0xff,
0x2d, 0xc1, 0xcd, 0x89, 0x7c, 0x5a, 0xad, 0x03, 0xa8, 0x0d, 0x34, 0xae, 0x55, 0xba, 0x53, 0x79,
0xd0, 0xd8, 0xf9, 0x60, 0x5b, 0x66, 0xe5, 0xf6, 0x1b, 0xb8, 0xb6, 0x0d, 0xe2, 0x59, 0xca, 0xe9,
0xa5, 0x6f, 0x25, 0x08, 0xcf, 0x38, 0x89, 0x24, 0xff, 0x9d, 0x05, 0x56, 0x26, 0x2c, 0x70, 0xde,
0x2c, 0xb0, 0xfd, 0x39, 0x2c, 0x17, 0xc4, 0x0a, 0x97, 0xbe, 0xc2, 0x97, 0x7a, 0x3d, 0xe2, 0x17,
0x6d, 0x40, 0xf5, 0x22, 0xec, 0xe7, 0x46, 0xbe, 0x02, 0x3e, 0x2b, 0x3f, 0x2e, 0x79, 0x3b, 0x4e,
0xa4, 0x3d, 0x67, 0x67, 0xcc, 0x89, 0x96, 0xa9, 0xa6, 0xf9, 0x16, 0x5a, 0xe3, 0x3c, 0xda, 0x2c,
0x1b, 0x50, 0xcd, 0x05, 0x42, 0xb3, 0x28, 0xe0, 0xda, 0xbe, 0x7a, 0xe1, 0xa4, 0xdf, 0xd9, 0x80,
0xe4, 0xe9, 0xd5, 0xe9, 0xb7, 0x01, 0xd5, 0x2e, 0xa1, 0x91, 0x5a, 0x5a, 0xcd, 0x57, 0x40, 0x21,
0x81, 0x8c, 0xa0, 0x19, 0x13, 0xe8, 0x03, 0x78, 0xcb, 0x8a, 0x38, 0xbc, 0x8e, 0x2a, 0xde, 0x97,
0x8e, 0xf6, 0x87, 0x3f, 0x69, 0xce, 0x0f, 0x1d, 0x09, 0x3e, 0x1e, 0x90, 0x8b, 0xab, 0x9d, 0xe1,
0xae, 0xd4, 0xb0, 0xcc, 0x38, 0xeb, 0x85, 0x23, 0xa2, 0x43, 0x71, 0x16, 0x52, 0x3b, 0xed, 0x06,
0x54, 0xe5, 0xbe, 0x63, 0xdc, 0x29, 0x01, 0x21, 0x20, 0x89, 0xb5, 0x2b, 0xcb, 0x49, 0x6c, 0xa3,
0xb7, 0xe2, 0x44, 0xef, 0x5d, 0x58, 0x62, 0x9c, 0xd0, 0xb0, 0x87, 0x03, 0x92, 0x71, 0xd6, 0x9a,
0xbf, 0x53, 0x79, 0x50, 0xf7, 0x1b, 0x1a, 0x77, 0x9c, 0x71, 0xe6, 0xfd, 0x58, 0x72, 0x02, 0xc9,
0x4e, 0xac, 0x95, 0x7f, 0x07, 0x1a, 0xd2, 0x6f, 0x41, 0x46, 0x92, 0x94, 0xeb, 0xf9, 0x41, 0xa2,
0x3a, 0x02, 0x83, 0x6e, 0x03, 0x48, 0x6d, 0x82, 0x88, 0xa4, 0x5d, 0xad, 0x4c, 0x5d, 0x62, 0xf6,
0x48, 0xda, 0xbd, 0x6e, 0xf6, 0x78, 0x9b, 0xf0, 0xd6, 0x41, 0xc2, 0xb8, 0xd5, 0xc3, 0x16, 0xa5,
0x7f, 0x95, 0xe0, 0xc6, 0xe8, 0x88, 0xd6, 0xed, 0x10, 0x20, 0xb2, 0x58, 0x9d, 0xfd, 0xbf, 0xd2,
0xd9, 0x3f, 0x99, 0x65, 0x7b, 0x88, 0x52, 0xa9, 0xef, 0x08, 0xb8, 0x6e, 0x76, 0xb4, 0x9f, 0xc0,
0xea, 0x88, 0x98, 0xab, 0x52, 0xbd, 0xe6, 0xa6, 0xfa, 0x77, 0x50, 0x7f, 0x7a, 0x74, 0x22, 0x8c,
0x93, 0xf4, 0x50, 0x0b, 0x16, 0xd5, 0x6e, 0xa9, 0xf4, 0xaf, 0xfb, 0x06, 0x14, 0x7b, 0x37, 0xc3,
0x21, 0x8d, 0xce, 0x31, 0x6b, 0x95, 0xe5, 0x90, 0x85, 0x05, 0x17, 0xc9, 0x78, 0x42, 0x52, 0xd6,
0xaa, 0x28, 0x2e, 0x0d, 0x7a, 0x7f, 0x2e, 0x41, 0xa3, 0x43, 0x28, 0x3f, 0x0c, 0xb3, 0x2c, 0x49,
0x7b, 0xe8, 0x17, 0x50, 0x93, 0xad, 0x4a, 0x44, 0xfa, 0x52, 0xbb, 0x95, 0x9d, 0x55, 0x6d, 0xa0,
0x8e, 0x46, 0xfb, 0x96, 0x00, 0xbd, 0x07, 0x2b, 0xd6, 0x1c, 0x81, 0xd8, 0xed, 0xa4, 0xf2, 0x55,
0x7f, 0xd9, 0x62, 0x85, 0x68, 0x74, 0x13, 0xea, 0xe7, 0x84, 0x71, 0x45, 0x51, 0x91, 0x14, 0x35,
0x81, 0x90, 0x83, 0x9b, 0xb0, 0x28, 0x07, 0x93, 0x4c, 0x3a, 0xb7, 0xee, 0x2f, 0x08, 0x70, 0x3f,
0xf3, 0xfe, 0x51, 0x82, 0xaa, 0xcc, 0xc6, 0x91, 0x69, 0x42, 0x7e, 0xae, 0xed, 0xe6, 0x4c, 0x13,
0xf2, 0xf3, 0xe1, 0x34, 0x82, 0x42, 0x77, 0x36, 0x72, 0x1a, 0x31, 0xd8, 0x86, 0x1a, 0xc5, 0x61,
0x4c, 0xd2, 0xfe, 0xa5, 0x54, 0xa1, 0xe6, 0x5b, 0x18, 0xdd, 0x87, 0x55, 0x86, 0xfb, 0x49, 0x9a,
0xbf, 0x0e, 0x28, 0xee, 0x87, 0x2f, 0x71, 0x5f, 0xaa, 0x52, 0xf3, 0x57, 0x34, 0xda, 0x57, 0x58,
0xf4, 0x29, 0x34, 0x32, 0x4a, 0xb2, 0xb0, 0x17, 0x0a, 0xe3, 0xc9, 0xbd, 0x7f, 0x65, 0x67, 0x53,
0xdb, 0x47, 0xea, 0xda, 0x19, 0x0e, 0xfb, 0x2e, 0xad, 0xf7, 0x5b, 0x58, 0x3d, 0x0a, 0x07, 0x98,
0x65, 0x61, 0x24, 0x92, 0x28, 0x21, 0xa9, 0xc8, 0x34, 0xa9, 0x6f, 0x8a, 0xf9, 0x0f, 0x84, 0xbe,
0x92, 0x8b, 0xaa, 0xf9, 0x0d, 0x81, 0x3b, 0x52, 0x28, 0xb4, 0x05, 0x35, 0xb5, 0x24, 0x9d, 0xb6,
0x35, 0x5f, 0x1a, 0xab, 0x93, 0xc4, 0x76, 0x28, 0xc9, 0x22, 0xbd, 0xa0, 0x45, 0x65, 0xb8, 0xc8,
0xf3, 0x00, 0xf6, 0x53, 0xfe, 0xeb, 0x8f, 0xbf, 0x11, 0x21, 0x34, 0x0c, 0x2c, 0x21, 0xbf, 0xa2,
0x03, 0xcb, 0x0b, 0x61, 0xf9, 0xe4, 0xd9, 0x81, 0x58, 0x9c, 0xd6, 0x06, 0xc1, 0xbc, 0x68, 0x03,
0x4d, 0x8f, 0x21, 0xfe, 0x05, 0x8e, 0x92, 0xbe, 0xdd, 0xdd, 0xc4, 0xbf, 0xc0, 0xf1, 0xcb, 0xcc,
0xd6, 0x0c, 0xf1, 0x2f, 0xa6, 0xe8, 0xe3, 0x0b, 0x6d, 0xb6, 0xba, 0xaf, 0x00, 0xef, 0x0f, 0x15,
0xb8, 0x29, 0x67, 0x38, 0x09, 0xd3, 0xf8, 0x25, 0x79, 0x7d, 0x82, 0xa3, 0x9c, 0x26, 0xfc, 0x52,
0xe4, 0x02, 0x7e, 0xcd, 0xd1, 0x1e, 0xac, 0xa5, 0xc6, 0x24, 0x81, 0x09, 0x4f, 0x31, 0x7d, 0x63,
0xe7, 0x86, 0xb6, 0xe9, 0x88, 0xc9, 0xfc, 0x66, 0x5a, 0x44, 0x30, 0xf4, 0x64, 0xe8, 0x3b, 0x23,
0xa2, 0x2c, 0x45, 0x6c, 0x68, 0x11, 0x85, 0x55, 0x5a, 0x8f, 0x1a, 0xf6, 0x0f, 0xa1, 0x41, 0xf3,
0x34, 0x08, 0x59, 0x20, 0x17, 0x5f, 0x91, 0xac, 0x6b, 0x9a, 0x75, 0x68, 0x44, 0xbf, 0x4e, 0xf3,
0x74, 0x97, 0x9d, 0x09, 0xa3, 0xdc, 0x87, 0x55, 0x13, 0x39, 0x01, 0x25, 0x84, 0x77, 0x99, 0x89,
0x16, 0x83, 0xf6, 0x25, 0x16, 0xbd, 0x0f, 0xeb, 0x2c, 0xcf, 0xb2, 0x3e, 0x1e, 0xe0, 0x94, 0x87,
0xfd, 0xa0, 0x47, 0x49, 0x9e, 0xb1, 0x56, 0xf5, 0x4e, 0xe5, 0x41, 0xc5, 0x47, 0xee, 0xd0, 0x0b,
0x39, 0x82, 0xde, 0x06, 0xc8, 0x68, 0x72, 0x91, 0xf4, 0x71, 0x0f, 0xc7, 0xad, 0x05, 0x29, 0xd4,
0xc1, 0xa0, 0x0f, 0x60, 0x83, 0xe1, 0x28, 0x22, 0x83, 0x2c, 0xc8, 0x28, 0x11, 0x5d, 0xa0, 0x8a,
0xf5, 0x45, 0x69, 0x75, 0xa4, 0xc7, 0x3a, 0x6a, 0x48, 0x44, 0xbd, 0xf7, 0xa7, 0xb2, 0xa8, 0x92,
0x69, 0xfe, 0xba, 0x43, 0x62, 0xed, 0x05, 0x5d, 0x47, 0xee, 0xc1, 0x72, 0x24, 0x15, 0x0a, 0x44,
0xf5, 0xb6, 0x85, 0x7a, 0x49, 0x21, 0x3b, 0x12, 0x87, 0x0e, 0xa1, 0xc9, 0xb4, 0xd3, 0x44, 0xb5,
0x16, 0x5e, 0xd3, 0xd6, 0xf5, 0x6c, 0xd5, 0x9c, 0xea, 0x5f, 0x7f, 0x95, 0x8d, 0x39, 0x7c, 0x91,
0x5d, 0xb2, 0x88, 0xf7, 0x55, 0x15, 0x6a, 0xec, 0xfc, 0xdc, 0x95, 0x32, 0xaa, 0xe2, 0xf6, 0x89,
0xa2, 0x55, 0x75, 0xd7, 0x70, 0xb6, 0x3f, 0x83, 0x25, 0x77, 0x60, 0xa6, 0xa6, 0x89, 0x02, 0x1a,
0xce, 0x72, 0x38, 0xda, 0xc3, 0x95, 0x9c, 0x5d, 0x50, 0x1f, 0x02, 0x74, 0x77, 0x2d, 0x0e, 0x01,
0xb7, 0xa0, 0x6e, 0x83, 0x4f, 0x07, 0xff, 0x10, 0x21, 0x0a, 0x6c, 0xc8, 0x39, 0x1e, 0x64, 0x5c,
0x6f, 0x51, 0x06, 0xf4, 0xfe, 0x3a, 0x0f, 0xcd, 0x31, 0xeb, 0x7f, 0x52, 0x68, 0x42, 0x85, 0x41,
0xb7, 0x4c, 0x95, 0x1d, 0xd3, 0xcf, 0xe9, 0x36, 0xdb, 0x2a, 0xe7, 0xdd, 0xa3, 0x9b, 0x81, 0x85,
0x43, 0xfb, 0xa4, 0x17, 0xc4, 0x09, 0xc5, 0x11, 0x27, 0xf4, 0x52, 0xeb, 0xb8, 0xd4, 0x27, 0xbd,
0xa7, 0x06, 0x87, 0xde, 0x07, 0x88, 0x53, 0x26, 0x77, 0xde, 0xa4, 0x27, 0x35, 0x6d, 0xec, 0x34,
0xf5, 0xcc, 0x76, 0x8f, 0xf1, 0xeb, 0x71, 0xca, 0xb4, 0xa2, 0x8f, 0x60, 0x59, 0x54, 0xed, 0x60,
0xa0, 0xb6, 0x07, 0x15, 0xbd, 0x8d, 0x1d, 0x64, 0xb5, 0xb5, 0x3b, 0x87, 0xbf, 0x94, 0x0d, 0x01,
0x86, 0x3e, 0x87, 0x05, 0x59, 0x33, 0x59, 0x6b, 0x41, 0x72, 0xdc, 0x1b, 0x5b, 0x9f, 0xf6, 0xf2,
0x81, 0xa4, 0x52, 0x4e, 0xd6, 0x2c, 0xe8, 0x37, 0xd0, 0x08, 0xd3, 0x94, 0xf0, 0x50, 0x25, 0xf4,
0xa2, 0x94, 0xf0, 0x60, 0x9a, 0x84, 0xdd, 0x21, 0xa9, 0x12, 0xe3, 0x32, 0xa3, 0x1d, 0xa8, 0xca,
0x8c, 0x6f, 0xd5, 0xe4, 0x6a, 0x6f, 0xbd, 0x29, 0xe4, 0x7c, 0x45, 0xda, 0xfe, 0x14, 0x1a, 0x8e,
0x5a, 0xb3, 0x84, 0x58, 0xfb, 0x0b, 0x68, 0x8e, 0xea, 0x33, 0x53, 0x88, 0xde, 0x85, 0xba, 0x3c,
0xc0, 0x9d, 0x64, 0x38, 0x9a, 0xdc, 0xc5, 0x79, 0x9f, 0x40, 0x43, 0x92, 0x3c, 0x4f, 0xfa, 0x1c,
0x53, 0xf4, 0x33, 0x97, 0x68, 0xe8, 0x4e, 0x2b, 0xc5, 0xb0, 0x9d, 0xc1, 0x9a, 0xe8, 0x71, 0x24,
0xde, 0x34, 0x4b, 0xe8, 0x21, 0x2c, 0x74, 0xa5, 0x18, 0xcd, 0x8d, 0x5c, 0x6e, 0x35, 0x81, 0xaf,
0x29, 0x84, 0x36, 0xd1, 0x39, 0x8e, 0x5e, 0x99, 0x0e, 0x45, 0x02, 0xde, 0xdf, 0x4b, 0xd0, 0x70,
0xae, 0x2d, 0xe4, 0xfe, 0x80, 0x19, 0xd7, 0xdd, 0x89, 0xfc, 0x17, 0x71, 0x9b, 0xa4, 0x1c, 0xd3,
0x8b, 0xb0, 0x2f, 0x99, 0x2b, 0xbe, 0x85, 0x45, 0xe6, 0xf0, 0x64, 0x80, 0x49, 0xae, 0x5a, 0x83,
0x8a, 0x6f, 0x40, 0xd5, 0x89, 0x86, 0x94, 0x07, 0x19, 0xa6, 0x09, 0x51, 0xe7, 0xef, 0x8a, 0xe8,
0x44, 0x43, 0xca, 0x3b, 0x12, 0x25, 0x98, 0x29, 0xe6, 0x34, 0xc1, 0x4c, 0x6e, 0xc6, 0x55, 0xdf,
0x80, 0xe8, 0x21, 0xac, 0xe1, 0xd7, 0x09, 0x0f, 0x48, 0x1a, 0xe4, 0xe9, 0xb9, 0xd4, 0xef, 0x52,
0x97, 0xd4, 0x55, 0x31, 0x70, 0x9c, 0x9e, 0x19, 0xb4, 0xf7, 0xb7, 0x32, 0x54, 0xf7, 0x9d, 0x06,
0xb9, 0x64, 0x1b, 0xe4, 0x9b, 0x50, 0xa7, 0x38, 0x23, 0x01, 0x0f, 0x7b, 0xb6, 0xa9, 0x12, 0x88,
0xd3, 0xb0, 0xc7, 0x84, 0x7e, 0x72, 0x30, 0x4e, 0x7a, 0x98, 0x71, 0xd3, 0x59, 0x35, 0x04, 0xee,
0xa9, 0x42, 0x09, 0x63, 0xb0, 0xe4, 0xf7, 0x58, 0xaa, 0x3e, 0xef, 0xcb, 0x7f, 0x74, 0x4f, 0x95,
0x96, 0xea, 0xb4, 0xad, 0x46, 0x56, 0x1b, 0xf7, 0x92, 0x66, 0x61, 0xe4, 0x92, 0xa6, 0x05, 0x8b,
0x11, 0xc5, 0x21, 0xc7, 0xb1, 0xae, 0xfc, 0x06, 0x14, 0x0d, 0x69, 0x9f, 0x84, 0x31, 0x8e, 0x65,
0xb0, 0xd7, 0x7d, 0x0d, 0xa1, 0x77, 0x61, 0x9e, 0x65, 0x38, 0x6a, 0xd5, 0xa7, 0x44, 0x88, 0x1c,
0x45, 0x1f, 0x43, 0x43, 0x59, 0x44, 0x79, 0x19, 0x0a, 0x01, 0xe1, 0xde, 0x4c, 0xb9, 0x64, 0xde,
0x4b, 0x40, 0x6e, 0x58, 0xe9, 0x4e, 0xfb, 0x5d, 0x58, 0x90, 0x51, 0x67, 0xba, 0xec, 0x25, 0x77,
0x4e, 0x5f, 0x8f, 0x5d, 0xfb, 0x78, 0xf9, 0x0d, 0x20, 0xa5, 0xac, 0x7b, 0xfb, 0x70, 0xdd, 0xc0,
0x17, 0xf6, 0xba, 0xc0, 0xf4, 0x25, 0x61, 0xa6, 0xb7, 0x36, 0xa0, 0xf7, 0x9f, 0x12, 0xac, 0x17,
0x04, 0x6b, 0xed, 0xbd, 0xa2, 0xe4, 0xa2, 0xf2, 0x5a, 0xea, 0x63, 0x98, 0x4f, 0xd2, 0x2e, 0x91,
0x51, 0xd1, 0xd8, 0x79, 0xb7, 0x30, 0x79, 0x41, 0xda, 0xf6, 0x7e, 0xda, 0x25, 0xaa, 0x30, 0x49,
0x8e, 0x6b, 0xdf, 0x0f, 0x3c, 0x82, 0xba, 0x65, 0x9d, 0xa9, 0x86, 0x7c, 0x06, 0x4d, 0xa9, 0x87,
0xe0, 0x9e, 0xd1, 0x58, 0xde, 0x31, 0xac, 0x39, 0xbc, 0xda, 0x1e, 0x48, 0xc7, 0x8f, 0xde, 0x21,
0x65, 0xb4, 0x5c, 0xd7, 0x77, 0xff, 0x2c, 0x01, 0xec, 0xe6, 0xfc, 0x5c, 0x6f, 0x28, 0x6e, 0x60,
0x97, 0xde, 0x70, 0xfb, 0x58, 0x2e, 0xde, 0x3e, 0x0a, 0x15, 0xc2, 0x9c, 0x9f, 0x9b, 0xb6, 0x53,
0xfc, 0x8b, 0x73, 0x81, 0x3a, 0xfc, 0x04, 0x61, 0x1c, 0x53, 0xcc, 0x98, 0xee, 0x3f, 0x97, 0x15,
0x76, 0x57, 0x21, 0x05, 0x59, 0x12, 0xe3, 0x94, 0x8b, 0x2e, 0x86, 0x93, 0x57, 0x58, 0x35, 0xee,
0x75, 0x7f, 0xd9, 0x60, 0x4f, 0x05, 0x52, 0x90, 0x51, 0xdc, 0x4b, 0x18, 0xa7, 0x86, 0x4c, 0x25,
0xde, 0xb2, 0xc1, 0x4a, 0x32, 0xef, 0x2f, 0x25, 0x68, 0x76, 0xf2, 0x7e, 0xbf, 0x70, 0x41, 0x77,
0xdd, 0x50, 0x7c, 0x4f, 0xaf, 0xa2, 0x5c, 0x48, 0xfe, 0xa1, 0x79, 0xf4, 0xc2, 0xbe, 0x80, 0x15,
0xa6, 0xf6, 0x25, 0xb3, 0x55, 0xab, 0xc6, 0x74, 0x73, 0xca, 0x16, 0xe8, 0x2f, 0x33, 0x17, 0xf4,
0xbe, 0x85, 0x35, 0x47, 0x45, 0xed, 0xc4, 0x9b, 0xa0, 0x4e, 0xd9, 0x01, 0xc5, 0x5d, 0x63, 0xfa,
0x44, 0x51, 0x74, 0xaf, 0xed, 0x4d, 0x1f, 0x90, 0xba, 0xac, 0xf8, 0x49, 0xcb, 0x9f, 0x7c, 0xe7,
0xf3, 0x04, 0xd6, 0x0b, 0x32, 0x67, 0xbc, 0x05, 0xd9, 0xd0, 0xc5, 0xe1, 0x39, 0x73, 0xe2, 0xdd,
0xbb, 0x07, 0x8d, 0xb3, 0x69, 0x87, 0xa0, 0x79, 0x73, 0x08, 0xba, 0x0f, 0x6b, 0x27, 0xea, 0x5e,
0x63, 0x5f, 0x86, 0x42, 0x37, 0x51, 0x87, 0x9e, 0x3c, 0xb7, 0xbb, 0x80, 0xfc, 0xf7, 0xfe, 0x5d,
0x82, 0xd5, 0xe7, 0x49, 0x1f, 0xb3, 0x4b, 0xc6, 0xf1, 0x40, 0xde, 0x9c, 0x89, 0x86, 0x50, 0xec,
0x54, 0x8c, 0x87, 0x83, 0x4c, 0x9f, 0xad, 0x86, 0x08, 0xf4, 0x08, 0xc0, 0x5c, 0xa3, 0xe8, 0x3e,
0xb2, 0xb1, 0xd3, 0x32, 0x47, 0x92, 0xd1, 0x39, 0xfd, 0x3a, 0x33, 0x28, 0xf4, 0x21, 0x40, 0xce,
0x70, 0x1c, 0xbc, 0xbc, 0xe4, 0x98, 0x69, 0xbf, 0x9b, 0x22, 0x7c, 0xe6, 0x9e, 0x48, 0x04, 0xd5,
0x57, 0x82, 0x08, 0x7d, 0x04, 0x8d, 0x24, 0x25, 0x31, 0x96, 0x87, 0x98, 0x58, 0xb7, 0x75, 0x93,
0x78, 0x40, 0x91, 0x9d, 0x31, 0x1c, 0x7b, 0x3f, 0x9a, 0xda, 0x67, 0xec, 0xa6, 0xcd, 0xbe, 0x07,
0x6b, 0x2a, 0x4c, 0xba, 0x76, 0xbd, 0xa6, 0x88, 0x9b, 0x53, 0xd9, 0x88, 0x25, 0xfc, 0x66, 0xa2,
0xbb, 0x05, 0x43, 0x7f, 0xed, 0x70, 0x7a, 0x05, 0xab, 0xa7, 0x61, 0xaf, 0x10, 0x4b, 0x0f, 0x61,
0x91, 0xd1, 0xe8, 0xc8, 0xd4, 0x87, 0x49, 0xd1, 0x64, 0x08, 0xd0, 0x2f, 0xa1, 0x16, 0x63, 0xc6,
0x8f, 0x4c, 0x3f, 0x3c, 0x89, 0xd8, 0x52, 0x88, 0xb2, 0x38, 0x9c, 0x6c, 0xb6, 0x20, 0x7b, 0x78,
0x0b, 0x6a, 0xe6, 0xfe, 0x03, 0x2d, 0x42, 0xe5, 0x74, 0xaf, 0xd3, 0x9c, 0x13, 0x3f, 0x67, 0x4f,
0x3b, 0xcd, 0xd2, 0xc3, 0x01, 0x34, 0x47, 0x4f, 0xff, 0x68, 0x13, 0xd6, 0x3b, 0xfe, 0x71, 0x67,
0xf7, 0xc5, 0xee, 0xe9, 0xfe, 0xf1, 0x51, 0xd0, 0xf1, 0xf7, 0xbf, 0xd9, 0x3d, 0x7d, 0xd6, 0x9c,
0x43, 0x77, 0xe1, 0xb6, 0x3b, 0xf0, 0xf5, 0xf1, 0xc9, 0x69, 0x70, 0x7a, 0x1c, 0xec, 0x1d, 0x1f,
0x9d, 0xee, 0xee, 0x1f, 0x3d, 0xf3, 0x9b, 0x25, 0x74, 0x1b, 0xb6, 0x5c, 0x92, 0xaf, 0xf6, 0x9f,
0xee, 0xfb, 0xcf, 0xf6, 0xc4, 0xff, 0xee, 0x41, 0xb3, 0xbc, 0xf3, 0xbf, 0x06, 0x2c, 0xa9, 0x05,
0x62, 0x7a, 0x91, 0x44, 0xc2, 0x67, 0x30, 0xdc, 0x83, 0x51, 0xcb, 0xb9, 0xd1, 0x2a, 0x74, 0x7b,
0xed, 0xad, 0x09, 0x23, 0xca, 0x10, 0xde, 0x1c, 0x7a, 0xae, 0xdb, 0x4a, 0xb5, 0x7b, 0xa1, 0xad,
0x49, 0x3b, 0x9a, 0x12, 0xd3, 0x9e, 0xbe, 0xd9, 0x79, 0x73, 0xe8, 0x4b, 0xdd, 0xc1, 0x8a, 0xa8,
0x42, 0x9b, 0x2e, 0xa9, 0x93, 0x9f, 0xed, 0xd6, 0xf8, 0x80, 0x2b, 0xc1, 0x96, 0x2f, 0x2b, 0x61,
0xb4, 0xe6, 0x5a, 0x09, 0x63, 0x95, 0x4e, 0xad, 0xc5, 0x29, 0x29, 0x76, 0x2d, 0xe3, 0xa5, 0xcb,
0xae, 0x65, 0x42, 0x05, 0x72, 0x6c, 0xa2, 0x72, 0xa4, 0x68, 0x93, 0x42, 0xbd, 0x29, 0xda, 0xa4,
0x98, 0x52, 0xde, 0x1c, 0xda, 0x85, 0xba, 0x7d, 0x9a, 0xb1, 0x2b, 0x1a, 0x7d, 0xe6, 0x19, 0xba,
0x67, 0xec, 0x15, 0xc7, 0x9b, 0x43, 0xc7, 0xb0, 0x52, 0xbc, 0xa2, 0x44, 0xb7, 0xa6, 0xdc, 0x5c,
0x2a, 0x61, 0xb7, 0xdf, 0x78, 0xaf, 0xe9, 0xcd, 0xa1, 0x33, 0x68, 0x8e, 0x5e, 0xe2, 0xa2, 0xb7,
0x35, 0xd3, 0x94, 0x6b, 0xe5, 0xf6, 0x3b, 0x53, 0xc7, 0xad, 0x58, 0xdf, 0xb9, 0xec, 0x54, 0x46,
0x45, 0xb7, 0x47, 0xb9, 0x0a, 0x57, 0xe4, 0xed, 0xb7, 0xa7, 0x0d, 0x5b, 0x99, 0xc7, 0xb0, 0x52,
0xbc, 0xa0, 0xb7, 0x6b, 0x9f, 0x78, 0xd3, 0xdf, 0xbe, 0x3d, 0x65, 0x74, 0xa2, 0x92, 0xea, 0x99,
0x61, 0x5c, 0xc9, 0xc2, 0x3b, 0xc6, 0xb8, 0x92, 0xc5, 0xd7, 0x89, 0x11, 0x99, 0xea, 0xed, 0x6f,
0x5c, 0x66, 0xe1, 0x69, 0x72, 0x5c, 0x66, 0xf1, 0xc9, 0x70, 0xc4, 0x47, 0xfa, 0xc5, 0x66, 0xdc,
0x47, 0xc5, 0xe7, 0x9f, 0x71, 0x1f, 0x8d, 0x3c, 0xf5, 0x78, 0x73, 0xe8, 0x5b, 0x58, 0x1b, 0x7b,
0xb7, 0x43, 0xef, 0x8c, 0x3f, 0x83, 0x15, 0xd3, 0xfe, 0xce, 0x74, 0x02, 0x2b, 0xf9, 0x7b, 0x58,
0x9f, 0xf0, 0x8c, 0x86, 0xee, 0xbe, 0xe9, 0x89, 0x4d, 0x49, 0xf7, 0xae, 0x7e, 0x85, 0xf3, 0xe6,
0xd0, 0xc7, 0x50, 0x95, 0x8f, 0xd0, 0x68, 0xdd, 0xe6, 0xca, 0xf0, 0xc9, 0xbb, 0xbd, 0x51, 0x44,
0x5a, 0xae, 0x47, 0xb0, 0xa0, 0x1e, 0x96, 0x91, 0x43, 0x31, 0x7c, 0x90, 0x6e, 0xbf, 0x35, 0x82,
0x75, 0xf3, 0xdf, 0x3d, 0xdb, 0x6e, 0x4d, 0x38, 0x0c, 0x8d, 0xe4, 0xff, 0x84, 0x17, 0x7c, 0x6f,
0x0e, 0x3d, 0x81, 0x9a, 0xd9, 0x7a, 0x90, 0xd9, 0x45, 0x47, 0x36, 0xbe, 0xf6, 0xe6, 0x18, 0xde,
0xb0, 0xbf, 0x5c, 0x90, 0x37, 0xee, 0x1f, 0xfd, 0x3f, 0x00, 0x00, 0xff, 0xff, 0xe1, 0xa3, 0x16,
0x75, 0x58, 0x20, 0x00, 0x00,
}
......@@ -86,6 +86,9 @@ service ImageService {
// health check service
rpc HealthCheck(HealthCheckRequest) returns (HealthCheckResponse) {}
// Add a tag to the image
rpc TagImage(TagImageRequest) returns (TagImageResponse) {}
}
message HealthCheckRequest {}
......@@ -581,3 +584,13 @@ message ImageFsInfoResponse {
string errmsg = 2;
uint32 cc = 3;
}
message TagImageRequest {
ImageSpec srcName = 1;
ImageSpec destName = 2;
}
message TagImageResponse {
string errmsg = 1;
uint32 cc = 2;
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册