Updated containerd1.7; google.golang.org/protobuf (#1706)

* Update containerd1.7; google.golang.org/protobuf

Update to containerd 1.7 and move to `google.golang.org/protobuf`
from `github.com/gogo/protobuf/gogoproto`.

These two changes are intertwined, since containerd 1.7 changes its
ttrpc task server definitions and protobuff generation (as well as some
other API changes).
Additionally, the task server gRPC code is imported from containerd
directly, rather than being generated here, and that code now explicitly
imports `google.golang.org/protobuf` instead of
`github.com/gogo/protobuf/gogoproto`.
Upgrading to `google.golang.org/protobuf` also requires updating
the `containerd/cgroups` dependency to v3
(`github.com/containerd/cgroups/v3/cgroup1/stats/`).

The new `protoc-gen-go-grpc` generators do not allow directives such as
`gogoproto.customname`, so the `go-fix-acronym` command is used to
update acronym customization (which is what containerd does).

Updated `Protobuild.toml` to specify new generators.

Added an `Update-Proto.ps1` script to re-generate protobuf files locally
and in GitHub CI.

Add `protobuild` and protobuff `grpc` and `ttrpc` generators to
`tools.go` so they are tracked and vendored, and can be trivially
installed via `go install`.

Signed-off-by: Hamza El-Saawy <hamzaelsaawy@microsoft.com>

* Vendor protobuf import changes

Signed-off-by: Hamza El-Saawy <hamzaelsaawy@microsoft.com>

---------

Signed-off-by: Hamza El-Saawy <hamzaelsaawy@microsoft.com>
This commit is contained in:
Hamza El-Saawy 2023-07-10 11:25:50 -04:00 коммит произвёл GitHub
Родитель 640a5606a8
Коммит decae4b80e
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
498 изменённых файлов: 57200 добавлений и 94387 удалений

55
.github/workflows/ci.yml поставляемый
Просмотреть файл

@ -60,10 +60,12 @@ jobs:
GOPATH: '${{ github.workspace }}\go'
steps:
# protobuild requires the code to be in $GOPATH to translate from github.com/Microsoft/hcsshim
# to the correct path on disk
- name: Checkout hcsshim
uses: actions/checkout@v3
with:
path: go/src/github.com/Microsoft/hcsshim
path: "${{ github.workspace }}/go/src/github.com/Microsoft/hcsshim"
- name: Install go
uses: actions/setup-go@v4
@ -71,39 +73,6 @@ jobs:
go-version: ${{ env.GO_VERSION }}
cache-dependency-path: go/src/github.com/Microsoft/hcsshim/go.sum
- name: Get containerd ref
shell: powershell
run: |
$v = go list -m -f '{{ .Version }}' 'github.com/containerd/containerd' 2>&1
if ( $LASTEXITCODE ) {
Write-Output '::error::Could not retrieve containerd version.'
exit $LASTEXITCODE
}
Write-Output "containerd ref is: $v"
"containerd_ref=$v" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
working-directory: go/src/github.com/Microsoft/hcsshim
- name: Checkout containerd
uses: actions/checkout@v3
with:
repository: containerd/containerd
path: "containerd"
ref: "${{ env.containerd_ref }}"
- name: Install protobuild and protoc-gen-gogoctrd
shell: powershell
run: |
# not actually GOBIN
$goBin = Join-Path (go env GOPATH) 'bin'
mkdir -f $goBin
$goBin | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
go install github.com/containerd/protobuild@v0.2.0
cd containerd
go build -o $goBin ./cmd/protoc-gen-gogoctrd
- name: Install protoc
shell: powershell
run: |
@ -122,25 +91,25 @@ jobs:
mkdir -f ${{ github.workspace }}/go/src/github.com/Microsoft/hcsshim/protobuf
mv include/* ${{ github.workspace }}/go/src/github.com/Microsoft/hcsshim/protobuf
# put protoc in GOPATH to make things easier
mv bin\protoc.exe (Join-Path (go env GOPATH) 'bin')
# put protoc in GOBIN to make things easier
$bin = Join-Path (go env GOPATH) 'bin'
mkdir -f $bin
mv bin\protoc.exe $bin
$bin | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Run Protobuild
- name: Run protobuild
shell: powershell
run: |
Write-Output "::group::protobuild"
protobuild $(go list ./... | grep -v /vendor/)
.\scripts\Update-Proto.ps1
Write-Output "::endgroup::"
if ( $LASTEXITCODE ) {
Write-Output '::error::Failed to run protobuild.'
exit $LASTEXITCODE
}
Write-Output "::group::git diff"
# look for any new files not previously tracked
git add --all --intent-to-add .
Write-Output "::group::git diff"
git diff --exit-code
Write-Output "::endgroup::"
working-directory: "${{ github.workspace }}/go/src/github.com/Microsoft/hcsshim"

Просмотреть файл

@ -135,9 +135,9 @@ issues:
linters:
- stylecheck
Text: "ST1003:"
# v0 APIs are deprecated, but still retained for backwards compatability
- path: cmd\\ncproxy\\
linters:
- staticcheck
text: "^SA1019: (ncproxygrpcv0|nodenetsvcV0)"
text: "^SA1019: .*(ncproxygrpc|nodenetsvc)[/]?v0"

Просмотреть файл

@ -1,52 +1,25 @@
version = "1"
generator = "gogoctrd"
plugins = ["grpc", "fieldpath"]
version = "2"
generators = ["go", "go-grpc"]
# Control protoc include paths. Below are usually some good defaults, but feel
# free to try it without them if it works for your project.
# Control protoc include paths.
[includes]
# Include paths that will be added before all others. Typically, you want to
# treat the root of the project as an include, but this may not be necessary.
before = ["./protobuf"]
# defaults are "/usr/local/include" and "/usr/include", which don't exist on Windows.
# override defaults to supress errors about non-existant directories.
after = []
# Paths that should be treated as include roots in relation to the vendor
# directory. These will be calculated with the vendor directory nearest the
# target package.
packages = ["github.com/gogo/protobuf"]
# This section maps protobuf imports to Go packages. These will become
# `-M` directives in the call to the go protobuf generator.
# This section maps protobuf imports to Go packages.
[packages]
"gogoproto/gogo.proto" = "github.com/gogo/protobuf/gogoproto"
"google/protobuf/any.proto" = "github.com/gogo/protobuf/types"
"google/protobuf/empty.proto" = "github.com/gogo/protobuf/types"
"google/protobuf/struct.proto" = "github.com/gogo/protobuf/types"
"google/protobuf/descriptor.proto" = "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
"google/protobuf/field_mask.proto" = "github.com/gogo/protobuf/types"
"google/protobuf/timestamp.proto" = "github.com/gogo/protobuf/types"
"google/protobuf/duration.proto" = "github.com/gogo/protobuf/types"
"github/containerd/cgroups/stats/v1/metrics.proto" = "github.com/containerd/cgroups/stats/v1"
# github.com/containerd/cgroups protofiles still list their go path as "github.com/containerd/cgroups/cgroup1/stats"
"github.com/containerd/cgroups/v3/cgroup1/stats/metrics.proto" = "github.com/containerd/cgroups/v3/cgroup1/stats"
[[overrides]]
prefixes = ["github.com/Microsoft/hcsshim/internal/shimdiag"]
plugins = ["ttrpc"]
[[overrides]]
prefixes = ["github.com/Microsoft/hcsshim/internal/extendedtask"]
plugins = ["ttrpc"]
[[overrides]]
prefixes = ["github.com/Microsoft/hcsshim/internal/computeagent"]
plugins = ["ttrpc"]
[[overrides]]
prefixes = ["github.com/Microsoft/hcsshim/internal/ncproxyttrpc"]
plugins = ["ttrpc"]
[[overrides]]
prefixes = ["github.com/Microsoft/hcsshim/internal/vmservice"]
plugins = ["ttrpc"]
prefixes = [
"github.com/Microsoft/hcsshim/internal/shimdiag",
"github.com/Microsoft/hcsshim/internal/extendedtask",
"github.com/Microsoft/hcsshim/internal/computeagent",
"github.com/Microsoft/hcsshim/internal/ncproxyttrpc",
"github.com/Microsoft/hcsshim/internal/vmservice",
]
generators = ["go", "go-ttrpc"]

Просмотреть файл

@ -9,15 +9,17 @@ import (
"path/filepath"
"time"
task "github.com/containerd/containerd/api/runtime/task/v2"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
"github.com/urfave/cli"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/types/known/timestamppb"
"github.com/Microsoft/hcsshim/internal/hcs"
"github.com/Microsoft/hcsshim/internal/memory"
"github.com/Microsoft/hcsshim/internal/oc"
"github.com/Microsoft/hcsshim/internal/winapi"
"github.com/containerd/containerd/runtime/v2/task"
"github.com/gogo/protobuf/proto"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
"github.com/urfave/cli"
)
// LimitedRead reads at max `readLimitBytes` bytes from the file at path `filePath`. If the file has
@ -122,7 +124,7 @@ The delete command will be executed in the container's bundle as its cwd.
}
if data, err := proto.Marshal(&task.DeleteResponse{
ExitedAt: time.Now(),
ExitedAt: timestamppb.New(time.Now()),
ExitStatus: 255,
}); err != nil {
return err

Просмотреть файл

@ -5,8 +5,8 @@ package main
import (
"context"
task "github.com/containerd/containerd/api/runtime/task/v2"
"github.com/containerd/containerd/errdefs"
"github.com/containerd/containerd/runtime/v2/task"
"github.com/pkg/errors"
)

Просмотреть файл

@ -8,14 +8,15 @@ import (
"time"
eventstypes "github.com/containerd/containerd/api/events"
task "github.com/containerd/containerd/api/runtime/task/v2"
containerd_v1_types "github.com/containerd/containerd/api/types/task"
"github.com/containerd/containerd/errdefs"
"github.com/containerd/containerd/runtime"
"github.com/containerd/containerd/runtime/v2/task"
"github.com/opencontainers/runtime-spec/specs-go"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
"go.opencensus.io/trace"
"google.golang.org/protobuf/types/known/timestamppb"
"github.com/Microsoft/hcsshim/internal/cmd"
"github.com/Microsoft/hcsshim/internal/cow"
@ -151,11 +152,11 @@ func (he *hcsExec) Status() *task.StateResponse {
var s containerd_v1_types.Status
switch he.state {
case shimExecStateCreated:
s = containerd_v1_types.StatusCreated
s = containerd_v1_types.Status_CREATED
case shimExecStateRunning:
s = containerd_v1_types.StatusRunning
s = containerd_v1_types.Status_RUNNING
case shimExecStateExited:
s = containerd_v1_types.StatusStopped
s = containerd_v1_types.Status_STOPPED
}
return &task.StateResponse{
@ -169,7 +170,7 @@ func (he *hcsExec) Status() *task.StateResponse {
Stderr: he.io.StderrPath(),
Terminal: he.io.Terminal(),
ExitStatus: he.exitStatus,
ExitedAt: he.exitedAt,
ExitedAt: timestamppb.New(he.exitedAt),
}
}
@ -492,7 +493,7 @@ func (he *hcsExec) waitForExit() {
ID: he.id,
Pid: uint32(he.pid),
ExitStatus: he.exitStatus,
ExitedAt: he.exitedAt,
ExitedAt: timestamppb.New(he.exitedAt),
}); err != nil {
log.G(ctx).WithError(err).Error("failed to publish TaskExitEvent")
}

Просмотреть файл

@ -6,7 +6,8 @@ import (
"context"
"time"
"github.com/containerd/containerd/runtime/v2/task"
task "github.com/containerd/containerd/api/runtime/task/v2"
"google.golang.org/protobuf/types/known/timestamppb"
)
// newTestShimExec creates a test exec. If you are intending to make an init
@ -47,7 +48,7 @@ func (tse *testShimExec) Status() *task.StateResponse {
ExecID: tse.id,
Pid: uint32(tse.pid),
ExitStatus: tse.status,
ExitedAt: tse.at,
ExitedAt: timestamppb.New(tse.at),
}
}
func (tse *testShimExec) Start(ctx context.Context) error {

Просмотреть файл

@ -9,12 +9,13 @@ import (
"github.com/Microsoft/hcsshim/internal/log"
eventstypes "github.com/containerd/containerd/api/events"
task "github.com/containerd/containerd/api/runtime/task/v2"
containerd_v1_types "github.com/containerd/containerd/api/types/task"
"github.com/containerd/containerd/errdefs"
"github.com/containerd/containerd/runtime"
"github.com/containerd/containerd/runtime/v2/task"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
"google.golang.org/protobuf/types/known/timestamppb"
)
func newWcowPodSandboxExec(ctx context.Context, events publisher, tid, bundle string) *wcowPodSandboxExec {
@ -100,11 +101,11 @@ func (wpse *wcowPodSandboxExec) Status() *task.StateResponse {
var s containerd_v1_types.Status
switch wpse.state {
case shimExecStateCreated:
s = containerd_v1_types.StatusCreated
s = containerd_v1_types.Status_CREATED
case shimExecStateRunning:
s = containerd_v1_types.StatusRunning
s = containerd_v1_types.Status_RUNNING
case shimExecStateExited:
s = containerd_v1_types.StatusStopped
s = containerd_v1_types.Status_STOPPED
}
return &task.StateResponse{
@ -118,7 +119,7 @@ func (wpse *wcowPodSandboxExec) Status() *task.StateResponse {
Stderr: "", // NilIO
Terminal: false,
ExitStatus: wpse.exitStatus,
ExitedAt: wpse.exitedAt,
ExitedAt: timestamppb.New(wpse.exitedAt),
}
}

Просмотреть файл

@ -7,9 +7,9 @@ import (
"testing"
"time"
task "github.com/containerd/containerd/api/runtime/task/v2"
containerd_v1_types "github.com/containerd/containerd/api/types/task"
"github.com/containerd/containerd/errdefs"
"github.com/containerd/containerd/runtime/v2/task"
"github.com/pkg/errors"
)
@ -25,7 +25,7 @@ func verifyWcowPodSandboxExecStatus(t *testing.T, wasStarted bool, es containerd
t.Fatalf("expected bundle: '%s' got: '%s'", t.Name(), status.Bundle)
}
var expectedPid uint32
if wasStarted && es != containerd_v1_types.StatusCreated {
if wasStarted && es != containerd_v1_types.Status_CREATED {
expectedPid = 1
}
if status.Pid != expectedPid {
@ -48,9 +48,9 @@ func verifyWcowPodSandboxExecStatus(t *testing.T, wasStarted bool, es containerd
}
var expectedExitStatus uint32
switch es {
case containerd_v1_types.StatusCreated, containerd_v1_types.StatusRunning:
case containerd_v1_types.Status_CREATED, containerd_v1_types.Status_RUNNING:
expectedExitStatus = 255
case containerd_v1_types.StatusStopped:
case containerd_v1_types.Status_STOPPED:
if !wasStarted {
expectedExitStatus = 1
} else {
@ -60,12 +60,12 @@ func verifyWcowPodSandboxExecStatus(t *testing.T, wasStarted bool, es containerd
if status.ExitStatus != expectedExitStatus {
t.Fatalf("expected exitstatus: '%d' got: '%d'", expectedExitStatus, status.ExitStatus)
}
if es != containerd_v1_types.StatusStopped {
if !status.ExitedAt.IsZero() {
if es != containerd_v1_types.Status_STOPPED {
if !status.ExitedAt.AsTime().IsZero() {
t.Fatalf("expected exitedat: '%v' got: '%v'", time.Time{}, status.ExitedAt)
}
} else {
if status.ExitedAt.IsZero() {
if status.ExitedAt.AsTime().IsZero() {
t.Fatalf("expected exitedat: > '%v' got: '%v'", time.Time{}, status.ExitedAt)
}
}
@ -74,7 +74,7 @@ func verifyWcowPodSandboxExecStatus(t *testing.T, wasStarted bool, es containerd
func Test_newWcowPodSandboxExec(t *testing.T) {
wpse := newWcowPodSandboxExec(context.TODO(), newFakePublisher(), t.Name(), t.Name())
verifyWcowPodSandboxExecStatus(t, false, containerd_v1_types.StatusCreated, wpse.Status())
verifyWcowPodSandboxExecStatus(t, false, containerd_v1_types.Status_CREATED, wpse.Status())
}
func Test_newWcowPodSandboxExec_ID(t *testing.T) {
@ -144,7 +144,7 @@ func Test_newWcowPodSandboxExec_State(t *testing.T) {
func Test_newWcowPodSandboxExec_Status(t *testing.T) {
wpse := newWcowPodSandboxExec(context.TODO(), newFakePublisher(), t.Name(), t.Name())
verifyWcowPodSandboxExecStatus(t, false, containerd_v1_types.StatusCreated, wpse.Status())
verifyWcowPodSandboxExecStatus(t, false, containerd_v1_types.Status_CREATED, wpse.Status())
// Start it
err := wpse.Start(context.TODO())
@ -152,7 +152,7 @@ func Test_newWcowPodSandboxExec_Status(t *testing.T) {
t.Fatalf("should not have failed to start got: %v", err)
}
verifyWcowPodSandboxExecStatus(t, true, containerd_v1_types.StatusRunning, wpse.Status())
verifyWcowPodSandboxExecStatus(t, true, containerd_v1_types.Status_RUNNING, wpse.Status())
// Stop it
err = wpse.Kill(context.TODO(), 0x0)
@ -160,7 +160,7 @@ func Test_newWcowPodSandboxExec_Status(t *testing.T) {
t.Fatalf("should not have failed to stop got: %v", err)
}
verifyWcowPodSandboxExecStatus(t, true, containerd_v1_types.StatusStopped, wpse.Status())
verifyWcowPodSandboxExecStatus(t, true, containerd_v1_types.Status_STOPPED, wpse.Status())
}
func Test_newWcowPodSandboxExec_Start(t *testing.T) {
@ -300,13 +300,13 @@ func Test_newWcowPodSandboxExec_Wait_Created(t *testing.T) {
}
status := <-waitExit
verifyWcowPodSandboxExecStatus(t, false, containerd_v1_types.StatusStopped, status)
if status.ExitedAt.Before(now) {
verifyWcowPodSandboxExecStatus(t, false, containerd_v1_types.Status_STOPPED, status)
if status.ExitedAt.AsTime().Before(now) {
t.Fatal("exit should not have unblocked previous to kill")
}
// Verify the wait in the exited state doesnt block.
verifyWcowPodSandboxExecStatus(t, false, containerd_v1_types.StatusStopped, wpse.Wait())
verifyWcowPodSandboxExecStatus(t, false, containerd_v1_types.Status_STOPPED, wpse.Wait())
}
func Test_newWcowPodSandboxExec_Wait_Started(t *testing.T) {
@ -332,11 +332,11 @@ func Test_newWcowPodSandboxExec_Wait_Started(t *testing.T) {
}
status := <-waitExit
verifyWcowPodSandboxExecStatus(t, true, containerd_v1_types.StatusStopped, status)
if status.ExitedAt.Before(now) {
verifyWcowPodSandboxExecStatus(t, true, containerd_v1_types.Status_STOPPED, status)
if status.ExitedAt.AsTime().Before(now) {
t.Fatal("exit should not have unblocked previous to kill")
}
// Verify the wait in the exited state doesnt block.
verifyWcowPodSandboxExecStatus(t, true, containerd_v1_types.StatusStopped, wpse.Wait())
verifyWcowPodSandboxExecStatus(t, true, containerd_v1_types.Status_STOPPED, wpse.Wait())
}

Просмотреть файл

@ -13,13 +13,17 @@ import (
"github.com/Microsoft/go-winio/pkg/etw"
"github.com/Microsoft/go-winio/pkg/etwlogrus"
"github.com/Microsoft/go-winio/pkg/guid"
"github.com/Microsoft/hcsshim/internal/log"
"github.com/Microsoft/hcsshim/internal/oc"
"github.com/Microsoft/hcsshim/internal/shimdiag"
specs "github.com/opencontainers/runtime-spec/specs-go"
"github.com/sirupsen/logrus"
"github.com/urfave/cli"
"go.opencensus.io/trace"
"github.com/Microsoft/hcsshim/internal/log"
"github.com/Microsoft/hcsshim/internal/oc"
"github.com/Microsoft/hcsshim/internal/shimdiag"
// register common types spec with typeurl
_ "github.com/containerd/containerd/runtime"
)
const usage = ``

Просмотреть файл

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -2,10 +2,9 @@ syntax = "proto3";
package containerd.runhcs.v1;
import weak "gogoproto/gogo.proto";
import "google/protobuf/timestamp.proto";
option go_package = "github.com/Microsoft/hcsshim/cmd/containerd-shim-runhcs-v1/options;options";
option go_package = "github.com/Microsoft/hcsshim/cmd/containerd-shim-runhcs-v1/options";
// Options are the set of customizations that can be passed at Create time.
message Options {
@ -114,7 +113,7 @@ message Options {
// info returned in the Pids query.
message ProcessDetails {
string image_name = 1;
google.protobuf.Timestamp created_at = 2 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false];
google.protobuf.Timestamp created_at = 2;
uint64 kernel_time_100_ns = 3;
uint64 memory_commit_bytes = 4;
uint64 memory_working_set_private_bytes = 5;

Просмотреть файл

@ -16,9 +16,9 @@ import (
"github.com/Microsoft/hcsshim/osversion"
"github.com/Microsoft/hcsshim/pkg/annotations"
eventstypes "github.com/containerd/containerd/api/events"
task "github.com/containerd/containerd/api/runtime/task/v2"
"github.com/containerd/containerd/errdefs"
"github.com/containerd/containerd/runtime"
"github.com/containerd/containerd/runtime/v2/task"
"github.com/opencontainers/runtime-spec/specs-go"
"github.com/pkg/errors"
"golang.org/x/sync/errgroup"

Просмотреть файл

@ -10,8 +10,8 @@ import (
"sync"
"testing"
task "github.com/containerd/containerd/api/runtime/task/v2"
"github.com/containerd/containerd/errdefs"
"github.com/containerd/containerd/runtime/v2/task"
specs "github.com/opencontainers/runtime-spec/specs-go"
)

Просмотреть файл

@ -13,16 +13,16 @@ import (
"unsafe"
"github.com/Microsoft/go-winio"
task "github.com/containerd/containerd/api/runtime/task/v2"
"github.com/containerd/containerd/log"
"github.com/containerd/containerd/runtime/v2/task"
"github.com/containerd/ttrpc"
"github.com/containerd/typeurl"
"github.com/gogo/protobuf/proto"
"github.com/gogo/protobuf/types"
typeurl "github.com/containerd/typeurl/v2"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
"github.com/urfave/cli"
"golang.org/x/sys/windows"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/types/known/anypb"
runhcsopts "github.com/Microsoft/hcsshim/cmd/containerd-shim-runhcs-v1/options"
"github.com/Microsoft/hcsshim/internal/extendedtask"
@ -278,7 +278,7 @@ func readOptions(r io.Reader) (*runhcsopts.Options, error) {
return nil, errors.Wrap(err, "failed to read input")
}
if len(d) > 0 {
var a types.Any
var a anypb.Any
if err := proto.Unmarshal(d, &a); err != nil {
return nil, errors.Wrap(err, "failed unmarshalling into Any")
}

Просмотреть файл

@ -11,13 +11,14 @@ import (
"sync/atomic"
"time"
task "github.com/containerd/containerd/api/runtime/task/v2"
"github.com/containerd/containerd/errdefs"
"go.opencensus.io/trace"
"google.golang.org/protobuf/types/known/emptypb"
"github.com/Microsoft/hcsshim/internal/extendedtask"
"github.com/Microsoft/hcsshim/internal/oc"
"github.com/Microsoft/hcsshim/internal/shimdiag"
"github.com/containerd/containerd/errdefs"
"github.com/containerd/containerd/runtime/v2/task"
google_protobuf1 "github.com/gogo/protobuf/types"
"go.opencensus.io/trace"
)
type ServiceOptions struct {
@ -80,7 +81,7 @@ type service struct {
gracefulShutdown bool
}
var _ = (task.TaskService)(&service{})
var _ task.TaskService = &service{}
func NewService(o ...ServiceOption) (svc *service, err error) {
var opts ServiceOptions
@ -214,7 +215,7 @@ func (s *service) Pids(ctx context.Context, req *task.PidsRequest) (_ *task.Pids
return r, errdefs.ToGRPC(e)
}
func (s *service) Pause(ctx context.Context, req *task.PauseRequest) (_ *google_protobuf1.Empty, err error) {
func (s *service) Pause(ctx context.Context, req *task.PauseRequest) (_ *emptypb.Empty, err error) {
ctx, span := oc.StartSpan(ctx, "Pause")
defer span.End()
defer func() { oc.SetSpanStatus(span, err) }()
@ -229,7 +230,7 @@ func (s *service) Pause(ctx context.Context, req *task.PauseRequest) (_ *google_
return r, errdefs.ToGRPC(e)
}
func (s *service) Resume(ctx context.Context, req *task.ResumeRequest) (_ *google_protobuf1.Empty, err error) {
func (s *service) Resume(ctx context.Context, req *task.ResumeRequest) (_ *emptypb.Empty, err error) {
ctx, span := oc.StartSpan(ctx, "Resume")
defer span.End()
defer func() { oc.SetSpanStatus(span, err) }()
@ -244,7 +245,7 @@ func (s *service) Resume(ctx context.Context, req *task.ResumeRequest) (_ *googl
return r, errdefs.ToGRPC(e)
}
func (s *service) Checkpoint(ctx context.Context, req *task.CheckpointTaskRequest) (_ *google_protobuf1.Empty, err error) {
func (s *service) Checkpoint(ctx context.Context, req *task.CheckpointTaskRequest) (_ *emptypb.Empty, err error) {
ctx, span := oc.StartSpan(ctx, "Checkpoint")
defer span.End()
defer func() { oc.SetSpanStatus(span, err) }()
@ -261,7 +262,7 @@ func (s *service) Checkpoint(ctx context.Context, req *task.CheckpointTaskReques
return r, errdefs.ToGRPC(e)
}
func (s *service) Kill(ctx context.Context, req *task.KillRequest) (_ *google_protobuf1.Empty, err error) {
func (s *service) Kill(ctx context.Context, req *task.KillRequest) (_ *emptypb.Empty, err error) {
ctx, span := oc.StartSpan(ctx, "Kill")
defer span.End()
defer func() { oc.SetSpanStatus(span, err) }()
@ -280,7 +281,7 @@ func (s *service) Kill(ctx context.Context, req *task.KillRequest) (_ *google_pr
return r, errdefs.ToGRPC(e)
}
func (s *service) Exec(ctx context.Context, req *task.ExecProcessRequest) (_ *google_protobuf1.Empty, err error) {
func (s *service) Exec(ctx context.Context, req *task.ExecProcessRequest) (_ *emptypb.Empty, err error) {
ctx, span := oc.StartSpan(ctx, "Exec")
defer span.End()
defer func() { oc.SetSpanStatus(span, err) }()
@ -356,7 +357,7 @@ func (s *service) DiagTasks(ctx context.Context, req *shimdiag.TasksRequest) (_
return r, errdefs.ToGRPC(e)
}
func (s *service) ResizePty(ctx context.Context, req *task.ResizePtyRequest) (_ *google_protobuf1.Empty, err error) {
func (s *service) ResizePty(ctx context.Context, req *task.ResizePtyRequest) (_ *emptypb.Empty, err error) {
ctx, span := oc.StartSpan(ctx, "ResizePty")
defer span.End()
defer func() { oc.SetSpanStatus(span, err) }()
@ -375,7 +376,7 @@ func (s *service) ResizePty(ctx context.Context, req *task.ResizePtyRequest) (_
return r, errdefs.ToGRPC(e)
}
func (s *service) CloseIO(ctx context.Context, req *task.CloseIORequest) (_ *google_protobuf1.Empty, err error) {
func (s *service) CloseIO(ctx context.Context, req *task.CloseIORequest) (_ *emptypb.Empty, err error) {
ctx, span := oc.StartSpan(ctx, "CloseIO")
defer span.End()
defer func() { oc.SetSpanStatus(span, err) }()
@ -393,7 +394,7 @@ func (s *service) CloseIO(ctx context.Context, req *task.CloseIORequest) (_ *goo
return r, errdefs.ToGRPC(e)
}
func (s *service) Update(ctx context.Context, req *task.UpdateTaskRequest) (_ *google_protobuf1.Empty, err error) {
func (s *service) Update(ctx context.Context, req *task.UpdateTaskRequest) (_ *emptypb.Empty, err error) {
ctx, span := oc.StartSpan(ctx, "Update")
defer span.End()
defer func() { oc.SetSpanStatus(span, err) }()
@ -470,7 +471,7 @@ func (s *service) Connect(ctx context.Context, req *task.ConnectRequest) (resp *
return r, errdefs.ToGRPC(e)
}
func (s *service) Shutdown(ctx context.Context, req *task.ShutdownRequest) (_ *google_protobuf1.Empty, err error) {
func (s *service) Shutdown(ctx context.Context, req *task.ShutdownRequest) (_ *emptypb.Empty, err error) {
ctx, span := oc.StartSpan(ctx, "Shutdown")
defer span.End()
defer func() { oc.SetSpanStatus(span, err) }()

Просмотреть файл

@ -9,20 +9,23 @@ import (
"os"
"path/filepath"
task "github.com/containerd/containerd/api/runtime/task/v2"
containerd_v1_types "github.com/containerd/containerd/api/types/task"
"github.com/containerd/containerd/errdefs"
"github.com/containerd/containerd/protobuf"
typeurl "github.com/containerd/typeurl/v2"
"github.com/opencontainers/runtime-spec/specs-go"
"github.com/pkg/errors"
"google.golang.org/protobuf/types/known/emptypb"
"google.golang.org/protobuf/types/known/timestamppb"
runhcsopts "github.com/Microsoft/hcsshim/cmd/containerd-shim-runhcs-v1/options"
"github.com/Microsoft/hcsshim/internal/extendedtask"
"github.com/Microsoft/hcsshim/internal/oci"
"github.com/Microsoft/hcsshim/internal/shimdiag"
containerd_v1_types "github.com/containerd/containerd/api/types/task"
"github.com/containerd/containerd/errdefs"
"github.com/containerd/containerd/runtime/v2/task"
"github.com/containerd/typeurl"
google_protobuf1 "github.com/gogo/protobuf/types"
"github.com/opencontainers/runtime-spec/specs-go"
"github.com/pkg/errors"
)
var empty = &google_protobuf1.Empty{}
var empty = &emptypb.Empty{}
// getPod returns the pod this shim is tracking or else returns `nil`. It is the
// callers responsibility to verify that `s.isSandbox == true` before calling
@ -237,7 +240,7 @@ func (s *service) deleteInternal(ctx context.Context, req *task.DeleteRequest) (
return &task.DeleteResponse{
Pid: uint32(pid),
ExitStatus: exitStatus,
ExitedAt: exitedAt,
ExitedAt: timestamppb.New(exitedAt),
}, nil
}
@ -252,13 +255,13 @@ func (s *service) pidsInternal(ctx context.Context, req *task.PidsRequest) (*tas
}
processes := make([]*containerd_v1_types.ProcessInfo, len(pids))
for i, p := range pids {
a, err := typeurl.MarshalAny(&p)
a, err := typeurl.MarshalAny(p)
if err != nil {
return nil, errors.Wrapf(err, "failed to marshal ProcessDetails for process: %s, task: %s", p.ExecID, req.ID)
}
proc := &containerd_v1_types.ProcessInfo{
Pid: p.ProcessID,
Info: a,
Info: protobuf.FromAny(a),
}
processes[i] = proc
}
@ -267,7 +270,7 @@ func (s *service) pidsInternal(ctx context.Context, req *task.PidsRequest) (*tas
}, nil
}
func (s *service) pauseInternal(ctx context.Context, req *task.PauseRequest) (*google_protobuf1.Empty, error) {
func (s *service) pauseInternal(ctx context.Context, req *task.PauseRequest) (*emptypb.Empty, error) {
/*
s.events <- cdevent{
topic: runtime.TaskPausedEventTopic,
@ -279,7 +282,7 @@ func (s *service) pauseInternal(ctx context.Context, req *task.PauseRequest) (*g
return nil, errdefs.ErrNotImplemented
}
func (s *service) resumeInternal(ctx context.Context, req *task.ResumeRequest) (*google_protobuf1.Empty, error) {
func (s *service) resumeInternal(ctx context.Context, req *task.ResumeRequest) (*emptypb.Empty, error) {
/*
s.events <- cdevent{
topic: runtime.TaskResumedEventTopic,
@ -291,11 +294,11 @@ func (s *service) resumeInternal(ctx context.Context, req *task.ResumeRequest) (
return nil, errdefs.ErrNotImplemented
}
func (s *service) checkpointInternal(ctx context.Context, req *task.CheckpointTaskRequest) (*google_protobuf1.Empty, error) {
func (s *service) checkpointInternal(ctx context.Context, req *task.CheckpointTaskRequest) (*emptypb.Empty, error) {
return nil, errdefs.ErrNotImplemented
}
func (s *service) killInternal(ctx context.Context, req *task.KillRequest) (*google_protobuf1.Empty, error) {
func (s *service) killInternal(ctx context.Context, req *task.KillRequest) (*emptypb.Empty, error) {
if s.isSandbox {
pod, err := s.getPod()
if err != nil {
@ -320,7 +323,7 @@ func (s *service) killInternal(ctx context.Context, req *task.KillRequest) (*goo
return empty, nil
}
func (s *service) execInternal(ctx context.Context, req *task.ExecProcessRequest) (*google_protobuf1.Empty, error) {
func (s *service) execInternal(ctx context.Context, req *task.ExecProcessRequest) (*emptypb.Empty, error) {
t, err := s.getTask(req.ID)
if err != nil {
return nil, err
@ -425,7 +428,7 @@ func (s *service) diagTasksInternal(ctx context.Context, req *shimdiag.TasksRequ
return resp, nil
}
func (s *service) resizePtyInternal(ctx context.Context, req *task.ResizePtyRequest) (*google_protobuf1.Empty, error) {
func (s *service) resizePtyInternal(ctx context.Context, req *task.ResizePtyRequest) (*emptypb.Empty, error) {
t, err := s.getTask(req.ID)
if err != nil {
return nil, err
@ -441,7 +444,7 @@ func (s *service) resizePtyInternal(ctx context.Context, req *task.ResizePtyRequ
return empty, nil
}
func (s *service) closeIOInternal(ctx context.Context, req *task.CloseIORequest) (*google_protobuf1.Empty, error) {
func (s *service) closeIOInternal(ctx context.Context, req *task.CloseIORequest) (*emptypb.Empty, error) {
t, err := s.getTask(req.ID)
if err != nil {
return nil, err
@ -457,7 +460,7 @@ func (s *service) closeIOInternal(ctx context.Context, req *task.CloseIORequest)
return empty, nil
}
func (s *service) updateInternal(ctx context.Context, req *task.UpdateTaskRequest) (*google_protobuf1.Empty, error) {
func (s *service) updateInternal(ctx context.Context, req *task.UpdateTaskRequest) (*emptypb.Empty, error) {
if req.Resources == nil {
return nil, errors.Wrapf(errdefs.ErrInvalidArgument, "resources cannot be empty, updating container %s resources failed", req.ID)
}
@ -505,7 +508,7 @@ func (s *service) statsInternal(ctx context.Context, req *task.StatsRequest) (*t
if err != nil {
return nil, errors.Wrapf(err, "failed to marshal Statistics for task: %s", req.ID)
}
return &task.StatsResponse{Stats: any}, nil
return &task.StatsResponse{Stats: protobuf.FromAny(any)}, nil
}
func (s *service) connectInternal(ctx context.Context, req *task.ConnectRequest) (*task.ConnectResponse, error) {
@ -517,7 +520,7 @@ func (s *service) connectInternal(ctx context.Context, req *task.ConnectRequest)
}, nil
}
func (s *service) shutdownInternal(ctx context.Context, req *task.ShutdownRequest) (*google_protobuf1.Empty, error) {
func (s *service) shutdownInternal(ctx context.Context, req *task.ShutdownRequest) (*emptypb.Empty, error) {
// Because a pod shim hosts multiple tasks only the init task can issue the
// shutdown request.
if req.ID != s.tid {

Просмотреть файл

@ -12,9 +12,10 @@ import (
"github.com/Microsoft/hcsshim/cmd/containerd-shim-runhcs-v1/options"
"github.com/Microsoft/hcsshim/cmd/containerd-shim-runhcs-v1/stats"
task "github.com/containerd/containerd/api/runtime/task/v2"
"github.com/containerd/containerd/errdefs"
"github.com/containerd/containerd/runtime/v2/task"
"github.com/containerd/typeurl"
"github.com/containerd/containerd/protobuf"
typeurl "github.com/containerd/typeurl/v2"
specs "github.com/opencontainers/runtime-spec/specs-go"
)
@ -605,7 +606,7 @@ func Test_PodShim_updateInternal_Success(t *testing.T) {
t.Fatal(err)
}
resp, err := s.updateInternal(context.TODO(), &task.UpdateTaskRequest{ID: t1.ID(), Resources: any})
resp, err := s.updateInternal(context.TODO(), &task.UpdateTaskRequest{ID: t1.ID(), Resources: protobuf.FromAny(any)})
if err != nil {
t.Fatalf("should not have failed with error, got: %v", err)
}
@ -623,7 +624,7 @@ func Test_PodShim_updateInternal_Error(t *testing.T) {
if err != nil {
t.Fatal(err)
}
_, err = s.updateInternal(context.TODO(), &task.UpdateTaskRequest{ID: t1.ID(), Resources: any})
_, err = s.updateInternal(context.TODO(), &task.UpdateTaskRequest{ID: t1.ID(), Resources: protobuf.FromAny(any)})
if err == nil {
t.Fatal("expected to get an error for incorrect resource's type")
}

Просмотреть файл

@ -12,9 +12,10 @@ import (
"github.com/Microsoft/hcsshim/cmd/containerd-shim-runhcs-v1/options"
"github.com/Microsoft/hcsshim/cmd/containerd-shim-runhcs-v1/stats"
task "github.com/containerd/containerd/api/runtime/task/v2"
"github.com/containerd/containerd/errdefs"
"github.com/containerd/containerd/runtime/v2/task"
"github.com/containerd/typeurl"
"github.com/containerd/containerd/protobuf"
typeurl "github.com/containerd/typeurl/v2"
"github.com/opencontainers/runtime-spec/specs-go"
)
@ -526,7 +527,7 @@ func Test_TaskShim_updateInternal_Success(t *testing.T) {
t.Fatal(err)
}
resp, err := s.updateInternal(context.TODO(), &task.UpdateTaskRequest{ID: t1.ID(), Resources: any})
resp, err := s.updateInternal(context.TODO(), &task.UpdateTaskRequest{ID: t1.ID(), Resources: protobuf.FromAny(any)})
if err != nil {
t.Fatalf("should not have failed with error, got: %v", err)
}
@ -545,7 +546,7 @@ func Test_TaskShim_updateInternal_Error(t *testing.T) {
t.Fatal(err)
}
_, err = s.updateInternal(context.TODO(), &task.UpdateTaskRequest{ID: t1.ID(), Resources: any})
_, err = s.updateInternal(context.TODO(), &task.UpdateTaskRequest{ID: t1.ID(), Resources: protobuf.FromAny(any)})
if err == nil {
t.Fatal("expected to get an error for incorrect resource's type")
}

Просмотреть файл

@ -10,8 +10,8 @@ import (
"time"
"github.com/Microsoft/hcsshim/cmd/containerd-shim-runhcs-v1/stats"
v1 "github.com/containerd/cgroups/stats/v1"
"github.com/containerd/containerd/runtime/v2/task"
v1 "github.com/containerd/cgroups/v3/cgroup1/stats"
task "github.com/containerd/containerd/api/runtime/task/v2"
"github.com/pkg/errors"
)
@ -103,7 +103,7 @@ func verifyExpectedCgroupMetrics(t *testing.T, v *v1.Metrics) {
t.Fatal("expected non-nil Metrics.CPU")
}
if v.CPU.Usage.Total != 100 {
t.Fatalf("Expected Metrics.CPU.Usage == 100, got: %d", v.CPU.Usage)
t.Fatalf("Expected Metrics.CPU.Usage.Total == 100, got: %d", v.CPU.Usage.Total)
}
if v.Memory == nil {
t.Fatal("expected non-nil Metrics.Memory")

Просмотреть файл

@ -14,8 +14,8 @@ import (
"github.com/Microsoft/go-winio"
"github.com/Microsoft/hcsshim/internal/oci"
"github.com/Microsoft/hcsshim/pkg/annotations"
task "github.com/containerd/containerd/api/runtime/task/v2"
"github.com/containerd/containerd/runtime/v2/shim"
"github.com/containerd/containerd/runtime/v2/task"
"github.com/containerd/ttrpc"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"

Просмотреть файл

@ -2,5 +2,5 @@ package stats
import (
// go mod will not vendor without an import for metrics.proto
_ "github.com/containerd/cgroups/stats/v1"
_ "github.com/containerd/cgroups/v3/cgroup1/stats"
)

Просмотреть файл

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -2,9 +2,8 @@ syntax = "proto3";
package containerd.runhcs.stats.v1;
import weak "gogoproto/gogo.proto";
import "google/protobuf/timestamp.proto";
import "github.com/containerd/cgroups/stats/v1/metrics.proto";
import "github.com/containerd/cgroups/v3/cgroup1/stats/metrics.proto";
option go_package = "github.com/Microsoft/hcsshim/cmd/containerd-shim-runhcs-v1/stats;stats";
@ -13,22 +12,22 @@ message Statistics {
WindowsContainerStatistics windows = 1;
io.containerd.cgroups.v1.Metrics linux = 2;
}
VirtualMachineStatistics vm = 3 [(gogoproto.customname) = "VM"];
VirtualMachineStatistics vm = 3;
}
message WindowsContainerStatistics {
google.protobuf.Timestamp timestamp = 1 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false];
google.protobuf.Timestamp container_start_time = 2 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false];
uint64 uptime_ns = 3 [(gogoproto.customname) = "UptimeNS"];
google.protobuf.Timestamp timestamp = 1;
google.protobuf.Timestamp container_start_time = 2;
uint64 uptime_ns = 3;
WindowsContainerProcessorStatistics processor = 4;
WindowsContainerMemoryStatistics memory = 5;
WindowsContainerStorageStatistics storage = 6;
}
message WindowsContainerProcessorStatistics {
uint64 total_runtime_ns = 1 [(gogoproto.customname) = "TotalRuntimeNS"];
uint64 runtime_user_ns = 2 [(gogoproto.customname) = "RuntimeUserNS"];
uint64 runtime_kernel_ns = 3 [(gogoproto.customname) = "RuntimeKernelNS"];
uint64 total_runtime_ns = 1;
uint64 runtime_user_ns = 2;
uint64 runtime_kernel_ns = 3;
}
message WindowsContainerMemoryStatistics {
@ -50,7 +49,7 @@ message VirtualMachineStatistics {
}
message VirtualMachineProcessorStatistics {
uint64 total_runtime_ns = 1 [(gogoproto.customname) = "TotalRuntimeNS"];
uint64 total_runtime_ns = 1;
}
message VirtualMachineMemoryStatistics {

Просмотреть файл

@ -12,8 +12,8 @@ import (
"github.com/Microsoft/hcsshim/internal/hcs"
"github.com/Microsoft/hcsshim/internal/shimdiag"
"github.com/Microsoft/hcsshim/pkg/ctrdtaskapi"
task "github.com/containerd/containerd/api/runtime/task/v2"
"github.com/containerd/containerd/errdefs"
"github.com/containerd/containerd/runtime/v2/task"
"github.com/opencontainers/runtime-spec/specs-go"
)
@ -68,7 +68,7 @@ type shimTask interface {
DeleteExec(ctx context.Context, eid string) (int, uint32, time.Time, error)
// Pids returns all process pid's in this `shimTask` including ones not
// created by the caller via a `CreateExec`.
Pids(ctx context.Context) ([]options.ProcessDetails, error)
Pids(ctx context.Context) ([]*options.ProcessDetails, error)
// Waits for the the init task to complete.
//
// Note: If the `request.ExecID == ""` the caller should instead call `Wait`

Просмотреть файл

@ -11,15 +11,16 @@ import (
"time"
eventstypes "github.com/containerd/containerd/api/events"
task "github.com/containerd/containerd/api/runtime/task/v2"
"github.com/containerd/containerd/api/types"
"github.com/containerd/containerd/errdefs"
"github.com/containerd/containerd/runtime"
"github.com/containerd/containerd/runtime/v2/task"
"github.com/containerd/typeurl"
typeurl "github.com/containerd/typeurl/v2"
"github.com/opencontainers/runtime-spec/specs-go"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
"go.opencensus.io/trace"
"google.golang.org/protobuf/types/known/timestamppb"
runhcsopts "github.com/Microsoft/hcsshim/cmd/containerd-shim-runhcs-v1/options"
"github.com/Microsoft/hcsshim/cmd/containerd-shim-runhcs-v1/stats"
@ -547,10 +548,10 @@ func (ht *hcsTask) DeleteExec(ctx context.Context, eid string) (int, uint32, tim
return 0, 0, time.Time{}, err
}
return int(status.Pid), status.ExitStatus, status.ExitedAt, nil
return int(status.Pid), status.ExitStatus, status.ExitedAt.AsTime(), nil
}
func (ht *hcsTask) Pids(ctx context.Context) ([]runhcsopts.ProcessDetails, error) {
func (ht *hcsTask) Pids(ctx context.Context) ([]*runhcsopts.ProcessDetails, error) {
// Map all user created exec's to pid/exec-id
pidMap := make(map[int]string)
ht.execs.Range(func(key, value interface{}) bool {
@ -573,10 +574,12 @@ func (ht *hcsTask) Pids(ctx context.Context) ([]runhcsopts.ProcessDetails, error
}
// Copy to pid/exec-id pair's
pairs := make([]runhcsopts.ProcessDetails, len(props.ProcessList))
pairs := make([]*runhcsopts.ProcessDetails, len(props.ProcessList))
for i, p := range props.ProcessList {
pairs[i] = &runhcsopts.ProcessDetails{}
pairs[i].ImageName = p.ImageName
pairs[i].CreatedAt = p.CreateTimestamp
pairs[i].CreatedAt = timestamppb.New(p.CreateTimestamp)
pairs[i].KernelTime_100Ns = p.KernelTime100ns
pairs[i].MemoryCommitBytes = p.MemoryCommitBytes
pairs[i].MemoryWorkingSetPrivateBytes = p.MemoryWorkingSetPrivateBytes
@ -784,8 +787,8 @@ func (ht *hcsTask) Share(ctx context.Context, req *shimdiag.ShareRequest) error
func hcsPropertiesToWindowsStats(props *hcsschema.Properties) *stats.Statistics_Windows {
wcs := &stats.Statistics_Windows{Windows: &stats.WindowsContainerStatistics{}}
if props.Statistics != nil {
wcs.Windows.Timestamp = props.Statistics.Timestamp
wcs.Windows.ContainerStartTime = props.Statistics.ContainerStartTime
wcs.Windows.Timestamp = timestamppb.New(props.Statistics.Timestamp)
wcs.Windows.ContainerStartTime = timestamppb.New(props.Statistics.ContainerStartTime)
wcs.Windows.UptimeNS = props.Statistics.Uptime100ns * 100
if props.Statistics.Processor != nil {
wcs.Windows.Processor = &stats.WindowsContainerProcessorStatistics{

Просмотреть файл

@ -148,7 +148,7 @@ func verifyDeleteSuccessValues(t *testing.T, pid int, status uint32, at time.Tim
if status != e.status {
t.Fatalf("status expected '%d' got: '%d'", e.status, status)
}
if at != e.at {
if !at.Equal(e.at) {
t.Fatalf("at expected '%v' got: '%v'", e.at, at)
}
}

Просмотреть файл

@ -9,10 +9,10 @@ import (
"github.com/Microsoft/hcsshim/cmd/containerd-shim-runhcs-v1/options"
"github.com/Microsoft/hcsshim/cmd/containerd-shim-runhcs-v1/stats"
"github.com/Microsoft/hcsshim/internal/shimdiag"
v1 "github.com/containerd/cgroups/stats/v1"
v1 "github.com/containerd/cgroups/v3/cgroup1/stats"
task "github.com/containerd/containerd/api/runtime/task/v2"
"github.com/containerd/containerd/errdefs"
"github.com/containerd/containerd/runtime/v2/task"
"github.com/containerd/typeurl"
typeurl "github.com/containerd/typeurl/v2"
specs "github.com/opencontainers/runtime-spec/specs-go"
"github.com/pkg/errors"
)
@ -71,18 +71,18 @@ func (tst *testShimTask) DeleteExec(ctx context.Context, eid string) (int, uint3
if eid != "" {
delete(tst.execs, eid)
}
return int(status.Pid), status.ExitStatus, status.ExitedAt, nil
return int(status.Pid), status.ExitStatus, status.ExitedAt.AsTime(), nil
}
func (tst *testShimTask) Pids(ctx context.Context) ([]options.ProcessDetails, error) {
pairs := []options.ProcessDetails{
func (tst *testShimTask) Pids(ctx context.Context) ([]*options.ProcessDetails, error) {
pairs := []*options.ProcessDetails{
{
ProcessID: uint32(tst.exec.Pid()),
ExecID: tst.exec.ID(),
},
}
for _, p := range tst.execs {
pairs = append(pairs, options.ProcessDetails{
pairs = append(pairs, &options.ProcessDetails{
ProcessID: uint32(p.pid),
ExecID: p.id,
})

Просмотреть файл

@ -15,10 +15,10 @@ import (
"github.com/Microsoft/hcsshim/internal/shimdiag"
"github.com/Microsoft/hcsshim/internal/uvm"
eventstypes "github.com/containerd/containerd/api/events"
task "github.com/containerd/containerd/api/runtime/task/v2"
"github.com/containerd/containerd/errdefs"
"github.com/containerd/containerd/runtime"
"github.com/containerd/containerd/runtime/v2/task"
"github.com/containerd/typeurl"
typeurl "github.com/containerd/typeurl/v2"
"github.com/opencontainers/runtime-spec/specs-go"
"github.com/pkg/errors"
"go.opencensus.io/trace"
@ -156,11 +156,11 @@ func (wpst *wcowPodSandboxTask) DeleteExec(ctx context.Context, eid string) (int
return 0, 0, time.Time{}, err
}
return int(status.Pid), status.ExitStatus, status.ExitedAt, nil
return int(status.Pid), status.ExitStatus, status.ExitedAt.AsTime(), nil
}
func (wpst *wcowPodSandboxTask) Pids(ctx context.Context) ([]options.ProcessDetails, error) {
return []options.ProcessDetails{
func (wpst *wcowPodSandboxTask) Pids(ctx context.Context) ([]*options.ProcessDetails, error) {
return []*options.ProcessDetails{
{
ProcessID: uint32(wpst.init.Pid()),
ExecID: wpst.init.ID(),

Просмотреть файл

@ -14,8 +14,8 @@ import (
"time"
"github.com/cenkalti/backoff/v4"
"github.com/containerd/cgroups"
cgroupstats "github.com/containerd/cgroups/stats/v1"
cgroups "github.com/containerd/cgroups/v3/cgroup1"
cgroupstats "github.com/containerd/cgroups/v3/cgroup1/stats"
oci "github.com/opencontainers/runtime-spec/specs-go"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
@ -342,7 +342,7 @@ func main() {
logrus.WithError(err).Fatal("failed to get sys info")
}
containersLimit := int64(sinfo.Totalram - *rootMemReserveBytes)
containersControl, err := cgroups.New(cgroups.V1, cgroups.StaticPath("/containers"), &oci.LinuxResources{
containersControl, err := cgroups.New(cgroups.StaticPath("/containers"), &oci.LinuxResources{
Memory: &oci.LinuxMemory{
Limit: &containersLimit,
},
@ -352,7 +352,7 @@ func main() {
}
defer containersControl.Delete() //nolint:errcheck
gcsControl, err := cgroups.New(cgroups.V1, cgroups.StaticPath("/gcs"), &oci.LinuxResources{})
gcsControl, err := cgroups.New(cgroups.StaticPath("/gcs"), &oci.LinuxResources{})
if err != nil {
logrus.WithError(err).Fatal("failed to create gcs cgroup")
}

Просмотреть файл

@ -8,6 +8,14 @@ import (
"time"
"github.com/Microsoft/go-winio"
"github.com/containerd/containerd/protobuf"
"github.com/containerd/ttrpc"
typeurl "github.com/containerd/typeurl/v2"
"github.com/pkg/errors"
"go.opencensus.io/trace"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
"github.com/Microsoft/hcsshim/hcn"
"github.com/Microsoft/hcsshim/internal/computeagent"
"github.com/Microsoft/hcsshim/internal/log"
@ -19,13 +27,6 @@ import (
ncproxygrpc "github.com/Microsoft/hcsshim/pkg/ncproxy/ncproxygrpc/v1"
nodenetsvc "github.com/Microsoft/hcsshim/pkg/ncproxy/nodenetsvc/v1"
"github.com/Microsoft/hcsshim/pkg/octtrpc"
"github.com/containerd/ttrpc"
"github.com/containerd/typeurl"
"github.com/gogo/protobuf/types"
"github.com/pkg/errors"
"go.opencensus.io/trace"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
)
func init() {
@ -43,6 +44,8 @@ var (
// GRPC service exposed for use by a Node Network Service.
type grpcService struct {
ncproxygrpc.UnimplementedNetworkConfigProxyServer
// containerIDToComputeAgent is a cache that stores the mappings from
// container ID to compute agent address is memory. This is repopulated
// on reconnect and referenced during client calls.
@ -81,7 +84,7 @@ func (s *grpcService) AddNIC(ctx context.Context, req *ncproxygrpc.AddNICRequest
return nil, status.Errorf(codes.FailedPrecondition, "No shim registered for namespace `%s`", req.ContainerID)
}
var anyEndpoint *types.Any
var anyEndpoint typeurl.Any
if ep, err := s.ncpNetworkingStore.GetEndpointByName(ctx, req.EndpointName); err == nil {
if ep.Settings == nil || ep.Settings.DeviceDetails == nil || ep.Settings.DeviceDetails.PCIDeviceDetails == nil {
return nil, status.Errorf(codes.InvalidArgument, "received empty field in request: %+v", req)
@ -149,7 +152,7 @@ func (s *grpcService) AddNIC(ctx context.Context, req *ncproxygrpc.AddNICRequest
caReq := &computeagent.AddNICInternalRequest{
ContainerID: req.ContainerID,
NicID: req.NicID,
Endpoint: anyEndpoint,
Endpoint: protobuf.FromAny(anyEndpoint),
}
if _, err := agent.AddNIC(ctx, caReq); err != nil {
return nil, err
@ -201,7 +204,7 @@ func (s *grpcService) ModifyNIC(ctx context.Context, req *ncproxygrpc.ModifyNICR
iovReqSettings := settings.Policies.IovPolicySettings
caReq := &computeagent.ModifyNICInternalRequest{
NicID: req.NicID,
Endpoint: anyEndpoint,
Endpoint: protobuf.FromAny(anyEndpoint),
IovPolicySettings: &computeagent.IovSettings{
IovOffloadWeight: iovReqSettings.IovOffloadWeight,
QueuePairsRequested: iovReqSettings.QueuePairsRequested,
@ -265,7 +268,7 @@ func (s *grpcService) DeleteNIC(ctx context.Context, req *ncproxygrpc.DeleteNICR
return nil, status.Errorf(codes.InvalidArgument, "received empty field in request: %+v", req)
}
var anyEndpoint *types.Any
var anyEndpoint typeurl.Any
if endpt, err := s.ncpNetworkingStore.GetEndpointByName(ctx, req.EndpointName); err == nil {
anyEndpoint, err = typeurl.MarshalAny(endpt)
if err != nil {
@ -293,7 +296,7 @@ func (s *grpcService) DeleteNIC(ctx context.Context, req *ncproxygrpc.DeleteNICR
caReq := &computeagent.DeleteNICInternalRequest{
ContainerID: req.ContainerID,
NicID: req.NicID,
Endpoint: anyEndpoint,
Endpoint: protobuf.FromAny(anyEndpoint),
}
if _, err := agent.DeleteNIC(ctx, caReq); err != nil {
if err == uvm.ErrNICNotFound || err == uvm.ErrNetNSNotFound {

Просмотреть файл

@ -17,11 +17,13 @@ var (
)
type v0ServiceWrapper struct {
ncproxygrpcv0.UnimplementedNetworkConfigProxyServer
s *grpcService
}
func newV0ServiceWrapper(s *grpcService) *v0ServiceWrapper {
return &v0ServiceWrapper{s}
return &v0ServiceWrapper{s: s}
}
var _ ncproxygrpcv0.NetworkConfigProxyServer = &v0ServiceWrapper{}

Просмотреть файл

@ -15,12 +15,6 @@ import (
"github.com/Microsoft/go-winio/pkg/etw"
"github.com/Microsoft/go-winio/pkg/etwlogrus"
"github.com/Microsoft/go-winio/pkg/guid"
"github.com/Microsoft/hcsshim/internal/computeagent"
"github.com/Microsoft/hcsshim/internal/debug"
"github.com/Microsoft/hcsshim/internal/log"
"github.com/Microsoft/hcsshim/internal/oc"
nodenetsvcV0 "github.com/Microsoft/hcsshim/pkg/ncproxy/nodenetsvc/v0"
nodenetsvc "github.com/Microsoft/hcsshim/pkg/ncproxy/nodenetsvc/v1"
"github.com/containerd/ttrpc"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
@ -29,7 +23,15 @@ import (
"go.opencensus.io/trace"
"google.golang.org/grpc"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/credentials/insecure"
"google.golang.org/grpc/status"
"github.com/Microsoft/hcsshim/internal/computeagent"
"github.com/Microsoft/hcsshim/internal/debug"
"github.com/Microsoft/hcsshim/internal/log"
"github.com/Microsoft/hcsshim/internal/oc"
nodenetsvcV0 "github.com/Microsoft/hcsshim/pkg/ncproxy/nodenetsvc/v0"
nodenetsvc "github.com/Microsoft/hcsshim/pkg/ncproxy/nodenetsvc/v1"
)
type nodeNetSvcConn struct {
@ -222,7 +224,10 @@ func run(clicontext *cli.Context) error {
log.G(ctx).Infof("Connecting to NodeNetworkService at address %s", conf.NodeNetSvcAddr)
dialCtx := ctx
opts := []grpc.DialOption{grpc.WithInsecure(), grpc.WithStatsHandler(&ocgrpc.ClientHandler{})}
opts := []grpc.DialOption{
grpc.WithTransportCredentials(insecure.NewCredentials()),
grpc.WithStatsHandler(&ocgrpc.ClientHandler{}),
}
if conf.Timeout > 0 {
var cancel context.CancelFunc
dialCtx, cancel = context.WithTimeout(ctx, time.Duration(conf.Timeout)*time.Second)

Просмотреть файл

@ -1,3 +1,5 @@
//go:build windows
package main
import (

Просмотреть файл

@ -149,7 +149,7 @@ func ConvertTarToExt4(r io.Reader, w io.ReadWriteSeeker, options ...Option) erro
var typ uint16
switch hdr.Typeflag {
case tar.TypeReg, tar.TypeRegA:
case tar.TypeReg:
typ = compactext4.S_IFREG
case tar.TypeSymlink:
typ = compactext4.S_IFLNK

36
go.mod
Просмотреть файл

@ -6,13 +6,12 @@ require (
github.com/Microsoft/go-winio v0.6.1
github.com/blang/semver/v4 v4.0.0
github.com/cenkalti/backoff/v4 v4.2.1
github.com/containerd/cgroups v1.1.0
github.com/containerd/cgroups/v3 v3.0.1
github.com/containerd/console v1.0.3
github.com/containerd/containerd v1.6.21
github.com/containerd/containerd v1.7.0
github.com/containerd/go-runc v1.0.0
github.com/containerd/ttrpc v1.1.2
github.com/containerd/typeurl v1.0.2
github.com/gogo/protobuf v1.3.2
github.com/containerd/ttrpc v1.2.2
github.com/containerd/typeurl/v2 v2.1.1
github.com/golang/mock v1.6.0
github.com/google/go-cmp v0.5.9
github.com/google/go-containerregistry v0.15.2
@ -33,15 +32,22 @@ require (
go.opencensus.io v0.24.0
golang.org/x/sync v0.3.0
golang.org/x/sys v0.9.0
google.golang.org/grpc v1.47.0
google.golang.org/grpc v1.55.0
google.golang.org/protobuf v1.30.0
)
require (
github.com/containerd/protobuild v0.3.0
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0
)
require (
github.com/OneOfOne/xxhash v1.2.8 // indirect
github.com/agnivade/levenshtein v1.0.1 // indirect
github.com/containerd/fifo v1.0.0 // indirect
github.com/containerd/continuity v0.3.0 // indirect
github.com/containerd/fifo v1.1.0 // indirect
github.com/containerd/stargz-snapshotter/estargz v0.14.3 // indirect
github.com/coreos/go-systemd/v22 v22.3.2 // indirect
github.com/coreos/go-systemd/v22 v22.5.0 // indirect
github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect
github.com/docker/cli v23.0.5+incompatible // indirect
@ -55,7 +61,8 @@ require (
github.com/ghodss/yaml v1.0.0 // indirect
github.com/gobwas/glob v0.2.3 // indirect
github.com/goccy/go-json v0.10.2 // indirect
github.com/godbus/dbus/v5 v5.0.6 // indirect
github.com/godbus/dbus/v5 v5.1.0 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
github.com/golang/protobuf v1.5.3 // indirect
github.com/klauspost/compress v1.16.5 // indirect
@ -66,7 +73,8 @@ require (
github.com/lestrrat-go/iter v1.0.2 // indirect
github.com/lestrrat-go/option v1.0.1 // indirect
github.com/mitchellh/go-homedir v1.1.0 // indirect
github.com/moby/sys/mountinfo v0.5.0 // indirect
github.com/moby/sys/mountinfo v0.6.2 // indirect
github.com/moby/sys/sequential v0.5.0 // indirect
github.com/opencontainers/go-digest v1.0.0 // indirect
github.com/opencontainers/image-spec v1.1.0-rc3 // indirect
github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0 // indirect
@ -82,12 +90,6 @@ require (
golang.org/x/net v0.10.0 // indirect
golang.org/x/text v0.9.0 // indirect
golang.org/x/tools v0.8.0 // indirect
google.golang.org/genproto v0.0.0-20220502173005-c8bf987b8c21 // indirect
google.golang.org/protobuf v1.30.0 // indirect
google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
)
replace (
google.golang.org/genproto => google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63
google.golang.org/grpc => google.golang.org/grpc v1.27.1
)

166
go.sum
Просмотреть файл

@ -1,5 +1,6 @@
bazil.org/fuse v0.0.0-20160811212531-371fbbdaa898/go.mod h1:Xbm+BRKSBEpa4q4hTSxohYNQpsxXPbPry4JJWOB3LB8=
bazil.org/fuse v0.0.0-20200407214033-5883e5a4b512/go.mod h1:FbcW6z/2VytnFDhZfumh8Ss8zxHE6qpMP5sHTRe0EaM=
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=
cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU=
@ -153,8 +154,8 @@ github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054/go.mod h1:sGbDF6
github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko=
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE=
github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44=
github.com/checkpoint-restore/go-criu/v4 v4.1.0/go.mod h1:xUQBLp4RLc5zJtWY++yjOoMoB5lihDt7fai+75m+rGw=
github.com/checkpoint-restore/go-criu/v5 v5.0.0/go.mod h1:cfwC0EG7HMUenopBsUf9d89JlCLQIfgVcNsNN0t6T2M=
github.com/checkpoint-restore/go-criu/v5 v5.3.0/go.mod h1:E/eQpaFtUKGOOSEBZgmKAcn+zUUwWxqcaKZlF54wK8E=
@ -167,6 +168,16 @@ github.com/cilium/ebpf v0.2.0/go.mod h1:To2CFviqOWL/M0gIMsvSMlqe7em/l1ALkX1PyjrX
github.com/cilium/ebpf v0.4.0/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs=
github.com/cilium/ebpf v0.6.2/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs=
github.com/cilium/ebpf v0.7.0/go.mod h1:/oI2+1shJiTGAMgl6/RgJr36Eo1jzrRcAWbcXO2usCA=
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI=
github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs=
github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8=
github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5/go.mod h1:h6jFvWxBdQXxjopDMZyH2UVceIRfR84bdzbkoKrsWNo=
github.com/cockroachdb/errors v1.2.4/go.mod h1:rQD95gz6FARkaKkQXUksEje/d9a6wBJoCr5oaCLELYA=
@ -186,8 +197,8 @@ github.com/containerd/cgroups v0.0.0-20200824123100-0b889c03f102/go.mod h1:s5q4S
github.com/containerd/cgroups v0.0.0-20210114181951-8a68de567b68/go.mod h1:ZJeTFisyysqgcCdecO57Dj79RfL0LNeGiFUqLYQRYLE=
github.com/containerd/cgroups v1.0.1/go.mod h1:0SJrPIenamHDcZhEcJMNBB85rHcUsw4f25ZfBiPYRkU=
github.com/containerd/cgroups v1.0.3/go.mod h1:/ofk34relqNjSGyqPrmEULrO4Sc8LJhvJmWbUCUKqj8=
github.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaDFBM=
github.com/containerd/cgroups v1.1.0/go.mod h1:6ppBcbh/NOOUU+dMKrykgaBnK9lCIBxHqJDGwsa1mIw=
github.com/containerd/cgroups/v3 v3.0.1 h1:4hfGvu8rfGIwVIDd+nLzn/B9ZXx4BcCjzt5ToenJRaE=
github.com/containerd/cgroups/v3 v3.0.1/go.mod h1:/vtwk1VXrtoa5AaZLkypuOJgA/6DyPMZHJPGQNtlHnw=
github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw=
github.com/containerd/console v0.0.0-20181022165439-0650fd9eeb50/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw=
github.com/containerd/console v0.0.0-20191206165004-02ecf6a7291e/go.mod h1:8Pf4gM6VEbTNRIT26AyyU7hxdQU3MvAvxVI0sc00XBE=
@ -213,8 +224,8 @@ github.com/containerd/containerd v1.5.7/go.mod h1:gyvv6+ugqY25TiXxcZC3L5yOeYgEw0
github.com/containerd/containerd v1.5.8/go.mod h1:YdFSv5bTFLpG2HIYmfqDpSYYTDX+mc5qtSuYx1YUb/s=
github.com/containerd/containerd v1.6.1/go.mod h1:1nJz5xCZPusx6jJU8Frfct988y0NpumIq9ODB0kLtoE=
github.com/containerd/containerd v1.6.6/go.mod h1:ZoP1geJldzCVY3Tonoz7b1IXk8rIX0Nltt5QE4OMNk0=
github.com/containerd/containerd v1.6.21 h1:eSTAmnvDKRPWan+MpSSfNyrtleXd86ogK9X8fMWpe/Q=
github.com/containerd/containerd v1.6.21/go.mod h1:apei1/i5Ux2FzrK6+DM/suEsGuK/MeVOfy8tR2q7Wnw=
github.com/containerd/containerd v1.7.0 h1:G/ZQr3gMZs6ZT0qPUZ15znx5QSdQdASW11nXTLTM2Pg=
github.com/containerd/containerd v1.7.0/go.mod h1:QfR7Efgb/6X2BDpTPJRvPTYDE9rsF0FsXX9J8sIs/sc=
github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y=
github.com/containerd/continuity v0.0.0-20190815185530-f2a389ac0a02/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y=
github.com/containerd/continuity v0.0.0-20191127005431-f65d91d395eb/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y=
@ -224,13 +235,15 @@ github.com/containerd/continuity v0.0.0-20210208174643-50096c924a4e/go.mod h1:EX
github.com/containerd/continuity v0.1.0/go.mod h1:ICJu0PwR54nI0yPEnJ6jcS+J7CZAUXrLh8lPo2knzsM=
github.com/containerd/continuity v0.2.2/go.mod h1:pWygW9u7LtS1o4N/Tn0FoCFDIXZ7rxcMX7HX1Dmibvk=
github.com/containerd/continuity v0.3.0 h1:nisirsYROK15TAMVukJOUyGJjz4BNQJBVsNvAXZJ/eg=
github.com/containerd/continuity v0.3.0/go.mod h1:wJEAIwKOm/pBZuBd0JmeTvnLquTB1Ag8espWhkykbPM=
github.com/containerd/fifo v0.0.0-20180307165137-3d5202aec260/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI=
github.com/containerd/fifo v0.0.0-20190226154929-a9fb20d87448/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI=
github.com/containerd/fifo v0.0.0-20200410184934-f15a3290365b/go.mod h1:jPQ2IAeZRCYxpS/Cm1495vGFww6ecHmMk1YJH2Q5ln0=
github.com/containerd/fifo v0.0.0-20201026212402-0724c46b320c/go.mod h1:jPQ2IAeZRCYxpS/Cm1495vGFww6ecHmMk1YJH2Q5ln0=
github.com/containerd/fifo v0.0.0-20210316144830-115abcc95a1d/go.mod h1:ocF/ME1SX5b1AOlWi9r677YJmCPSwwWnQ9O123vzpE4=
github.com/containerd/fifo v1.0.0 h1:6PirWBr9/L7GDamKr+XM0IeUFXu5mf3M/BPpH9gaLBU=
github.com/containerd/fifo v1.0.0/go.mod h1:ocF/ME1SX5b1AOlWi9r677YJmCPSwwWnQ9O123vzpE4=
github.com/containerd/fifo v1.1.0 h1:4I2mbh5stb1u6ycIABlBw9zgtlK8viPI9QkQNRQEEmY=
github.com/containerd/fifo v1.1.0/go.mod h1:bmC4NWMbXlt2EZ0Hc7Fx7QzTFxgPID13eH0Qu+MAb2o=
github.com/containerd/go-cni v1.0.1/go.mod h1:+vUpYxKvAF72G9i1WoDOiPGRtQpqsNW/ZHtSlv++smU=
github.com/containerd/go-cni v1.0.2/go.mod h1:nrNABBHzu0ZwCug9Ije8hL2xBCYh/pjfMb1aZGrrohk=
github.com/containerd/go-cni v1.1.0/go.mod h1:Rflh2EJ/++BA2/vY5ao3K6WJRR/bZKsX123aPk+kUtA=
@ -251,6 +264,8 @@ github.com/containerd/imgcrypt v1.1.4/go.mod h1:LorQnPtzL/T0IyCeftcsMEO7AqxUDbdO
github.com/containerd/nri v0.0.0-20201007170849-eb1350a75164/go.mod h1:+2wGSDGFYfE5+So4M5syatU0N0f0LbWpuqyMi4/BE8c=
github.com/containerd/nri v0.0.0-20210316161719-dbaa18c31c14/go.mod h1:lmxnXF6oMkbqs39FiCt1s0R2HSMhcLel9vNL3m4AaeY=
github.com/containerd/nri v0.1.0/go.mod h1:lmxnXF6oMkbqs39FiCt1s0R2HSMhcLel9vNL3m4AaeY=
github.com/containerd/protobuild v0.3.0 h1:RIyEIu+D+iIha6E1PREBPAXspSMFaDVam81JlolZWpg=
github.com/containerd/protobuild v0.3.0/go.mod h1:5mNMFKKAwCIAkFBPiOdtRx2KiQlyEJeMXnL5R1DsWu8=
github.com/containerd/stargz-snapshotter/estargz v0.4.1/go.mod h1:x7Q9dg9QYb4+ELgxmo4gBUeJB0tl5dqH1Sdz0nJU1QM=
github.com/containerd/stargz-snapshotter/estargz v0.14.3 h1:OqlDCK3ZVUO6C3B/5FSkDwbkEETK84kQgEeFwDC+62k=
github.com/containerd/stargz-snapshotter/estargz v0.14.3/go.mod h1:KY//uOCIkSuNAHhJogcZtrNHdKrA99/FCCRjE3HD36o=
@ -260,13 +275,14 @@ github.com/containerd/ttrpc v0.0.0-20191028202541-4f1b8fe65a5c/go.mod h1:LPm1u0x
github.com/containerd/ttrpc v1.0.1/go.mod h1:UAxOpgT9ziI0gJrmKvgcZivgxOp8iFPSk8httJEt98Y=
github.com/containerd/ttrpc v1.0.2/go.mod h1:UAxOpgT9ziI0gJrmKvgcZivgxOp8iFPSk8httJEt98Y=
github.com/containerd/ttrpc v1.1.0/go.mod h1:XX4ZTnoOId4HklF4edwc4DcqskFZuvXB1Evzy5KFQpQ=
github.com/containerd/ttrpc v1.1.2 h1:4jH6OQDQqjfVD2b5TJS5TxmGuLGmp5WW7KtW2TWOP7c=
github.com/containerd/ttrpc v1.1.2/go.mod h1:XX4ZTnoOId4HklF4edwc4DcqskFZuvXB1Evzy5KFQpQ=
github.com/containerd/ttrpc v1.2.2 h1:9vqZr0pxwOF5koz6N0N3kJ0zDHokrcPxIR/ZR2YFtOs=
github.com/containerd/ttrpc v1.2.2/go.mod h1:sIT6l32Ph/H9cvnJsfXM5drIVzTr5A2flTf1G5tYZak=
github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc=
github.com/containerd/typeurl v0.0.0-20190911142611-5eb25027c9fd/go.mod h1:GeKYzf2pQcqv7tJ0AoCuuhtnqhva5LNU3U+OyKxxJpk=
github.com/containerd/typeurl v1.0.1/go.mod h1:TB1hUtrpaiO88KEK56ijojHS1+NeF0izUACaJW2mdXg=
github.com/containerd/typeurl v1.0.2 h1:Chlt8zIieDbzQFzXzAeBEF92KhExuE4p9p92/QmY7aY=
github.com/containerd/typeurl v1.0.2/go.mod h1:9trJWW2sRlGub4wZJRTW83VtbOLS6hwcDZXTn6oPz9s=
github.com/containerd/typeurl/v2 v2.1.1 h1:3Q4Pt7i8nYwy2KmQWIw2+1hTvwTE/6w9FqcttATPO/4=
github.com/containerd/typeurl/v2 v2.1.1/go.mod h1:IDp2JFvbwZ31H8dQbEIY7sDl2L3o3HZj1hsSQlywkQ0=
github.com/containerd/zfs v0.0.0-20200918131355-0a33824f23a2/go.mod h1:8IgZOBdv8fAgXddBT4dBXJPtxyRsejFIpXoklgxgEjw=
github.com/containerd/zfs v0.0.0-20210301145711-11e8f1707f62/go.mod h1:A9zfAbMlQwE+/is6hi0Xw8ktpL+6glmqZYtevJgaB8Y=
github.com/containerd/zfs v0.0.0-20210315114300-dde8f0fda960/go.mod h1:m+m51S1DvAP6r3FcmYCp54bQ34pyOwTieQDNRIRHsFY=
@ -301,8 +317,9 @@ github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7
github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
github.com/coreos/go-systemd/v22 v22.0.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk=
github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk=
github.com/coreos/go-systemd/v22 v22.3.2 h1:D9/bQk5vlXQFZ6Kwuu6zaiXJ9oTPe68++AzAJc1DzSI=
github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs=
github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE=
@ -375,7 +392,15 @@ github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25Kn
github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po=
github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ=
github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0=
github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE=
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
github.com/evanphx/json-patch v4.11.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
@ -445,8 +470,9 @@ github.com/godbus/dbus v0.0.0-20180201030542-885f9cc04c9c/go.mod h1:/YcGZj5zSblf
github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4=
github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
github.com/godbus/dbus/v5 v5.0.6 h1:mkgN1ofwASrYnJ5W6U/BxG15eXXXjirgZc7CLqkcaro=
github.com/godbus/dbus/v5 v5.0.6/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk=
github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
github.com/gogo/googleapis v1.2.0/go.mod h1:Njal3psf3qN6dwBtQfUmBZh2ybovJ0tlu3o/AC7HYjU=
github.com/gogo/googleapis v1.4.0/go.mod h1:5YRNX2z1oM5gXdAkurHa942MDgEJyk02w4OecKY87+c=
@ -460,8 +486,8 @@ github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69
github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg=
github.com/golang-jwt/jwt/v4 v4.2.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg=
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
github.com/golang/glog v1.0.0 h1:nfP3RFugxnNRyKgeWd4oI1nYvXpxrx8ck8ZrcizshdQ=
github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4=
github.com/golang/glog v1.1.0 h1:/d3pCKDPWNnvIWe0vVUpNP32qc8U3PDVxySP/y360qE=
github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
@ -707,8 +733,11 @@ github.com/moby/locker v1.0.1/go.mod h1:S7SDdo5zpBK84bzzVlKr2V0hz+7x9hWbYC/kq7oQ
github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c=
github.com/moby/sys/mountinfo v0.4.0/go.mod h1:rEr8tzG/lsIZHBtN/JjGG+LMYx9eXgW2JI+6q0qou+A=
github.com/moby/sys/mountinfo v0.4.1/go.mod h1:rEr8tzG/lsIZHBtN/JjGG+LMYx9eXgW2JI+6q0qou+A=
github.com/moby/sys/mountinfo v0.5.0 h1:2Ks8/r6lopsxWi9m58nlwjaeSzUX9iiL1vj5qB/9ObI=
github.com/moby/sys/mountinfo v0.5.0/go.mod h1:3bMD3Rg+zkqx8MRYPi7Pyb0Ie97QEBmdxbhnCLlSvSU=
github.com/moby/sys/mountinfo v0.6.2 h1:BzJjoreD5BMFNmD9Rus6gdd1pLuecOFPt8wC+Vygl78=
github.com/moby/sys/mountinfo v0.6.2/go.mod h1:IJb6JQeOklcdMU9F5xQ8ZALD+CUr5VlGpwtX+VE0rpI=
github.com/moby/sys/sequential v0.5.0 h1:OPvI35Lzn9K04PBbCLW0g4LcFAJgHsvXsRyewg5lXtc=
github.com/moby/sys/sequential v0.5.0/go.mod h1:tH2cOOs5V9MlPiXcQzRC+eEyab644PWKGRYaaV5ZZlo=
github.com/moby/sys/signal v0.6.0/go.mod h1:GQ6ObYZfqacOwTtlXvcmh9A26dVRul/hbOZn88Kg8Tg=
github.com/moby/sys/symlink v0.1.0/go.mod h1:GGDODQmbFOjFsXvfLVn3+ZRxkch54RkSiGqsZeMYowQ=
github.com/moby/sys/symlink v0.2.0/go.mod h1:7uZVF2dqJjG/NsClqul95CqKOBRQyYSNnJ6BMgR/gFs=
@ -827,14 +856,14 @@ github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP
github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0=
github.com/prometheus/client_golang v1.11.1/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0=
github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY=
github.com/prometheus/client_golang v1.12.2 h1:51L9cDoUHVrXx4zWYlcLQIZ+d+VXHgqnYKkIuq4g/34=
github.com/prometheus/client_golang v1.12.2/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY=
github.com/prometheus/client_golang v1.14.0 h1:nJdhIvne2eSX/XRAFV9PcvFFRbrjbcTUj0VP62TMhnw=
github.com/prometheus/client_model v0.0.0-20171117100541-99fa1f4be8e5/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M=
github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4=
github.com/prometheus/common v0.0.0-20180110214958-89604d197083/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=
github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=
github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
@ -843,8 +872,8 @@ github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+
github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo=
github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc=
github.com/prometheus/common v0.30.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls=
github.com/prometheus/common v0.32.1 h1:hWIdL3N2HoUx3B8j3YN9mWor0qhY/NlEKZEaXxuIRh4=
github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls=
github.com/prometheus/common v0.37.0 h1:ccBbHCgIiT9uSoFY0vX8H3zsNR5eLt17/RQLUvn8pXE=
github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
@ -856,8 +885,8 @@ github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+Gx
github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU=
github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU=
github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
github.com/prometheus/procfs v0.8.0 h1:ODq8ZFEaYeCaZOJlZZdJA2AbQR98dSHSM1KW/You5mo=
github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=
github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0 h1:MkV+77GLUNo5oJ0jf870itWm3D0Sjh7+Za9gazKc5LQ=
github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
@ -1100,6 +1129,8 @@ golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EH
golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
@ -1109,6 +1140,7 @@ golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRu
golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=
golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=
golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
@ -1126,6 +1158,7 @@ golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.10.0 h1:lFO9qtOdlre5W1jxS3r/4szv2/6iXxScdzjoBMXNhYk=
golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20181011144130-49bb7cea24b1/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@ -1133,6 +1166,7 @@ golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73r
golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
@ -1218,6 +1252,7 @@ golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E=
golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@ -1323,6 +1358,7 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220906165534-d0df966e6959/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.9.0 h1:KS/R3tvhPqvJvwcKfnBHJwwthS11LRhmM5D59eEXa0s=
@ -1353,12 +1389,14 @@ golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxb
golang.org/x/time v0.0.0-20200416051211-89c76fbcd5d1/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac h1:7zkz7BUtwNFFqcowJ+RIgu2MaV/MapERkDIy+mwPyjs=
golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 h1:vVKdlvoWBphwdxWKrFZEuM0kGgGLxUOYcY4U/2Vjg44=
golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
@ -1416,6 +1454,7 @@ golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4f
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU=
@ -1449,6 +1488,7 @@ google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34q
google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8=
google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU=
google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94=
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0=
@ -1456,10 +1496,94 @@ google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCID
google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=
google.golang.org/cloud v0.0.0-20151119220103-975617b05ea8/go.mod h1:0H1ncTHf11KCFhTc/+EFRbzSCOZx+VUbRMk55Yv5MYk=
google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63 h1:YzfoEYWbODU5Fbt37+h7X16BWQbad7Q4S6gclTKFXM8=
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190522204451-c2c4e71fbf69/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s=
google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8=
google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
google.golang.org/genproto v0.0.0-20200117163144-32f20d992d24/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA=
google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
google.golang.org/grpc v1.27.1 h1:zvIju4sqAGvwKspUQOhwnpcqSbzi7/H6QomNNjTL4sk=
google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c=
google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U=
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
google.golang.org/genproto v0.0.0-20200527145253-8367513e4ece/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA=
google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA=
google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20201110150050-8816d57aaa9a/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A=
google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0=
google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY=
google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc=
google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 h1:DdoeryqhaXp1LtT/emMP1BRJPHHKFi5akj/nbx/zNTA=
google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s=
google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA=
google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk=
google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60=
google.golang.org/grpc v1.28.1/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60=
google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk=
google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0=
google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8=
google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU=
google.golang.org/grpc v1.43.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU=
google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk=
google.golang.org/grpc v1.47.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk=
google.golang.org/grpc v1.55.0 h1:3Oj82/tFSCeUrRTg/5E/7d/W5A1tj6Ky1ABAuZuv5ag=
google.golang.org/grpc v1.55.0/go.mod h1:iYEXKGkEBhg1PjZQvoYEVPTDkHo1/bjTnfwTeGONTY8=
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0 h1:M1YKkFIboKNieVO5DLUEVzQfGwJD30Nv2jfUgzb5UcE=
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw=
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
@ -1467,6 +1591,8 @@ google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miE
google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4=
google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c=
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -2,7 +2,6 @@ syntax = "proto3";
option go_package = "github.com/Microsoft/hcsshim/internal/computeagent;computeagent";
import weak "gogoproto/gogo.proto";
import "google/protobuf/any.proto";
service ComputeAgent{
@ -17,7 +16,7 @@ message AssignPCIInternalRequest {
string container_id = 1;
string device_id = 2;
uint32 virtual_function_index = 3;
string nic_id = 4;
string nic_id = 4;
}
message AssignPCIInternalResponse {
@ -58,6 +57,6 @@ message DeleteNICInternalResponse {}
message IovSettings {
uint32 IovOffloadWeight = 1;
uint32 QueuePairsRequested = 2;
uint32 QueuePairsRequested = 2;
uint32 InterruptModeration = 3;
}

Просмотреть файл

@ -0,0 +1,108 @@
// Code generated by protoc-gen-go-ttrpc. DO NOT EDIT.
// source: github.com/Microsoft/hcsshim/internal/computeagent/computeagent.proto
package computeagent
import (
context "context"
ttrpc "github.com/containerd/ttrpc"
)
type ComputeAgentService interface {
AddNIC(context.Context, *AddNICInternalRequest) (*AddNICInternalResponse, error)
ModifyNIC(context.Context, *ModifyNICInternalRequest) (*ModifyNICInternalResponse, error)
DeleteNIC(context.Context, *DeleteNICInternalRequest) (*DeleteNICInternalResponse, error)
AssignPCI(context.Context, *AssignPCIInternalRequest) (*AssignPCIInternalResponse, error)
RemovePCI(context.Context, *RemovePCIInternalRequest) (*RemovePCIInternalResponse, error)
}
func RegisterComputeAgentService(srv *ttrpc.Server, svc ComputeAgentService) {
srv.RegisterService("ComputeAgent", &ttrpc.ServiceDesc{
Methods: map[string]ttrpc.Method{
"AddNIC": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) {
var req AddNICInternalRequest
if err := unmarshal(&req); err != nil {
return nil, err
}
return svc.AddNIC(ctx, &req)
},
"ModifyNIC": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) {
var req ModifyNICInternalRequest
if err := unmarshal(&req); err != nil {
return nil, err
}
return svc.ModifyNIC(ctx, &req)
},
"DeleteNIC": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) {
var req DeleteNICInternalRequest
if err := unmarshal(&req); err != nil {
return nil, err
}
return svc.DeleteNIC(ctx, &req)
},
"AssignPCI": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) {
var req AssignPCIInternalRequest
if err := unmarshal(&req); err != nil {
return nil, err
}
return svc.AssignPCI(ctx, &req)
},
"RemovePCI": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) {
var req RemovePCIInternalRequest
if err := unmarshal(&req); err != nil {
return nil, err
}
return svc.RemovePCI(ctx, &req)
},
},
})
}
type computeagentClient struct {
client *ttrpc.Client
}
func NewComputeAgentClient(client *ttrpc.Client) ComputeAgentService {
return &computeagentClient{
client: client,
}
}
func (c *computeagentClient) AddNIC(ctx context.Context, req *AddNICInternalRequest) (*AddNICInternalResponse, error) {
var resp AddNICInternalResponse
if err := c.client.Call(ctx, "ComputeAgent", "AddNIC", req, &resp); err != nil {
return nil, err
}
return &resp, nil
}
func (c *computeagentClient) ModifyNIC(ctx context.Context, req *ModifyNICInternalRequest) (*ModifyNICInternalResponse, error) {
var resp ModifyNICInternalResponse
if err := c.client.Call(ctx, "ComputeAgent", "ModifyNIC", req, &resp); err != nil {
return nil, err
}
return &resp, nil
}
func (c *computeagentClient) DeleteNIC(ctx context.Context, req *DeleteNICInternalRequest) (*DeleteNICInternalResponse, error) {
var resp DeleteNICInternalResponse
if err := c.client.Call(ctx, "ComputeAgent", "DeleteNIC", req, &resp); err != nil {
return nil, err
}
return &resp, nil
}
func (c *computeagentClient) AssignPCI(ctx context.Context, req *AssignPCIInternalRequest) (*AssignPCIInternalResponse, error) {
var resp AssignPCIInternalResponse
if err := c.client.Call(ctx, "ComputeAgent", "AssignPCI", req, &resp); err != nil {
return nil, err
}
return &resp, nil
}
func (c *computeagentClient) RemovePCI(ctx context.Context, req *RemovePCIInternalRequest) (*RemovePCIInternalResponse, error) {
var resp RemovePCIInternalResponse
if err := c.client.Call(ctx, "ComputeAgent", "RemovePCI", req, &resp); err != nil {
return nil, err
}
return &resp, nil
}

Просмотреть файл

@ -5,4 +5,4 @@
// used for ncproxy.
package computeagent
//go:generate go run github.com/golang/mock/mockgen -source=computeagent.pb.go -package=computeagent_mock -destination=mock\computeagent_mock.pb.go
//go:generate go run github.com/golang/mock/mockgen -source=computeagent_ttrpc.pb.go -package=computeagent_mock -destination=mock\computeagent_mock.pb.go

Просмотреть файл

@ -1,5 +1,5 @@
// Code generated by MockGen. DO NOT EDIT.
// Source: computeagent.pb.go
// Source: computeagent_ttrpc.pb.go
// Package computeagent_mock is a generated GoMock package.
package computeagent_mock
@ -36,76 +36,76 @@ func (m *MockComputeAgentService) EXPECT() *MockComputeAgentServiceMockRecorder
}
// AddNIC mocks base method.
func (m *MockComputeAgentService) AddNIC(ctx context.Context, req *computeagent.AddNICInternalRequest) (*computeagent.AddNICInternalResponse, error) {
func (m *MockComputeAgentService) AddNIC(arg0 context.Context, arg1 *computeagent.AddNICInternalRequest) (*computeagent.AddNICInternalResponse, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "AddNIC", ctx, req)
ret := m.ctrl.Call(m, "AddNIC", arg0, arg1)
ret0, _ := ret[0].(*computeagent.AddNICInternalResponse)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// AddNIC indicates an expected call of AddNIC.
func (mr *MockComputeAgentServiceMockRecorder) AddNIC(ctx, req interface{}) *gomock.Call {
func (mr *MockComputeAgentServiceMockRecorder) AddNIC(arg0, arg1 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddNIC", reflect.TypeOf((*MockComputeAgentService)(nil).AddNIC), ctx, req)
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddNIC", reflect.TypeOf((*MockComputeAgentService)(nil).AddNIC), arg0, arg1)
}
// AssignPCI mocks base method.
func (m *MockComputeAgentService) AssignPCI(ctx context.Context, req *computeagent.AssignPCIInternalRequest) (*computeagent.AssignPCIInternalResponse, error) {
func (m *MockComputeAgentService) AssignPCI(arg0 context.Context, arg1 *computeagent.AssignPCIInternalRequest) (*computeagent.AssignPCIInternalResponse, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "AssignPCI", ctx, req)
ret := m.ctrl.Call(m, "AssignPCI", arg0, arg1)
ret0, _ := ret[0].(*computeagent.AssignPCIInternalResponse)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// AssignPCI indicates an expected call of AssignPCI.
func (mr *MockComputeAgentServiceMockRecorder) AssignPCI(ctx, req interface{}) *gomock.Call {
func (mr *MockComputeAgentServiceMockRecorder) AssignPCI(arg0, arg1 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AssignPCI", reflect.TypeOf((*MockComputeAgentService)(nil).AssignPCI), ctx, req)
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AssignPCI", reflect.TypeOf((*MockComputeAgentService)(nil).AssignPCI), arg0, arg1)
}
// DeleteNIC mocks base method.
func (m *MockComputeAgentService) DeleteNIC(ctx context.Context, req *computeagent.DeleteNICInternalRequest) (*computeagent.DeleteNICInternalResponse, error) {
func (m *MockComputeAgentService) DeleteNIC(arg0 context.Context, arg1 *computeagent.DeleteNICInternalRequest) (*computeagent.DeleteNICInternalResponse, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "DeleteNIC", ctx, req)
ret := m.ctrl.Call(m, "DeleteNIC", arg0, arg1)
ret0, _ := ret[0].(*computeagent.DeleteNICInternalResponse)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// DeleteNIC indicates an expected call of DeleteNIC.
func (mr *MockComputeAgentServiceMockRecorder) DeleteNIC(ctx, req interface{}) *gomock.Call {
func (mr *MockComputeAgentServiceMockRecorder) DeleteNIC(arg0, arg1 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteNIC", reflect.TypeOf((*MockComputeAgentService)(nil).DeleteNIC), ctx, req)
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteNIC", reflect.TypeOf((*MockComputeAgentService)(nil).DeleteNIC), arg0, arg1)
}
// ModifyNIC mocks base method.
func (m *MockComputeAgentService) ModifyNIC(ctx context.Context, req *computeagent.ModifyNICInternalRequest) (*computeagent.ModifyNICInternalResponse, error) {
func (m *MockComputeAgentService) ModifyNIC(arg0 context.Context, arg1 *computeagent.ModifyNICInternalRequest) (*computeagent.ModifyNICInternalResponse, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "ModifyNIC", ctx, req)
ret := m.ctrl.Call(m, "ModifyNIC", arg0, arg1)
ret0, _ := ret[0].(*computeagent.ModifyNICInternalResponse)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// ModifyNIC indicates an expected call of ModifyNIC.
func (mr *MockComputeAgentServiceMockRecorder) ModifyNIC(ctx, req interface{}) *gomock.Call {
func (mr *MockComputeAgentServiceMockRecorder) ModifyNIC(arg0, arg1 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ModifyNIC", reflect.TypeOf((*MockComputeAgentService)(nil).ModifyNIC), ctx, req)
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ModifyNIC", reflect.TypeOf((*MockComputeAgentService)(nil).ModifyNIC), arg0, arg1)
}
// RemovePCI mocks base method.
func (m *MockComputeAgentService) RemovePCI(ctx context.Context, req *computeagent.RemovePCIInternalRequest) (*computeagent.RemovePCIInternalResponse, error) {
func (m *MockComputeAgentService) RemovePCI(arg0 context.Context, arg1 *computeagent.RemovePCIInternalRequest) (*computeagent.RemovePCIInternalResponse, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "RemovePCI", ctx, req)
ret := m.ctrl.Call(m, "RemovePCI", arg0, arg1)
ret0, _ := ret[0].(*computeagent.RemovePCIInternalResponse)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// RemovePCI indicates an expected call of RemovePCI.
func (mr *MockComputeAgentServiceMockRecorder) RemovePCI(ctx, req interface{}) *gomock.Call {
func (mr *MockComputeAgentServiceMockRecorder) RemovePCI(arg0, arg1 interface{}) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemovePCI", reflect.TypeOf((*MockComputeAgentService)(nil).RemovePCI), ctx, req)
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RemovePCI", reflect.TypeOf((*MockComputeAgentService)(nil).RemovePCI), arg0, arg1)
}

Просмотреть файл

@ -1,550 +1,220 @@
// Code generated by protoc-gen-gogo. DO NOT EDIT.
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.30.0
// protoc v4.23.2
// source: github.com/Microsoft/hcsshim/internal/extendedtask/extendedtask.proto
package extendedtask
import (
context "context"
fmt "fmt"
github_com_containerd_ttrpc "github.com/containerd/ttrpc"
proto "github.com/gogo/protobuf/proto"
io "io"
math "math"
math_bits "math/bits"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
strings "strings"
sync "sync"
)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf
// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type ComputeProcessorInfoRequest struct {
ID string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ID string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
}
func (m *ComputeProcessorInfoRequest) Reset() { *m = ComputeProcessorInfoRequest{} }
func (*ComputeProcessorInfoRequest) ProtoMessage() {}
func (*ComputeProcessorInfoRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_c90988f6b70b2a29, []int{0}
}
func (m *ComputeProcessorInfoRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *ComputeProcessorInfoRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
if deterministic {
return xxx_messageInfo_ComputeProcessorInfoRequest.Marshal(b, m, deterministic)
} else {
b = b[:cap(b)]
n, err := m.MarshalToSizedBuffer(b)
if err != nil {
return nil, err
}
return b[:n], nil
func (x *ComputeProcessorInfoRequest) Reset() {
*x = ComputeProcessorInfoRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_github_com_Microsoft_hcsshim_internal_extendedtask_extendedtask_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (m *ComputeProcessorInfoRequest) XXX_Merge(src proto.Message) {
xxx_messageInfo_ComputeProcessorInfoRequest.Merge(m, src)
}
func (m *ComputeProcessorInfoRequest) XXX_Size() int {
return m.Size()
}
func (m *ComputeProcessorInfoRequest) XXX_DiscardUnknown() {
xxx_messageInfo_ComputeProcessorInfoRequest.DiscardUnknown(m)
func (x *ComputeProcessorInfoRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
var xxx_messageInfo_ComputeProcessorInfoRequest proto.InternalMessageInfo
func (*ComputeProcessorInfoRequest) ProtoMessage() {}
func (x *ComputeProcessorInfoRequest) ProtoReflect() protoreflect.Message {
mi := &file_github_com_Microsoft_hcsshim_internal_extendedtask_extendedtask_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ComputeProcessorInfoRequest.ProtoReflect.Descriptor instead.
func (*ComputeProcessorInfoRequest) Descriptor() ([]byte, []int) {
return file_github_com_Microsoft_hcsshim_internal_extendedtask_extendedtask_proto_rawDescGZIP(), []int{0}
}
func (x *ComputeProcessorInfoRequest) GetID() string {
if x != nil {
return x.ID
}
return ""
}
type ComputeProcessorInfoResponse struct {
Count int32 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Count int32 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"`
}
func (x *ComputeProcessorInfoResponse) Reset() {
*x = ComputeProcessorInfoResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_github_com_Microsoft_hcsshim_internal_extendedtask_extendedtask_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ComputeProcessorInfoResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (m *ComputeProcessorInfoResponse) Reset() { *m = ComputeProcessorInfoResponse{} }
func (*ComputeProcessorInfoResponse) ProtoMessage() {}
func (x *ComputeProcessorInfoResponse) ProtoReflect() protoreflect.Message {
mi := &file_github_com_Microsoft_hcsshim_internal_extendedtask_extendedtask_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use ComputeProcessorInfoResponse.ProtoReflect.Descriptor instead.
func (*ComputeProcessorInfoResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_c90988f6b70b2a29, []int{1}
}
func (m *ComputeProcessorInfoResponse) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *ComputeProcessorInfoResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
if deterministic {
return xxx_messageInfo_ComputeProcessorInfoResponse.Marshal(b, m, deterministic)
} else {
b = b[:cap(b)]
n, err := m.MarshalToSizedBuffer(b)
if err != nil {
return nil, err
}
return b[:n], nil
}
}
func (m *ComputeProcessorInfoResponse) XXX_Merge(src proto.Message) {
xxx_messageInfo_ComputeProcessorInfoResponse.Merge(m, src)
}
func (m *ComputeProcessorInfoResponse) XXX_Size() int {
return m.Size()
}
func (m *ComputeProcessorInfoResponse) XXX_DiscardUnknown() {
xxx_messageInfo_ComputeProcessorInfoResponse.DiscardUnknown(m)
return file_github_com_Microsoft_hcsshim_internal_extendedtask_extendedtask_proto_rawDescGZIP(), []int{1}
}
var xxx_messageInfo_ComputeProcessorInfoResponse proto.InternalMessageInfo
func init() {
proto.RegisterType((*ComputeProcessorInfoRequest)(nil), "ComputeProcessorInfoRequest")
proto.RegisterType((*ComputeProcessorInfoResponse)(nil), "ComputeProcessorInfoResponse")
func (x *ComputeProcessorInfoResponse) GetCount() int32 {
if x != nil {
return x.Count
}
return 0
}
func init() {
proto.RegisterFile("github.com/Microsoft/hcsshim/internal/extendedtask/extendedtask.proto", fileDescriptor_c90988f6b70b2a29)
}
var File_github_com_Microsoft_hcsshim_internal_extendedtask_extendedtask_proto protoreflect.FileDescriptor
var fileDescriptor_c90988f6b70b2a29 = []byte{
// 249 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x72, 0x4d, 0xcf, 0x2c, 0xc9,
0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0xf7, 0xcd, 0x4c, 0x2e, 0xca, 0x2f, 0xce, 0x4f, 0x2b,
0xd1, 0xcf, 0x48, 0x2e, 0x2e, 0xce, 0xc8, 0xcc, 0xd5, 0xcf, 0xcc, 0x2b, 0x49, 0x2d, 0xca, 0x4b,
0xcc, 0xd1, 0x4f, 0xad, 0x28, 0x49, 0xcd, 0x4b, 0x49, 0x4d, 0x29, 0x49, 0x2c, 0xce, 0x46, 0xe1,
0xe8, 0x15, 0x14, 0xe5, 0x97, 0xe4, 0x4b, 0x89, 0xa4, 0xe7, 0xa7, 0xe7, 0x83, 0x99, 0xfa, 0x20,
0x16, 0x44, 0x54, 0xc9, 0x94, 0x4b, 0xda, 0x39, 0x3f, 0xb7, 0xa0, 0xb4, 0x24, 0x35, 0xa0, 0x28,
0x3f, 0x39, 0xb5, 0xb8, 0x38, 0xbf, 0xc8, 0x33, 0x2f, 0x2d, 0x3f, 0x28, 0xb5, 0xb0, 0x34, 0xb5,
0xb8, 0x44, 0x48, 0x8c, 0x8b, 0x29, 0x33, 0x45, 0x82, 0x51, 0x81, 0x51, 0x83, 0xd3, 0x89, 0xed,
0xd1, 0x3d, 0x79, 0x26, 0x4f, 0x97, 0x20, 0xa6, 0xcc, 0x14, 0x25, 0x13, 0x2e, 0x19, 0xec, 0xda,
0x8a, 0x0b, 0xf2, 0xf3, 0x8a, 0x53, 0x85, 0x44, 0xb8, 0x58, 0x93, 0xf3, 0x4b, 0xf3, 0x4a, 0xc0,
0x5a, 0x59, 0x83, 0x20, 0x1c, 0xa3, 0x64, 0x2e, 0x1e, 0x57, 0xa8, 0xc3, 0x42, 0x12, 0x8b, 0xb3,
0x85, 0x82, 0xb9, 0x44, 0xb0, 0x99, 0x22, 0x24, 0xa3, 0x87, 0xc7, 0x4d, 0x52, 0xb2, 0x7a, 0xf8,
0xac, 0x76, 0x8a, 0x3c, 0xf1, 0x50, 0x8e, 0xe1, 0xc6, 0x43, 0x39, 0x86, 0x86, 0x47, 0x72, 0x8c,
0x27, 0x1e, 0xc9, 0x31, 0x5e, 0x78, 0x24, 0xc7, 0xf8, 0xe0, 0x91, 0x1c, 0x63, 0x94, 0x3d, 0xe9,
0x01, 0x69, 0x8d, 0xcc, 0x89, 0x60, 0x48, 0x62, 0x03, 0x87, 0x9a, 0x31, 0x20, 0x00, 0x00, 0xff,
0xff, 0x1d, 0x33, 0xbb, 0x33, 0x94, 0x01, 0x00, 0x00,
}
func (m *ComputeProcessorInfoRequest) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalToSizedBuffer(dAtA[:size])
if err != nil {
return nil, err
}
return dAtA[:n], nil
}
func (m *ComputeProcessorInfoRequest) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
func (m *ComputeProcessorInfoRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
_ = l
if m.XXX_unrecognized != nil {
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
if len(m.ID) > 0 {
i -= len(m.ID)
copy(dAtA[i:], m.ID)
i = encodeVarintExtendedtask(dAtA, i, uint64(len(m.ID)))
i--
dAtA[i] = 0xa
}
return len(dAtA) - i, nil
}
func (m *ComputeProcessorInfoResponse) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalToSizedBuffer(dAtA[:size])
if err != nil {
return nil, err
}
return dAtA[:n], nil
}
func (m *ComputeProcessorInfoResponse) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
func (m *ComputeProcessorInfoResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
_ = l
if m.XXX_unrecognized != nil {
i -= len(m.XXX_unrecognized)
copy(dAtA[i:], m.XXX_unrecognized)
}
if m.Count != 0 {
i = encodeVarintExtendedtask(dAtA, i, uint64(m.Count))
i--
dAtA[i] = 0x8
}
return len(dAtA) - i, nil
}
func encodeVarintExtendedtask(dAtA []byte, offset int, v uint64) int {
offset -= sovExtendedtask(v)
base := offset
for v >= 1<<7 {
dAtA[offset] = uint8(v&0x7f | 0x80)
v >>= 7
offset++
}
dAtA[offset] = uint8(v)
return base
}
func (m *ComputeProcessorInfoRequest) Size() (n int) {
if m == nil {
return 0
}
var l int
_ = l
l = len(m.ID)
if l > 0 {
n += 1 + l + sovExtendedtask(uint64(l))
}
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
return n
}
func (m *ComputeProcessorInfoResponse) Size() (n int) {
if m == nil {
return 0
}
var l int
_ = l
if m.Count != 0 {
n += 1 + sovExtendedtask(uint64(m.Count))
}
if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized)
}
return n
}
func sovExtendedtask(x uint64) (n int) {
return (math_bits.Len64(x|1) + 6) / 7
}
func sozExtendedtask(x uint64) (n int) {
return sovExtendedtask(uint64((x << 1) ^ uint64((int64(x) >> 63))))
}
func (this *ComputeProcessorInfoRequest) String() string {
if this == nil {
return "nil"
}
s := strings.Join([]string{`&ComputeProcessorInfoRequest{`,
`ID:` + fmt.Sprintf("%v", this.ID) + `,`,
`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
`}`,
}, "")
return s
}
func (this *ComputeProcessorInfoResponse) String() string {
if this == nil {
return "nil"
}
s := strings.Join([]string{`&ComputeProcessorInfoResponse{`,
`Count:` + fmt.Sprintf("%v", this.Count) + `,`,
`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
`}`,
}, "")
return s
}
func valueToStringExtendedtask(v interface{}) string {
rv := reflect.ValueOf(v)
if rv.IsNil() {
return "nil"
}
pv := reflect.Indirect(rv).Interface()
return fmt.Sprintf("*%v", pv)
}
type ExtendedTaskService interface {
ComputeProcessorInfo(ctx context.Context, req *ComputeProcessorInfoRequest) (*ComputeProcessorInfoResponse, error)
}
func RegisterExtendedTaskService(srv *github_com_containerd_ttrpc.Server, svc ExtendedTaskService) {
srv.Register("ExtendedTask", map[string]github_com_containerd_ttrpc.Method{
"ComputeProcessorInfo": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) {
var req ComputeProcessorInfoRequest
if err := unmarshal(&req); err != nil {
return nil, err
}
return svc.ComputeProcessorInfo(ctx, &req)
},
})
}
type extendedTaskClient struct {
client *github_com_containerd_ttrpc.Client
}
func NewExtendedTaskClient(client *github_com_containerd_ttrpc.Client) ExtendedTaskService {
return &extendedTaskClient{
client: client,
}
}
func (c *extendedTaskClient) ComputeProcessorInfo(ctx context.Context, req *ComputeProcessorInfoRequest) (*ComputeProcessorInfoResponse, error) {
var resp ComputeProcessorInfoResponse
if err := c.client.Call(ctx, "ExtendedTask", "ComputeProcessorInfo", req, &resp); err != nil {
return nil, err
}
return &resp, nil
}
func (m *ComputeProcessorInfoRequest) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
preIndex := iNdEx
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowExtendedtask
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: ComputeProcessorInfoRequest: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: ComputeProcessorInfoRequest: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field ID", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowExtendedtask
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthExtendedtask
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthExtendedtask
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.ID = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipExtendedtask(dAtA[iNdEx:])
if err != nil {
return err
}
if (skippy < 0) || (iNdEx+skippy) < 0 {
return ErrInvalidLengthExtendedtask
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
iNdEx += skippy
}
}
if iNdEx > l {
return io.ErrUnexpectedEOF
}
return nil
}
func (m *ComputeProcessorInfoResponse) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
preIndex := iNdEx
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowExtendedtask
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: ComputeProcessorInfoResponse: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: ComputeProcessorInfoResponse: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field Count", wireType)
}
m.Count = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowExtendedtask
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
m.Count |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
}
default:
iNdEx = preIndex
skippy, err := skipExtendedtask(dAtA[iNdEx:])
if err != nil {
return err
}
if (skippy < 0) || (iNdEx+skippy) < 0 {
return ErrInvalidLengthExtendedtask
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
iNdEx += skippy
}
}
if iNdEx > l {
return io.ErrUnexpectedEOF
}
return nil
}
func skipExtendedtask(dAtA []byte) (n int, err error) {
l := len(dAtA)
iNdEx := 0
depth := 0
for iNdEx < l {
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return 0, ErrIntOverflowExtendedtask
}
if iNdEx >= l {
return 0, io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
wire |= (uint64(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
wireType := int(wire & 0x7)
switch wireType {
case 0:
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return 0, ErrIntOverflowExtendedtask
}
if iNdEx >= l {
return 0, io.ErrUnexpectedEOF
}
iNdEx++
if dAtA[iNdEx-1] < 0x80 {
break
}
}
case 1:
iNdEx += 8
case 2:
var length int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return 0, ErrIntOverflowExtendedtask
}
if iNdEx >= l {
return 0, io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
length |= (int(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
if length < 0 {
return 0, ErrInvalidLengthExtendedtask
}
iNdEx += length
case 3:
depth++
case 4:
if depth == 0 {
return 0, ErrUnexpectedEndOfGroupExtendedtask
}
depth--
case 5:
iNdEx += 4
default:
return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
}
if iNdEx < 0 {
return 0, ErrInvalidLengthExtendedtask
}
if depth == 0 {
return iNdEx, nil
}
}
return 0, io.ErrUnexpectedEOF
var file_github_com_Microsoft_hcsshim_internal_extendedtask_extendedtask_proto_rawDesc = []byte{
0x0a, 0x45, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4d, 0x69, 0x63,
0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2f, 0x68, 0x63, 0x73, 0x73, 0x68, 0x69, 0x6d, 0x2f, 0x69,
0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64,
0x74, 0x61, 0x73, 0x6b, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x74, 0x61, 0x73,
0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x2d, 0x0a, 0x1b, 0x43, 0x6f, 0x6d, 0x70, 0x75,
0x74, 0x65, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52,
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x34, 0x0a, 0x1c, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74,
0x65, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65,
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18,
0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x32, 0x63, 0x0a, 0x0c,
0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x53, 0x0a, 0x14,
0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72,
0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x50, 0x72,
0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x63,
0x65, 0x73, 0x73, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
0x65, 0x42, 0x41, 0x5a, 0x3f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x6f, 0x66, 0x74, 0x2f, 0x68, 0x63, 0x73, 0x73, 0x68, 0x69,
0x6d, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x65, 0x78, 0x74, 0x65, 0x6e,
0x64, 0x65, 0x64, 0x74, 0x61, 0x73, 0x6b, 0x3b, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64,
0x74, 0x61, 0x73, 0x6b, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
ErrInvalidLengthExtendedtask = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowExtendedtask = fmt.Errorf("proto: integer overflow")
ErrUnexpectedEndOfGroupExtendedtask = fmt.Errorf("proto: unexpected end of group")
file_github_com_Microsoft_hcsshim_internal_extendedtask_extendedtask_proto_rawDescOnce sync.Once
file_github_com_Microsoft_hcsshim_internal_extendedtask_extendedtask_proto_rawDescData = file_github_com_Microsoft_hcsshim_internal_extendedtask_extendedtask_proto_rawDesc
)
func file_github_com_Microsoft_hcsshim_internal_extendedtask_extendedtask_proto_rawDescGZIP() []byte {
file_github_com_Microsoft_hcsshim_internal_extendedtask_extendedtask_proto_rawDescOnce.Do(func() {
file_github_com_Microsoft_hcsshim_internal_extendedtask_extendedtask_proto_rawDescData = protoimpl.X.CompressGZIP(file_github_com_Microsoft_hcsshim_internal_extendedtask_extendedtask_proto_rawDescData)
})
return file_github_com_Microsoft_hcsshim_internal_extendedtask_extendedtask_proto_rawDescData
}
var file_github_com_Microsoft_hcsshim_internal_extendedtask_extendedtask_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
var file_github_com_Microsoft_hcsshim_internal_extendedtask_extendedtask_proto_goTypes = []interface{}{
(*ComputeProcessorInfoRequest)(nil), // 0: ComputeProcessorInfoRequest
(*ComputeProcessorInfoResponse)(nil), // 1: ComputeProcessorInfoResponse
}
var file_github_com_Microsoft_hcsshim_internal_extendedtask_extendedtask_proto_depIdxs = []int32{
0, // 0: ExtendedTask.ComputeProcessorInfo:input_type -> ComputeProcessorInfoRequest
1, // 1: ExtendedTask.ComputeProcessorInfo:output_type -> ComputeProcessorInfoResponse
1, // [1:2] is the sub-list for method output_type
0, // [0:1] is the sub-list for method input_type
0, // [0:0] is the sub-list for extension type_name
0, // [0:0] is the sub-list for extension extendee
0, // [0:0] is the sub-list for field type_name
}
func init() { file_github_com_Microsoft_hcsshim_internal_extendedtask_extendedtask_proto_init() }
func file_github_com_Microsoft_hcsshim_internal_extendedtask_extendedtask_proto_init() {
if File_github_com_Microsoft_hcsshim_internal_extendedtask_extendedtask_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_github_com_Microsoft_hcsshim_internal_extendedtask_extendedtask_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ComputeProcessorInfoRequest); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_github_com_Microsoft_hcsshim_internal_extendedtask_extendedtask_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ComputeProcessorInfoResponse); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_github_com_Microsoft_hcsshim_internal_extendedtask_extendedtask_proto_rawDesc,
NumEnums: 0,
NumMessages: 2,
NumExtensions: 0,
NumServices: 1,
},
GoTypes: file_github_com_Microsoft_hcsshim_internal_extendedtask_extendedtask_proto_goTypes,
DependencyIndexes: file_github_com_Microsoft_hcsshim_internal_extendedtask_extendedtask_proto_depIdxs,
MessageInfos: file_github_com_Microsoft_hcsshim_internal_extendedtask_extendedtask_proto_msgTypes,
}.Build()
File_github_com_Microsoft_hcsshim_internal_extendedtask_extendedtask_proto = out.File
file_github_com_Microsoft_hcsshim_internal_extendedtask_extendedtask_proto_rawDesc = nil
file_github_com_Microsoft_hcsshim_internal_extendedtask_extendedtask_proto_goTypes = nil
file_github_com_Microsoft_hcsshim_internal_extendedtask_extendedtask_proto_depIdxs = nil
}

Просмотреть файл

@ -2,16 +2,14 @@ syntax = "proto3";
option go_package = "github.com/Microsoft/hcsshim/internal/extendedtask;extendedtask";
import weak "gogoproto/gogo.proto";
service ExtendedTask {
rpc ComputeProcessorInfo(ComputeProcessorInfoRequest) returns (ComputeProcessorInfoResponse);
}
message ComputeProcessorInfoRequest {
string id = 1;
string id = 1;
}
message ComputeProcessorInfoResponse {
int32 count = 1;
int32 count = 1;
}

Просмотреть файл

@ -0,0 +1,44 @@
// Code generated by protoc-gen-go-ttrpc. DO NOT EDIT.
// source: github.com/Microsoft/hcsshim/internal/extendedtask/extendedtask.proto
package extendedtask
import (
context "context"
ttrpc "github.com/containerd/ttrpc"
)
type ExtendedTaskService interface {
ComputeProcessorInfo(context.Context, *ComputeProcessorInfoRequest) (*ComputeProcessorInfoResponse, error)
}
func RegisterExtendedTaskService(srv *ttrpc.Server, svc ExtendedTaskService) {
srv.RegisterService("ExtendedTask", &ttrpc.ServiceDesc{
Methods: map[string]ttrpc.Method{
"ComputeProcessorInfo": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) {
var req ComputeProcessorInfoRequest
if err := unmarshal(&req); err != nil {
return nil, err
}
return svc.ComputeProcessorInfo(ctx, &req)
},
},
})
}
type extendedtaskClient struct {
client *ttrpc.Client
}
func NewExtendedTaskClient(client *ttrpc.Client) ExtendedTaskService {
return &extendedtaskClient{
client: client,
}
}
func (c *extendedtaskClient) ComputeProcessorInfo(ctx context.Context, req *ComputeProcessorInfoRequest) (*ComputeProcessorInfoResponse, error) {
var resp ComputeProcessorInfoResponse
if err := c.client.Call(ctx, "ExtendedTask", "ComputeProcessorInfo", req, &resp); err != nil {
return nil, err
}
return &resp, nil
}

Просмотреть файл

@ -7,7 +7,7 @@ import (
"encoding/json"
"strconv"
v1 "github.com/containerd/cgroups/stats/v1"
v1 "github.com/containerd/cgroups/v3/cgroup1/stats"
oci "github.com/opencontainers/runtime-spec/specs-go"
"github.com/pkg/errors"

Просмотреть файл

@ -11,8 +11,8 @@ import (
"sync/atomic"
"syscall"
"github.com/containerd/cgroups"
v1 "github.com/containerd/cgroups/stats/v1"
cgroups "github.com/containerd/cgroups/v3/cgroup1"
v1 "github.com/containerd/cgroups/v3/cgroup1/stats"
oci "github.com/opencontainers/runtime-spec/specs-go"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
@ -260,7 +260,7 @@ func (c *Container) GetStats(ctx context.Context) (*v1.Metrics, error) {
span.AddAttributes(trace.StringAttribute("cid", c.id))
cgroupPath := c.spec.Linux.CgroupsPath
cg, err := cgroups.Load(cgroups.V1, cgroups.StaticPath(cgroupPath))
cg, err := cgroups.Load(cgroups.StaticPath(cgroupPath))
if err != nil {
return nil, errors.Errorf("failed to get container stats for %v: %v", c.id, err)
}

Просмотреть файл

@ -10,7 +10,7 @@
package hcsschema
import (
v1 "github.com/containerd/cgroups/stats/v1"
v1 "github.com/containerd/cgroups/v3/cgroup1/stats"
)
type Properties struct {

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -2,8 +2,6 @@ syntax = "proto3";
option go_package = "github.com/Microsoft/hcsshim/internal/ncproxyttrpc/;ncproxyttrpc";
import weak "gogoproto/gogo.proto";
service NetworkConfigProxy {
rpc RegisterComputeAgent(RegisterComputeAgentRequest) returns (RegisterComputeAgentResponse) {}
rpc UnregisterComputeAgent(UnregisterComputeAgentRequest) returns (UnregisterComputeAgentResponse) {}
@ -23,9 +21,9 @@ message UnregisterComputeAgentRequest {
message UnregisterComputeAgentResponse {}
enum RequestTypeInternal {
Setup = 0;
Teardown = 1;
enum RequestTypeInternal {
Setup = 0;
Teardown = 1;
}
message ConfigureNetworkingInternalRequest{

Просмотреть файл

@ -0,0 +1,76 @@
// Code generated by protoc-gen-go-ttrpc. DO NOT EDIT.
// source: github.com/Microsoft/hcsshim/internal/ncproxyttrpc/networkconfigproxy.proto
package ncproxyttrpc
import (
context "context"
ttrpc "github.com/containerd/ttrpc"
)
type NetworkConfigProxyService interface {
RegisterComputeAgent(context.Context, *RegisterComputeAgentRequest) (*RegisterComputeAgentResponse, error)
UnregisterComputeAgent(context.Context, *UnregisterComputeAgentRequest) (*UnregisterComputeAgentResponse, error)
ConfigureNetworking(context.Context, *ConfigureNetworkingInternalRequest) (*ConfigureNetworkingInternalResponse, error)
}
func RegisterNetworkConfigProxyService(srv *ttrpc.Server, svc NetworkConfigProxyService) {
srv.RegisterService("NetworkConfigProxy", &ttrpc.ServiceDesc{
Methods: map[string]ttrpc.Method{
"RegisterComputeAgent": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) {
var req RegisterComputeAgentRequest
if err := unmarshal(&req); err != nil {
return nil, err
}
return svc.RegisterComputeAgent(ctx, &req)
},
"UnregisterComputeAgent": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) {
var req UnregisterComputeAgentRequest
if err := unmarshal(&req); err != nil {
return nil, err
}
return svc.UnregisterComputeAgent(ctx, &req)
},
"ConfigureNetworking": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) {
var req ConfigureNetworkingInternalRequest
if err := unmarshal(&req); err != nil {
return nil, err
}
return svc.ConfigureNetworking(ctx, &req)
},
},
})
}
type networkconfigproxyClient struct {
client *ttrpc.Client
}
func NewNetworkConfigProxyClient(client *ttrpc.Client) NetworkConfigProxyService {
return &networkconfigproxyClient{
client: client,
}
}
func (c *networkconfigproxyClient) RegisterComputeAgent(ctx context.Context, req *RegisterComputeAgentRequest) (*RegisterComputeAgentResponse, error) {
var resp RegisterComputeAgentResponse
if err := c.client.Call(ctx, "NetworkConfigProxy", "RegisterComputeAgent", req, &resp); err != nil {
return nil, err
}
return &resp, nil
}
func (c *networkconfigproxyClient) UnregisterComputeAgent(ctx context.Context, req *UnregisterComputeAgentRequest) (*UnregisterComputeAgentResponse, error) {
var resp UnregisterComputeAgentResponse
if err := c.client.Call(ctx, "NetworkConfigProxy", "UnregisterComputeAgent", req, &resp); err != nil {
return nil, err
}
return &resp, nil
}
func (c *networkconfigproxyClient) ConfigureNetworking(ctx context.Context, req *ConfigureNetworkingInternalRequest) (*ConfigureNetworkingInternalResponse, error) {
var resp ConfigureNetworkingInternalResponse
if err := c.client.Call(ctx, "NetworkConfigProxy", "ConfigureNetworking", req, &resp); err != nil {
return nil, err
}
return &resp, nil
}

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -0,0 +1,108 @@
// Code generated by protoc-gen-go-ttrpc. DO NOT EDIT.
// source: github.com/Microsoft/hcsshim/internal/shimdiag/shimdiag.proto
package shimdiag
import (
context "context"
ttrpc "github.com/containerd/ttrpc"
)
type ShimDiagService interface {
DiagExecInHost(context.Context, *ExecProcessRequest) (*ExecProcessResponse, error)
DiagStacks(context.Context, *StacksRequest) (*StacksResponse, error)
DiagTasks(context.Context, *TasksRequest) (*TasksResponse, error)
DiagShare(context.Context, *ShareRequest) (*ShareResponse, error)
DiagPid(context.Context, *PidRequest) (*PidResponse, error)
}
func RegisterShimDiagService(srv *ttrpc.Server, svc ShimDiagService) {
srv.RegisterService("containerd.runhcs.v1.diag.ShimDiag", &ttrpc.ServiceDesc{
Methods: map[string]ttrpc.Method{
"DiagExecInHost": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) {
var req ExecProcessRequest
if err := unmarshal(&req); err != nil {
return nil, err
}
return svc.DiagExecInHost(ctx, &req)
},
"DiagStacks": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) {
var req StacksRequest
if err := unmarshal(&req); err != nil {
return nil, err
}
return svc.DiagStacks(ctx, &req)
},
"DiagTasks": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) {
var req TasksRequest
if err := unmarshal(&req); err != nil {
return nil, err
}
return svc.DiagTasks(ctx, &req)
},
"DiagShare": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) {
var req ShareRequest
if err := unmarshal(&req); err != nil {
return nil, err
}
return svc.DiagShare(ctx, &req)
},
"DiagPid": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) {
var req PidRequest
if err := unmarshal(&req); err != nil {
return nil, err
}
return svc.DiagPid(ctx, &req)
},
},
})
}
type shimdiagClient struct {
client *ttrpc.Client
}
func NewShimDiagClient(client *ttrpc.Client) ShimDiagService {
return &shimdiagClient{
client: client,
}
}
func (c *shimdiagClient) DiagExecInHost(ctx context.Context, req *ExecProcessRequest) (*ExecProcessResponse, error) {
var resp ExecProcessResponse
if err := c.client.Call(ctx, "containerd.runhcs.v1.diag.ShimDiag", "DiagExecInHost", req, &resp); err != nil {
return nil, err
}
return &resp, nil
}
func (c *shimdiagClient) DiagStacks(ctx context.Context, req *StacksRequest) (*StacksResponse, error) {
var resp StacksResponse
if err := c.client.Call(ctx, "containerd.runhcs.v1.diag.ShimDiag", "DiagStacks", req, &resp); err != nil {
return nil, err
}
return &resp, nil
}
func (c *shimdiagClient) DiagTasks(ctx context.Context, req *TasksRequest) (*TasksResponse, error) {
var resp TasksResponse
if err := c.client.Call(ctx, "containerd.runhcs.v1.diag.ShimDiag", "DiagTasks", req, &resp); err != nil {
return nil, err
}
return &resp, nil
}
func (c *shimdiagClient) DiagShare(ctx context.Context, req *ShareRequest) (*ShareResponse, error) {
var resp ShareResponse
if err := c.client.Call(ctx, "containerd.runhcs.v1.diag.ShimDiag", "DiagShare", req, &resp); err != nil {
return nil, err
}
return &resp, nil
}
func (c *shimdiagClient) DiagPid(ctx context.Context, req *PidRequest) (*PidResponse, error) {
var resp PidResponse
if err := c.client.Call(ctx, "containerd.runhcs.v1.diag.ShimDiag", "DiagPid", req, &resp); err != nil {
return nil, err
}
return &resp, nil
}

Просмотреть файл

@ -6,11 +6,15 @@ import (
"encoding/json"
"os"
ncproxygrpc "github.com/Microsoft/hcsshim/pkg/ncproxy/ncproxygrpc/v1"
"github.com/pkg/errors"
ncproxygrpc "github.com/Microsoft/hcsshim/pkg/ncproxy/ncproxygrpc/v1"
nodenetsvc "github.com/Microsoft/hcsshim/pkg/ncproxy/nodenetsvc/v1"
)
type service struct {
nodenetsvc.UnimplementedNodeNetworkServiceServer
conf *config
client ncproxygrpc.NetworkConfigProxyClient
containerToNamespace map[string]string
@ -18,6 +22,8 @@ type service struct {
containerToNetwork map[string][]string
}
var _ nodenetsvc.NodeNetworkServiceServer = &service{}
type hnsSettings struct {
SwitchName string `json:"switch_name,omitempty"`
IOVSettings *ncproxygrpc.IovEndpointPolicySetting `json:"iov_settings,omitempty"`

Просмотреть файл

@ -15,12 +15,14 @@ import (
"syscall"
"github.com/Microsoft/go-winio/pkg/guid"
"github.com/sirupsen/logrus"
"google.golang.org/grpc"
"google.golang.org/grpc/credentials/insecure"
"github.com/Microsoft/hcsshim/hcn"
"github.com/Microsoft/hcsshim/internal/log"
ncproxygrpc "github.com/Microsoft/hcsshim/pkg/ncproxy/ncproxygrpc/v1"
nodenetsvc "github.com/Microsoft/hcsshim/pkg/ncproxy/nodenetsvc/v1"
"github.com/sirupsen/logrus"
"google.golang.org/grpc"
)
// This is a barebones example of an implementation of the network
@ -468,7 +470,7 @@ func main() {
grpcClient, err := grpc.Dial(
conf.GRPCAddr,
grpc.WithInsecure(),
grpc.WithTransportCredentials(insecure.NewCredentials()),
)
if err != nil {
log.G(ctx).WithError(err).Fatalf("failed to connect to ncproxy at %s", conf.GRPCAddr)

Просмотреть файл

@ -8,7 +8,7 @@ import (
"github.com/Microsoft/go-winio"
"github.com/containerd/ttrpc"
"github.com/containerd/typeurl"
typeurl "github.com/containerd/typeurl/v2"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
"google.golang.org/grpc/codes"

Просмотреть файл

@ -6,13 +6,14 @@ import (
"context"
"testing"
"github.com/containerd/containerd/protobuf"
typeurl "github.com/containerd/typeurl/v2"
"github.com/Microsoft/hcsshim/hcn"
"github.com/Microsoft/hcsshim/internal/computeagent"
hcsschema "github.com/Microsoft/hcsshim/internal/hcs/schema2"
"github.com/Microsoft/hcsshim/internal/hns"
"github.com/Microsoft/hcsshim/internal/protocol/guestresource"
"github.com/containerd/typeurl"
"github.com/gogo/protobuf/types"
)
type testUtilityVM struct{}
@ -95,7 +96,7 @@ func TestAddNIC(t *testing.T) {
for _, test := range tests {
t.Run(test.name, func(_ *testing.T) {
var err error
var anyEndpoint *types.Any
var anyEndpoint typeurl.Any
if test.endpointName != "" {
endpoint := &hcn.HostComputeEndpoint{
Name: test.endpointName,
@ -107,7 +108,7 @@ func TestAddNIC(t *testing.T) {
}
req := &computeagent.AddNICInternalRequest{
NicID: test.nicID,
Endpoint: anyEndpoint,
Endpoint: protobuf.FromAny(anyEndpoint),
}
_, err = agent.AddNIC(ctx, req)
@ -184,7 +185,7 @@ func TestModifyNIC(t *testing.T) {
for _, test := range tests {
t.Run(test.name, func(_ *testing.T) {
var err error
var anyEndpoint *types.Any
var anyEndpoint typeurl.Any
if test.endpointName != "" {
endpoint := &hcn.HostComputeEndpoint{
Name: test.endpointName,
@ -196,7 +197,7 @@ func TestModifyNIC(t *testing.T) {
}
req := &computeagent.ModifyNICInternalRequest{
NicID: test.nicID,
Endpoint: anyEndpoint,
Endpoint: protobuf.FromAny(anyEndpoint),
IovPolicySettings: test.iovSettings,
}
@ -258,7 +259,7 @@ func TestDeleteNIC(t *testing.T) {
for _, test := range tests {
t.Run(test.name, func(_ *testing.T) {
var err error
var anyEndpoint *types.Any
var anyEndpoint typeurl.Any
if test.endpointName != "" {
endpoint := &hcn.HostComputeEndpoint{
Name: test.endpointName,
@ -270,7 +271,7 @@ func TestDeleteNIC(t *testing.T) {
}
req := &computeagent.DeleteNICInternalRequest{
NicID: test.nicID,
Endpoint: anyEndpoint,
Endpoint: protobuf.FromAny(anyEndpoint),
}
_, err = agent.DeleteNIC(ctx, req)

Просмотреть файл

@ -8,14 +8,15 @@ import (
"net"
"os/exec"
"github.com/containerd/ttrpc"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
"google.golang.org/protobuf/types/known/emptypb"
"github.com/Microsoft/hcsshim/internal/jobobject"
"github.com/Microsoft/hcsshim/internal/log"
"github.com/Microsoft/hcsshim/internal/vm"
"github.com/Microsoft/hcsshim/internal/vmservice"
"github.com/containerd/ttrpc"
ptypes "github.com/gogo/protobuf/types"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
)
var _ vm.UVMBuilder = &utilityVMBuilder{}
@ -91,7 +92,7 @@ func NewUVMBuilder(ctx context.Context, id, owner, binPath, addr string, guestOS
func (uvmb *utilityVMBuilder) Create(ctx context.Context) (vm.UVM, error) {
// Grab what capabilities the virtstack supports up front.
capabilities, err := uvmb.client.CapabilitiesVM(ctx, &ptypes.Empty{})
capabilities, err := uvmb.client.CapabilitiesVM(ctx, &emptypb.Empty{})
if err != nil {
return nil, errors.Wrap(err, "failed to get virtstack capabilities from vmservice")
}

Просмотреть файл

@ -5,11 +5,12 @@ package remotevm
import (
"context"
"github.com/pkg/errors"
"google.golang.org/protobuf/types/known/emptypb"
"github.com/Microsoft/hcsshim/internal/jobobject"
"github.com/Microsoft/hcsshim/internal/vm"
"github.com/Microsoft/hcsshim/internal/vmservice"
ptypes "github.com/gogo/protobuf/types"
"github.com/pkg/errors"
)
var _ vm.UVM = &utilityVM{}
@ -39,21 +40,21 @@ func (uvm *utilityVM) ID() string {
func (uvm *utilityVM) Start(ctx context.Context) error {
// The expectation is the VM should be in a paused state after creation.
if _, err := uvm.client.ResumeVM(ctx, &ptypes.Empty{}); err != nil {
if _, err := uvm.client.ResumeVM(ctx, &emptypb.Empty{}); err != nil {
return errors.Wrap(err, "failed to start remote VM")
}
return nil
}
func (uvm *utilityVM) Stop(ctx context.Context) error {
if _, err := uvm.client.TeardownVM(ctx, &ptypes.Empty{}); err != nil {
if _, err := uvm.client.TeardownVM(ctx, &emptypb.Empty{}); err != nil {
return errors.Wrap(err, "failed to stop remote VM")
}
return nil
}
func (uvm *utilityVM) Wait() error {
_, err := uvm.client.WaitVM(context.Background(), &ptypes.Empty{})
_, err := uvm.client.WaitVM(context.Background(), &emptypb.Empty{})
if err != nil {
uvm.waitError = err
return errors.Wrap(err, "failed to wait on remote VM")
@ -62,14 +63,14 @@ func (uvm *utilityVM) Wait() error {
}
func (uvm *utilityVM) Pause(ctx context.Context) error {
if _, err := uvm.client.PauseVM(ctx, &ptypes.Empty{}); err != nil {
if _, err := uvm.client.PauseVM(ctx, &emptypb.Empty{}); err != nil {
return errors.Wrap(err, "failed to pause remote VM")
}
return nil
}
func (uvm *utilityVM) Resume(ctx context.Context) error {
if _, err := uvm.client.ResumeVM(ctx, &ptypes.Empty{}); err != nil {
if _, err := uvm.client.ResumeVM(ctx, &emptypb.Empty{}); err != nil {
return errors.Wrap(err, "failed to resume remote VM")
}
return nil

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -0,0 +1,205 @@
// Code generated by protoc-gen-go-ttrpc. DO NOT EDIT.
// source: github.com/Microsoft/hcsshim/internal/vmservice/vmservice.proto
package vmservice
import (
context "context"
ttrpc "github.com/containerd/ttrpc"
emptypb "google.golang.org/protobuf/types/known/emptypb"
)
type VMService interface {
CreateVM(context.Context, *CreateVMRequest) (*emptypb.Empty, error)
TeardownVM(context.Context, *emptypb.Empty) (*emptypb.Empty, error)
PauseVM(context.Context, *emptypb.Empty) (*emptypb.Empty, error)
ResumeVM(context.Context, *emptypb.Empty) (*emptypb.Empty, error)
WaitVM(context.Context, *emptypb.Empty) (*emptypb.Empty, error)
InspectVM(context.Context, *InspectVMRequest) (*InspectVMResponse, error)
CapabilitiesVM(context.Context, *emptypb.Empty) (*CapabilitiesVMResponse, error)
PropertiesVM(context.Context, *PropertiesVMRequest) (*PropertiesVMResponse, error)
ModifyResource(context.Context, *ModifyResourceRequest) (*emptypb.Empty, error)
VMSocket(context.Context, *VMSocketRequest) (*emptypb.Empty, error)
Quit(context.Context, *emptypb.Empty) (*emptypb.Empty, error)
}
func RegisterVMService(srv *ttrpc.Server, svc VMService) {
srv.RegisterService("vmservice.VM", &ttrpc.ServiceDesc{
Methods: map[string]ttrpc.Method{
"CreateVM": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) {
var req CreateVMRequest
if err := unmarshal(&req); err != nil {
return nil, err
}
return svc.CreateVM(ctx, &req)
},
"TeardownVM": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) {
var req emptypb.Empty
if err := unmarshal(&req); err != nil {
return nil, err
}
return svc.TeardownVM(ctx, &req)
},
"PauseVM": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) {
var req emptypb.Empty
if err := unmarshal(&req); err != nil {
return nil, err
}
return svc.PauseVM(ctx, &req)
},
"ResumeVM": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) {
var req emptypb.Empty
if err := unmarshal(&req); err != nil {
return nil, err
}
return svc.ResumeVM(ctx, &req)
},
"WaitVM": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) {
var req emptypb.Empty
if err := unmarshal(&req); err != nil {
return nil, err
}
return svc.WaitVM(ctx, &req)
},
"InspectVM": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) {
var req InspectVMRequest
if err := unmarshal(&req); err != nil {
return nil, err
}
return svc.InspectVM(ctx, &req)
},
"CapabilitiesVM": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) {
var req emptypb.Empty
if err := unmarshal(&req); err != nil {
return nil, err
}
return svc.CapabilitiesVM(ctx, &req)
},
"PropertiesVM": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) {
var req PropertiesVMRequest
if err := unmarshal(&req); err != nil {
return nil, err
}
return svc.PropertiesVM(ctx, &req)
},
"ModifyResource": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) {
var req ModifyResourceRequest
if err := unmarshal(&req); err != nil {
return nil, err
}
return svc.ModifyResource(ctx, &req)
},
"VMSocket": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) {
var req VMSocketRequest
if err := unmarshal(&req); err != nil {
return nil, err
}
return svc.VMSocket(ctx, &req)
},
"Quit": func(ctx context.Context, unmarshal func(interface{}) error) (interface{}, error) {
var req emptypb.Empty
if err := unmarshal(&req); err != nil {
return nil, err
}
return svc.Quit(ctx, &req)
},
},
})
}
type vmClient struct {
client *ttrpc.Client
}
func NewVMClient(client *ttrpc.Client) VMService {
return &vmClient{
client: client,
}
}
func (c *vmClient) CreateVM(ctx context.Context, req *CreateVMRequest) (*emptypb.Empty, error) {
var resp emptypb.Empty
if err := c.client.Call(ctx, "vmservice.VM", "CreateVM", req, &resp); err != nil {
return nil, err
}
return &resp, nil
}
func (c *vmClient) TeardownVM(ctx context.Context, req *emptypb.Empty) (*emptypb.Empty, error) {
var resp emptypb.Empty
if err := c.client.Call(ctx, "vmservice.VM", "TeardownVM", req, &resp); err != nil {
return nil, err
}
return &resp, nil
}
func (c *vmClient) PauseVM(ctx context.Context, req *emptypb.Empty) (*emptypb.Empty, error) {
var resp emptypb.Empty
if err := c.client.Call(ctx, "vmservice.VM", "PauseVM", req, &resp); err != nil {
return nil, err
}
return &resp, nil
}
func (c *vmClient) ResumeVM(ctx context.Context, req *emptypb.Empty) (*emptypb.Empty, error) {
var resp emptypb.Empty
if err := c.client.Call(ctx, "vmservice.VM", "ResumeVM", req, &resp); err != nil {
return nil, err
}
return &resp, nil
}
func (c *vmClient) WaitVM(ctx context.Context, req *emptypb.Empty) (*emptypb.Empty, error) {
var resp emptypb.Empty
if err := c.client.Call(ctx, "vmservice.VM", "WaitVM", req, &resp); err != nil {
return nil, err
}
return &resp, nil
}
func (c *vmClient) InspectVM(ctx context.Context, req *InspectVMRequest) (*InspectVMResponse, error) {
var resp InspectVMResponse
if err := c.client.Call(ctx, "vmservice.VM", "InspectVM", req, &resp); err != nil {
return nil, err
}
return &resp, nil
}
func (c *vmClient) CapabilitiesVM(ctx context.Context, req *emptypb.Empty) (*CapabilitiesVMResponse, error) {
var resp CapabilitiesVMResponse
if err := c.client.Call(ctx, "vmservice.VM", "CapabilitiesVM", req, &resp); err != nil {
return nil, err
}
return &resp, nil
}
func (c *vmClient) PropertiesVM(ctx context.Context, req *PropertiesVMRequest) (*PropertiesVMResponse, error) {
var resp PropertiesVMResponse
if err := c.client.Call(ctx, "vmservice.VM", "PropertiesVM", req, &resp); err != nil {
return nil, err
}
return &resp, nil
}
func (c *vmClient) ModifyResource(ctx context.Context, req *ModifyResourceRequest) (*emptypb.Empty, error) {
var resp emptypb.Empty
if err := c.client.Call(ctx, "vmservice.VM", "ModifyResource", req, &resp); err != nil {
return nil, err
}
return &resp, nil
}
func (c *vmClient) VMSocket(ctx context.Context, req *VMSocketRequest) (*emptypb.Empty, error) {
var resp emptypb.Empty
if err := c.client.Call(ctx, "vmservice.VM", "VMSocket", req, &resp); err != nil {
return nil, err
}
return &resp, nil
}
func (c *vmClient) Quit(ctx context.Context, req *emptypb.Empty) (*emptypb.Empty, error) {
var resp emptypb.Empty
if err := c.client.Call(ctx, "vmservice.VM", "Quit", req, &resp); err != nil {
return nil, err
}
return &resp, nil
}

Просмотреть файл

@ -1,7 +1,7 @@
package ctrdtaskapi
import (
"github.com/containerd/typeurl"
typeurl "github.com/containerd/typeurl/v2"
)
func init() {

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -0,0 +1,497 @@
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
package v0
import (
context "context"
grpc "google.golang.org/grpc"
codes "google.golang.org/grpc/codes"
status "google.golang.org/grpc/status"
)
// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
// Requires gRPC-Go v1.32.0 or later.
const _ = grpc.SupportPackageIsVersion7
// NetworkConfigProxyClient is the client API for NetworkConfigProxy service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
type NetworkConfigProxyClient interface {
AddNIC(ctx context.Context, in *AddNICRequest, opts ...grpc.CallOption) (*AddNICResponse, error)
ModifyNIC(ctx context.Context, in *ModifyNICRequest, opts ...grpc.CallOption) (*ModifyNICResponse, error)
DeleteNIC(ctx context.Context, in *DeleteNICRequest, opts ...grpc.CallOption) (*DeleteNICResponse, error)
CreateNetwork(ctx context.Context, in *CreateNetworkRequest, opts ...grpc.CallOption) (*CreateNetworkResponse, error)
CreateEndpoint(ctx context.Context, in *CreateEndpointRequest, opts ...grpc.CallOption) (*CreateEndpointResponse, error)
AddEndpoint(ctx context.Context, in *AddEndpointRequest, opts ...grpc.CallOption) (*AddEndpointResponse, error)
DeleteEndpoint(ctx context.Context, in *DeleteEndpointRequest, opts ...grpc.CallOption) (*DeleteEndpointResponse, error)
DeleteNetwork(ctx context.Context, in *DeleteNetworkRequest, opts ...grpc.CallOption) (*DeleteNetworkResponse, error)
GetEndpoint(ctx context.Context, in *GetEndpointRequest, opts ...grpc.CallOption) (*GetEndpointResponse, error)
GetNetwork(ctx context.Context, in *GetNetworkRequest, opts ...grpc.CallOption) (*GetNetworkResponse, error)
GetEndpoints(ctx context.Context, in *GetEndpointsRequest, opts ...grpc.CallOption) (*GetEndpointsResponse, error)
GetNetworks(ctx context.Context, in *GetNetworksRequest, opts ...grpc.CallOption) (*GetNetworksResponse, error)
}
type networkConfigProxyClient struct {
cc grpc.ClientConnInterface
}
func NewNetworkConfigProxyClient(cc grpc.ClientConnInterface) NetworkConfigProxyClient {
return &networkConfigProxyClient{cc}
}
func (c *networkConfigProxyClient) AddNIC(ctx context.Context, in *AddNICRequest, opts ...grpc.CallOption) (*AddNICResponse, error) {
out := new(AddNICResponse)
err := c.cc.Invoke(ctx, "/ncproxygrpc.NetworkConfigProxy/AddNIC", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *networkConfigProxyClient) ModifyNIC(ctx context.Context, in *ModifyNICRequest, opts ...grpc.CallOption) (*ModifyNICResponse, error) {
out := new(ModifyNICResponse)
err := c.cc.Invoke(ctx, "/ncproxygrpc.NetworkConfigProxy/ModifyNIC", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *networkConfigProxyClient) DeleteNIC(ctx context.Context, in *DeleteNICRequest, opts ...grpc.CallOption) (*DeleteNICResponse, error) {
out := new(DeleteNICResponse)
err := c.cc.Invoke(ctx, "/ncproxygrpc.NetworkConfigProxy/DeleteNIC", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *networkConfigProxyClient) CreateNetwork(ctx context.Context, in *CreateNetworkRequest, opts ...grpc.CallOption) (*CreateNetworkResponse, error) {
out := new(CreateNetworkResponse)
err := c.cc.Invoke(ctx, "/ncproxygrpc.NetworkConfigProxy/CreateNetwork", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *networkConfigProxyClient) CreateEndpoint(ctx context.Context, in *CreateEndpointRequest, opts ...grpc.CallOption) (*CreateEndpointResponse, error) {
out := new(CreateEndpointResponse)
err := c.cc.Invoke(ctx, "/ncproxygrpc.NetworkConfigProxy/CreateEndpoint", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *networkConfigProxyClient) AddEndpoint(ctx context.Context, in *AddEndpointRequest, opts ...grpc.CallOption) (*AddEndpointResponse, error) {
out := new(AddEndpointResponse)
err := c.cc.Invoke(ctx, "/ncproxygrpc.NetworkConfigProxy/AddEndpoint", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *networkConfigProxyClient) DeleteEndpoint(ctx context.Context, in *DeleteEndpointRequest, opts ...grpc.CallOption) (*DeleteEndpointResponse, error) {
out := new(DeleteEndpointResponse)
err := c.cc.Invoke(ctx, "/ncproxygrpc.NetworkConfigProxy/DeleteEndpoint", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *networkConfigProxyClient) DeleteNetwork(ctx context.Context, in *DeleteNetworkRequest, opts ...grpc.CallOption) (*DeleteNetworkResponse, error) {
out := new(DeleteNetworkResponse)
err := c.cc.Invoke(ctx, "/ncproxygrpc.NetworkConfigProxy/DeleteNetwork", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *networkConfigProxyClient) GetEndpoint(ctx context.Context, in *GetEndpointRequest, opts ...grpc.CallOption) (*GetEndpointResponse, error) {
out := new(GetEndpointResponse)
err := c.cc.Invoke(ctx, "/ncproxygrpc.NetworkConfigProxy/GetEndpoint", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *networkConfigProxyClient) GetNetwork(ctx context.Context, in *GetNetworkRequest, opts ...grpc.CallOption) (*GetNetworkResponse, error) {
out := new(GetNetworkResponse)
err := c.cc.Invoke(ctx, "/ncproxygrpc.NetworkConfigProxy/GetNetwork", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *networkConfigProxyClient) GetEndpoints(ctx context.Context, in *GetEndpointsRequest, opts ...grpc.CallOption) (*GetEndpointsResponse, error) {
out := new(GetEndpointsResponse)
err := c.cc.Invoke(ctx, "/ncproxygrpc.NetworkConfigProxy/GetEndpoints", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *networkConfigProxyClient) GetNetworks(ctx context.Context, in *GetNetworksRequest, opts ...grpc.CallOption) (*GetNetworksResponse, error) {
out := new(GetNetworksResponse)
err := c.cc.Invoke(ctx, "/ncproxygrpc.NetworkConfigProxy/GetNetworks", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
// NetworkConfigProxyServer is the server API for NetworkConfigProxy service.
// All implementations must embed UnimplementedNetworkConfigProxyServer
// for forward compatibility
type NetworkConfigProxyServer interface {
AddNIC(context.Context, *AddNICRequest) (*AddNICResponse, error)
ModifyNIC(context.Context, *ModifyNICRequest) (*ModifyNICResponse, error)
DeleteNIC(context.Context, *DeleteNICRequest) (*DeleteNICResponse, error)
CreateNetwork(context.Context, *CreateNetworkRequest) (*CreateNetworkResponse, error)
CreateEndpoint(context.Context, *CreateEndpointRequest) (*CreateEndpointResponse, error)
AddEndpoint(context.Context, *AddEndpointRequest) (*AddEndpointResponse, error)
DeleteEndpoint(context.Context, *DeleteEndpointRequest) (*DeleteEndpointResponse, error)
DeleteNetwork(context.Context, *DeleteNetworkRequest) (*DeleteNetworkResponse, error)
GetEndpoint(context.Context, *GetEndpointRequest) (*GetEndpointResponse, error)
GetNetwork(context.Context, *GetNetworkRequest) (*GetNetworkResponse, error)
GetEndpoints(context.Context, *GetEndpointsRequest) (*GetEndpointsResponse, error)
GetNetworks(context.Context, *GetNetworksRequest) (*GetNetworksResponse, error)
mustEmbedUnimplementedNetworkConfigProxyServer()
}
// UnimplementedNetworkConfigProxyServer must be embedded to have forward compatible implementations.
type UnimplementedNetworkConfigProxyServer struct {
}
func (UnimplementedNetworkConfigProxyServer) AddNIC(context.Context, *AddNICRequest) (*AddNICResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method AddNIC not implemented")
}
func (UnimplementedNetworkConfigProxyServer) ModifyNIC(context.Context, *ModifyNICRequest) (*ModifyNICResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method ModifyNIC not implemented")
}
func (UnimplementedNetworkConfigProxyServer) DeleteNIC(context.Context, *DeleteNICRequest) (*DeleteNICResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method DeleteNIC not implemented")
}
func (UnimplementedNetworkConfigProxyServer) CreateNetwork(context.Context, *CreateNetworkRequest) (*CreateNetworkResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method CreateNetwork not implemented")
}
func (UnimplementedNetworkConfigProxyServer) CreateEndpoint(context.Context, *CreateEndpointRequest) (*CreateEndpointResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method CreateEndpoint not implemented")
}
func (UnimplementedNetworkConfigProxyServer) AddEndpoint(context.Context, *AddEndpointRequest) (*AddEndpointResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method AddEndpoint not implemented")
}
func (UnimplementedNetworkConfigProxyServer) DeleteEndpoint(context.Context, *DeleteEndpointRequest) (*DeleteEndpointResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method DeleteEndpoint not implemented")
}
func (UnimplementedNetworkConfigProxyServer) DeleteNetwork(context.Context, *DeleteNetworkRequest) (*DeleteNetworkResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method DeleteNetwork not implemented")
}
func (UnimplementedNetworkConfigProxyServer) GetEndpoint(context.Context, *GetEndpointRequest) (*GetEndpointResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetEndpoint not implemented")
}
func (UnimplementedNetworkConfigProxyServer) GetNetwork(context.Context, *GetNetworkRequest) (*GetNetworkResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetNetwork not implemented")
}
func (UnimplementedNetworkConfigProxyServer) GetEndpoints(context.Context, *GetEndpointsRequest) (*GetEndpointsResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetEndpoints not implemented")
}
func (UnimplementedNetworkConfigProxyServer) GetNetworks(context.Context, *GetNetworksRequest) (*GetNetworksResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetNetworks not implemented")
}
func (UnimplementedNetworkConfigProxyServer) mustEmbedUnimplementedNetworkConfigProxyServer() {}
// UnsafeNetworkConfigProxyServer may be embedded to opt out of forward compatibility for this service.
// Use of this interface is not recommended, as added methods to NetworkConfigProxyServer will
// result in compilation errors.
type UnsafeNetworkConfigProxyServer interface {
mustEmbedUnimplementedNetworkConfigProxyServer()
}
func RegisterNetworkConfigProxyServer(s grpc.ServiceRegistrar, srv NetworkConfigProxyServer) {
s.RegisterService(&NetworkConfigProxy_ServiceDesc, srv)
}
func _NetworkConfigProxy_AddNIC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(AddNICRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(NetworkConfigProxyServer).AddNIC(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/ncproxygrpc.NetworkConfigProxy/AddNIC",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(NetworkConfigProxyServer).AddNIC(ctx, req.(*AddNICRequest))
}
return interceptor(ctx, in, info, handler)
}
func _NetworkConfigProxy_ModifyNIC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(ModifyNICRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(NetworkConfigProxyServer).ModifyNIC(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/ncproxygrpc.NetworkConfigProxy/ModifyNIC",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(NetworkConfigProxyServer).ModifyNIC(ctx, req.(*ModifyNICRequest))
}
return interceptor(ctx, in, info, handler)
}
func _NetworkConfigProxy_DeleteNIC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(DeleteNICRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(NetworkConfigProxyServer).DeleteNIC(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/ncproxygrpc.NetworkConfigProxy/DeleteNIC",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(NetworkConfigProxyServer).DeleteNIC(ctx, req.(*DeleteNICRequest))
}
return interceptor(ctx, in, info, handler)
}
func _NetworkConfigProxy_CreateNetwork_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(CreateNetworkRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(NetworkConfigProxyServer).CreateNetwork(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/ncproxygrpc.NetworkConfigProxy/CreateNetwork",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(NetworkConfigProxyServer).CreateNetwork(ctx, req.(*CreateNetworkRequest))
}
return interceptor(ctx, in, info, handler)
}
func _NetworkConfigProxy_CreateEndpoint_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(CreateEndpointRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(NetworkConfigProxyServer).CreateEndpoint(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/ncproxygrpc.NetworkConfigProxy/CreateEndpoint",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(NetworkConfigProxyServer).CreateEndpoint(ctx, req.(*CreateEndpointRequest))
}
return interceptor(ctx, in, info, handler)
}
func _NetworkConfigProxy_AddEndpoint_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(AddEndpointRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(NetworkConfigProxyServer).AddEndpoint(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/ncproxygrpc.NetworkConfigProxy/AddEndpoint",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(NetworkConfigProxyServer).AddEndpoint(ctx, req.(*AddEndpointRequest))
}
return interceptor(ctx, in, info, handler)
}
func _NetworkConfigProxy_DeleteEndpoint_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(DeleteEndpointRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(NetworkConfigProxyServer).DeleteEndpoint(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/ncproxygrpc.NetworkConfigProxy/DeleteEndpoint",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(NetworkConfigProxyServer).DeleteEndpoint(ctx, req.(*DeleteEndpointRequest))
}
return interceptor(ctx, in, info, handler)
}
func _NetworkConfigProxy_DeleteNetwork_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(DeleteNetworkRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(NetworkConfigProxyServer).DeleteNetwork(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/ncproxygrpc.NetworkConfigProxy/DeleteNetwork",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(NetworkConfigProxyServer).DeleteNetwork(ctx, req.(*DeleteNetworkRequest))
}
return interceptor(ctx, in, info, handler)
}
func _NetworkConfigProxy_GetEndpoint_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(GetEndpointRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(NetworkConfigProxyServer).GetEndpoint(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/ncproxygrpc.NetworkConfigProxy/GetEndpoint",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(NetworkConfigProxyServer).GetEndpoint(ctx, req.(*GetEndpointRequest))
}
return interceptor(ctx, in, info, handler)
}
func _NetworkConfigProxy_GetNetwork_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(GetNetworkRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(NetworkConfigProxyServer).GetNetwork(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/ncproxygrpc.NetworkConfigProxy/GetNetwork",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(NetworkConfigProxyServer).GetNetwork(ctx, req.(*GetNetworkRequest))
}
return interceptor(ctx, in, info, handler)
}
func _NetworkConfigProxy_GetEndpoints_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(GetEndpointsRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(NetworkConfigProxyServer).GetEndpoints(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/ncproxygrpc.NetworkConfigProxy/GetEndpoints",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(NetworkConfigProxyServer).GetEndpoints(ctx, req.(*GetEndpointsRequest))
}
return interceptor(ctx, in, info, handler)
}
func _NetworkConfigProxy_GetNetworks_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(GetNetworksRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(NetworkConfigProxyServer).GetNetworks(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/ncproxygrpc.NetworkConfigProxy/GetNetworks",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(NetworkConfigProxyServer).GetNetworks(ctx, req.(*GetNetworksRequest))
}
return interceptor(ctx, in, info, handler)
}
// NetworkConfigProxy_ServiceDesc is the grpc.ServiceDesc for NetworkConfigProxy service.
// It's only intended for direct use with grpc.RegisterService,
// and not to be introspected or modified (even as a copy)
var NetworkConfigProxy_ServiceDesc = grpc.ServiceDesc{
ServiceName: "ncproxygrpc.NetworkConfigProxy",
HandlerType: (*NetworkConfigProxyServer)(nil),
Methods: []grpc.MethodDesc{
{
MethodName: "AddNIC",
Handler: _NetworkConfigProxy_AddNIC_Handler,
},
{
MethodName: "ModifyNIC",
Handler: _NetworkConfigProxy_ModifyNIC_Handler,
},
{
MethodName: "DeleteNIC",
Handler: _NetworkConfigProxy_DeleteNIC_Handler,
},
{
MethodName: "CreateNetwork",
Handler: _NetworkConfigProxy_CreateNetwork_Handler,
},
{
MethodName: "CreateEndpoint",
Handler: _NetworkConfigProxy_CreateEndpoint_Handler,
},
{
MethodName: "AddEndpoint",
Handler: _NetworkConfigProxy_AddEndpoint_Handler,
},
{
MethodName: "DeleteEndpoint",
Handler: _NetworkConfigProxy_DeleteEndpoint_Handler,
},
{
MethodName: "DeleteNetwork",
Handler: _NetworkConfigProxy_DeleteNetwork_Handler,
},
{
MethodName: "GetEndpoint",
Handler: _NetworkConfigProxy_GetEndpoint_Handler,
},
{
MethodName: "GetNetwork",
Handler: _NetworkConfigProxy_GetNetwork_Handler,
},
{
MethodName: "GetEndpoints",
Handler: _NetworkConfigProxy_GetEndpoints_Handler,
},
{
MethodName: "GetNetworks",
Handler: _NetworkConfigProxy_GetNetworks_Handler,
},
},
Streams: []grpc.StreamDesc{},
Metadata: "github.com/Microsoft/hcsshim/pkg/ncproxy/ncproxygrpc/v0/networkconfigproxy.proto",
}

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -0,0 +1,497 @@
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
package v1
import (
context "context"
grpc "google.golang.org/grpc"
codes "google.golang.org/grpc/codes"
status "google.golang.org/grpc/status"
)
// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
// Requires gRPC-Go v1.32.0 or later.
const _ = grpc.SupportPackageIsVersion7
// NetworkConfigProxyClient is the client API for NetworkConfigProxy service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
type NetworkConfigProxyClient interface {
AddNIC(ctx context.Context, in *AddNICRequest, opts ...grpc.CallOption) (*AddNICResponse, error)
ModifyNIC(ctx context.Context, in *ModifyNICRequest, opts ...grpc.CallOption) (*ModifyNICResponse, error)
DeleteNIC(ctx context.Context, in *DeleteNICRequest, opts ...grpc.CallOption) (*DeleteNICResponse, error)
CreateNetwork(ctx context.Context, in *CreateNetworkRequest, opts ...grpc.CallOption) (*CreateNetworkResponse, error)
CreateEndpoint(ctx context.Context, in *CreateEndpointRequest, opts ...grpc.CallOption) (*CreateEndpointResponse, error)
AddEndpoint(ctx context.Context, in *AddEndpointRequest, opts ...grpc.CallOption) (*AddEndpointResponse, error)
DeleteEndpoint(ctx context.Context, in *DeleteEndpointRequest, opts ...grpc.CallOption) (*DeleteEndpointResponse, error)
DeleteNetwork(ctx context.Context, in *DeleteNetworkRequest, opts ...grpc.CallOption) (*DeleteNetworkResponse, error)
GetEndpoint(ctx context.Context, in *GetEndpointRequest, opts ...grpc.CallOption) (*GetEndpointResponse, error)
GetNetwork(ctx context.Context, in *GetNetworkRequest, opts ...grpc.CallOption) (*GetNetworkResponse, error)
GetEndpoints(ctx context.Context, in *GetEndpointsRequest, opts ...grpc.CallOption) (*GetEndpointsResponse, error)
GetNetworks(ctx context.Context, in *GetNetworksRequest, opts ...grpc.CallOption) (*GetNetworksResponse, error)
}
type networkConfigProxyClient struct {
cc grpc.ClientConnInterface
}
func NewNetworkConfigProxyClient(cc grpc.ClientConnInterface) NetworkConfigProxyClient {
return &networkConfigProxyClient{cc}
}
func (c *networkConfigProxyClient) AddNIC(ctx context.Context, in *AddNICRequest, opts ...grpc.CallOption) (*AddNICResponse, error) {
out := new(AddNICResponse)
err := c.cc.Invoke(ctx, "/ncproxygrpc.v1.NetworkConfigProxy/AddNIC", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *networkConfigProxyClient) ModifyNIC(ctx context.Context, in *ModifyNICRequest, opts ...grpc.CallOption) (*ModifyNICResponse, error) {
out := new(ModifyNICResponse)
err := c.cc.Invoke(ctx, "/ncproxygrpc.v1.NetworkConfigProxy/ModifyNIC", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *networkConfigProxyClient) DeleteNIC(ctx context.Context, in *DeleteNICRequest, opts ...grpc.CallOption) (*DeleteNICResponse, error) {
out := new(DeleteNICResponse)
err := c.cc.Invoke(ctx, "/ncproxygrpc.v1.NetworkConfigProxy/DeleteNIC", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *networkConfigProxyClient) CreateNetwork(ctx context.Context, in *CreateNetworkRequest, opts ...grpc.CallOption) (*CreateNetworkResponse, error) {
out := new(CreateNetworkResponse)
err := c.cc.Invoke(ctx, "/ncproxygrpc.v1.NetworkConfigProxy/CreateNetwork", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *networkConfigProxyClient) CreateEndpoint(ctx context.Context, in *CreateEndpointRequest, opts ...grpc.CallOption) (*CreateEndpointResponse, error) {
out := new(CreateEndpointResponse)
err := c.cc.Invoke(ctx, "/ncproxygrpc.v1.NetworkConfigProxy/CreateEndpoint", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *networkConfigProxyClient) AddEndpoint(ctx context.Context, in *AddEndpointRequest, opts ...grpc.CallOption) (*AddEndpointResponse, error) {
out := new(AddEndpointResponse)
err := c.cc.Invoke(ctx, "/ncproxygrpc.v1.NetworkConfigProxy/AddEndpoint", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *networkConfigProxyClient) DeleteEndpoint(ctx context.Context, in *DeleteEndpointRequest, opts ...grpc.CallOption) (*DeleteEndpointResponse, error) {
out := new(DeleteEndpointResponse)
err := c.cc.Invoke(ctx, "/ncproxygrpc.v1.NetworkConfigProxy/DeleteEndpoint", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *networkConfigProxyClient) DeleteNetwork(ctx context.Context, in *DeleteNetworkRequest, opts ...grpc.CallOption) (*DeleteNetworkResponse, error) {
out := new(DeleteNetworkResponse)
err := c.cc.Invoke(ctx, "/ncproxygrpc.v1.NetworkConfigProxy/DeleteNetwork", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *networkConfigProxyClient) GetEndpoint(ctx context.Context, in *GetEndpointRequest, opts ...grpc.CallOption) (*GetEndpointResponse, error) {
out := new(GetEndpointResponse)
err := c.cc.Invoke(ctx, "/ncproxygrpc.v1.NetworkConfigProxy/GetEndpoint", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *networkConfigProxyClient) GetNetwork(ctx context.Context, in *GetNetworkRequest, opts ...grpc.CallOption) (*GetNetworkResponse, error) {
out := new(GetNetworkResponse)
err := c.cc.Invoke(ctx, "/ncproxygrpc.v1.NetworkConfigProxy/GetNetwork", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *networkConfigProxyClient) GetEndpoints(ctx context.Context, in *GetEndpointsRequest, opts ...grpc.CallOption) (*GetEndpointsResponse, error) {
out := new(GetEndpointsResponse)
err := c.cc.Invoke(ctx, "/ncproxygrpc.v1.NetworkConfigProxy/GetEndpoints", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *networkConfigProxyClient) GetNetworks(ctx context.Context, in *GetNetworksRequest, opts ...grpc.CallOption) (*GetNetworksResponse, error) {
out := new(GetNetworksResponse)
err := c.cc.Invoke(ctx, "/ncproxygrpc.v1.NetworkConfigProxy/GetNetworks", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
// NetworkConfigProxyServer is the server API for NetworkConfigProxy service.
// All implementations must embed UnimplementedNetworkConfigProxyServer
// for forward compatibility
type NetworkConfigProxyServer interface {
AddNIC(context.Context, *AddNICRequest) (*AddNICResponse, error)
ModifyNIC(context.Context, *ModifyNICRequest) (*ModifyNICResponse, error)
DeleteNIC(context.Context, *DeleteNICRequest) (*DeleteNICResponse, error)
CreateNetwork(context.Context, *CreateNetworkRequest) (*CreateNetworkResponse, error)
CreateEndpoint(context.Context, *CreateEndpointRequest) (*CreateEndpointResponse, error)
AddEndpoint(context.Context, *AddEndpointRequest) (*AddEndpointResponse, error)
DeleteEndpoint(context.Context, *DeleteEndpointRequest) (*DeleteEndpointResponse, error)
DeleteNetwork(context.Context, *DeleteNetworkRequest) (*DeleteNetworkResponse, error)
GetEndpoint(context.Context, *GetEndpointRequest) (*GetEndpointResponse, error)
GetNetwork(context.Context, *GetNetworkRequest) (*GetNetworkResponse, error)
GetEndpoints(context.Context, *GetEndpointsRequest) (*GetEndpointsResponse, error)
GetNetworks(context.Context, *GetNetworksRequest) (*GetNetworksResponse, error)
mustEmbedUnimplementedNetworkConfigProxyServer()
}
// UnimplementedNetworkConfigProxyServer must be embedded to have forward compatible implementations.
type UnimplementedNetworkConfigProxyServer struct {
}
func (UnimplementedNetworkConfigProxyServer) AddNIC(context.Context, *AddNICRequest) (*AddNICResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method AddNIC not implemented")
}
func (UnimplementedNetworkConfigProxyServer) ModifyNIC(context.Context, *ModifyNICRequest) (*ModifyNICResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method ModifyNIC not implemented")
}
func (UnimplementedNetworkConfigProxyServer) DeleteNIC(context.Context, *DeleteNICRequest) (*DeleteNICResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method DeleteNIC not implemented")
}
func (UnimplementedNetworkConfigProxyServer) CreateNetwork(context.Context, *CreateNetworkRequest) (*CreateNetworkResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method CreateNetwork not implemented")
}
func (UnimplementedNetworkConfigProxyServer) CreateEndpoint(context.Context, *CreateEndpointRequest) (*CreateEndpointResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method CreateEndpoint not implemented")
}
func (UnimplementedNetworkConfigProxyServer) AddEndpoint(context.Context, *AddEndpointRequest) (*AddEndpointResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method AddEndpoint not implemented")
}
func (UnimplementedNetworkConfigProxyServer) DeleteEndpoint(context.Context, *DeleteEndpointRequest) (*DeleteEndpointResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method DeleteEndpoint not implemented")
}
func (UnimplementedNetworkConfigProxyServer) DeleteNetwork(context.Context, *DeleteNetworkRequest) (*DeleteNetworkResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method DeleteNetwork not implemented")
}
func (UnimplementedNetworkConfigProxyServer) GetEndpoint(context.Context, *GetEndpointRequest) (*GetEndpointResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetEndpoint not implemented")
}
func (UnimplementedNetworkConfigProxyServer) GetNetwork(context.Context, *GetNetworkRequest) (*GetNetworkResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetNetwork not implemented")
}
func (UnimplementedNetworkConfigProxyServer) GetEndpoints(context.Context, *GetEndpointsRequest) (*GetEndpointsResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetEndpoints not implemented")
}
func (UnimplementedNetworkConfigProxyServer) GetNetworks(context.Context, *GetNetworksRequest) (*GetNetworksResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetNetworks not implemented")
}
func (UnimplementedNetworkConfigProxyServer) mustEmbedUnimplementedNetworkConfigProxyServer() {}
// UnsafeNetworkConfigProxyServer may be embedded to opt out of forward compatibility for this service.
// Use of this interface is not recommended, as added methods to NetworkConfigProxyServer will
// result in compilation errors.
type UnsafeNetworkConfigProxyServer interface {
mustEmbedUnimplementedNetworkConfigProxyServer()
}
func RegisterNetworkConfigProxyServer(s grpc.ServiceRegistrar, srv NetworkConfigProxyServer) {
s.RegisterService(&NetworkConfigProxy_ServiceDesc, srv)
}
func _NetworkConfigProxy_AddNIC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(AddNICRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(NetworkConfigProxyServer).AddNIC(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/ncproxygrpc.v1.NetworkConfigProxy/AddNIC",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(NetworkConfigProxyServer).AddNIC(ctx, req.(*AddNICRequest))
}
return interceptor(ctx, in, info, handler)
}
func _NetworkConfigProxy_ModifyNIC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(ModifyNICRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(NetworkConfigProxyServer).ModifyNIC(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/ncproxygrpc.v1.NetworkConfigProxy/ModifyNIC",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(NetworkConfigProxyServer).ModifyNIC(ctx, req.(*ModifyNICRequest))
}
return interceptor(ctx, in, info, handler)
}
func _NetworkConfigProxy_DeleteNIC_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(DeleteNICRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(NetworkConfigProxyServer).DeleteNIC(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/ncproxygrpc.v1.NetworkConfigProxy/DeleteNIC",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(NetworkConfigProxyServer).DeleteNIC(ctx, req.(*DeleteNICRequest))
}
return interceptor(ctx, in, info, handler)
}
func _NetworkConfigProxy_CreateNetwork_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(CreateNetworkRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(NetworkConfigProxyServer).CreateNetwork(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/ncproxygrpc.v1.NetworkConfigProxy/CreateNetwork",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(NetworkConfigProxyServer).CreateNetwork(ctx, req.(*CreateNetworkRequest))
}
return interceptor(ctx, in, info, handler)
}
func _NetworkConfigProxy_CreateEndpoint_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(CreateEndpointRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(NetworkConfigProxyServer).CreateEndpoint(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/ncproxygrpc.v1.NetworkConfigProxy/CreateEndpoint",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(NetworkConfigProxyServer).CreateEndpoint(ctx, req.(*CreateEndpointRequest))
}
return interceptor(ctx, in, info, handler)
}
func _NetworkConfigProxy_AddEndpoint_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(AddEndpointRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(NetworkConfigProxyServer).AddEndpoint(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/ncproxygrpc.v1.NetworkConfigProxy/AddEndpoint",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(NetworkConfigProxyServer).AddEndpoint(ctx, req.(*AddEndpointRequest))
}
return interceptor(ctx, in, info, handler)
}
func _NetworkConfigProxy_DeleteEndpoint_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(DeleteEndpointRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(NetworkConfigProxyServer).DeleteEndpoint(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/ncproxygrpc.v1.NetworkConfigProxy/DeleteEndpoint",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(NetworkConfigProxyServer).DeleteEndpoint(ctx, req.(*DeleteEndpointRequest))
}
return interceptor(ctx, in, info, handler)
}
func _NetworkConfigProxy_DeleteNetwork_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(DeleteNetworkRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(NetworkConfigProxyServer).DeleteNetwork(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/ncproxygrpc.v1.NetworkConfigProxy/DeleteNetwork",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(NetworkConfigProxyServer).DeleteNetwork(ctx, req.(*DeleteNetworkRequest))
}
return interceptor(ctx, in, info, handler)
}
func _NetworkConfigProxy_GetEndpoint_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(GetEndpointRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(NetworkConfigProxyServer).GetEndpoint(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/ncproxygrpc.v1.NetworkConfigProxy/GetEndpoint",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(NetworkConfigProxyServer).GetEndpoint(ctx, req.(*GetEndpointRequest))
}
return interceptor(ctx, in, info, handler)
}
func _NetworkConfigProxy_GetNetwork_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(GetNetworkRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(NetworkConfigProxyServer).GetNetwork(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/ncproxygrpc.v1.NetworkConfigProxy/GetNetwork",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(NetworkConfigProxyServer).GetNetwork(ctx, req.(*GetNetworkRequest))
}
return interceptor(ctx, in, info, handler)
}
func _NetworkConfigProxy_GetEndpoints_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(GetEndpointsRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(NetworkConfigProxyServer).GetEndpoints(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/ncproxygrpc.v1.NetworkConfigProxy/GetEndpoints",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(NetworkConfigProxyServer).GetEndpoints(ctx, req.(*GetEndpointsRequest))
}
return interceptor(ctx, in, info, handler)
}
func _NetworkConfigProxy_GetNetworks_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(GetNetworksRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(NetworkConfigProxyServer).GetNetworks(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/ncproxygrpc.v1.NetworkConfigProxy/GetNetworks",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(NetworkConfigProxyServer).GetNetworks(ctx, req.(*GetNetworksRequest))
}
return interceptor(ctx, in, info, handler)
}
// NetworkConfigProxy_ServiceDesc is the grpc.ServiceDesc for NetworkConfigProxy service.
// It's only intended for direct use with grpc.RegisterService,
// and not to be introspected or modified (even as a copy)
var NetworkConfigProxy_ServiceDesc = grpc.ServiceDesc{
ServiceName: "ncproxygrpc.v1.NetworkConfigProxy",
HandlerType: (*NetworkConfigProxyServer)(nil),
Methods: []grpc.MethodDesc{
{
MethodName: "AddNIC",
Handler: _NetworkConfigProxy_AddNIC_Handler,
},
{
MethodName: "ModifyNIC",
Handler: _NetworkConfigProxy_ModifyNIC_Handler,
},
{
MethodName: "DeleteNIC",
Handler: _NetworkConfigProxy_DeleteNIC_Handler,
},
{
MethodName: "CreateNetwork",
Handler: _NetworkConfigProxy_CreateNetwork_Handler,
},
{
MethodName: "CreateEndpoint",
Handler: _NetworkConfigProxy_CreateEndpoint_Handler,
},
{
MethodName: "AddEndpoint",
Handler: _NetworkConfigProxy_AddEndpoint_Handler,
},
{
MethodName: "DeleteEndpoint",
Handler: _NetworkConfigProxy_DeleteEndpoint_Handler,
},
{
MethodName: "DeleteNetwork",
Handler: _NetworkConfigProxy_DeleteNetwork_Handler,
},
{
MethodName: "GetEndpoint",
Handler: _NetworkConfigProxy_GetEndpoint_Handler,
},
{
MethodName: "GetNetwork",
Handler: _NetworkConfigProxy_GetNetwork_Handler,
},
{
MethodName: "GetEndpoints",
Handler: _NetworkConfigProxy_GetEndpoints_Handler,
},
{
MethodName: "GetNetworks",
Handler: _NetworkConfigProxy_GetNetworks_Handler,
},
},
Streams: []grpc.StreamDesc{},
Metadata: "github.com/Microsoft/hcsshim/pkg/ncproxy/ncproxygrpc/v1/networkconfigproxy.proto",
}

Просмотреть файл

@ -1,3 +1,3 @@
package v0
//go:generate go run github.com/golang/mock/mockgen -source=nodenetsvc.pb.go -package=nodenetsvc_v0_mock -destination=mock\nodenetsvc_mock.pb.go
//go:generate go run github.com/golang/mock/mockgen -source=nodenetsvc_grpc.pb.go -package=nodenetsvc_v0_mock -destination=mock\nodenetsvc_mock.pb.go

Просмотреть файл

@ -1,5 +1,5 @@
// Code generated by MockGen. DO NOT EDIT.
// Source: nodenetsvc.pb.go
// Source: nodenetsvc_grpc.pb.go
// Package nodenetsvc_v0_mock is a generated GoMock package.
package nodenetsvc_v0_mock
@ -198,3 +198,50 @@ func (mr *MockNodeNetworkServiceServerMockRecorder) PingNodeNetworkService(arg0,
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PingNodeNetworkService", reflect.TypeOf((*MockNodeNetworkServiceServer)(nil).PingNodeNetworkService), arg0, arg1)
}
// mustEmbedUnimplementedNodeNetworkServiceServer mocks base method.
func (m *MockNodeNetworkServiceServer) mustEmbedUnimplementedNodeNetworkServiceServer() {
m.ctrl.T.Helper()
m.ctrl.Call(m, "mustEmbedUnimplementedNodeNetworkServiceServer")
}
// mustEmbedUnimplementedNodeNetworkServiceServer indicates an expected call of mustEmbedUnimplementedNodeNetworkServiceServer.
func (mr *MockNodeNetworkServiceServerMockRecorder) mustEmbedUnimplementedNodeNetworkServiceServer() *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "mustEmbedUnimplementedNodeNetworkServiceServer", reflect.TypeOf((*MockNodeNetworkServiceServer)(nil).mustEmbedUnimplementedNodeNetworkServiceServer))
}
// MockUnsafeNodeNetworkServiceServer is a mock of UnsafeNodeNetworkServiceServer interface.
type MockUnsafeNodeNetworkServiceServer struct {
ctrl *gomock.Controller
recorder *MockUnsafeNodeNetworkServiceServerMockRecorder
}
// MockUnsafeNodeNetworkServiceServerMockRecorder is the mock recorder for MockUnsafeNodeNetworkServiceServer.
type MockUnsafeNodeNetworkServiceServerMockRecorder struct {
mock *MockUnsafeNodeNetworkServiceServer
}
// NewMockUnsafeNodeNetworkServiceServer creates a new mock instance.
func NewMockUnsafeNodeNetworkServiceServer(ctrl *gomock.Controller) *MockUnsafeNodeNetworkServiceServer {
mock := &MockUnsafeNodeNetworkServiceServer{ctrl: ctrl}
mock.recorder = &MockUnsafeNodeNetworkServiceServerMockRecorder{mock}
return mock
}
// EXPECT returns an object that allows the caller to indicate expected use.
func (m *MockUnsafeNodeNetworkServiceServer) EXPECT() *MockUnsafeNodeNetworkServiceServerMockRecorder {
return m.recorder
}
// mustEmbedUnimplementedNodeNetworkServiceServer mocks base method.
func (m *MockUnsafeNodeNetworkServiceServer) mustEmbedUnimplementedNodeNetworkServiceServer() {
m.ctrl.T.Helper()
m.ctrl.Call(m, "mustEmbedUnimplementedNodeNetworkServiceServer")
}
// mustEmbedUnimplementedNodeNetworkServiceServer indicates an expected call of mustEmbedUnimplementedNodeNetworkServiceServer.
func (mr *MockUnsafeNodeNetworkServiceServerMockRecorder) mustEmbedUnimplementedNodeNetworkServiceServer() *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "mustEmbedUnimplementedNodeNetworkServiceServer", reflect.TypeOf((*MockUnsafeNodeNetworkServiceServer)(nil).mustEmbedUnimplementedNodeNetworkServiceServer))
}

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -0,0 +1,209 @@
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
package v0
import (
context "context"
grpc "google.golang.org/grpc"
codes "google.golang.org/grpc/codes"
status "google.golang.org/grpc/status"
)
// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
// Requires gRPC-Go v1.32.0 or later.
const _ = grpc.SupportPackageIsVersion7
// NodeNetworkServiceClient is the client API for NodeNetworkService service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
type NodeNetworkServiceClient interface {
ConfigureNetworking(ctx context.Context, in *ConfigureNetworkingRequest, opts ...grpc.CallOption) (*ConfigureNetworkingResponse, error)
ConfigureContainerNetworking(ctx context.Context, in *ConfigureContainerNetworkingRequest, opts ...grpc.CallOption) (*ConfigureContainerNetworkingResponse, error)
PingNodeNetworkService(ctx context.Context, in *PingNodeNetworkServiceRequest, opts ...grpc.CallOption) (*PingNodeNetworkServiceResponse, error)
GetHostLocalIpAddress(ctx context.Context, in *GetHostLocalIpAddressRequest, opts ...grpc.CallOption) (*GetHostLocalIpAddressResponse, error)
}
type nodeNetworkServiceClient struct {
cc grpc.ClientConnInterface
}
func NewNodeNetworkServiceClient(cc grpc.ClientConnInterface) NodeNetworkServiceClient {
return &nodeNetworkServiceClient{cc}
}
func (c *nodeNetworkServiceClient) ConfigureNetworking(ctx context.Context, in *ConfigureNetworkingRequest, opts ...grpc.CallOption) (*ConfigureNetworkingResponse, error) {
out := new(ConfigureNetworkingResponse)
err := c.cc.Invoke(ctx, "/azure.nodenetworkservice.NodeNetworkService/ConfigureNetworking", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *nodeNetworkServiceClient) ConfigureContainerNetworking(ctx context.Context, in *ConfigureContainerNetworkingRequest, opts ...grpc.CallOption) (*ConfigureContainerNetworkingResponse, error) {
out := new(ConfigureContainerNetworkingResponse)
err := c.cc.Invoke(ctx, "/azure.nodenetworkservice.NodeNetworkService/ConfigureContainerNetworking", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *nodeNetworkServiceClient) PingNodeNetworkService(ctx context.Context, in *PingNodeNetworkServiceRequest, opts ...grpc.CallOption) (*PingNodeNetworkServiceResponse, error) {
out := new(PingNodeNetworkServiceResponse)
err := c.cc.Invoke(ctx, "/azure.nodenetworkservice.NodeNetworkService/PingNodeNetworkService", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *nodeNetworkServiceClient) GetHostLocalIpAddress(ctx context.Context, in *GetHostLocalIpAddressRequest, opts ...grpc.CallOption) (*GetHostLocalIpAddressResponse, error) {
out := new(GetHostLocalIpAddressResponse)
err := c.cc.Invoke(ctx, "/azure.nodenetworkservice.NodeNetworkService/GetHostLocalIpAddress", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
// NodeNetworkServiceServer is the server API for NodeNetworkService service.
// All implementations must embed UnimplementedNodeNetworkServiceServer
// for forward compatibility
type NodeNetworkServiceServer interface {
ConfigureNetworking(context.Context, *ConfigureNetworkingRequest) (*ConfigureNetworkingResponse, error)
ConfigureContainerNetworking(context.Context, *ConfigureContainerNetworkingRequest) (*ConfigureContainerNetworkingResponse, error)
PingNodeNetworkService(context.Context, *PingNodeNetworkServiceRequest) (*PingNodeNetworkServiceResponse, error)
GetHostLocalIpAddress(context.Context, *GetHostLocalIpAddressRequest) (*GetHostLocalIpAddressResponse, error)
mustEmbedUnimplementedNodeNetworkServiceServer()
}
// UnimplementedNodeNetworkServiceServer must be embedded to have forward compatible implementations.
type UnimplementedNodeNetworkServiceServer struct {
}
func (UnimplementedNodeNetworkServiceServer) ConfigureNetworking(context.Context, *ConfigureNetworkingRequest) (*ConfigureNetworkingResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method ConfigureNetworking not implemented")
}
func (UnimplementedNodeNetworkServiceServer) ConfigureContainerNetworking(context.Context, *ConfigureContainerNetworkingRequest) (*ConfigureContainerNetworkingResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method ConfigureContainerNetworking not implemented")
}
func (UnimplementedNodeNetworkServiceServer) PingNodeNetworkService(context.Context, *PingNodeNetworkServiceRequest) (*PingNodeNetworkServiceResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method PingNodeNetworkService not implemented")
}
func (UnimplementedNodeNetworkServiceServer) GetHostLocalIpAddress(context.Context, *GetHostLocalIpAddressRequest) (*GetHostLocalIpAddressResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetHostLocalIpAddress not implemented")
}
func (UnimplementedNodeNetworkServiceServer) mustEmbedUnimplementedNodeNetworkServiceServer() {}
// UnsafeNodeNetworkServiceServer may be embedded to opt out of forward compatibility for this service.
// Use of this interface is not recommended, as added methods to NodeNetworkServiceServer will
// result in compilation errors.
type UnsafeNodeNetworkServiceServer interface {
mustEmbedUnimplementedNodeNetworkServiceServer()
}
func RegisterNodeNetworkServiceServer(s grpc.ServiceRegistrar, srv NodeNetworkServiceServer) {
s.RegisterService(&NodeNetworkService_ServiceDesc, srv)
}
func _NodeNetworkService_ConfigureNetworking_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(ConfigureNetworkingRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(NodeNetworkServiceServer).ConfigureNetworking(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/azure.nodenetworkservice.NodeNetworkService/ConfigureNetworking",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(NodeNetworkServiceServer).ConfigureNetworking(ctx, req.(*ConfigureNetworkingRequest))
}
return interceptor(ctx, in, info, handler)
}
func _NodeNetworkService_ConfigureContainerNetworking_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(ConfigureContainerNetworkingRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(NodeNetworkServiceServer).ConfigureContainerNetworking(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/azure.nodenetworkservice.NodeNetworkService/ConfigureContainerNetworking",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(NodeNetworkServiceServer).ConfigureContainerNetworking(ctx, req.(*ConfigureContainerNetworkingRequest))
}
return interceptor(ctx, in, info, handler)
}
func _NodeNetworkService_PingNodeNetworkService_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(PingNodeNetworkServiceRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(NodeNetworkServiceServer).PingNodeNetworkService(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/azure.nodenetworkservice.NodeNetworkService/PingNodeNetworkService",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(NodeNetworkServiceServer).PingNodeNetworkService(ctx, req.(*PingNodeNetworkServiceRequest))
}
return interceptor(ctx, in, info, handler)
}
func _NodeNetworkService_GetHostLocalIpAddress_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(GetHostLocalIpAddressRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(NodeNetworkServiceServer).GetHostLocalIpAddress(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/azure.nodenetworkservice.NodeNetworkService/GetHostLocalIpAddress",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(NodeNetworkServiceServer).GetHostLocalIpAddress(ctx, req.(*GetHostLocalIpAddressRequest))
}
return interceptor(ctx, in, info, handler)
}
// NodeNetworkService_ServiceDesc is the grpc.ServiceDesc for NodeNetworkService service.
// It's only intended for direct use with grpc.RegisterService,
// and not to be introspected or modified (even as a copy)
var NodeNetworkService_ServiceDesc = grpc.ServiceDesc{
ServiceName: "azure.nodenetworkservice.NodeNetworkService",
HandlerType: (*NodeNetworkServiceServer)(nil),
Methods: []grpc.MethodDesc{
{
MethodName: "ConfigureNetworking",
Handler: _NodeNetworkService_ConfigureNetworking_Handler,
},
{
MethodName: "ConfigureContainerNetworking",
Handler: _NodeNetworkService_ConfigureContainerNetworking_Handler,
},
{
MethodName: "PingNodeNetworkService",
Handler: _NodeNetworkService_PingNodeNetworkService_Handler,
},
{
MethodName: "GetHostLocalIpAddress",
Handler: _NodeNetworkService_GetHostLocalIpAddress_Handler,
},
},
Streams: []grpc.StreamDesc{},
Metadata: "github.com/Microsoft/hcsshim/pkg/ncproxy/nodenetsvc/v0/nodenetsvc.proto",
}

Просмотреть файл

@ -5,4 +5,4 @@
// used for ncproxy.
package v1
//go:generate go run github.com/golang/mock/mockgen -source=nodenetsvc.pb.go -package=nodenetsvc_v1_mock -destination=mock\nodenetsvc_mock.pb.go
//go:generate go run github.com/golang/mock/mockgen -source=nodenetsvc_grpc.pb.go -package=nodenetsvc_v1_mock -destination=mock\nodenetsvc_mock.pb.go

Просмотреть файл

@ -1,5 +1,5 @@
// Code generated by MockGen. DO NOT EDIT.
// Source: nodenetsvc.pb.go
// Source: nodenetsvc_grpc.pb.go
// Package nodenetsvc_v1_mock is a generated GoMock package.
package nodenetsvc_v1_mock
@ -198,3 +198,50 @@ func (mr *MockNodeNetworkServiceServerMockRecorder) PingNodeNetworkService(arg0,
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PingNodeNetworkService", reflect.TypeOf((*MockNodeNetworkServiceServer)(nil).PingNodeNetworkService), arg0, arg1)
}
// mustEmbedUnimplementedNodeNetworkServiceServer mocks base method.
func (m *MockNodeNetworkServiceServer) mustEmbedUnimplementedNodeNetworkServiceServer() {
m.ctrl.T.Helper()
m.ctrl.Call(m, "mustEmbedUnimplementedNodeNetworkServiceServer")
}
// mustEmbedUnimplementedNodeNetworkServiceServer indicates an expected call of mustEmbedUnimplementedNodeNetworkServiceServer.
func (mr *MockNodeNetworkServiceServerMockRecorder) mustEmbedUnimplementedNodeNetworkServiceServer() *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "mustEmbedUnimplementedNodeNetworkServiceServer", reflect.TypeOf((*MockNodeNetworkServiceServer)(nil).mustEmbedUnimplementedNodeNetworkServiceServer))
}
// MockUnsafeNodeNetworkServiceServer is a mock of UnsafeNodeNetworkServiceServer interface.
type MockUnsafeNodeNetworkServiceServer struct {
ctrl *gomock.Controller
recorder *MockUnsafeNodeNetworkServiceServerMockRecorder
}
// MockUnsafeNodeNetworkServiceServerMockRecorder is the mock recorder for MockUnsafeNodeNetworkServiceServer.
type MockUnsafeNodeNetworkServiceServerMockRecorder struct {
mock *MockUnsafeNodeNetworkServiceServer
}
// NewMockUnsafeNodeNetworkServiceServer creates a new mock instance.
func NewMockUnsafeNodeNetworkServiceServer(ctrl *gomock.Controller) *MockUnsafeNodeNetworkServiceServer {
mock := &MockUnsafeNodeNetworkServiceServer{ctrl: ctrl}
mock.recorder = &MockUnsafeNodeNetworkServiceServerMockRecorder{mock}
return mock
}
// EXPECT returns an object that allows the caller to indicate expected use.
func (m *MockUnsafeNodeNetworkServiceServer) EXPECT() *MockUnsafeNodeNetworkServiceServerMockRecorder {
return m.recorder
}
// mustEmbedUnimplementedNodeNetworkServiceServer mocks base method.
func (m *MockUnsafeNodeNetworkServiceServer) mustEmbedUnimplementedNodeNetworkServiceServer() {
m.ctrl.T.Helper()
m.ctrl.Call(m, "mustEmbedUnimplementedNodeNetworkServiceServer")
}
// mustEmbedUnimplementedNodeNetworkServiceServer indicates an expected call of mustEmbedUnimplementedNodeNetworkServiceServer.
func (mr *MockUnsafeNodeNetworkServiceServerMockRecorder) mustEmbedUnimplementedNodeNetworkServiceServer() *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "mustEmbedUnimplementedNodeNetworkServiceServer", reflect.TypeOf((*MockUnsafeNodeNetworkServiceServer)(nil).mustEmbedUnimplementedNodeNetworkServiceServer))
}

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -0,0 +1,209 @@
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
package v1
import (
context "context"
grpc "google.golang.org/grpc"
codes "google.golang.org/grpc/codes"
status "google.golang.org/grpc/status"
)
// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
// Requires gRPC-Go v1.32.0 or later.
const _ = grpc.SupportPackageIsVersion7
// NodeNetworkServiceClient is the client API for NodeNetworkService service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
type NodeNetworkServiceClient interface {
ConfigureNetworking(ctx context.Context, in *ConfigureNetworkingRequest, opts ...grpc.CallOption) (*ConfigureNetworkingResponse, error)
ConfigureContainerNetworking(ctx context.Context, in *ConfigureContainerNetworkingRequest, opts ...grpc.CallOption) (*ConfigureContainerNetworkingResponse, error)
PingNodeNetworkService(ctx context.Context, in *PingNodeNetworkServiceRequest, opts ...grpc.CallOption) (*PingNodeNetworkServiceResponse, error)
GetHostLocalIpAddress(ctx context.Context, in *GetHostLocalIpAddressRequest, opts ...grpc.CallOption) (*GetHostLocalIpAddressResponse, error)
}
type nodeNetworkServiceClient struct {
cc grpc.ClientConnInterface
}
func NewNodeNetworkServiceClient(cc grpc.ClientConnInterface) NodeNetworkServiceClient {
return &nodeNetworkServiceClient{cc}
}
func (c *nodeNetworkServiceClient) ConfigureNetworking(ctx context.Context, in *ConfigureNetworkingRequest, opts ...grpc.CallOption) (*ConfigureNetworkingResponse, error) {
out := new(ConfigureNetworkingResponse)
err := c.cc.Invoke(ctx, "/nodenetsvc.v1.NodeNetworkService/ConfigureNetworking", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *nodeNetworkServiceClient) ConfigureContainerNetworking(ctx context.Context, in *ConfigureContainerNetworkingRequest, opts ...grpc.CallOption) (*ConfigureContainerNetworkingResponse, error) {
out := new(ConfigureContainerNetworkingResponse)
err := c.cc.Invoke(ctx, "/nodenetsvc.v1.NodeNetworkService/ConfigureContainerNetworking", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *nodeNetworkServiceClient) PingNodeNetworkService(ctx context.Context, in *PingNodeNetworkServiceRequest, opts ...grpc.CallOption) (*PingNodeNetworkServiceResponse, error) {
out := new(PingNodeNetworkServiceResponse)
err := c.cc.Invoke(ctx, "/nodenetsvc.v1.NodeNetworkService/PingNodeNetworkService", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *nodeNetworkServiceClient) GetHostLocalIpAddress(ctx context.Context, in *GetHostLocalIpAddressRequest, opts ...grpc.CallOption) (*GetHostLocalIpAddressResponse, error) {
out := new(GetHostLocalIpAddressResponse)
err := c.cc.Invoke(ctx, "/nodenetsvc.v1.NodeNetworkService/GetHostLocalIpAddress", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
// NodeNetworkServiceServer is the server API for NodeNetworkService service.
// All implementations must embed UnimplementedNodeNetworkServiceServer
// for forward compatibility
type NodeNetworkServiceServer interface {
ConfigureNetworking(context.Context, *ConfigureNetworkingRequest) (*ConfigureNetworkingResponse, error)
ConfigureContainerNetworking(context.Context, *ConfigureContainerNetworkingRequest) (*ConfigureContainerNetworkingResponse, error)
PingNodeNetworkService(context.Context, *PingNodeNetworkServiceRequest) (*PingNodeNetworkServiceResponse, error)
GetHostLocalIpAddress(context.Context, *GetHostLocalIpAddressRequest) (*GetHostLocalIpAddressResponse, error)
mustEmbedUnimplementedNodeNetworkServiceServer()
}
// UnimplementedNodeNetworkServiceServer must be embedded to have forward compatible implementations.
type UnimplementedNodeNetworkServiceServer struct {
}
func (UnimplementedNodeNetworkServiceServer) ConfigureNetworking(context.Context, *ConfigureNetworkingRequest) (*ConfigureNetworkingResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method ConfigureNetworking not implemented")
}
func (UnimplementedNodeNetworkServiceServer) ConfigureContainerNetworking(context.Context, *ConfigureContainerNetworkingRequest) (*ConfigureContainerNetworkingResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method ConfigureContainerNetworking not implemented")
}
func (UnimplementedNodeNetworkServiceServer) PingNodeNetworkService(context.Context, *PingNodeNetworkServiceRequest) (*PingNodeNetworkServiceResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method PingNodeNetworkService not implemented")
}
func (UnimplementedNodeNetworkServiceServer) GetHostLocalIpAddress(context.Context, *GetHostLocalIpAddressRequest) (*GetHostLocalIpAddressResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetHostLocalIpAddress not implemented")
}
func (UnimplementedNodeNetworkServiceServer) mustEmbedUnimplementedNodeNetworkServiceServer() {}
// UnsafeNodeNetworkServiceServer may be embedded to opt out of forward compatibility for this service.
// Use of this interface is not recommended, as added methods to NodeNetworkServiceServer will
// result in compilation errors.
type UnsafeNodeNetworkServiceServer interface {
mustEmbedUnimplementedNodeNetworkServiceServer()
}
func RegisterNodeNetworkServiceServer(s grpc.ServiceRegistrar, srv NodeNetworkServiceServer) {
s.RegisterService(&NodeNetworkService_ServiceDesc, srv)
}
func _NodeNetworkService_ConfigureNetworking_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(ConfigureNetworkingRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(NodeNetworkServiceServer).ConfigureNetworking(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/nodenetsvc.v1.NodeNetworkService/ConfigureNetworking",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(NodeNetworkServiceServer).ConfigureNetworking(ctx, req.(*ConfigureNetworkingRequest))
}
return interceptor(ctx, in, info, handler)
}
func _NodeNetworkService_ConfigureContainerNetworking_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(ConfigureContainerNetworkingRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(NodeNetworkServiceServer).ConfigureContainerNetworking(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/nodenetsvc.v1.NodeNetworkService/ConfigureContainerNetworking",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(NodeNetworkServiceServer).ConfigureContainerNetworking(ctx, req.(*ConfigureContainerNetworkingRequest))
}
return interceptor(ctx, in, info, handler)
}
func _NodeNetworkService_PingNodeNetworkService_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(PingNodeNetworkServiceRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(NodeNetworkServiceServer).PingNodeNetworkService(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/nodenetsvc.v1.NodeNetworkService/PingNodeNetworkService",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(NodeNetworkServiceServer).PingNodeNetworkService(ctx, req.(*PingNodeNetworkServiceRequest))
}
return interceptor(ctx, in, info, handler)
}
func _NodeNetworkService_GetHostLocalIpAddress_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(GetHostLocalIpAddressRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(NodeNetworkServiceServer).GetHostLocalIpAddress(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/nodenetsvc.v1.NodeNetworkService/GetHostLocalIpAddress",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(NodeNetworkServiceServer).GetHostLocalIpAddress(ctx, req.(*GetHostLocalIpAddressRequest))
}
return interceptor(ctx, in, info, handler)
}
// NodeNetworkService_ServiceDesc is the grpc.ServiceDesc for NodeNetworkService service.
// It's only intended for direct use with grpc.RegisterService,
// and not to be introspected or modified (even as a copy)
var NodeNetworkService_ServiceDesc = grpc.ServiceDesc{
ServiceName: "nodenetsvc.v1.NodeNetworkService",
HandlerType: (*NodeNetworkServiceServer)(nil),
Methods: []grpc.MethodDesc{
{
MethodName: "ConfigureNetworking",
Handler: _NodeNetworkService_ConfigureNetworking_Handler,
},
{
MethodName: "ConfigureContainerNetworking",
Handler: _NodeNetworkService_ConfigureContainerNetworking_Handler,
},
{
MethodName: "PingNodeNetworkService",
Handler: _NodeNetworkService_PingNodeNetworkService_Handler,
},
{
MethodName: "GetHostLocalIpAddress",
Handler: _NodeNetworkService_GetHostLocalIpAddress_Handler,
},
},
Streams: []grpc.StreamDesc{},
Metadata: "github.com/Microsoft/hcsshim/pkg/ncproxy/nodenetsvc/v1/nodenetsvc.proto",
}

49
scripts/Update-Proto.ps1 Normal file
Просмотреть файл

@ -0,0 +1,49 @@
$ErrorActionPreference = 'Stop'
$VerbosePreference = 'Continue'
$root = Split-Path -Path $PSScriptRoot -Parent
@('go', 'protoc') | ForEach-Object {
if ( $null -eq (Get-Command $_ -CommandType Application -ErrorAction Ignore) ) {
Write-Error -ErrorAction Stop "Missing executable: $_"
}
}
function run([string]$cmd, [string[]]$params) {
Write-Verbose "$cmd $params"
& $cmd @params 2>&1
if ( $LASTEXITCODE -ne 0 ) {
Write-Error "Command failed: $cmd $params"
}
}
# Install protobuild and co.
# calling `go install` without a version will install current module (ie., the vendor directory)
# this relies on `./tools.go` to vendor correct dependencies
@(
'github.com/containerd/protobuild',
'github.com/containerd/protobuild/cmd/go-fix-acronym',
'github.com/containerd/ttrpc/cmd/protoc-gen-go-ttrpc',
'google.golang.org/grpc/cmd/protoc-gen-go-grpc',
'google.golang.org/protobuf/cmd/protoc-gen-go'
) | ForEach-Object { run go ('install', $_) }
# difficult to exclude a directory from Get-ChildItem
Get-ChildItem -Filter *.proto -Recurse -Name -Path $root |
Where-Object { ($_ -notlike 'vendor*') -and ($_ -notlike 'protobuf*') -and ($_ -notlike 'test*') } |
ForEach-Object {
$dir = Join-Path $root (Split-Path -Parent $_)
$pkg = go list -f '{{.ImportPath}}' $dir
run protobuild $pkg
$acronyms = 'Id|Io|Guid|Uuid|Os'
if ( $dir -like (Join-Path $root 'cmd\containerd-shim-runhcs-v1\stats') ) {
$acronyms += '|Vm|Ns'
}
Get-ChildItem -Filter *.pb.go -Name -Path $dir |
ForEach-Object {
$f = Join-Path $dir $_
run go-fix-acronym ('-w', '-a', "($acronyms)`$", $f)
}
}

Просмотреть файл

@ -7,8 +7,8 @@ import (
"testing"
"time"
"github.com/containerd/containerd/runtime/v2/task"
"github.com/gogo/protobuf/proto"
task "github.com/containerd/containerd/api/runtime/task/v2"
"google.golang.org/protobuf/proto"
)
func verifyDeleteCommandSuccess(t *testing.T, stdout, stderr string, runErr error, begin, end time.Time) {
@ -27,7 +27,7 @@ func verifyDeleteCommandSuccess(t *testing.T, stdout, stderr string, runErr erro
if resp.ExitStatus != 255 {
t.Fatalf("DeleteResponse exit status is 255 by convention, got: %v", resp.ExitStatus)
}
if begin.After(resp.ExitedAt) || end.Before(resp.ExitedAt) {
if begin.After(resp.ExitedAt.AsTime()) || end.Before(resp.ExitedAt.AsTime()) {
t.Fatalf("DeleteResponse.ExitedAt should be between, %v and %v, got: %v", begin, end, resp.ExitedAt)
}
}

Просмотреть файл

@ -17,7 +17,7 @@ import (
"github.com/Microsoft/go-winio"
"github.com/Microsoft/hcsshim/pkg/annotations"
"github.com/containerd/containerd/runtime/v2/task"
task "github.com/containerd/containerd/api/runtime/task/v2"
"github.com/containerd/ttrpc"
specs "github.com/opencontainers/runtime-spec/specs-go"
"github.com/opencontainers/runtime-tools/generate"

Просмотреть файл

@ -13,18 +13,17 @@ import (
"testing"
"time"
"github.com/Microsoft/hcsshim/osversion"
"github.com/containerd/containerd"
eventtypes "github.com/containerd/containerd/api/events"
eventsapi "github.com/containerd/containerd/api/services/events/v1"
kubeutil "github.com/containerd/containerd/integration/remote/util"
eventruntime "github.com/containerd/containerd/runtime"
"github.com/containerd/typeurl"
"github.com/gogo/protobuf/types"
typeurl "github.com/containerd/typeurl/v2"
"google.golang.org/grpc"
"google.golang.org/grpc/credentials/insecure"
runtime "k8s.io/cri-api/pkg/apis/runtime/v1alpha2"
"github.com/Microsoft/hcsshim/osversion"
testflag "github.com/Microsoft/hcsshim/test/pkg/flag"
"github.com/Microsoft/hcsshim/test/pkg/images"
"github.com/Microsoft/hcsshim/test/pkg/require"
@ -188,7 +187,9 @@ func createGRPCConn(ctx context.Context) (*grpc.ClientConn, error) {
if err != nil {
return nil, err
}
return grpc.DialContext(ctx, addr, grpc.WithTransportCredentials(insecure.NewCredentials()), grpc.WithContextDialer(dialer))
return grpc.DialContext(ctx, addr,
grpc.WithTransportCredentials(insecure.NewCredentials()),
grpc.WithContextDialer(dialer))
}
func newTestRuntimeClient(tb testing.TB) runtime.RuntimeServiceClient {
@ -240,7 +241,7 @@ func getTargetRunTopics() (topicNames []string, filters []string) {
return topicNames, filters
}
func convertEvent(e *types.Any) (string, interface{}, error) {
func convertEvent(e typeurl.Any) (string, interface{}, error) {
id := ""
evt, err := typeurl.UnmarshalAny(e)
if err != nil {

Просмотреть файл

@ -118,7 +118,7 @@ func containerSpecOpts(_ context.Context, tb testing.TB,
// this will be set based on the security context below
oci.WithNewPrivileges,
criopts.WithProcessArgs(cfg, img),
criopts.WithPodNamespaces(nil, sandboxPID, sandboxPID),
criopts.WithPodNamespaces(nil, sandboxPID, sandboxPID, nil /* uids */, nil /* gids */),
)
hostname := name

Просмотреть файл

@ -10,7 +10,7 @@ import (
"os"
"testing"
"github.com/containerd/cgroups"
cgroups "github.com/containerd/cgroups/v3/cgroup1"
"github.com/sirupsen/logrus"
"go.opencensus.io/trace"
@ -90,7 +90,7 @@ func setup() (err error) {
// should already start in gcs cgroup
if !*flagJoinGCSCgroup {
gcsControl, err := cgroups.Load(cgroups.V1, cgroups.StaticPath("/"))
gcsControl, err := cgroups.Load(cgroups.StaticPath("/"))
if err != nil {
return fmt.Errorf("failed to load root cgroup: %w", err)
}

Просмотреть файл

@ -4,19 +4,18 @@ go 1.18
require (
github.com/Microsoft/go-winio v0.6.1
github.com/Microsoft/hcsshim v0.10.0-rc.3
github.com/containerd/cgroups v1.1.0
github.com/containerd/containerd v1.6.21
github.com/Microsoft/hcsshim v0.10.0-rc.7
github.com/containerd/cgroups/v3 v3.0.1
github.com/containerd/containerd v1.7.0
github.com/containerd/go-runc v1.0.0
github.com/containerd/ttrpc v1.1.2
github.com/containerd/typeurl v1.0.2
github.com/gogo/protobuf v1.3.2
github.com/containerd/ttrpc v1.2.2
github.com/containerd/typeurl/v2 v2.1.1
github.com/google/go-containerregistry v0.15.2
github.com/kevpar/cri v1.11.1-0.20220302210600-4c5c347230b2
github.com/opencontainers/go-digest v1.0.0
github.com/opencontainers/image-spec v1.1.0-rc3
github.com/opencontainers/runtime-spec v1.1.0-rc.2
github.com/opencontainers/runtime-tools v0.9.0
github.com/opencontainers/runtime-tools v0.9.1-0.20221107090550-2e043c6bd626
github.com/pkg/errors v0.9.1
github.com/sirupsen/logrus v1.9.3
github.com/stretchr/testify v1.8.4
@ -24,19 +23,24 @@ require (
golang.org/x/sync v0.3.0
golang.org/x/sys v0.9.0
google.golang.org/grpc v1.55.0
k8s.io/cri-api v0.25.0
google.golang.org/protobuf v1.30.0
k8s.io/cri-api v0.26.2
)
require (
github.com/AdaLogics/go-fuzz-headers v0.0.0-20230106234847-43070de90fa1 // indirect
github.com/AdamKorcz/go-118-fuzz-build v0.0.0-20221215162035-5330a85ea652 // indirect
github.com/OneOfOne/xxhash v1.2.8 // indirect
github.com/agnivade/levenshtein v1.0.1 // indirect
github.com/blang/semver v3.5.1+incompatible // indirect
github.com/cenkalti/backoff/v4 v4.2.1 // indirect
github.com/container-orchestrated-devices/container-device-interface v0.5.4 // indirect
github.com/containerd/console v1.0.3 // indirect
github.com/containerd/continuity v0.3.0 // indirect
github.com/containerd/fifo v1.0.0 // indirect
github.com/containerd/fifo v1.1.0 // indirect
github.com/containerd/protobuild v0.3.0 // indirect
github.com/containerd/stargz-snapshotter/estargz v0.14.3 // indirect
github.com/coreos/go-systemd/v22 v22.3.2 // indirect
github.com/coreos/go-systemd/v22 v22.5.0 // indirect
github.com/cyphar/filepath-securejoin v0.2.3 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect
github.com/docker/cli v23.0.5+incompatible // indirect
@ -45,18 +49,20 @@ require (
github.com/docker/docker-credential-helpers v0.7.0 // indirect
github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c // indirect
github.com/docker/go-units v0.5.0 // indirect
github.com/fsnotify/fsnotify v1.6.0 // indirect
github.com/fxamacker/cbor/v2 v2.4.0 // indirect
github.com/ghodss/yaml v1.0.0 // indirect
github.com/go-logr/logr v1.2.3 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/gobwas/glob v0.2.3 // indirect
github.com/goccy/go-json v0.10.2 // indirect
github.com/godbus/dbus/v5 v5.0.6 // indirect
github.com/gogo/googleapis v1.4.0 // indirect
github.com/godbus/dbus/v5 v5.1.0 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
github.com/golang/mock v1.6.0 // indirect
github.com/golang/protobuf v1.5.3 // indirect
github.com/google/go-cmp v0.5.9 // indirect
github.com/google/uuid v1.3.0 // indirect
github.com/hashicorp/errwrap v1.1.0 // indirect
github.com/hashicorp/go-multierror v1.1.1 // indirect
github.com/klauspost/compress v1.16.5 // indirect
github.com/lestrrat-go/backoff/v2 v2.0.8 // indirect
github.com/lestrrat-go/blackmagic v1.0.1 // indirect
@ -68,12 +74,13 @@ require (
github.com/mattn/go-shellwords v1.0.12 // indirect
github.com/mitchellh/go-homedir v1.1.0 // indirect
github.com/moby/locker v1.0.1 // indirect
github.com/moby/sys/mountinfo v0.5.0 // indirect
github.com/moby/sys/signal v0.6.0 // indirect
github.com/moby/sys/mountinfo v0.6.2 // indirect
github.com/moby/sys/sequential v0.5.0 // indirect
github.com/moby/sys/signal v0.7.0 // indirect
github.com/moby/sys/symlink v0.2.0 // indirect
github.com/open-policy-agent/opa v0.42.2 // indirect
github.com/opencontainers/runc v1.1.7 // indirect
github.com/opencontainers/selinux v1.10.1 // indirect
github.com/opencontainers/selinux v1.11.0 // indirect
github.com/pelletier/go-toml v1.9.5 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0 // indirect
@ -86,20 +93,23 @@ require (
github.com/x448/float16 v0.8.4 // indirect
github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect
github.com/xeipuuv/gojsonschema v1.2.0 // indirect
github.com/yashtewari/glob-intersection v0.1.0 // indirect
go.opentelemetry.io/otel v1.14.0 // indirect
go.opentelemetry.io/otel/trace v1.14.0 // indirect
golang.org/x/crypto v0.9.0 // indirect
golang.org/x/mod v0.10.0 // indirect
golang.org/x/net v0.10.0 // indirect
golang.org/x/text v0.9.0 // indirect
golang.org/x/tools v0.8.0 // indirect
google.golang.org/genproto v0.0.0-20230323212658-478b75c54725 // indirect
google.golang.org/protobuf v1.30.0 // indirect
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
sigs.k8s.io/yaml v1.3.0 // indirect
)
replace (
github.com/Microsoft/hcsshim => ../
google.golang.org/genproto => google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63
// keep CRI version frozen for cri-containerd tests
k8s.io/cri-api => k8s.io/cri-api v0.25.8
)

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -34,7 +34,9 @@ func createGRPCConn(ctx context.Context, address string) (*grpc.ClientConn, erro
if err != nil {
return nil, err
}
return grpc.DialContext(ctx, addr, grpc.WithTransportCredentials(insecure.NewCredentials()), grpc.WithContextDialer(dialer))
return grpc.DialContext(ctx, addr,
grpc.WithTransportCredentials(insecure.NewCredentials()),
grpc.WithContextDialer(dialer))
}
type ContainerdClientOptions struct {
@ -164,7 +166,6 @@ func PullImage(ctx context.Context, tb testing.TB, client *containerd.Client, re
}
opts := []containerd.RemoteOpt{
containerd.WithSchema1Conversion,
containerd.WithPlatform(plat),
containerd.WithPullUnpack,
}

Просмотреть файл

@ -3,7 +3,14 @@
package hcsshim
import (
// for go generate directives
// protobuf/gRPC/ttrpc generation
_ "github.com/containerd/protobuild"
_ "github.com/containerd/protobuild/cmd/go-fix-acronym"
_ "github.com/containerd/ttrpc/cmd/protoc-gen-go-ttrpc"
_ "google.golang.org/grpc/cmd/protoc-gen-go-grpc"
_ "google.golang.org/protobuf/cmd/protoc-gen-go"
// used in go:generate directives
// generate Win32 API code
_ "github.com/Microsoft/go-winio/tools/mkwinsyscall"

46
vendor/github.com/containerd/cgroups/Protobuild.toml сгенерированный поставляемый
Просмотреть файл

@ -1,46 +0,0 @@
version = "unstable"
generator = "gogoctrd"
plugins = ["grpc"]
# Control protoc include paths. Below are usually some good defaults, but feel
# free to try it without them if it works for your project.
[includes]
# Include paths that will be added before all others. Typically, you want to
# treat the root of the project as an include, but this may not be necessary.
# before = ["."]
# Paths that should be treated as include roots in relation to the vendor
# directory. These will be calculated with the vendor directory nearest the
# target package.
# vendored = ["github.com/gogo/protobuf"]
packages = ["github.com/gogo/protobuf"]
# Paths that will be added untouched to the end of the includes. We use
# `/usr/local/include` to pickup the common install location of protobuf.
# This is the default.
after = ["/usr/local/include", "/usr/include"]
# This section maps protobuf imports to Go packages. These will become
# `-M` directives in the call to the go protobuf generator.
[packages]
"gogoproto/gogo.proto" = "github.com/gogo/protobuf/gogoproto"
"google/protobuf/any.proto" = "github.com/gogo/protobuf/types"
"google/protobuf/descriptor.proto" = "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
"google/protobuf/field_mask.proto" = "github.com/gogo/protobuf/types"
"google/protobuf/timestamp.proto" = "github.com/gogo/protobuf/types"
# Aggregrate the API descriptors to lock down API changes.
[[descriptors]]
prefix = "github.com/containerd/cgroups/stats/v1"
target = "stats/v1/metrics.pb.txt"
ignore_files = [
"google/protobuf/descriptor.proto",
"gogoproto/gogo.proto"
]
[[descriptors]]
prefix = "github.com/containerd/cgroups/v2/stats"
target = "v2/stats/metrics.pb.txt"
ignore_files = [
"google/protobuf/descriptor.proto",
"gogoproto/gogo.proto"
]

6125
vendor/github.com/containerd/cgroups/stats/v1/metrics.pb.go сгенерированный поставляемый

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

Просмотреть файл

Просмотреть файл

@ -22,3 +22,5 @@ cgutil:
proto:
protobuild --quiet ${PACKAGES}
# Keep them Go-idiomatic and backward-compatible with the gogo/protobuf era.
go-fix-acronym -w -a '(Cpu|Tcp|Rss)' $(shell find cgroup1/stats/ cgroup2/stats/ -name '*.pb.go')

31
vendor/github.com/containerd/cgroups/v3/Protobuild.toml сгенерированный поставляемый Normal file
Просмотреть файл

@ -0,0 +1,31 @@
version = "2"
generators = ["go"]
# Control protoc include paths. Below are usually some good defaults, but feel
# free to try it without them if it works for your project.
[includes]
# Include paths that will be added before all others. Typically, you want to
# treat the root of the project as an include, but this may not be necessary.
# before = ["."]
# Paths that will be added untouched to the end of the includes. We use
# `/usr/local/include` to pickup the common install location of protobuf.
# This is the default.
after = ["/usr/local/include", "/usr/include"]
# Aggregrate the API descriptors to lock down API changes.
[[descriptors]]
prefix = "github.com/containerd/cgroups/cgroup1/stats"
target = "cgroup1/stats/metrics.pb.txt"
ignore_files = [
"google/protobuf/descriptor.proto",
]
[[descriptors]]
prefix = "github.com/containerd/cgroups/cgroup2/stats"
target = "cgroup2/stats/metrics.pb.txt"
ignore_files = [
"google/protobuf/descriptor.proto",
]
[parameters.go]
paths = "source_relative"

Просмотреть файл

@ -25,7 +25,7 @@ uses the v1 implementation of cgroups.
```go
shares := uint64(100)
control, err := cgroups.New(cgroups.V1, cgroups.StaticPath("/test"), &specs.LinuxResources{
control, err := cgroup1.New(cgroup1.StaticPath("/test"), &specs.LinuxResources{
CPU: &specs.LinuxCPU{
Shares: &shares,
},
@ -37,7 +37,7 @@ defer control.Delete()
```go
control, err := cgroups.New(cgroups.Systemd, cgroups.Slice("system.slice", "runc-test"), &specs.LinuxResources{
control, err := cgroup1.New(cgroup1.Systemd, cgroup1.Slice("system.slice", "runc-test"), &specs.LinuxResources{
CPU: &specs.CPU{
Shares: &shares,
},
@ -48,13 +48,13 @@ control, err := cgroups.New(cgroups.Systemd, cgroups.Slice("system.slice", "runc
### Load an existing cgroup
```go
control, err = cgroups.Load(cgroups.V1, cgroups.StaticPath("/test"))
control, err = cgroup1.Load(cgroup1.Default, cgroups.StaticPath("/test"))
```
### Add a process to the cgroup
```go
if err := control.Add(cgroups.Process{Pid:1234}); err != nil {
if err := control.Add(cgroup1.Process{Pid:1234}); err != nil {
}
```
@ -84,7 +84,7 @@ if err := control.Thaw(); err != nil {
### List all processes in the cgroup or recursively
```go
processes, err := control.Processes(cgroups.Devices, recursive)
processes, err := control.Processes(cgroup1.Devices, recursive)
```
### Get Stats on the cgroup
@ -95,7 +95,7 @@ stats, err := control.Stat()
By adding `cgroups.IgnoreNotExist` all non-existent files will be ignored, e.g. swap memory stats without swap enabled
```go
stats, err := control.Stat(cgroups.IgnoreNotExist)
stats, err := control.Stat(cgroup1.IgnoreNotExist)
```
### Move process across cgroups
@ -117,19 +117,19 @@ subCgroup, err := control.New("child", resources)
This allows you to get notified by an eventfd for v1 memory cgroups events.
```go
event := cgroups.MemoryThresholdEvent(50 * 1024 * 1024, false)
event := cgroup1.MemoryThresholdEvent(50 * 1024 * 1024, false)
efd, err := control.RegisterMemoryEvent(event)
```
```go
event := cgroups.MemoryPressureEvent(cgroups.MediumPressure, cgroups.DefaultMode)
event := cgroup1.MemoryPressureEvent(cgroup1.MediumPressure, cgroup1.DefaultMode)
efd, err := control.RegisterMemoryEvent(event)
```
```go
efd, err := control.OOMEventFD()
// or by using RegisterMemoryEvent
event := cgroups.OOMEvent()
event := cgroup1.OOMEvent()
efd, err := control.RegisterMemoryEvent(event)
```
@ -153,14 +153,14 @@ so the resulting slice would be located here on disk:
```go
import (
cgroupsv2 "github.com/containerd/cgroups/v2"
"github.com/containerd/cgroups/v3/cgroup2"
specs "github.com/opencontainers/runtime-spec/specs-go"
)
res := cgroupsv2.Resources{}
res := cgroup2.Resources{}
// dummy PID of -1 is used for creating a "general slice" to be used as a parent cgroup.
// see https://github.com/containerd/cgroups/blob/1df78138f1e1e6ee593db155c6b369466f577651/v2/manager.go#L732-L735
m, err := cgroupsv2.NewSystemd("/", "my-cgroup-abc.slice", -1, &res)
m, err := cgroup2.NewSystemd("/", "my-cgroup-abc.slice", -1, &res)
if err != nil {
return err
}
@ -169,7 +169,7 @@ if err != nil {
### Load an existing cgroup
```go
m, err := cgroupsv2.LoadSystemd("/", "my-cgroup-abc.slice")
m, err := cgroup2.LoadSystemd("/", "my-cgroup-abc.slice")
if err != nil {
return err
}
@ -178,7 +178,7 @@ if err != nil {
### Delete a cgroup
```go
m, err := cgroupsv2.LoadSystemd("/", "my-cgroup-abc.slice")
m, err := cgroup2.LoadSystemd("/", "my-cgroup-abc.slice")
if err != nil {
return err
}
@ -188,6 +188,19 @@ if err != nil {
}
```
### Kill all processes in a cgroup
```go
m, err := cgroup2.LoadSystemd("/", "my-cgroup-abc.slice")
if err != nil {
return err
}
err = m.Kill()
if err != nil {
return err
}
```
### Attention
All static path should not include `/sys/fs/cgroup/` prefix, it should start with your own cgroups name

Просмотреть файл

@ -14,7 +14,7 @@
limitations under the License.
*/
package cgroups
package cgroup1
import (
"bufio"
@ -25,7 +25,8 @@ import (
"strconv"
"strings"
v1 "github.com/containerd/cgroups/stats/v1"
v1 "github.com/containerd/cgroups/v3/cgroup1/stats"
specs "github.com/opencontainers/runtime-spec/specs-go"
)
@ -71,7 +72,7 @@ func (b *blkioController) Create(path string, resources *specs.LinuxResources) e
}
for _, t := range createBlkioSettings(resources.BlockIO) {
if t.value != nil {
if err := retryingWriteFile(
if err := os.WriteFile(
filepath.Join(b.Path(path), "blkio."+t.name),
t.format(t.value),
defaultFilePerm,

Просмотреть файл

@ -14,31 +14,34 @@
limitations under the License.
*/
package cgroups
package cgroup1
import (
"errors"
"fmt"
"io/fs"
"os"
"path/filepath"
"strconv"
"strings"
"sync"
"syscall"
"time"
v1 "github.com/containerd/cgroups/stats/v1"
v1 "github.com/containerd/cgroups/v3/cgroup1/stats"
"github.com/opencontainers/runtime-spec/specs-go"
)
// New returns a new control via the cgroup cgroups interface
func New(hierarchy Hierarchy, path Path, resources *specs.LinuxResources, opts ...InitOpts) (Cgroup, error) {
func New(path Path, resources *specs.LinuxResources, opts ...InitOpts) (Cgroup, error) {
config := newInitConfig()
for _, o := range opts {
if err := o(config); err != nil {
return nil, err
}
}
subsystems, err := hierarchy()
subsystems, err := config.hiearchy()
if err != nil {
return nil, err
}
@ -68,7 +71,7 @@ func New(hierarchy Hierarchy, path Path, resources *specs.LinuxResources, opts .
// Load will load an existing cgroup and allow it to be controlled
// All static path should not include `/sys/fs/cgroup/` prefix, it should start with your own cgroups name
func Load(hierarchy Hierarchy, path Path, opts ...InitOpts) (Cgroup, error) {
func Load(path Path, opts ...InitOpts) (Cgroup, error) {
config := newInitConfig()
for _, o := range opts {
if err := o(config); err != nil {
@ -76,7 +79,7 @@ func Load(hierarchy Hierarchy, path Path, opts ...InitOpts) (Cgroup, error) {
}
}
var activeSubsystems []Subsystem
subsystems, err := hierarchy()
subsystems, err := config.hiearchy()
if err != nil {
return nil, err
}
@ -193,6 +196,31 @@ func (c *cgroup) AddTask(process Process, subsystems ...Name) error {
return c.add(process, cgroupTasks, subsystems...)
}
// writeCgroupsProcs writes to the file, but retries on EINVAL.
func writeCgroupProcs(path string, content []byte, perm fs.FileMode) error {
f, err := os.OpenFile(path, os.O_CREATE|os.O_WRONLY, perm)
if err != nil {
return err
}
defer f.Close()
for i := 0; i < 5; i++ {
_, err = f.Write(content)
if err == nil {
return nil
}
// If the process's associated task's state is TASK_NEW, the kernel
// returns EINVAL. The function will retry on the error like runc.
// https://github.com/torvalds/linux/blob/v6.0/kernel/sched/core.c#L10308-L10337
// https://github.com/opencontainers/runc/pull/1950
if !errors.Is(err, syscall.EINVAL) {
return err
}
time.Sleep(30 * time.Millisecond)
}
return err
}
func (c *cgroup) add(process Process, pType procType, subsystems ...Name) error {
if process.Pid <= 0 {
return ErrInvalidPid
@ -207,7 +235,7 @@ func (c *cgroup) add(process Process, pType procType, subsystems ...Name) error
if err != nil {
return err
}
err = retryingWriteFile(
err = writeCgroupProcs(
filepath.Join(s.Path(p), pType),
[]byte(strconv.Itoa(process.Pid)),
defaultFilePerm,

Просмотреть файл

@ -14,12 +14,12 @@
limitations under the License.
*/
package cgroups
package cgroup1
import (
"os"
v1 "github.com/containerd/cgroups/stats/v1"
v1 "github.com/containerd/cgroups/v3/cgroup1/stats"
specs "github.com/opencontainers/runtime-spec/specs-go"
)

Просмотреть файл

@ -14,7 +14,7 @@
limitations under the License.
*/
package cgroups
package cgroup1
import (
"bufio"
@ -22,7 +22,7 @@ import (
"path/filepath"
"strconv"
v1 "github.com/containerd/cgroups/stats/v1"
v1 "github.com/containerd/cgroups/v3/cgroup1/stats"
specs "github.com/opencontainers/runtime-spec/specs-go"
)
@ -82,7 +82,7 @@ func (c *cpuController) Create(path string, resources *specs.LinuxResources) err
value = []byte(strconv.FormatInt(*t.ivalue, 10))
}
if value != nil {
if err := retryingWriteFile(
if err := os.WriteFile(
filepath.Join(c.Path(path), "cpu."+t.name),
value,
defaultFilePerm,

Просмотреть файл

@ -14,7 +14,7 @@
limitations under the License.
*/
package cgroups
package cgroup1
import (
"bufio"
@ -24,7 +24,7 @@ import (
"strconv"
"strings"
v1 "github.com/containerd/cgroups/stats/v1"
v1 "github.com/containerd/cgroups/v3/cgroup1/stats"
)
const nanosecondsInSecond = 1000000000

Просмотреть файл

@ -14,7 +14,7 @@
limitations under the License.
*/
package cgroups
package cgroup1
import (
"bytes"
@ -68,7 +68,7 @@ func (c *cpusetController) Create(path string, resources *specs.LinuxResources)
},
} {
if t.value != "" {
if err := retryingWriteFile(
if err := os.WriteFile(
filepath.Join(c.Path(path), "cpuset."+t.name),
[]byte(t.value),
defaultFilePerm,
@ -133,7 +133,7 @@ func (c *cpusetController) copyIfNeeded(current, parent string) error {
return err
}
if isEmpty(currentCpus) {
if err := retryingWriteFile(
if err := os.WriteFile(
filepath.Join(current, "cpuset.cpus"),
parentCpus,
defaultFilePerm,
@ -142,7 +142,7 @@ func (c *cpusetController) copyIfNeeded(current, parent string) error {
}
}
if isEmpty(currentMems) {
if err := retryingWriteFile(
if err := os.WriteFile(
filepath.Join(current, "cpuset.mems"),
parentMems,
defaultFilePerm,

Просмотреть файл

@ -14,7 +14,7 @@
limitations under the License.
*/
package cgroups
package cgroup1
import (
"fmt"
@ -60,7 +60,7 @@ func (d *devicesController) Create(path string, resources *specs.LinuxResources)
if device.Type == "" {
device.Type = "a"
}
if err := retryingWriteFile(
if err := os.WriteFile(
filepath.Join(d.Path(path), file),
[]byte(deviceString(device)),
defaultFilePerm,

Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше