build(deps): bump the go-deps group across 1 directory with 8 updates
Bumps the go-deps group with 7 updates in the / directory: | Package | From | To | | --- | --- | --- | | [cloud.google.com/go/compute](https://github.com/googleapis/google-cloud-go) | `1.27.3` | `1.27.4` | | [github.com/Azure/azure-sdk-for-go/sdk/storage/azblob](https://github.com/Azure/azure-sdk-for-go) | `1.3.2` | `1.4.0` | | [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) | `1.54.18` | `1.55.2` | | [github.com/gophercloud/gophercloud](https://github.com/gophercloud/gophercloud) | `1.13.0` | `1.14.0` | | [github.com/openshift-online/ocm-sdk-go](https://github.com/openshift-online/ocm-sdk-go) | `0.1.429` | `0.1.432` | | [github.com/osbuild/images](https://github.com/osbuild/images) | `0.70.0` | `0.72.0` | | [github.com/vmware/govmomi](https://github.com/vmware/govmomi) | `0.38.0` | `0.39.0` | Updates `cloud.google.com/go/compute` from 1.27.3 to 1.27.4 - [Release notes](https://github.com/googleapis/google-cloud-go/releases) - [Changelog](https://github.com/googleapis/google-cloud-go/blob/main/CHANGES.md) - [Commits](https://github.com/googleapis/google-cloud-go/compare/compute/v1.27.3...compute/v1.27.4) Updates `github.com/Azure/azure-sdk-for-go/sdk/storage/azblob` from 1.3.2 to 1.4.0 - [Release notes](https://github.com/Azure/azure-sdk-for-go/releases) - [Changelog](https://github.com/Azure/azure-sdk-for-go/blob/main/documentation/release.md) - [Commits](https://github.com/Azure/azure-sdk-for-go/compare/sdk/storage/azblob/v1.3.2...sdk/azcore/v1.4.0) Updates `github.com/aws/aws-sdk-go` from 1.54.18 to 1.55.2 - [Release notes](https://github.com/aws/aws-sdk-go/releases) - [Commits](https://github.com/aws/aws-sdk-go/compare/v1.54.18...v1.55.2) Updates `github.com/gophercloud/gophercloud` from 1.13.0 to 1.14.0 - [Release notes](https://github.com/gophercloud/gophercloud/releases) - [Changelog](https://github.com/gophercloud/gophercloud/blob/v1.14.0/CHANGELOG.md) - [Commits](https://github.com/gophercloud/gophercloud/compare/v1.13.0...v1.14.0) Updates `github.com/openshift-online/ocm-sdk-go` from 0.1.429 to 0.1.432 - [Release notes](https://github.com/openshift-online/ocm-sdk-go/releases) - [Changelog](https://github.com/openshift-online/ocm-sdk-go/blob/main/CHANGES.md) - [Commits](https://github.com/openshift-online/ocm-sdk-go/compare/v0.1.429...v0.1.432) Updates `github.com/osbuild/images` from 0.70.0 to 0.72.0 - [Release notes](https://github.com/osbuild/images/releases) - [Commits](https://github.com/osbuild/images/compare/v0.70.0...v0.72.0) Updates `github.com/vmware/govmomi` from 0.38.0 to 0.39.0 - [Release notes](https://github.com/vmware/govmomi/releases) - [Changelog](https://github.com/vmware/govmomi/blob/main/CHANGELOG.md) - [Commits](https://github.com/vmware/govmomi/compare/v0.38.0...v0.39.0) Updates `google.golang.org/api` from 0.188.0 to 0.189.0 - [Release notes](https://github.com/googleapis/google-api-go-client/releases) - [Changelog](https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md) - [Commits](https://github.com/googleapis/google-api-go-client/compare/v0.188.0...v0.189.0) --- updated-dependencies: - dependency-name: cloud.google.com/go/compute dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go-deps - dependency-name: github.com/Azure/azure-sdk-for-go/sdk/storage/azblob dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-deps - dependency-name: github.com/aws/aws-sdk-go dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-deps - dependency-name: github.com/gophercloud/gophercloud dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-deps - dependency-name: github.com/openshift-online/ocm-sdk-go dependency-type: direct:production update-type: version-update:semver-patch dependency-group: go-deps - dependency-name: github.com/osbuild/images dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-deps - dependency-name: github.com/vmware/govmomi dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-deps - dependency-name: google.golang.org/api dependency-type: direct:production update-type: version-update:semver-minor dependency-group: go-deps ... Signed-off-by: dependabot[bot] <support@github.com>
This commit is contained in:
parent
fd71c9cefa
commit
ca2c2dfa4f
104 changed files with 4713 additions and 2477 deletions
42
go.mod
42
go.mod
|
|
@ -5,18 +5,18 @@ go 1.21
|
|||
exclude github.com/mattn/go-sqlite3 v2.0.3+incompatible
|
||||
|
||||
require (
|
||||
cloud.google.com/go/compute v1.27.3
|
||||
cloud.google.com/go/compute v1.27.4
|
||||
cloud.google.com/go/storage v1.43.0
|
||||
github.com/Azure/azure-sdk-for-go v68.0.0+incompatible
|
||||
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.7.0
|
||||
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v5 v5.7.0
|
||||
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources v1.2.0
|
||||
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage v1.6.0
|
||||
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.3.2
|
||||
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.4.0
|
||||
github.com/Azure/go-autorest/autorest v0.11.29
|
||||
github.com/Azure/go-autorest/autorest/azure/auth v0.5.13
|
||||
github.com/BurntSushi/toml v1.4.0
|
||||
github.com/aws/aws-sdk-go v1.54.18
|
||||
github.com/aws/aws-sdk-go v1.55.2
|
||||
github.com/coreos/go-semver v0.3.1
|
||||
github.com/coreos/go-systemd v0.0.0-20191104093116-d3cd4ed1dbcf
|
||||
github.com/deepmap/oapi-codegen v1.8.2
|
||||
|
|
@ -26,7 +26,7 @@ require (
|
|||
github.com/golang-jwt/jwt/v4 v4.5.0
|
||||
github.com/google/go-cmp v0.6.0
|
||||
github.com/google/uuid v1.6.0
|
||||
github.com/gophercloud/gophercloud v1.13.0
|
||||
github.com/gophercloud/gophercloud v1.14.0
|
||||
github.com/hashicorp/go-retryablehttp v0.7.7
|
||||
github.com/jackc/pgtype v1.14.3
|
||||
github.com/jackc/pgx/v4 v4.18.3
|
||||
|
|
@ -34,9 +34,9 @@ require (
|
|||
github.com/kolo/xmlrpc v0.0.0-20201022064351-38db28db192b
|
||||
github.com/labstack/echo/v4 v4.12.0
|
||||
github.com/labstack/gommon v0.4.2
|
||||
github.com/openshift-online/ocm-sdk-go v0.1.429
|
||||
github.com/openshift-online/ocm-sdk-go v0.1.432
|
||||
github.com/oracle/oci-go-sdk/v54 v54.0.0
|
||||
github.com/osbuild/images v0.70.0
|
||||
github.com/osbuild/images v0.72.0
|
||||
github.com/osbuild/osbuild-composer/pkg/splunk_logger v0.0.0-20231117174845-e969a9dc3cd1
|
||||
github.com/osbuild/pulp-client v0.1.0
|
||||
github.com/prometheus/client_golang v1.19.1
|
||||
|
|
@ -45,23 +45,23 @@ require (
|
|||
github.com/spf13/cobra v1.8.1
|
||||
github.com/stretchr/testify v1.9.0
|
||||
github.com/ubccr/kerby v0.0.0-20170626144437-201a958fc453
|
||||
github.com/vmware/govmomi v0.38.0
|
||||
github.com/vmware/govmomi v0.39.0
|
||||
golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842
|
||||
golang.org/x/oauth2 v0.21.0
|
||||
golang.org/x/sync v0.7.0
|
||||
golang.org/x/sys v0.22.0
|
||||
google.golang.org/api v0.188.0
|
||||
google.golang.org/api v0.189.0
|
||||
)
|
||||
|
||||
require (
|
||||
cloud.google.com/go v0.115.0 // indirect
|
||||
cloud.google.com/go/auth v0.7.0 // indirect
|
||||
cloud.google.com/go/auth/oauth2adapt v0.2.2 // indirect
|
||||
cloud.google.com/go/compute/metadata v0.4.0 // indirect
|
||||
cloud.google.com/go/auth v0.7.2 // indirect
|
||||
cloud.google.com/go/auth/oauth2adapt v0.2.3 // indirect
|
||||
cloud.google.com/go/compute/metadata v0.5.0 // indirect
|
||||
cloud.google.com/go/iam v1.1.10 // indirect
|
||||
dario.cat/mergo v1.0.0 // indirect
|
||||
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.12.0 // indirect
|
||||
github.com/Azure/azure-sdk-for-go/sdk/internal v1.9.0 // indirect
|
||||
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.13.0 // indirect
|
||||
github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 // indirect
|
||||
github.com/Azure/go-autorest v14.2.0+incompatible // indirect
|
||||
github.com/Azure/go-autorest/autorest/adal v0.9.22 // indirect
|
||||
github.com/Azure/go-autorest/autorest/azure/cli v0.4.6 // indirect
|
||||
|
|
@ -83,7 +83,7 @@ require (
|
|||
github.com/containerd/cgroups/v3 v3.0.3 // indirect
|
||||
github.com/containerd/errdefs v0.1.0 // indirect
|
||||
github.com/containerd/stargz-snapshotter/estargz v0.15.1 // indirect
|
||||
github.com/containers/common v0.59.1 // indirect
|
||||
github.com/containers/common v0.59.2 // indirect
|
||||
github.com/containers/image/v5 v5.31.1 // indirect
|
||||
github.com/containers/libtrust v0.0.0-20230121012942-c1716e8a8d01 // indirect
|
||||
github.com/containers/ocicrypt v1.1.10 // indirect
|
||||
|
|
@ -102,7 +102,7 @@ require (
|
|||
github.com/felixge/httpsnoop v1.0.4 // indirect
|
||||
github.com/ghodss/yaml v1.0.0 // indirect
|
||||
github.com/go-jose/go-jose/v3 v3.0.3 // indirect
|
||||
github.com/go-logr/logr v1.4.1 // indirect
|
||||
github.com/go-logr/logr v1.4.2 // indirect
|
||||
github.com/go-logr/stdr v1.2.2 // indirect
|
||||
github.com/go-openapi/analysis v0.23.0 // indirect
|
||||
github.com/go-openapi/errors v0.22.0 // indirect
|
||||
|
|
@ -124,7 +124,7 @@ require (
|
|||
github.com/google/go-intervals v0.0.2 // indirect
|
||||
github.com/google/s2a-go v0.1.7 // indirect
|
||||
github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect
|
||||
github.com/googleapis/gax-go/v2 v2.12.5 // indirect
|
||||
github.com/googleapis/gax-go/v2 v2.13.0 // indirect
|
||||
github.com/gorilla/css v1.0.0 // indirect
|
||||
github.com/gorilla/mux v1.8.1 // indirect
|
||||
github.com/hashicorp/errwrap v1.1.0 // indirect
|
||||
|
|
@ -202,15 +202,15 @@ require (
|
|||
go.opentelemetry.io/otel/metric v1.24.0 // indirect
|
||||
go.opentelemetry.io/otel/trace v1.24.0 // indirect
|
||||
golang.org/x/crypto v0.25.0 // indirect
|
||||
golang.org/x/mod v0.18.0 // indirect
|
||||
golang.org/x/mod v0.19.0 // indirect
|
||||
golang.org/x/net v0.27.0 // indirect
|
||||
golang.org/x/term v0.22.0 // indirect
|
||||
golang.org/x/text v0.16.0 // indirect
|
||||
golang.org/x/time v0.5.0 // indirect
|
||||
golang.org/x/tools v0.22.0 // indirect
|
||||
google.golang.org/genproto v0.0.0-20240708141625-4ad9e859172b // indirect
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20240701130421-f6361c86f094 // indirect
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240708141625-4ad9e859172b // indirect
|
||||
golang.org/x/tools v0.23.0 // indirect
|
||||
google.golang.org/genproto v0.0.0-20240722135656-d784300faade // indirect
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20240722135656-d784300faade // indirect
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240722135656-d784300faade // indirect
|
||||
google.golang.org/grpc v1.64.1 // indirect
|
||||
google.golang.org/protobuf v1.34.2 // indirect
|
||||
gopkg.in/go-jose/go-jose.v2 v2.6.3 // indirect
|
||||
|
|
|
|||
84
go.sum
84
go.sum
|
|
@ -1,14 +1,14 @@
|
|||
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
|
||||
cloud.google.com/go v0.115.0 h1:CnFSK6Xo3lDYRoBKEcAtia6VSC837/ZkJuRduSFnr14=
|
||||
cloud.google.com/go v0.115.0/go.mod h1:8jIM5vVgoAEoiVxQ/O4BFTfHqulPZgs/ufEzMcFMdWU=
|
||||
cloud.google.com/go/auth v0.7.0 h1:kf/x9B3WTbBUHkC+1VS8wwwli9TzhSt0vSTVBmMR8Ts=
|
||||
cloud.google.com/go/auth v0.7.0/go.mod h1:D+WqdrpcjmiCgWrXmLLxOVq1GACoE36chW6KXoEvuIw=
|
||||
cloud.google.com/go/auth/oauth2adapt v0.2.2 h1:+TTV8aXpjeChS9M+aTtN/TjdQnzJvmzKFt//oWu7HX4=
|
||||
cloud.google.com/go/auth/oauth2adapt v0.2.2/go.mod h1:wcYjgpZI9+Yu7LyYBg4pqSiaRkfEK3GQcpb7C/uyF1Q=
|
||||
cloud.google.com/go/compute v1.27.3 h1:GFfoejA5qGeFYpKAfgoVzvgJ3D8upFKI/UR7MdiPdS0=
|
||||
cloud.google.com/go/compute v1.27.3/go.mod h1:5GuDo3l1k9CFhfIHK1sXqlqOW/iWX4/eBlO5FtxDhvQ=
|
||||
cloud.google.com/go/compute/metadata v0.4.0 h1:vHzJCWaM4g8XIcm8kopr3XmDA4Gy/lblD3EhhSux05c=
|
||||
cloud.google.com/go/compute/metadata v0.4.0/go.mod h1:SIQh1Kkb4ZJ8zJ874fqVkslA29PRXuleyj6vOzlbK7M=
|
||||
cloud.google.com/go/auth v0.7.2 h1:uiha352VrCDMXg+yoBtaD0tUF4Kv9vrtrWPYXwutnDE=
|
||||
cloud.google.com/go/auth v0.7.2/go.mod h1:VEc4p5NNxycWQTMQEDQF0bd6aTMb6VgYDXEwiJJQAbs=
|
||||
cloud.google.com/go/auth/oauth2adapt v0.2.3 h1:MlxF+Pd3OmSudg/b1yZ5lJwoXCEaeedAguodky1PcKI=
|
||||
cloud.google.com/go/auth/oauth2adapt v0.2.3/go.mod h1:tMQXOfZzFuNuUxOypHlQEXgdfX5cuhwU+ffUuXRJE8I=
|
||||
cloud.google.com/go/compute v1.27.4 h1:XM8ulx6crjdl09XBfji7viFgZOEQuIxBwKmjRH9Rtmc=
|
||||
cloud.google.com/go/compute v1.27.4/go.mod h1:7JZS+h21ERAGHOy5qb7+EPyXlQwzshzrx1x6L9JhTqU=
|
||||
cloud.google.com/go/compute/metadata v0.5.0 h1:Zr0eK8JbFv6+Wi4ilXAR8FJ3wyNdpxHKJNPos6LTZOY=
|
||||
cloud.google.com/go/compute/metadata v0.5.0/go.mod h1:aHnloV2TPI38yx4s9+wAZhHykWvVCfu7hQbF+9CWoiY=
|
||||
cloud.google.com/go/iam v1.1.10 h1:ZSAr64oEhQSClwBL670MsJAW5/RLiC6kfw3Bqmd5ZDI=
|
||||
cloud.google.com/go/iam v1.1.10/go.mod h1:iEgMq62sg8zx446GCaijmA2Miwg5o3UbO+nI47WHJps=
|
||||
cloud.google.com/go/longrunning v0.5.9 h1:haH9pAuXdPAMqHvzX0zlWQigXT7B0+CL4/2nXXdBo5k=
|
||||
|
|
@ -21,12 +21,12 @@ github.com/14rcole/gopopulate v0.0.0-20180821133914-b175b219e774 h1:SCbEWT58NSt7
|
|||
github.com/14rcole/gopopulate v0.0.0-20180821133914-b175b219e774/go.mod h1:6/0dYRLLXyJjbkIPeeGyoJ/eKOSI0eU6eTlCBYibgd0=
|
||||
github.com/Azure/azure-sdk-for-go v68.0.0+incompatible h1:fcYLmCpyNYRnvJbPerq7U0hS+6+I79yEDJBqVNcqUzU=
|
||||
github.com/Azure/azure-sdk-for-go v68.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
|
||||
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.12.0 h1:1nGuui+4POelzDwI7RG56yfQJHCnKvwfMoU7VsEp+Zg=
|
||||
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.12.0/go.mod h1:99EvauvlcJ1U06amZiksfYz/3aFGyIhWGHVyiZXtBAI=
|
||||
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.13.0 h1:GJHeeA2N7xrG3q30L2UXDyuWRzDM900/65j70wcM4Ww=
|
||||
github.com/Azure/azure-sdk-for-go/sdk/azcore v1.13.0/go.mod h1:l38EPgmsp71HHLq9j7De57JcKOWPyhrsW1Awm1JS6K0=
|
||||
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.7.0 h1:tfLQ34V6F7tVSwoTf/4lH5sE0o6eCJuNDTmH09nDpbc=
|
||||
github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.7.0/go.mod h1:9kIvujWAA58nmPmWB1m23fyWic1kYZMxD9CxaWn4Qpg=
|
||||
github.com/Azure/azure-sdk-for-go/sdk/internal v1.9.0 h1:H+U3Gk9zY56G3u872L82bk4thcsy2Gghb9ExT4Zvm1o=
|
||||
github.com/Azure/azure-sdk-for-go/sdk/internal v1.9.0/go.mod h1:mgrmMSgaLp9hmax62XQTd0N4aAqSE5E0DulSpVYK7vc=
|
||||
github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 h1:ywEEhmNahHBihViHepv3xPBn1663uRv2t2q/ESv9seY=
|
||||
github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0/go.mod h1:iZDifYGJTIgIIkYRNWPENUnqx6bJ2xnSDFI2tjwZNuY=
|
||||
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v5 v5.7.0 h1:LkHbJbgF3YyvC53aqYGR+wWQDn2Rdp9AQdGndf9QvY4=
|
||||
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v5 v5.7.0/go.mod h1:QyiQdW4f4/BIfB8ZutZ2s+28RAgfa/pT+zS++ZHyM1I=
|
||||
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/internal/v2 v2.0.0 h1:PTFGRSlMKCQelWwxUyYVEUqseBJVemLyqWJjvMyt0do=
|
||||
|
|
@ -39,8 +39,8 @@ github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources v1.
|
|||
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armresources v1.2.0/go.mod h1:5kakwfW5CjC9KK+Q4wjXAg+ShuIm2mBMua0ZFj2C8PE=
|
||||
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage v1.6.0 h1:PiSrjRPpkQNjrM8H0WwKMnZUdu1RGMtd/LdGKUrOo+c=
|
||||
github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/storage/armstorage v1.6.0/go.mod h1:oDrbWx4ewMylP7xHivfgixbfGBT6APAwsSoHRKotnIc=
|
||||
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.3.2 h1:YUUxeiOWgdAQE3pXt2H7QXzZs0q8UBjgRbl56qo8GYM=
|
||||
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.3.2/go.mod h1:dmXQgZuiSubAecswZE+Sm8jkvEa7kQgTPVRvwL/nd0E=
|
||||
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.4.0 h1:Be6KInmFEKV81c0pOAEbRYehLMwmmGI1exuFj248AMk=
|
||||
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.4.0/go.mod h1:WCPBHsOXfBVnivScjs2ypRfimjEW0qPVLGgJkZlrIOA=
|
||||
github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0=
|
||||
github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E=
|
||||
github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs=
|
||||
|
|
@ -84,8 +84,8 @@ github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d h1:licZJFw2RwpH
|
|||
github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d/go.mod h1:asat636LX7Bqt5lYEZ27JNDcqxfjdBQuJ/MM4CN/Lzo=
|
||||
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so=
|
||||
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw=
|
||||
github.com/aws/aws-sdk-go v1.54.18 h1:t8DGtN8A2wEiazoJxeDbfPsbxCKtjoRLuO7jBSgJzo4=
|
||||
github.com/aws/aws-sdk-go v1.54.18/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU=
|
||||
github.com/aws/aws-sdk-go v1.55.2 h1:/2OFM8uFfK9e+cqHTw9YPrvTzIXT2XkFGXRM7WbJb7E=
|
||||
github.com/aws/aws-sdk-go v1.55.2/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU=
|
||||
github.com/aymerick/douceur v0.2.0 h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuPk=
|
||||
github.com/aymerick/douceur v0.2.0/go.mod h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4=
|
||||
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
|
||||
|
|
@ -107,8 +107,8 @@ github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I=
|
|||
github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo=
|
||||
github.com/containerd/stargz-snapshotter/estargz v0.15.1 h1:eXJjw9RbkLFgioVaTG+G/ZW/0kEe2oEKCdS/ZxIyoCU=
|
||||
github.com/containerd/stargz-snapshotter/estargz v0.15.1/go.mod h1:gr2RNwukQ/S9Nv33Lt6UC7xEx58C+LHRdoqbEKjz1Kk=
|
||||
github.com/containers/common v0.59.1 h1:7VkmJN3YvD0jLFwaUjLHSRJ98JLffydiyOJjYr0dUTo=
|
||||
github.com/containers/common v0.59.1/go.mod h1:53VicJCZ2AD0O+Br7VVoyrS7viXF4YmwlTIocWUT8XE=
|
||||
github.com/containers/common v0.59.2 h1:FcURZzlMYMVZXqjMEop6C0A3yWilrfmWUPUw09APHvI=
|
||||
github.com/containers/common v0.59.2/go.mod h1:/PHpbapKSHQU29Jmjn3Ld3jekoHvX0zx7qQxxyPqSTM=
|
||||
github.com/containers/image/v5 v5.31.1 h1:3x9soI6Biml/GiDLpkSmKrkRSwVGctxu/vONpoUdklA=
|
||||
github.com/containers/image/v5 v5.31.1/go.mod h1:5QfOqSackPkSbF7Qxc1DnVNnPJKQ+KWLkfEfDpK590Q=
|
||||
github.com/containers/libtrust v0.0.0-20230121012942-c1716e8a8d01 h1:Qzk5C6cYglewc+UyGf6lc8Mj2UaPTHy/iF2De0/77CA=
|
||||
|
|
@ -183,8 +183,8 @@ github.com/go-jose/go-jose/v3 v3.0.3/go.mod h1:5b+7YgP7ZICgJDBdfjZaIt+H/9L9T/YQr
|
|||
github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY=
|
||||
github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A=
|
||||
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
|
||||
github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ=
|
||||
github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
||||
github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
|
||||
github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
|
||||
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
|
||||
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
||||
github.com/go-openapi/analysis v0.23.0 h1:aGday7OWupfMs+LbmLZG4k0MYXIANxcuBTYUC03zFCU=
|
||||
|
|
@ -275,10 +275,10 @@ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
|
|||
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||
github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs=
|
||||
github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0=
|
||||
github.com/googleapis/gax-go/v2 v2.12.5 h1:8gw9KZK8TiVKB6q3zHY3SBzLnrGp6HQjyfYBYGmXdxA=
|
||||
github.com/googleapis/gax-go/v2 v2.12.5/go.mod h1:BUDKcWo+RaKq5SC9vVYL0wLADa3VcfswbOMMRmB9H3E=
|
||||
github.com/gophercloud/gophercloud v1.13.0 h1:8iY9d1DAbzMW6Vok1AxbbK5ZaUjzMp0tdyt4fX9IeJ0=
|
||||
github.com/gophercloud/gophercloud v1.13.0/go.mod h1:aAVqcocTSXh2vYFZ1JTvx4EQmfgzxRcNupUfxZbBNDM=
|
||||
github.com/googleapis/gax-go/v2 v2.13.0 h1:yitjD5f7jQHhyDsnhKEBU52NdvvdSeGzlAnDPT0hH1s=
|
||||
github.com/googleapis/gax-go/v2 v2.13.0/go.mod h1:Z/fvTZXF8/uw7Xu5GuslPw+bplx6SS338j1Is2S+B7A=
|
||||
github.com/gophercloud/gophercloud v1.14.0 h1:Bt9zQDhPrbd4qX7EILGmy+i7GP35cc+AAL2+wIJpUE8=
|
||||
github.com/gophercloud/gophercloud v1.14.0/go.mod h1:aAVqcocTSXh2vYFZ1JTvx4EQmfgzxRcNupUfxZbBNDM=
|
||||
github.com/gorilla/css v1.0.0 h1:BQqNyPTi50JCFMTw/b67hByjMVXZRwGha6wxVGkeihY=
|
||||
github.com/gorilla/css v1.0.0/go.mod h1:Dn721qIggHpt4+EFCcTLTU/vk5ySda2ReITrtgBl60c=
|
||||
github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
|
||||
|
|
@ -465,12 +465,12 @@ github.com/opencontainers/runtime-spec v1.2.0 h1:z97+pHb3uELt/yiAWD691HNHQIF07bE
|
|||
github.com/opencontainers/runtime-spec v1.2.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
|
||||
github.com/opencontainers/selinux v1.11.0 h1:+5Zbo97w3Lbmb3PeqQtpmTkMwsW5nRI3YaLpt7tQ7oU=
|
||||
github.com/opencontainers/selinux v1.11.0/go.mod h1:E5dMC3VPuVvVHDYmi78qvhJp8+M586T4DlDRYpFkyec=
|
||||
github.com/openshift-online/ocm-sdk-go v0.1.429 h1:yIaHWfRV0Xaboe1clf41Z3Q3pLxjDNK3p81nvtUeJdE=
|
||||
github.com/openshift-online/ocm-sdk-go v0.1.429/go.mod h1:CiAu2jwl3ITKOxkeV0Qnhzv4gs35AmpIzVABQLtcI2Y=
|
||||
github.com/openshift-online/ocm-sdk-go v0.1.432 h1:XIlCJKxXXznMP5Usu9lVGZa+UTYVlZ/ZKwqTvtNKhw8=
|
||||
github.com/openshift-online/ocm-sdk-go v0.1.432/go.mod h1:CiAu2jwl3ITKOxkeV0Qnhzv4gs35AmpIzVABQLtcI2Y=
|
||||
github.com/oracle/oci-go-sdk/v54 v54.0.0 h1:CDLjeSejv2aDpElAJrhKpi6zvT/zhZCZuXchUUZ+LS4=
|
||||
github.com/oracle/oci-go-sdk/v54 v54.0.0/go.mod h1:+t+yvcFGVp+3ZnztnyxqXfQDsMlq8U25faBLa+mqCMc=
|
||||
github.com/osbuild/images v0.70.0 h1:MXMSNJouJ0EPrtW8fLqOVX5a5QgwrlZPvYrcXzIO5BY=
|
||||
github.com/osbuild/images v0.70.0/go.mod h1:M96vOpVBEzzpaZFw+DkCoj2x5nsuaNDMRqRgicZ8zpI=
|
||||
github.com/osbuild/images v0.72.0 h1:WKRXokWCpkS6zusc2yadXbW5jQD4cNvBMHZUV/8L4jM=
|
||||
github.com/osbuild/images v0.72.0/go.mod h1:McWtOOsi/2gH2J4tQ8Vnvg+O3jVf44XIj3jUWJZt47E=
|
||||
github.com/osbuild/osbuild-composer/pkg/splunk_logger v0.0.0-20231117174845-e969a9dc3cd1 h1:UFEJIcPa46W8gtWgOYzriRKYyy1t6SWL0BI7fPTuVvc=
|
||||
github.com/osbuild/osbuild-composer/pkg/splunk_logger v0.0.0-20231117174845-e969a9dc3cd1/go.mod h1:z+WA+dX6qMwc7fqY5jCzESDIlg4WR2sBQezxsoXv9Ik=
|
||||
github.com/osbuild/pulp-client v0.1.0 h1:L0C4ezBJGTamN3BKdv+rKLuq/WxXJbsFwz/Hj7aEmJ8=
|
||||
|
|
@ -580,8 +580,8 @@ github.com/vbatts/tar-split v0.11.5 h1:3bHCTIheBm1qFTcgh9oPu+nNBtX+XJIupG/vacinC
|
|||
github.com/vbatts/tar-split v0.11.5/go.mod h1:yZbwRsSeGjusneWgA781EKej9HF8vme8okylkAeNKLk=
|
||||
github.com/vbauerster/mpb/v8 v8.7.3 h1:n/mKPBav4FFWp5fH4U0lPpXfiOmCEgl5Yx/NM3tKJA0=
|
||||
github.com/vbauerster/mpb/v8 v8.7.3/go.mod h1:9nFlNpDGVoTmQ4QvNjSLtwLmAFjwmq0XaAF26toHGNM=
|
||||
github.com/vmware/govmomi v0.38.0 h1:UvQpLAOjDpO0JUxoPCXnEzOlEa/9kejO6K58qOFr6cM=
|
||||
github.com/vmware/govmomi v0.38.0/go.mod h1:mtGWtM+YhTADHlCgJBiskSRPOZRsN9MSjPzaZLte/oQ=
|
||||
github.com/vmware/govmomi v0.39.0 h1:soLZ08Q2zvjRSinNup8xVlw0KDDCJPPA1rIDmBhi7As=
|
||||
github.com/vmware/govmomi v0.39.0/go.mod h1:oHzAQ1r6152zYDGcUqeK+EO8LhKo5wjtvWZBGHws2Hc=
|
||||
github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb h1:zGWFAtiMcyryUHoUjUJX0/lt1H2+i2Ka2n+D3DImSNo=
|
||||
github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU=
|
||||
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0=
|
||||
|
|
@ -660,8 +660,8 @@ golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
|||
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
|
||||
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
||||
golang.org/x/mod v0.18.0 h1:5+9lSbEzPSdWkH32vYPBwEpX8KwDbM52Ud9xBUvNlb0=
|
||||
golang.org/x/mod v0.18.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
|
||||
golang.org/x/mod v0.19.0 h1:fEdghXQSo20giMthA7cd28ZC+jts4amQ3YMXiP5oMQ8=
|
||||
golang.org/x/mod v0.19.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
|
||||
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-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
|
|
@ -766,27 +766,27 @@ golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roY
|
|||
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
|
||||
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
|
||||
golang.org/x/tools v0.22.0 h1:gqSGLZqv+AI9lIQzniJ0nZDRG5GBPsSi+DRNHWNz6yA=
|
||||
golang.org/x/tools v0.22.0/go.mod h1:aCwcsjqvq7Yqt6TNyX7QMU2enbQ/Gt0bo6krSeEri+c=
|
||||
golang.org/x/tools v0.23.0 h1:SGsXPZ+2l4JsgaCKkx+FQ9YZ5XEtA1GZYuoDjenLjvg=
|
||||
golang.org/x/tools v0.23.0/go.mod h1:pnu6ufv6vQkll6szChhK3C3L/ruaIv5eBeztNG8wtsI=
|
||||
golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
google.golang.org/api v0.188.0 h1:51y8fJ/b1AaaBRJr4yWm96fPcuxSo0JcegXE3DaHQHw=
|
||||
google.golang.org/api v0.188.0/go.mod h1:VR0d+2SIiWOYG3r/jdm7adPW9hI2aRv9ETOSCQ9Beag=
|
||||
google.golang.org/api v0.189.0 h1:equMo30LypAkdkLMBqfeIqtyAnlyig1JSZArl4XPwdI=
|
||||
google.golang.org/api v0.189.0/go.mod h1:FLWGJKb0hb+pU2j+rJqwbnsF+ym+fQs73rbJ+KAUgy8=
|
||||
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/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
|
||||
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
|
||||
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo=
|
||||
google.golang.org/genproto v0.0.0-20240708141625-4ad9e859172b h1:dSTjko30weBaMj3eERKc0ZVXW4GudCswM3m+P++ukU0=
|
||||
google.golang.org/genproto v0.0.0-20240708141625-4ad9e859172b/go.mod h1:FfBgJBJg9GcpPvKIuHSZ/aE1g2ecGL74upMzGZjiGEY=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20240701130421-f6361c86f094 h1:0+ozOGcrp+Y8Aq8TLNN2Aliibms5LEzsq99ZZmAGYm0=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20240701130421-f6361c86f094/go.mod h1:fJ/e3If/Q67Mj99hin0hMhiNyCRmt6BQ2aWIJshUSJw=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240708141625-4ad9e859172b h1:04+jVzTs2XBnOZcPsLnmrTGqltqJbZQ1Ey26hjYdQQ0=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240708141625-4ad9e859172b/go.mod h1:Ue6ibwXGpU+dqIcODieyLOcgj7z8+IcskoNIgZxtrFY=
|
||||
google.golang.org/genproto v0.0.0-20240722135656-d784300faade h1:lKFsS7wpngDgSCeFn7MoLy+wBDQZ1UQIJD4UNM1Qvkg=
|
||||
google.golang.org/genproto v0.0.0-20240722135656-d784300faade/go.mod h1:FfBgJBJg9GcpPvKIuHSZ/aE1g2ecGL74upMzGZjiGEY=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20240722135656-d784300faade h1:WxZOF2yayUHpHSbUE6NMzumUzBxYc3YGwo0YHnbzsJY=
|
||||
google.golang.org/genproto/googleapis/api v0.0.0-20240722135656-d784300faade/go.mod h1:mw8MG/Qz5wfgYr6VqVCiZcHe/GJEfI+oGGDCohaVgB0=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240722135656-d784300faade h1:oCRSWfwGXQsqlVdErcyTt4A93Y8fo0/9D4b1gnI++qo=
|
||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20240722135656-d784300faade/go.mod h1:Ue6ibwXGpU+dqIcODieyLOcgj7z8+IcskoNIgZxtrFY=
|
||||
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
||||
google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
|
||||
google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
|
||||
|
|
|
|||
14
vendor/cloud.google.com/go/auth/CHANGES.md
generated
vendored
14
vendor/cloud.google.com/go/auth/CHANGES.md
generated
vendored
|
|
@ -1,5 +1,19 @@
|
|||
# Changelog
|
||||
|
||||
## [0.7.2](https://github.com/googleapis/google-cloud-go/compare/auth/v0.7.1...auth/v0.7.2) (2024-07-22)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **auth:** Use default client for universe metadata lookup ([#10551](https://github.com/googleapis/google-cloud-go/issues/10551)) ([d9046fd](https://github.com/googleapis/google-cloud-go/commit/d9046fdd1435d1ce48f374806c1def4cb5ac6cd3)), refs [#10544](https://github.com/googleapis/google-cloud-go/issues/10544)
|
||||
|
||||
## [0.7.1](https://github.com/googleapis/google-cloud-go/compare/auth/v0.7.0...auth/v0.7.1) (2024-07-10)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **auth:** Bump google.golang.org/grpc@v1.64.1 ([8ecc4e9](https://github.com/googleapis/google-cloud-go/commit/8ecc4e9622e5bbe9b90384d5848ab816027226c5))
|
||||
|
||||
## [0.7.0](https://github.com/googleapis/google-cloud-go/compare/auth/v0.6.1...auth/v0.7.0) (2024-07-09)
|
||||
|
||||
|
||||
|
|
|
|||
5
vendor/cloud.google.com/go/auth/internal/internal.go
generated
vendored
5
vendor/cloud.google.com/go/auth/internal/internal.go
generated
vendored
|
|
@ -181,8 +181,9 @@ func (c *ComputeUniverseDomainProvider) GetProperty(ctx context.Context) (string
|
|||
|
||||
// httpGetMetadataUniverseDomain is a package var for unit test substitution.
|
||||
var httpGetMetadataUniverseDomain = func(ctx context.Context) (string, error) {
|
||||
client := metadata.NewClient(&http.Client{Timeout: time.Second})
|
||||
return client.GetWithContext(ctx, "universe/universe_domain")
|
||||
ctx, cancel := context.WithTimeout(ctx, 1*time.Second)
|
||||
defer cancel()
|
||||
return metadata.GetWithContext(ctx, "universe/universe_domain")
|
||||
}
|
||||
|
||||
func getMetadataUniverseDomain(ctx context.Context) (string, error) {
|
||||
|
|
|
|||
7
vendor/cloud.google.com/go/auth/oauth2adapt/CHANGES.md
generated
vendored
7
vendor/cloud.google.com/go/auth/oauth2adapt/CHANGES.md
generated
vendored
|
|
@ -1,5 +1,12 @@
|
|||
# Changelog
|
||||
|
||||
## [0.2.3](https://github.com/googleapis/google-cloud-go/compare/auth/oauth2adapt/v0.2.2...auth/oauth2adapt/v0.2.3) (2024-07-10)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **auth/oauth2adapt:** Bump google.golang.org/api@v0.187.0 ([8fa9e39](https://github.com/googleapis/google-cloud-go/commit/8fa9e398e512fd8533fd49060371e61b5725a85b))
|
||||
|
||||
## [0.2.2](https://github.com/googleapis/google-cloud-go/compare/auth/oauth2adapt/v0.2.1...auth/oauth2adapt/v0.2.2) (2024-04-23)
|
||||
|
||||
|
||||
|
|
|
|||
2
vendor/cloud.google.com/go/compute/internal/version.go
generated
vendored
2
vendor/cloud.google.com/go/compute/internal/version.go
generated
vendored
|
|
@ -15,4 +15,4 @@
|
|||
package internal
|
||||
|
||||
// Version is the current tagged release of the library.
|
||||
const Version = "1.27.3"
|
||||
const Version = "1.27.4"
|
||||
|
|
|
|||
7
vendor/cloud.google.com/go/compute/metadata/CHANGES.md
generated
vendored
7
vendor/cloud.google.com/go/compute/metadata/CHANGES.md
generated
vendored
|
|
@ -1,5 +1,12 @@
|
|||
# Changes
|
||||
|
||||
## [0.5.0](https://github.com/googleapis/google-cloud-go/compare/compute/metadata/v0.4.0...compute/metadata/v0.5.0) (2024-07-10)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **compute/metadata:** Add sys check for windows OnGCE ([#10521](https://github.com/googleapis/google-cloud-go/issues/10521)) ([3b9a830](https://github.com/googleapis/google-cloud-go/commit/3b9a83063960d2a2ac20beb47cc15818a68bd302))
|
||||
|
||||
## [0.4.0](https://github.com/googleapis/google-cloud-go/compare/compute/metadata/v0.3.0...compute/metadata/v0.4.0) (2024-07-01)
|
||||
|
||||
|
||||
|
|
|
|||
15
vendor/cloud.google.com/go/compute/metadata/metadata.go
generated
vendored
15
vendor/cloud.google.com/go/compute/metadata/metadata.go
generated
vendored
|
|
@ -28,7 +28,6 @@ import (
|
|||
"net/http"
|
||||
"net/url"
|
||||
"os"
|
||||
"runtime"
|
||||
"strings"
|
||||
"sync"
|
||||
"time"
|
||||
|
|
@ -190,20 +189,6 @@ func testOnGCE() bool {
|
|||
return <-resc
|
||||
}
|
||||
|
||||
// systemInfoSuggestsGCE reports whether the local system (without
|
||||
// doing network requests) suggests that we're running on GCE. If this
|
||||
// returns true, testOnGCE tries a bit harder to reach its metadata
|
||||
// server.
|
||||
func systemInfoSuggestsGCE() bool {
|
||||
if runtime.GOOS != "linux" {
|
||||
// We don't have any non-Linux clues available, at least yet.
|
||||
return false
|
||||
}
|
||||
slurp, _ := os.ReadFile("/sys/class/dmi/id/product_name")
|
||||
name := strings.TrimSpace(string(slurp))
|
||||
return name == "Google" || name == "Google Compute Engine"
|
||||
}
|
||||
|
||||
// Subscribe calls Client.SubscribeWithContext on the default client.
|
||||
//
|
||||
// Deprecated: Please use the context aware variant [SubscribeWithContext].
|
||||
|
|
|
|||
26
vendor/cloud.google.com/go/compute/metadata/syscheck.go
generated
vendored
Normal file
26
vendor/cloud.google.com/go/compute/metadata/syscheck.go
generated
vendored
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
// Copyright 2024 Google LLC
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
//go:build !windows && !linux
|
||||
|
||||
package metadata
|
||||
|
||||
// systemInfoSuggestsGCE reports whether the local system (without
|
||||
// doing network requests) suggests that we're running on GCE. If this
|
||||
// returns true, testOnGCE tries a bit harder to reach its metadata
|
||||
// server.
|
||||
func systemInfoSuggestsGCE() bool {
|
||||
// We don't currently have checks for other GOOS
|
||||
return false
|
||||
}
|
||||
28
vendor/cloud.google.com/go/compute/metadata/syscheck_linux.go
generated
vendored
Normal file
28
vendor/cloud.google.com/go/compute/metadata/syscheck_linux.go
generated
vendored
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
// Copyright 2024 Google LLC
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
//go:build linux
|
||||
|
||||
package metadata
|
||||
|
||||
import (
|
||||
"os"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func systemInfoSuggestsGCE() bool {
|
||||
b, _ := os.ReadFile("/sys/class/dmi/id/product_name")
|
||||
name := strings.TrimSpace(string(b))
|
||||
return name == "Google" || name == "Google Compute Engine"
|
||||
}
|
||||
38
vendor/cloud.google.com/go/compute/metadata/syscheck_windows.go
generated
vendored
Normal file
38
vendor/cloud.google.com/go/compute/metadata/syscheck_windows.go
generated
vendored
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
// Copyright 2024 Google LLC
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
//go:build windows
|
||||
|
||||
package metadata
|
||||
|
||||
import (
|
||||
"strings"
|
||||
|
||||
"golang.org/x/sys/windows/registry"
|
||||
)
|
||||
|
||||
func systemInfoSuggestsGCE() bool {
|
||||
k, err := registry.OpenKey(registry.LOCAL_MACHINE, `SYSTEM\HardwareConfig\Current`, registry.QUERY_VALUE)
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
defer k.Close()
|
||||
|
||||
s, _, err := k.GetStringValue("SystemProductName")
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
s = strings.TrimSpace(s)
|
||||
return strings.HasPrefix(s, "Google")
|
||||
}
|
||||
6
vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/CHANGELOG.md
generated
vendored
6
vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/CHANGELOG.md
generated
vendored
|
|
@ -1,5 +1,11 @@
|
|||
# Release History
|
||||
|
||||
## 1.13.0 (2024-07-16)
|
||||
|
||||
### Features Added
|
||||
|
||||
- Added runtime.NewRequestFromRequest(), allowing for a policy.Request to be created from an existing *http.Request.
|
||||
|
||||
## 1.12.0 (2024-06-06)
|
||||
|
||||
### Features Added
|
||||
|
|
|
|||
|
|
@ -192,7 +192,7 @@ func appendNext(parent *ResourceID, parts []string, id string) (*ResourceID, err
|
|||
}
|
||||
|
||||
if strings.EqualFold(parts[0], providersKey) && (len(parts) == 2 || strings.EqualFold(parts[2], providersKey)) {
|
||||
//provider resource can only be on a tenant or a subscription parent
|
||||
// provider resource can only be on a tenant or a subscription parent
|
||||
if parent.ResourceType.String() != SubscriptionResourceType.String() && parent.ResourceType.String() != TenantResourceType.String() {
|
||||
return nil, fmt.Errorf("invalid resource ID: %s", id)
|
||||
}
|
||||
|
|
|
|||
8
vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/runtime/pipeline.go
generated
vendored
8
vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/arm/runtime/pipeline.go
generated
vendored
|
|
@ -34,18 +34,22 @@ func NewPipeline(module, version string, cred azcore.TokenCredential, plOpts azr
|
|||
InsecureAllowCredentialWithHTTP: options.InsecureAllowCredentialWithHTTP,
|
||||
Scopes: []string{conf.Audience + "/.default"},
|
||||
})
|
||||
// we don't want to modify the underlying array in plOpts.PerRetry
|
||||
perRetry := make([]azpolicy.Policy, len(plOpts.PerRetry), len(plOpts.PerRetry)+1)
|
||||
copy(perRetry, plOpts.PerRetry)
|
||||
plOpts.PerRetry = append(perRetry, authPolicy, exported.PolicyFunc(httpTraceNamespacePolicy))
|
||||
perRetry = append(perRetry, authPolicy, exported.PolicyFunc(httpTraceNamespacePolicy))
|
||||
plOpts.PerRetry = perRetry
|
||||
if !options.DisableRPRegistration {
|
||||
regRPOpts := armpolicy.RegistrationOptions{ClientOptions: options.ClientOptions}
|
||||
regPolicy, err := NewRPRegistrationPolicy(cred, ®RPOpts)
|
||||
if err != nil {
|
||||
return azruntime.Pipeline{}, err
|
||||
}
|
||||
// we don't want to modify the underlying array in plOpts.PerCall
|
||||
perCall := make([]azpolicy.Policy, len(plOpts.PerCall), len(plOpts.PerCall)+1)
|
||||
copy(perCall, plOpts.PerCall)
|
||||
plOpts.PerCall = append(perCall, regPolicy)
|
||||
perCall = append(perCall, regPolicy)
|
||||
plOpts.PerCall = perCall
|
||||
}
|
||||
if plOpts.APIVersion.Name == "" {
|
||||
plOpts.APIVersion.Name = "api-version"
|
||||
|
|
|
|||
37
vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/exported/request.go
generated
vendored
37
vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/exported/request.go
generated
vendored
|
|
@ -7,6 +7,7 @@
|
|||
package exported
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"encoding/base64"
|
||||
"errors"
|
||||
|
|
@ -67,6 +68,42 @@ func (ov opValues) get(value any) bool {
|
|||
return ok
|
||||
}
|
||||
|
||||
// NewRequestFromRequest creates a new policy.Request with an existing *http.Request
|
||||
// Exported as runtime.NewRequestFromRequest().
|
||||
func NewRequestFromRequest(req *http.Request) (*Request, error) {
|
||||
policyReq := &Request{req: req}
|
||||
|
||||
if req.Body != nil {
|
||||
// we can avoid a body copy here if the underlying stream is already a
|
||||
// ReadSeekCloser.
|
||||
readSeekCloser, isReadSeekCloser := req.Body.(io.ReadSeekCloser)
|
||||
|
||||
if !isReadSeekCloser {
|
||||
// since this is an already populated http.Request we want to copy
|
||||
// over its body, if it has one.
|
||||
bodyBytes, err := io.ReadAll(req.Body)
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if err := req.Body.Close(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
readSeekCloser = NopCloser(bytes.NewReader(bodyBytes))
|
||||
}
|
||||
|
||||
// SetBody also takes care of updating the http.Request's body
|
||||
// as well, so they should stay in-sync from this point.
|
||||
if err := policyReq.SetBody(readSeekCloser, req.Header.Get("Content-Type")); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
return policyReq, nil
|
||||
}
|
||||
|
||||
// NewRequest creates a new Request with the specified input.
|
||||
// Exported as runtime.NewRequest().
|
||||
func NewRequest(ctx context.Context, httpMethod string, endpoint string) (*Request, error) {
|
||||
|
|
|
|||
2
vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared/constants.go
generated
vendored
2
vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/internal/shared/constants.go
generated
vendored
|
|
@ -40,5 +40,5 @@ const (
|
|||
Module = "azcore"
|
||||
|
||||
// Version is the semantic version (see http://semver.org) of this module.
|
||||
Version = "v1.12.0"
|
||||
Version = "v1.13.0"
|
||||
)
|
||||
|
|
|
|||
6
vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/request.go
generated
vendored
6
vendor/github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/request.go
generated
vendored
|
|
@ -15,6 +15,7 @@ import (
|
|||
"fmt"
|
||||
"io"
|
||||
"mime/multipart"
|
||||
"net/http"
|
||||
"net/textproto"
|
||||
"net/url"
|
||||
"path"
|
||||
|
|
@ -45,6 +46,11 @@ func NewRequest(ctx context.Context, httpMethod string, endpoint string) (*polic
|
|||
return exported.NewRequest(ctx, httpMethod, endpoint)
|
||||
}
|
||||
|
||||
// NewRequestFromRequest creates a new policy.Request with an existing *http.Request
|
||||
func NewRequestFromRequest(req *http.Request) (*policy.Request, error) {
|
||||
return exported.NewRequestFromRequest(req)
|
||||
}
|
||||
|
||||
// EncodeQueryParams will parse and encode any query parameters in the specified URL.
|
||||
// Any semicolons will automatically be escaped.
|
||||
func EncodeQueryParams(u string) (string, error) {
|
||||
|
|
|
|||
15
vendor/github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/CHANGELOG.md
generated
vendored
15
vendor/github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/CHANGELOG.md
generated
vendored
|
|
@ -1,5 +1,20 @@
|
|||
# Release History
|
||||
|
||||
## 1.4.0 (2024-07-18)
|
||||
|
||||
### Other Changes
|
||||
* GetProperties() was called twice in DownloadFile method. Enhanced to call it only once, reducing latency.
|
||||
* Updated `azcore` version to `1.13.0`
|
||||
|
||||
## 1.4.0-beta.1 (2024-06-14)
|
||||
|
||||
### Features Added
|
||||
* Updated service version to `2024-05-04`.
|
||||
|
||||
### Other Changes
|
||||
* Updated `azidentity` version to `1.6.0`
|
||||
* Updated `azcore` version to `1.12.0`
|
||||
|
||||
## 1.3.2 (2024-04-09)
|
||||
|
||||
### Bugs Fixed
|
||||
|
|
|
|||
3
vendor/github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/README.md
generated
vendored
3
vendor/github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/README.md
generated
vendored
|
|
@ -1,4 +1,7 @@
|
|||
# Azure Blob Storage module for Go
|
||||
[](https://pkg.go.dev/github.com/Azure/azure-sdk-for-go/sdk/storage/azblob)
|
||||
[](https://dev.azure.com/azure-sdk/public/_build/latest?definitionId=2854&branchName=main)
|
||||
[](https://img.shields.io/azure-devops/coverage/azure-sdk/public/2854/main)
|
||||
|
||||
> Service Version: 2023-11-03
|
||||
|
||||
|
|
|
|||
4
vendor/github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/appendblob/client.go
generated
vendored
4
vendor/github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/appendblob/client.go
generated
vendored
|
|
@ -292,8 +292,8 @@ func (ab *Client) GetAccountInfo(ctx context.Context, o *blob.GetAccountInfoOpti
|
|||
|
||||
// SetHTTPHeaders changes a blob's HTTP headers.
|
||||
// For more information, see https://docs.microsoft.com/rest/api/storageservices/set-blob-properties.
|
||||
func (ab *Client) SetHTTPHeaders(ctx context.Context, HTTPHeaders blob.HTTPHeaders, o *blob.SetHTTPHeadersOptions) (blob.SetHTTPHeadersResponse, error) {
|
||||
return ab.BlobClient().SetHTTPHeaders(ctx, HTTPHeaders, o)
|
||||
func (ab *Client) SetHTTPHeaders(ctx context.Context, httpHeaders blob.HTTPHeaders, o *blob.SetHTTPHeadersOptions) (blob.SetHTTPHeadersResponse, error) {
|
||||
return ab.BlobClient().SetHTTPHeaders(ctx, httpHeaders, o)
|
||||
}
|
||||
|
||||
// SetMetadata changes a blob's metadata.
|
||||
|
|
|
|||
2
vendor/github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/assets.json
generated
vendored
2
vendor/github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/assets.json
generated
vendored
|
|
@ -2,5 +2,5 @@
|
|||
"AssetsRepo": "Azure/azure-sdk-assets",
|
||||
"AssetsRepoPrefixPath": "go",
|
||||
"TagPrefix": "go/storage/azblob",
|
||||
"Tag": "go/storage/azblob_71b0a04c12"
|
||||
"Tag": "go/storage/azblob_bbf7a929e3"
|
||||
}
|
||||
|
|
|
|||
5
vendor/github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/blob/client.go
generated
vendored
5
vendor/github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/blob/client.go
generated
vendored
|
|
@ -185,9 +185,9 @@ func (b *Client) GetProperties(ctx context.Context, options *GetPropertiesOption
|
|||
|
||||
// SetHTTPHeaders changes a blob's HTTP headers.
|
||||
// For more information, see https://docs.microsoft.com/rest/api/storageservices/set-blob-properties.
|
||||
func (b *Client) SetHTTPHeaders(ctx context.Context, HTTPHeaders HTTPHeaders, o *SetHTTPHeadersOptions) (SetHTTPHeadersResponse, error) {
|
||||
func (b *Client) SetHTTPHeaders(ctx context.Context, httpHeaders HTTPHeaders, o *SetHTTPHeadersOptions) (SetHTTPHeadersResponse, error) {
|
||||
opts, leaseAccessConditions, modifiedAccessConditions := o.format()
|
||||
resp, err := b.generated().SetHTTPHeaders(ctx, opts, &HTTPHeaders, leaseAccessConditions, modifiedAccessConditions)
|
||||
resp, err := b.generated().SetHTTPHeaders(ctx, opts, &httpHeaders, leaseAccessConditions, modifiedAccessConditions)
|
||||
return resp, err
|
||||
}
|
||||
|
||||
|
|
@ -448,6 +448,7 @@ func (b *Client) DownloadFile(ctx context.Context, file *os.File, o *DownloadFil
|
|||
return 0, err
|
||||
}
|
||||
size = *props.ContentLength - do.Range.Offset
|
||||
do.Range.Count = size
|
||||
} else {
|
||||
size = count
|
||||
}
|
||||
|
|
|
|||
1
vendor/github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/blob/retry_reader.go
generated
vendored
1
vendor/github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/blob/retry_reader.go
generated
vendored
|
|
@ -101,7 +101,6 @@ func (s *RetryReader) setResponse(r io.ReadCloser) {
|
|||
// Read from retry reader
|
||||
func (s *RetryReader) Read(p []byte) (n int, err error) {
|
||||
for try := int32(0); ; try++ {
|
||||
//fmt.Println(try) // Comment out for debugging.
|
||||
if s.countWasBounded && s.info.Range.Count == CountToEnd {
|
||||
// User specified an original count and the remaining bytes are 0, return 0, EOF
|
||||
return 0, io.EOF
|
||||
|
|
|
|||
4
vendor/github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/blockblob/client.go
generated
vendored
4
vendor/github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/blockblob/client.go
generated
vendored
|
|
@ -364,8 +364,8 @@ func (bb *Client) GetAccountInfo(ctx context.Context, o *blob.GetAccountInfoOpti
|
|||
|
||||
// SetHTTPHeaders changes a blob's HTTP headers.
|
||||
// For more information, see https://docs.microsoft.com/rest/api/storageservices/set-blob-properties.
|
||||
func (bb *Client) SetHTTPHeaders(ctx context.Context, HTTPHeaders blob.HTTPHeaders, o *blob.SetHTTPHeadersOptions) (blob.SetHTTPHeadersResponse, error) {
|
||||
return bb.BlobClient().SetHTTPHeaders(ctx, HTTPHeaders, o)
|
||||
func (bb *Client) SetHTTPHeaders(ctx context.Context, httpHeaders blob.HTTPHeaders, o *blob.SetHTTPHeadersOptions) (blob.SetHTTPHeadersResponse, error) {
|
||||
return bb.BlobClient().SetHTTPHeaders(ctx, httpHeaders, o)
|
||||
}
|
||||
|
||||
// SetMetadata changes a blob's metadata.
|
||||
|
|
|
|||
|
|
@ -8,5 +8,5 @@ package exported
|
|||
|
||||
const (
|
||||
ModuleName = "github.com/Azure/azure-sdk-for-go/sdk/storage/azblob"
|
||||
ModuleVersion = "v1.3.2"
|
||||
ModuleVersion = "v1.4.0"
|
||||
)
|
||||
|
|
|
|||
|
|
@ -19,10 +19,10 @@ modelerfour:
|
|||
seal-single-value-enum-by-default: true
|
||||
lenient-model-deduplication: true
|
||||
export-clients: true
|
||||
use: "@autorest/go@4.0.0-preview.61"
|
||||
use: "@autorest/go@4.0.0-preview.65"
|
||||
```
|
||||
|
||||
### Updating service version to 2023-11-03
|
||||
### Updating service version to 2024-05-04
|
||||
```yaml
|
||||
directive:
|
||||
- from:
|
||||
|
|
@ -36,7 +36,7 @@ directive:
|
|||
transform: >-
|
||||
return $.
|
||||
replaceAll(`[]string{"2021-12-02"}`, `[]string{ServiceVersion}`).
|
||||
replaceAll(`2021-12-02`, `2023-11-03`);
|
||||
replaceAll(`2021-12-02`, `2024-05-04`);
|
||||
```
|
||||
|
||||
### Undo breaking change with BlobName
|
||||
|
|
@ -293,7 +293,7 @@ directive:
|
|||
replace(/SourceIfMatch\s+\*string/g, `SourceIfMatch *azcore.ETag`).
|
||||
replace(/SourceIfNoneMatch\s+\*string/g, `SourceIfNoneMatch *azcore.ETag`);
|
||||
|
||||
- from: zz_response_types.go
|
||||
- from: zz_responses.go
|
||||
where: $
|
||||
transform: >-
|
||||
return $.
|
||||
|
|
|
|||
|
|
@ -6,4 +6,4 @@
|
|||
|
||||
package generated
|
||||
|
||||
const ServiceVersion = "2023-11-03"
|
||||
const ServiceVersion = "2024-05-04"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,3 @@
|
|||
//go:build go1.18
|
||||
// +build go1.18
|
||||
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
// Code generated by Microsoft (R) AutoRest Code Generator. DO NOT EDIT.
|
||||
|
|
@ -72,21 +69,37 @@ func (client *AppendBlobClient) appendBlockCreateRequest(ctx context.Context, co
|
|||
reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10))
|
||||
}
|
||||
req.Raw().URL.RawQuery = reqQP.Encode()
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
req.Raw().Header["Content-Length"] = []string{strconv.FormatInt(contentLength, 10)}
|
||||
if options != nil && options.TransactionalContentMD5 != nil {
|
||||
req.Raw().Header["Content-MD5"] = []string{base64.StdEncoding.EncodeToString(options.TransactionalContentMD5)}
|
||||
}
|
||||
if options != nil && options.TransactionalContentCRC64 != nil {
|
||||
req.Raw().Header["x-ms-content-crc64"] = []string{base64.StdEncoding.EncodeToString(options.TransactionalContentCRC64)}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfMatch != nil {
|
||||
req.Raw().Header["If-Match"] = []string{string(*modifiedAccessConditions.IfMatch)}
|
||||
}
|
||||
if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil {
|
||||
req.Raw().Header["x-ms-lease-id"] = []string{*leaseAccessConditions.LeaseID}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfModifiedSince != nil {
|
||||
req.Raw().Header["If-Modified-Since"] = []string{(*modifiedAccessConditions.IfModifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfNoneMatch != nil {
|
||||
req.Raw().Header["If-None-Match"] = []string{string(*modifiedAccessConditions.IfNoneMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfUnmodifiedSince != nil {
|
||||
req.Raw().Header["If-Unmodified-Since"] = []string{(*modifiedAccessConditions.IfUnmodifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if appendPositionAccessConditions != nil && appendPositionAccessConditions.AppendPosition != nil {
|
||||
req.Raw().Header["x-ms-blob-condition-appendpos"] = []string{strconv.FormatInt(*appendPositionAccessConditions.AppendPosition, 10)}
|
||||
}
|
||||
if appendPositionAccessConditions != nil && appendPositionAccessConditions.MaxSize != nil {
|
||||
req.Raw().Header["x-ms-blob-condition-maxsize"] = []string{strconv.FormatInt(*appendPositionAccessConditions.MaxSize, 10)}
|
||||
}
|
||||
if appendPositionAccessConditions != nil && appendPositionAccessConditions.AppendPosition != nil {
|
||||
req.Raw().Header["x-ms-blob-condition-appendpos"] = []string{strconv.FormatInt(*appendPositionAccessConditions.AppendPosition, 10)}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
if options != nil && options.TransactionalContentCRC64 != nil {
|
||||
req.Raw().Header["x-ms-content-crc64"] = []string{base64.StdEncoding.EncodeToString(options.TransactionalContentCRC64)}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionAlgorithm != nil {
|
||||
req.Raw().Header["x-ms-encryption-algorithm"] = []string{string(*cpkInfo.EncryptionAlgorithm)}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionKey != nil {
|
||||
req.Raw().Header["x-ms-encryption-key"] = []string{*cpkInfo.EncryptionKey}
|
||||
|
|
@ -94,32 +107,16 @@ func (client *AppendBlobClient) appendBlockCreateRequest(ctx context.Context, co
|
|||
if cpkInfo != nil && cpkInfo.EncryptionKeySHA256 != nil {
|
||||
req.Raw().Header["x-ms-encryption-key-sha256"] = []string{*cpkInfo.EncryptionKeySHA256}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionAlgorithm != nil {
|
||||
req.Raw().Header["x-ms-encryption-algorithm"] = []string{string(*cpkInfo.EncryptionAlgorithm)}
|
||||
}
|
||||
if cpkScopeInfo != nil && cpkScopeInfo.EncryptionScope != nil {
|
||||
req.Raw().Header["x-ms-encryption-scope"] = []string{*cpkScopeInfo.EncryptionScope}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfModifiedSince != nil {
|
||||
req.Raw().Header["If-Modified-Since"] = []string{(*modifiedAccessConditions.IfModifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfUnmodifiedSince != nil {
|
||||
req.Raw().Header["If-Unmodified-Since"] = []string{(*modifiedAccessConditions.IfUnmodifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfMatch != nil {
|
||||
req.Raw().Header["If-Match"] = []string{string(*modifiedAccessConditions.IfMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfNoneMatch != nil {
|
||||
req.Raw().Header["If-None-Match"] = []string{string(*modifiedAccessConditions.IfNoneMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfTags != nil {
|
||||
req.Raw().Header["x-ms-if-tags"] = []string{*modifiedAccessConditions.IfTags}
|
||||
}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil {
|
||||
req.Raw().Header["x-ms-lease-id"] = []string{*leaseAccessConditions.LeaseID}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
if err := req.SetBody(body, "application/octet-stream"); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
@ -244,76 +241,76 @@ func (client *AppendBlobClient) appendBlockFromURLCreateRequest(ctx context.Cont
|
|||
reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10))
|
||||
}
|
||||
req.Raw().URL.RawQuery = reqQP.Encode()
|
||||
req.Raw().Header["x-ms-copy-source"] = []string{sourceURL}
|
||||
if options != nil && options.SourceRange != nil {
|
||||
req.Raw().Header["x-ms-source-range"] = []string{*options.SourceRange}
|
||||
}
|
||||
if options != nil && options.SourceContentMD5 != nil {
|
||||
req.Raw().Header["x-ms-source-content-md5"] = []string{base64.StdEncoding.EncodeToString(options.SourceContentMD5)}
|
||||
}
|
||||
if options != nil && options.SourceContentcrc64 != nil {
|
||||
req.Raw().Header["x-ms-source-content-crc64"] = []string{base64.StdEncoding.EncodeToString(options.SourceContentcrc64)}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
req.Raw().Header["Content-Length"] = []string{strconv.FormatInt(contentLength, 10)}
|
||||
if options != nil && options.TransactionalContentMD5 != nil {
|
||||
req.Raw().Header["Content-MD5"] = []string{base64.StdEncoding.EncodeToString(options.TransactionalContentMD5)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfMatch != nil {
|
||||
req.Raw().Header["If-Match"] = []string{string(*modifiedAccessConditions.IfMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfModifiedSince != nil {
|
||||
req.Raw().Header["If-Modified-Since"] = []string{(*modifiedAccessConditions.IfModifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfNoneMatch != nil {
|
||||
req.Raw().Header["If-None-Match"] = []string{string(*modifiedAccessConditions.IfNoneMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfUnmodifiedSince != nil {
|
||||
req.Raw().Header["If-Unmodified-Since"] = []string{(*modifiedAccessConditions.IfUnmodifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if appendPositionAccessConditions != nil && appendPositionAccessConditions.AppendPosition != nil {
|
||||
req.Raw().Header["x-ms-blob-condition-appendpos"] = []string{strconv.FormatInt(*appendPositionAccessConditions.AppendPosition, 10)}
|
||||
}
|
||||
if appendPositionAccessConditions != nil && appendPositionAccessConditions.MaxSize != nil {
|
||||
req.Raw().Header["x-ms-blob-condition-maxsize"] = []string{strconv.FormatInt(*appendPositionAccessConditions.MaxSize, 10)}
|
||||
}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
req.Raw().Header["x-ms-copy-source"] = []string{sourceURL}
|
||||
if options != nil && options.CopySourceAuthorization != nil {
|
||||
req.Raw().Header["x-ms-copy-source-authorization"] = []string{*options.CopySourceAuthorization}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionAlgorithm != nil {
|
||||
req.Raw().Header["x-ms-encryption-algorithm"] = []string{string(*cpkInfo.EncryptionAlgorithm)}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionKey != nil {
|
||||
req.Raw().Header["x-ms-encryption-key"] = []string{*cpkInfo.EncryptionKey}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionKeySHA256 != nil {
|
||||
req.Raw().Header["x-ms-encryption-key-sha256"] = []string{*cpkInfo.EncryptionKeySHA256}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionAlgorithm != nil {
|
||||
req.Raw().Header["x-ms-encryption-algorithm"] = []string{string(*cpkInfo.EncryptionAlgorithm)}
|
||||
}
|
||||
if cpkScopeInfo != nil && cpkScopeInfo.EncryptionScope != nil {
|
||||
req.Raw().Header["x-ms-encryption-scope"] = []string{*cpkScopeInfo.EncryptionScope}
|
||||
}
|
||||
if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil {
|
||||
req.Raw().Header["x-ms-lease-id"] = []string{*leaseAccessConditions.LeaseID}
|
||||
}
|
||||
if appendPositionAccessConditions != nil && appendPositionAccessConditions.MaxSize != nil {
|
||||
req.Raw().Header["x-ms-blob-condition-maxsize"] = []string{strconv.FormatInt(*appendPositionAccessConditions.MaxSize, 10)}
|
||||
}
|
||||
if appendPositionAccessConditions != nil && appendPositionAccessConditions.AppendPosition != nil {
|
||||
req.Raw().Header["x-ms-blob-condition-appendpos"] = []string{strconv.FormatInt(*appendPositionAccessConditions.AppendPosition, 10)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfModifiedSince != nil {
|
||||
req.Raw().Header["If-Modified-Since"] = []string{(*modifiedAccessConditions.IfModifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfUnmodifiedSince != nil {
|
||||
req.Raw().Header["If-Unmodified-Since"] = []string{(*modifiedAccessConditions.IfUnmodifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfMatch != nil {
|
||||
req.Raw().Header["If-Match"] = []string{string(*modifiedAccessConditions.IfMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfNoneMatch != nil {
|
||||
req.Raw().Header["If-None-Match"] = []string{string(*modifiedAccessConditions.IfNoneMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfTags != nil {
|
||||
req.Raw().Header["x-ms-if-tags"] = []string{*modifiedAccessConditions.IfTags}
|
||||
}
|
||||
if sourceModifiedAccessConditions != nil && sourceModifiedAccessConditions.SourceIfModifiedSince != nil {
|
||||
req.Raw().Header["x-ms-source-if-modified-since"] = []string{(*sourceModifiedAccessConditions.SourceIfModifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil {
|
||||
req.Raw().Header["x-ms-lease-id"] = []string{*leaseAccessConditions.LeaseID}
|
||||
}
|
||||
if sourceModifiedAccessConditions != nil && sourceModifiedAccessConditions.SourceIfUnmodifiedSince != nil {
|
||||
req.Raw().Header["x-ms-source-if-unmodified-since"] = []string{(*sourceModifiedAccessConditions.SourceIfUnmodifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
if options != nil && options.SourceContentcrc64 != nil {
|
||||
req.Raw().Header["x-ms-source-content-crc64"] = []string{base64.StdEncoding.EncodeToString(options.SourceContentcrc64)}
|
||||
}
|
||||
if options != nil && options.SourceContentMD5 != nil {
|
||||
req.Raw().Header["x-ms-source-content-md5"] = []string{base64.StdEncoding.EncodeToString(options.SourceContentMD5)}
|
||||
}
|
||||
if sourceModifiedAccessConditions != nil && sourceModifiedAccessConditions.SourceIfMatch != nil {
|
||||
req.Raw().Header["x-ms-source-if-match"] = []string{string(*sourceModifiedAccessConditions.SourceIfMatch)}
|
||||
}
|
||||
if sourceModifiedAccessConditions != nil && sourceModifiedAccessConditions.SourceIfModifiedSince != nil {
|
||||
req.Raw().Header["x-ms-source-if-modified-since"] = []string{(*sourceModifiedAccessConditions.SourceIfModifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if sourceModifiedAccessConditions != nil && sourceModifiedAccessConditions.SourceIfNoneMatch != nil {
|
||||
req.Raw().Header["x-ms-source-if-none-match"] = []string{string(*sourceModifiedAccessConditions.SourceIfNoneMatch)}
|
||||
}
|
||||
if sourceModifiedAccessConditions != nil && sourceModifiedAccessConditions.SourceIfUnmodifiedSince != nil {
|
||||
req.Raw().Header["x-ms-source-if-unmodified-since"] = []string{(*sourceModifiedAccessConditions.SourceIfUnmodifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if options != nil && options.SourceRange != nil {
|
||||
req.Raw().Header["x-ms-source-range"] = []string{*options.SourceRange}
|
||||
}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
if options != nil && options.CopySourceAuthorization != nil {
|
||||
req.Raw().Header["x-ms-copy-source-authorization"] = []string{*options.CopySourceAuthorization}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
return req, nil
|
||||
}
|
||||
|
||||
|
|
@ -424,10 +421,25 @@ func (client *AppendBlobClient) createCreateRequest(ctx context.Context, content
|
|||
reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10))
|
||||
}
|
||||
req.Raw().URL.RawQuery = reqQP.Encode()
|
||||
req.Raw().Header["x-ms-blob-type"] = []string{"AppendBlob"}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
req.Raw().Header["Content-Length"] = []string{strconv.FormatInt(contentLength, 10)}
|
||||
if blobHTTPHeaders != nil && blobHTTPHeaders.BlobContentType != nil {
|
||||
req.Raw().Header["x-ms-blob-content-type"] = []string{*blobHTTPHeaders.BlobContentType}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfMatch != nil {
|
||||
req.Raw().Header["If-Match"] = []string{string(*modifiedAccessConditions.IfMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfModifiedSince != nil {
|
||||
req.Raw().Header["If-Modified-Since"] = []string{(*modifiedAccessConditions.IfModifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfNoneMatch != nil {
|
||||
req.Raw().Header["If-None-Match"] = []string{string(*modifiedAccessConditions.IfNoneMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfUnmodifiedSince != nil {
|
||||
req.Raw().Header["If-Unmodified-Since"] = []string{(*modifiedAccessConditions.IfUnmodifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if blobHTTPHeaders != nil && blobHTTPHeaders.BlobCacheControl != nil {
|
||||
req.Raw().Header["x-ms-blob-cache-control"] = []string{*blobHTTPHeaders.BlobCacheControl}
|
||||
}
|
||||
if blobHTTPHeaders != nil && blobHTTPHeaders.BlobContentDisposition != nil {
|
||||
req.Raw().Header["x-ms-blob-content-disposition"] = []string{*blobHTTPHeaders.BlobContentDisposition}
|
||||
}
|
||||
if blobHTTPHeaders != nil && blobHTTPHeaders.BlobContentEncoding != nil {
|
||||
req.Raw().Header["x-ms-blob-content-encoding"] = []string{*blobHTTPHeaders.BlobContentEncoding}
|
||||
|
|
@ -438,8 +450,39 @@ func (client *AppendBlobClient) createCreateRequest(ctx context.Context, content
|
|||
if blobHTTPHeaders != nil && blobHTTPHeaders.BlobContentMD5 != nil {
|
||||
req.Raw().Header["x-ms-blob-content-md5"] = []string{base64.StdEncoding.EncodeToString(blobHTTPHeaders.BlobContentMD5)}
|
||||
}
|
||||
if blobHTTPHeaders != nil && blobHTTPHeaders.BlobCacheControl != nil {
|
||||
req.Raw().Header["x-ms-blob-cache-control"] = []string{*blobHTTPHeaders.BlobCacheControl}
|
||||
if blobHTTPHeaders != nil && blobHTTPHeaders.BlobContentType != nil {
|
||||
req.Raw().Header["x-ms-blob-content-type"] = []string{*blobHTTPHeaders.BlobContentType}
|
||||
}
|
||||
req.Raw().Header["x-ms-blob-type"] = []string{"AppendBlob"}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionAlgorithm != nil {
|
||||
req.Raw().Header["x-ms-encryption-algorithm"] = []string{string(*cpkInfo.EncryptionAlgorithm)}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionKey != nil {
|
||||
req.Raw().Header["x-ms-encryption-key"] = []string{*cpkInfo.EncryptionKey}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionKeySHA256 != nil {
|
||||
req.Raw().Header["x-ms-encryption-key-sha256"] = []string{*cpkInfo.EncryptionKeySHA256}
|
||||
}
|
||||
if cpkScopeInfo != nil && cpkScopeInfo.EncryptionScope != nil {
|
||||
req.Raw().Header["x-ms-encryption-scope"] = []string{*cpkScopeInfo.EncryptionScope}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfTags != nil {
|
||||
req.Raw().Header["x-ms-if-tags"] = []string{*modifiedAccessConditions.IfTags}
|
||||
}
|
||||
if options != nil && options.ImmutabilityPolicyMode != nil {
|
||||
req.Raw().Header["x-ms-immutability-policy-mode"] = []string{string(*options.ImmutabilityPolicyMode)}
|
||||
}
|
||||
if options != nil && options.ImmutabilityPolicyExpiry != nil {
|
||||
req.Raw().Header["x-ms-immutability-policy-until-date"] = []string{(*options.ImmutabilityPolicyExpiry).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil {
|
||||
req.Raw().Header["x-ms-lease-id"] = []string{*leaseAccessConditions.LeaseID}
|
||||
}
|
||||
if options != nil && options.LegalHold != nil {
|
||||
req.Raw().Header["x-ms-legal-hold"] = []string{strconv.FormatBool(*options.LegalHold)}
|
||||
}
|
||||
if options != nil && options.Metadata != nil {
|
||||
for k, v := range options.Metadata {
|
||||
|
|
@ -448,56 +491,10 @@ func (client *AppendBlobClient) createCreateRequest(ctx context.Context, content
|
|||
}
|
||||
}
|
||||
}
|
||||
if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil {
|
||||
req.Raw().Header["x-ms-lease-id"] = []string{*leaseAccessConditions.LeaseID}
|
||||
}
|
||||
if blobHTTPHeaders != nil && blobHTTPHeaders.BlobContentDisposition != nil {
|
||||
req.Raw().Header["x-ms-blob-content-disposition"] = []string{*blobHTTPHeaders.BlobContentDisposition}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionKey != nil {
|
||||
req.Raw().Header["x-ms-encryption-key"] = []string{*cpkInfo.EncryptionKey}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionKeySHA256 != nil {
|
||||
req.Raw().Header["x-ms-encryption-key-sha256"] = []string{*cpkInfo.EncryptionKeySHA256}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionAlgorithm != nil {
|
||||
req.Raw().Header["x-ms-encryption-algorithm"] = []string{string(*cpkInfo.EncryptionAlgorithm)}
|
||||
}
|
||||
if cpkScopeInfo != nil && cpkScopeInfo.EncryptionScope != nil {
|
||||
req.Raw().Header["x-ms-encryption-scope"] = []string{*cpkScopeInfo.EncryptionScope}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfModifiedSince != nil {
|
||||
req.Raw().Header["If-Modified-Since"] = []string{(*modifiedAccessConditions.IfModifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfUnmodifiedSince != nil {
|
||||
req.Raw().Header["If-Unmodified-Since"] = []string{(*modifiedAccessConditions.IfUnmodifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfMatch != nil {
|
||||
req.Raw().Header["If-Match"] = []string{string(*modifiedAccessConditions.IfMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfNoneMatch != nil {
|
||||
req.Raw().Header["If-None-Match"] = []string{string(*modifiedAccessConditions.IfNoneMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfTags != nil {
|
||||
req.Raw().Header["x-ms-if-tags"] = []string{*modifiedAccessConditions.IfTags}
|
||||
}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
if options != nil && options.BlobTagsString != nil {
|
||||
req.Raw().Header["x-ms-tags"] = []string{*options.BlobTagsString}
|
||||
}
|
||||
if options != nil && options.ImmutabilityPolicyExpiry != nil {
|
||||
req.Raw().Header["x-ms-immutability-policy-until-date"] = []string{(*options.ImmutabilityPolicyExpiry).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if options != nil && options.ImmutabilityPolicyMode != nil {
|
||||
req.Raw().Header["x-ms-immutability-policy-mode"] = []string{string(*options.ImmutabilityPolicyMode)}
|
||||
}
|
||||
if options != nil && options.LegalHold != nil {
|
||||
req.Raw().Header["x-ms-legal-hold"] = []string{strconv.FormatBool(*options.LegalHold)}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
return req, nil
|
||||
}
|
||||
|
||||
|
|
@ -596,29 +593,29 @@ func (client *AppendBlobClient) sealCreateRequest(ctx context.Context, options *
|
|||
reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10))
|
||||
}
|
||||
req.Raw().URL.RawQuery = reqQP.Encode()
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfMatch != nil {
|
||||
req.Raw().Header["If-Match"] = []string{string(*modifiedAccessConditions.IfMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfModifiedSince != nil {
|
||||
req.Raw().Header["If-Modified-Since"] = []string{(*modifiedAccessConditions.IfModifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfNoneMatch != nil {
|
||||
req.Raw().Header["If-None-Match"] = []string{string(*modifiedAccessConditions.IfNoneMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfUnmodifiedSince != nil {
|
||||
req.Raw().Header["If-Unmodified-Since"] = []string{(*modifiedAccessConditions.IfUnmodifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if appendPositionAccessConditions != nil && appendPositionAccessConditions.AppendPosition != nil {
|
||||
req.Raw().Header["x-ms-blob-condition-appendpos"] = []string{strconv.FormatInt(*appendPositionAccessConditions.AppendPosition, 10)}
|
||||
}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil {
|
||||
req.Raw().Header["x-ms-lease-id"] = []string{*leaseAccessConditions.LeaseID}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfModifiedSince != nil {
|
||||
req.Raw().Header["If-Modified-Since"] = []string{(*modifiedAccessConditions.IfModifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfUnmodifiedSince != nil {
|
||||
req.Raw().Header["If-Unmodified-Since"] = []string{(*modifiedAccessConditions.IfUnmodifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfMatch != nil {
|
||||
req.Raw().Header["If-Match"] = []string{string(*modifiedAccessConditions.IfMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfNoneMatch != nil {
|
||||
req.Raw().Header["If-None-Match"] = []string{string(*modifiedAccessConditions.IfNoneMatch)}
|
||||
}
|
||||
if appendPositionAccessConditions != nil && appendPositionAccessConditions.AppendPosition != nil {
|
||||
req.Raw().Header["x-ms-blob-condition-appendpos"] = []string{strconv.FormatInt(*appendPositionAccessConditions.AppendPosition, 10)}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
return req, nil
|
||||
}
|
||||
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -1,6 +1,3 @@
|
|||
//go:build go1.18
|
||||
// +build go1.18
|
||||
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
// Code generated by Microsoft (R) AutoRest Code Generator. DO NOT EDIT.
|
||||
|
|
@ -75,11 +72,30 @@ func (client *BlockBlobClient) commitBlockListCreateRequest(ctx context.Context,
|
|||
reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10))
|
||||
}
|
||||
req.Raw().URL.RawQuery = reqQP.Encode()
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
if options != nil && options.TransactionalContentMD5 != nil {
|
||||
req.Raw().Header["Content-MD5"] = []string{base64.StdEncoding.EncodeToString(options.TransactionalContentMD5)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfMatch != nil {
|
||||
req.Raw().Header["If-Match"] = []string{string(*modifiedAccessConditions.IfMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfModifiedSince != nil {
|
||||
req.Raw().Header["If-Modified-Since"] = []string{(*modifiedAccessConditions.IfModifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfNoneMatch != nil {
|
||||
req.Raw().Header["If-None-Match"] = []string{string(*modifiedAccessConditions.IfNoneMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfUnmodifiedSince != nil {
|
||||
req.Raw().Header["If-Unmodified-Since"] = []string{(*modifiedAccessConditions.IfUnmodifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if options != nil && options.Tier != nil {
|
||||
req.Raw().Header["x-ms-access-tier"] = []string{string(*options.Tier)}
|
||||
}
|
||||
if blobHTTPHeaders != nil && blobHTTPHeaders.BlobCacheControl != nil {
|
||||
req.Raw().Header["x-ms-blob-cache-control"] = []string{*blobHTTPHeaders.BlobCacheControl}
|
||||
}
|
||||
if blobHTTPHeaders != nil && blobHTTPHeaders.BlobContentType != nil {
|
||||
req.Raw().Header["x-ms-blob-content-type"] = []string{*blobHTTPHeaders.BlobContentType}
|
||||
if blobHTTPHeaders != nil && blobHTTPHeaders.BlobContentDisposition != nil {
|
||||
req.Raw().Header["x-ms-blob-content-disposition"] = []string{*blobHTTPHeaders.BlobContentDisposition}
|
||||
}
|
||||
if blobHTTPHeaders != nil && blobHTTPHeaders.BlobContentEncoding != nil {
|
||||
req.Raw().Header["x-ms-blob-content-encoding"] = []string{*blobHTTPHeaders.BlobContentEncoding}
|
||||
|
|
@ -90,12 +106,42 @@ func (client *BlockBlobClient) commitBlockListCreateRequest(ctx context.Context,
|
|||
if blobHTTPHeaders != nil && blobHTTPHeaders.BlobContentMD5 != nil {
|
||||
req.Raw().Header["x-ms-blob-content-md5"] = []string{base64.StdEncoding.EncodeToString(blobHTTPHeaders.BlobContentMD5)}
|
||||
}
|
||||
if options != nil && options.TransactionalContentMD5 != nil {
|
||||
req.Raw().Header["Content-MD5"] = []string{base64.StdEncoding.EncodeToString(options.TransactionalContentMD5)}
|
||||
if blobHTTPHeaders != nil && blobHTTPHeaders.BlobContentType != nil {
|
||||
req.Raw().Header["x-ms-blob-content-type"] = []string{*blobHTTPHeaders.BlobContentType}
|
||||
}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
if options != nil && options.TransactionalContentCRC64 != nil {
|
||||
req.Raw().Header["x-ms-content-crc64"] = []string{base64.StdEncoding.EncodeToString(options.TransactionalContentCRC64)}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionAlgorithm != nil {
|
||||
req.Raw().Header["x-ms-encryption-algorithm"] = []string{string(*cpkInfo.EncryptionAlgorithm)}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionKey != nil {
|
||||
req.Raw().Header["x-ms-encryption-key"] = []string{*cpkInfo.EncryptionKey}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionKeySHA256 != nil {
|
||||
req.Raw().Header["x-ms-encryption-key-sha256"] = []string{*cpkInfo.EncryptionKeySHA256}
|
||||
}
|
||||
if cpkScopeInfo != nil && cpkScopeInfo.EncryptionScope != nil {
|
||||
req.Raw().Header["x-ms-encryption-scope"] = []string{*cpkScopeInfo.EncryptionScope}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfTags != nil {
|
||||
req.Raw().Header["x-ms-if-tags"] = []string{*modifiedAccessConditions.IfTags}
|
||||
}
|
||||
if options != nil && options.ImmutabilityPolicyMode != nil {
|
||||
req.Raw().Header["x-ms-immutability-policy-mode"] = []string{string(*options.ImmutabilityPolicyMode)}
|
||||
}
|
||||
if options != nil && options.ImmutabilityPolicyExpiry != nil {
|
||||
req.Raw().Header["x-ms-immutability-policy-until-date"] = []string{(*options.ImmutabilityPolicyExpiry).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil {
|
||||
req.Raw().Header["x-ms-lease-id"] = []string{*leaseAccessConditions.LeaseID}
|
||||
}
|
||||
if options != nil && options.LegalHold != nil {
|
||||
req.Raw().Header["x-ms-legal-hold"] = []string{strconv.FormatBool(*options.LegalHold)}
|
||||
}
|
||||
if options != nil && options.Metadata != nil {
|
||||
for k, v := range options.Metadata {
|
||||
if v != nil {
|
||||
|
|
@ -103,59 +149,10 @@ func (client *BlockBlobClient) commitBlockListCreateRequest(ctx context.Context,
|
|||
}
|
||||
}
|
||||
}
|
||||
if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil {
|
||||
req.Raw().Header["x-ms-lease-id"] = []string{*leaseAccessConditions.LeaseID}
|
||||
}
|
||||
if blobHTTPHeaders != nil && blobHTTPHeaders.BlobContentDisposition != nil {
|
||||
req.Raw().Header["x-ms-blob-content-disposition"] = []string{*blobHTTPHeaders.BlobContentDisposition}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionKey != nil {
|
||||
req.Raw().Header["x-ms-encryption-key"] = []string{*cpkInfo.EncryptionKey}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionKeySHA256 != nil {
|
||||
req.Raw().Header["x-ms-encryption-key-sha256"] = []string{*cpkInfo.EncryptionKeySHA256}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionAlgorithm != nil {
|
||||
req.Raw().Header["x-ms-encryption-algorithm"] = []string{string(*cpkInfo.EncryptionAlgorithm)}
|
||||
}
|
||||
if cpkScopeInfo != nil && cpkScopeInfo.EncryptionScope != nil {
|
||||
req.Raw().Header["x-ms-encryption-scope"] = []string{*cpkScopeInfo.EncryptionScope}
|
||||
}
|
||||
if options != nil && options.Tier != nil {
|
||||
req.Raw().Header["x-ms-access-tier"] = []string{string(*options.Tier)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfModifiedSince != nil {
|
||||
req.Raw().Header["If-Modified-Since"] = []string{(*modifiedAccessConditions.IfModifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfUnmodifiedSince != nil {
|
||||
req.Raw().Header["If-Unmodified-Since"] = []string{(*modifiedAccessConditions.IfUnmodifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfMatch != nil {
|
||||
req.Raw().Header["If-Match"] = []string{string(*modifiedAccessConditions.IfMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfNoneMatch != nil {
|
||||
req.Raw().Header["If-None-Match"] = []string{string(*modifiedAccessConditions.IfNoneMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfTags != nil {
|
||||
req.Raw().Header["x-ms-if-tags"] = []string{*modifiedAccessConditions.IfTags}
|
||||
}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
if options != nil && options.BlobTagsString != nil {
|
||||
req.Raw().Header["x-ms-tags"] = []string{*options.BlobTagsString}
|
||||
}
|
||||
if options != nil && options.ImmutabilityPolicyExpiry != nil {
|
||||
req.Raw().Header["x-ms-immutability-policy-until-date"] = []string{(*options.ImmutabilityPolicyExpiry).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if options != nil && options.ImmutabilityPolicyMode != nil {
|
||||
req.Raw().Header["x-ms-immutability-policy-mode"] = []string{string(*options.ImmutabilityPolicyMode)}
|
||||
}
|
||||
if options != nil && options.LegalHold != nil {
|
||||
req.Raw().Header["x-ms-legal-hold"] = []string{strconv.FormatBool(*options.LegalHold)}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
if err := runtime.MarshalAsXML(req, blocks); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
@ -257,26 +254,26 @@ func (client *BlockBlobClient) getBlockListCreateRequest(ctx context.Context, li
|
|||
return nil, err
|
||||
}
|
||||
reqQP := req.Raw().URL.Query()
|
||||
reqQP.Set("blocklisttype", string(listType))
|
||||
reqQP.Set("comp", "blocklist")
|
||||
if options != nil && options.Snapshot != nil {
|
||||
reqQP.Set("snapshot", *options.Snapshot)
|
||||
}
|
||||
reqQP.Set("blocklisttype", string(listType))
|
||||
if options != nil && options.Timeout != nil {
|
||||
reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10))
|
||||
}
|
||||
req.Raw().URL.RawQuery = reqQP.Encode()
|
||||
if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil {
|
||||
req.Raw().Header["x-ms-lease-id"] = []string{*leaseAccessConditions.LeaseID}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfTags != nil {
|
||||
req.Raw().Header["x-ms-if-tags"] = []string{*modifiedAccessConditions.IfTags}
|
||||
}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil {
|
||||
req.Raw().Header["x-ms-lease-id"] = []string{*leaseAccessConditions.LeaseID}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
return req, nil
|
||||
}
|
||||
|
||||
|
|
@ -375,13 +372,31 @@ func (client *BlockBlobClient) putBlobFromURLCreateRequest(ctx context.Context,
|
|||
reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10))
|
||||
}
|
||||
req.Raw().URL.RawQuery = reqQP.Encode()
|
||||
req.Raw().Header["x-ms-blob-type"] = []string{"BlockBlob"}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
req.Raw().Header["Content-Length"] = []string{strconv.FormatInt(contentLength, 10)}
|
||||
if options != nil && options.TransactionalContentMD5 != nil {
|
||||
req.Raw().Header["Content-MD5"] = []string{base64.StdEncoding.EncodeToString(options.TransactionalContentMD5)}
|
||||
}
|
||||
req.Raw().Header["Content-Length"] = []string{strconv.FormatInt(contentLength, 10)}
|
||||
if blobHTTPHeaders != nil && blobHTTPHeaders.BlobContentType != nil {
|
||||
req.Raw().Header["x-ms-blob-content-type"] = []string{*blobHTTPHeaders.BlobContentType}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfMatch != nil {
|
||||
req.Raw().Header["If-Match"] = []string{string(*modifiedAccessConditions.IfMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfModifiedSince != nil {
|
||||
req.Raw().Header["If-Modified-Since"] = []string{(*modifiedAccessConditions.IfModifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfNoneMatch != nil {
|
||||
req.Raw().Header["If-None-Match"] = []string{string(*modifiedAccessConditions.IfNoneMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfUnmodifiedSince != nil {
|
||||
req.Raw().Header["If-Unmodified-Since"] = []string{(*modifiedAccessConditions.IfUnmodifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if options != nil && options.Tier != nil {
|
||||
req.Raw().Header["x-ms-access-tier"] = []string{string(*options.Tier)}
|
||||
}
|
||||
if blobHTTPHeaders != nil && blobHTTPHeaders.BlobCacheControl != nil {
|
||||
req.Raw().Header["x-ms-blob-cache-control"] = []string{*blobHTTPHeaders.BlobCacheControl}
|
||||
}
|
||||
if blobHTTPHeaders != nil && blobHTTPHeaders.BlobContentDisposition != nil {
|
||||
req.Raw().Header["x-ms-blob-content-disposition"] = []string{*blobHTTPHeaders.BlobContentDisposition}
|
||||
}
|
||||
if blobHTTPHeaders != nil && blobHTTPHeaders.BlobContentEncoding != nil {
|
||||
req.Raw().Header["x-ms-blob-content-encoding"] = []string{*blobHTTPHeaders.BlobContentEncoding}
|
||||
|
|
@ -392,8 +407,40 @@ func (client *BlockBlobClient) putBlobFromURLCreateRequest(ctx context.Context,
|
|||
if blobHTTPHeaders != nil && blobHTTPHeaders.BlobContentMD5 != nil {
|
||||
req.Raw().Header["x-ms-blob-content-md5"] = []string{base64.StdEncoding.EncodeToString(blobHTTPHeaders.BlobContentMD5)}
|
||||
}
|
||||
if blobHTTPHeaders != nil && blobHTTPHeaders.BlobCacheControl != nil {
|
||||
req.Raw().Header["x-ms-blob-cache-control"] = []string{*blobHTTPHeaders.BlobCacheControl}
|
||||
if blobHTTPHeaders != nil && blobHTTPHeaders.BlobContentType != nil {
|
||||
req.Raw().Header["x-ms-blob-content-type"] = []string{*blobHTTPHeaders.BlobContentType}
|
||||
}
|
||||
req.Raw().Header["x-ms-blob-type"] = []string{"BlockBlob"}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
req.Raw().Header["x-ms-copy-source"] = []string{copySource}
|
||||
if options != nil && options.CopySourceAuthorization != nil {
|
||||
req.Raw().Header["x-ms-copy-source-authorization"] = []string{*options.CopySourceAuthorization}
|
||||
}
|
||||
if options != nil && options.CopySourceBlobProperties != nil {
|
||||
req.Raw().Header["x-ms-copy-source-blob-properties"] = []string{strconv.FormatBool(*options.CopySourceBlobProperties)}
|
||||
}
|
||||
if options != nil && options.CopySourceTags != nil {
|
||||
req.Raw().Header["x-ms-copy-source-tag-option"] = []string{string(*options.CopySourceTags)}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionAlgorithm != nil {
|
||||
req.Raw().Header["x-ms-encryption-algorithm"] = []string{string(*cpkInfo.EncryptionAlgorithm)}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionKey != nil {
|
||||
req.Raw().Header["x-ms-encryption-key"] = []string{*cpkInfo.EncryptionKey}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionKeySHA256 != nil {
|
||||
req.Raw().Header["x-ms-encryption-key-sha256"] = []string{*cpkInfo.EncryptionKeySHA256}
|
||||
}
|
||||
if cpkScopeInfo != nil && cpkScopeInfo.EncryptionScope != nil {
|
||||
req.Raw().Header["x-ms-encryption-scope"] = []string{*cpkScopeInfo.EncryptionScope}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfTags != nil {
|
||||
req.Raw().Header["x-ms-if-tags"] = []string{*modifiedAccessConditions.IfTags}
|
||||
}
|
||||
if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil {
|
||||
req.Raw().Header["x-ms-lease-id"] = []string{*leaseAccessConditions.LeaseID}
|
||||
}
|
||||
if options != nil && options.Metadata != nil {
|
||||
for k, v := range options.Metadata {
|
||||
|
|
@ -402,78 +449,28 @@ func (client *BlockBlobClient) putBlobFromURLCreateRequest(ctx context.Context,
|
|||
}
|
||||
}
|
||||
}
|
||||
if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil {
|
||||
req.Raw().Header["x-ms-lease-id"] = []string{*leaseAccessConditions.LeaseID}
|
||||
}
|
||||
if blobHTTPHeaders != nil && blobHTTPHeaders.BlobContentDisposition != nil {
|
||||
req.Raw().Header["x-ms-blob-content-disposition"] = []string{*blobHTTPHeaders.BlobContentDisposition}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionKey != nil {
|
||||
req.Raw().Header["x-ms-encryption-key"] = []string{*cpkInfo.EncryptionKey}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionKeySHA256 != nil {
|
||||
req.Raw().Header["x-ms-encryption-key-sha256"] = []string{*cpkInfo.EncryptionKeySHA256}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionAlgorithm != nil {
|
||||
req.Raw().Header["x-ms-encryption-algorithm"] = []string{string(*cpkInfo.EncryptionAlgorithm)}
|
||||
}
|
||||
if cpkScopeInfo != nil && cpkScopeInfo.EncryptionScope != nil {
|
||||
req.Raw().Header["x-ms-encryption-scope"] = []string{*cpkScopeInfo.EncryptionScope}
|
||||
}
|
||||
if options != nil && options.Tier != nil {
|
||||
req.Raw().Header["x-ms-access-tier"] = []string{string(*options.Tier)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfModifiedSince != nil {
|
||||
req.Raw().Header["If-Modified-Since"] = []string{(*modifiedAccessConditions.IfModifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfUnmodifiedSince != nil {
|
||||
req.Raw().Header["If-Unmodified-Since"] = []string{(*modifiedAccessConditions.IfUnmodifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfMatch != nil {
|
||||
req.Raw().Header["If-Match"] = []string{string(*modifiedAccessConditions.IfMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfNoneMatch != nil {
|
||||
req.Raw().Header["If-None-Match"] = []string{string(*modifiedAccessConditions.IfNoneMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfTags != nil {
|
||||
req.Raw().Header["x-ms-if-tags"] = []string{*modifiedAccessConditions.IfTags}
|
||||
}
|
||||
if sourceModifiedAccessConditions != nil && sourceModifiedAccessConditions.SourceIfModifiedSince != nil {
|
||||
req.Raw().Header["x-ms-source-if-modified-since"] = []string{(*sourceModifiedAccessConditions.SourceIfModifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if sourceModifiedAccessConditions != nil && sourceModifiedAccessConditions.SourceIfUnmodifiedSince != nil {
|
||||
req.Raw().Header["x-ms-source-if-unmodified-since"] = []string{(*sourceModifiedAccessConditions.SourceIfUnmodifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
if options != nil && options.SourceContentMD5 != nil {
|
||||
req.Raw().Header["x-ms-source-content-md5"] = []string{base64.StdEncoding.EncodeToString(options.SourceContentMD5)}
|
||||
}
|
||||
if sourceModifiedAccessConditions != nil && sourceModifiedAccessConditions.SourceIfMatch != nil {
|
||||
req.Raw().Header["x-ms-source-if-match"] = []string{string(*sourceModifiedAccessConditions.SourceIfMatch)}
|
||||
}
|
||||
if sourceModifiedAccessConditions != nil && sourceModifiedAccessConditions.SourceIfModifiedSince != nil {
|
||||
req.Raw().Header["x-ms-source-if-modified-since"] = []string{(*sourceModifiedAccessConditions.SourceIfModifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if sourceModifiedAccessConditions != nil && sourceModifiedAccessConditions.SourceIfNoneMatch != nil {
|
||||
req.Raw().Header["x-ms-source-if-none-match"] = []string{string(*sourceModifiedAccessConditions.SourceIfNoneMatch)}
|
||||
}
|
||||
if sourceModifiedAccessConditions != nil && sourceModifiedAccessConditions.SourceIfTags != nil {
|
||||
req.Raw().Header["x-ms-source-if-tags"] = []string{*sourceModifiedAccessConditions.SourceIfTags}
|
||||
}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
if options != nil && options.SourceContentMD5 != nil {
|
||||
req.Raw().Header["x-ms-source-content-md5"] = []string{base64.StdEncoding.EncodeToString(options.SourceContentMD5)}
|
||||
if sourceModifiedAccessConditions != nil && sourceModifiedAccessConditions.SourceIfUnmodifiedSince != nil {
|
||||
req.Raw().Header["x-ms-source-if-unmodified-since"] = []string{(*sourceModifiedAccessConditions.SourceIfUnmodifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if options != nil && options.BlobTagsString != nil {
|
||||
req.Raw().Header["x-ms-tags"] = []string{*options.BlobTagsString}
|
||||
}
|
||||
req.Raw().Header["x-ms-copy-source"] = []string{copySource}
|
||||
if options != nil && options.CopySourceBlobProperties != nil {
|
||||
req.Raw().Header["x-ms-copy-source-blob-properties"] = []string{strconv.FormatBool(*options.CopySourceBlobProperties)}
|
||||
}
|
||||
if options != nil && options.CopySourceAuthorization != nil {
|
||||
req.Raw().Header["x-ms-copy-source-authorization"] = []string{*options.CopySourceAuthorization}
|
||||
}
|
||||
if options != nil && options.CopySourceTags != nil {
|
||||
req.Raw().Header["x-ms-copy-source-tag-option"] = []string{string(*options.CopySourceTags)}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
return req, nil
|
||||
}
|
||||
|
||||
|
|
@ -570,21 +567,25 @@ func (client *BlockBlobClient) stageBlockCreateRequest(ctx context.Context, bloc
|
|||
return nil, err
|
||||
}
|
||||
reqQP := req.Raw().URL.Query()
|
||||
reqQP.Set("comp", "block")
|
||||
reqQP.Set("blockid", blockID)
|
||||
reqQP.Set("comp", "block")
|
||||
if options != nil && options.Timeout != nil {
|
||||
reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10))
|
||||
}
|
||||
req.Raw().URL.RawQuery = reqQP.Encode()
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
req.Raw().Header["Content-Length"] = []string{strconv.FormatInt(contentLength, 10)}
|
||||
if options != nil && options.TransactionalContentMD5 != nil {
|
||||
req.Raw().Header["Content-MD5"] = []string{base64.StdEncoding.EncodeToString(options.TransactionalContentMD5)}
|
||||
}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
if options != nil && options.TransactionalContentCRC64 != nil {
|
||||
req.Raw().Header["x-ms-content-crc64"] = []string{base64.StdEncoding.EncodeToString(options.TransactionalContentCRC64)}
|
||||
}
|
||||
if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil {
|
||||
req.Raw().Header["x-ms-lease-id"] = []string{*leaseAccessConditions.LeaseID}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionAlgorithm != nil {
|
||||
req.Raw().Header["x-ms-encryption-algorithm"] = []string{string(*cpkInfo.EncryptionAlgorithm)}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionKey != nil {
|
||||
req.Raw().Header["x-ms-encryption-key"] = []string{*cpkInfo.EncryptionKey}
|
||||
|
|
@ -592,17 +593,13 @@ func (client *BlockBlobClient) stageBlockCreateRequest(ctx context.Context, bloc
|
|||
if cpkInfo != nil && cpkInfo.EncryptionKeySHA256 != nil {
|
||||
req.Raw().Header["x-ms-encryption-key-sha256"] = []string{*cpkInfo.EncryptionKeySHA256}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionAlgorithm != nil {
|
||||
req.Raw().Header["x-ms-encryption-algorithm"] = []string{string(*cpkInfo.EncryptionAlgorithm)}
|
||||
}
|
||||
if cpkScopeInfo != nil && cpkScopeInfo.EncryptionScope != nil {
|
||||
req.Raw().Header["x-ms-encryption-scope"] = []string{*cpkScopeInfo.EncryptionScope}
|
||||
}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil {
|
||||
req.Raw().Header["x-ms-lease-id"] = []string{*leaseAccessConditions.LeaseID}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
if err := req.SetBody(body, "application/octet-stream"); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
@ -700,22 +697,23 @@ func (client *BlockBlobClient) stageBlockFromURLCreateRequest(ctx context.Contex
|
|||
return nil, err
|
||||
}
|
||||
reqQP := req.Raw().URL.Query()
|
||||
reqQP.Set("comp", "block")
|
||||
reqQP.Set("blockid", blockID)
|
||||
reqQP.Set("comp", "block")
|
||||
if options != nil && options.Timeout != nil {
|
||||
reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10))
|
||||
}
|
||||
req.Raw().URL.RawQuery = reqQP.Encode()
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
req.Raw().Header["Content-Length"] = []string{strconv.FormatInt(contentLength, 10)}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
req.Raw().Header["x-ms-copy-source"] = []string{sourceURL}
|
||||
if options != nil && options.SourceRange != nil {
|
||||
req.Raw().Header["x-ms-source-range"] = []string{*options.SourceRange}
|
||||
if options != nil && options.CopySourceAuthorization != nil {
|
||||
req.Raw().Header["x-ms-copy-source-authorization"] = []string{*options.CopySourceAuthorization}
|
||||
}
|
||||
if options != nil && options.SourceContentMD5 != nil {
|
||||
req.Raw().Header["x-ms-source-content-md5"] = []string{base64.StdEncoding.EncodeToString(options.SourceContentMD5)}
|
||||
}
|
||||
if options != nil && options.SourceContentcrc64 != nil {
|
||||
req.Raw().Header["x-ms-source-content-crc64"] = []string{base64.StdEncoding.EncodeToString(options.SourceContentcrc64)}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionAlgorithm != nil {
|
||||
req.Raw().Header["x-ms-encryption-algorithm"] = []string{string(*cpkInfo.EncryptionAlgorithm)}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionKey != nil {
|
||||
req.Raw().Header["x-ms-encryption-key"] = []string{*cpkInfo.EncryptionKey}
|
||||
|
|
@ -723,35 +721,34 @@ func (client *BlockBlobClient) stageBlockFromURLCreateRequest(ctx context.Contex
|
|||
if cpkInfo != nil && cpkInfo.EncryptionKeySHA256 != nil {
|
||||
req.Raw().Header["x-ms-encryption-key-sha256"] = []string{*cpkInfo.EncryptionKeySHA256}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionAlgorithm != nil {
|
||||
req.Raw().Header["x-ms-encryption-algorithm"] = []string{string(*cpkInfo.EncryptionAlgorithm)}
|
||||
}
|
||||
if cpkScopeInfo != nil && cpkScopeInfo.EncryptionScope != nil {
|
||||
req.Raw().Header["x-ms-encryption-scope"] = []string{*cpkScopeInfo.EncryptionScope}
|
||||
}
|
||||
if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil {
|
||||
req.Raw().Header["x-ms-lease-id"] = []string{*leaseAccessConditions.LeaseID}
|
||||
}
|
||||
if sourceModifiedAccessConditions != nil && sourceModifiedAccessConditions.SourceIfModifiedSince != nil {
|
||||
req.Raw().Header["x-ms-source-if-modified-since"] = []string{(*sourceModifiedAccessConditions.SourceIfModifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
if options != nil && options.SourceContentcrc64 != nil {
|
||||
req.Raw().Header["x-ms-source-content-crc64"] = []string{base64.StdEncoding.EncodeToString(options.SourceContentcrc64)}
|
||||
}
|
||||
if sourceModifiedAccessConditions != nil && sourceModifiedAccessConditions.SourceIfUnmodifiedSince != nil {
|
||||
req.Raw().Header["x-ms-source-if-unmodified-since"] = []string{(*sourceModifiedAccessConditions.SourceIfUnmodifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
if options != nil && options.SourceContentMD5 != nil {
|
||||
req.Raw().Header["x-ms-source-content-md5"] = []string{base64.StdEncoding.EncodeToString(options.SourceContentMD5)}
|
||||
}
|
||||
if sourceModifiedAccessConditions != nil && sourceModifiedAccessConditions.SourceIfMatch != nil {
|
||||
req.Raw().Header["x-ms-source-if-match"] = []string{string(*sourceModifiedAccessConditions.SourceIfMatch)}
|
||||
}
|
||||
if sourceModifiedAccessConditions != nil && sourceModifiedAccessConditions.SourceIfModifiedSince != nil {
|
||||
req.Raw().Header["x-ms-source-if-modified-since"] = []string{(*sourceModifiedAccessConditions.SourceIfModifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if sourceModifiedAccessConditions != nil && sourceModifiedAccessConditions.SourceIfNoneMatch != nil {
|
||||
req.Raw().Header["x-ms-source-if-none-match"] = []string{string(*sourceModifiedAccessConditions.SourceIfNoneMatch)}
|
||||
}
|
||||
if sourceModifiedAccessConditions != nil && sourceModifiedAccessConditions.SourceIfUnmodifiedSince != nil {
|
||||
req.Raw().Header["x-ms-source-if-unmodified-since"] = []string{(*sourceModifiedAccessConditions.SourceIfUnmodifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if options != nil && options.SourceRange != nil {
|
||||
req.Raw().Header["x-ms-source-range"] = []string{*options.SourceRange}
|
||||
}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
if options != nil && options.CopySourceAuthorization != nil {
|
||||
req.Raw().Header["x-ms-copy-source-authorization"] = []string{*options.CopySourceAuthorization}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
return req, nil
|
||||
}
|
||||
|
||||
|
|
@ -848,13 +845,31 @@ func (client *BlockBlobClient) uploadCreateRequest(ctx context.Context, contentL
|
|||
reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10))
|
||||
}
|
||||
req.Raw().URL.RawQuery = reqQP.Encode()
|
||||
req.Raw().Header["x-ms-blob-type"] = []string{"BlockBlob"}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
req.Raw().Header["Content-Length"] = []string{strconv.FormatInt(contentLength, 10)}
|
||||
if options != nil && options.TransactionalContentMD5 != nil {
|
||||
req.Raw().Header["Content-MD5"] = []string{base64.StdEncoding.EncodeToString(options.TransactionalContentMD5)}
|
||||
}
|
||||
req.Raw().Header["Content-Length"] = []string{strconv.FormatInt(contentLength, 10)}
|
||||
if blobHTTPHeaders != nil && blobHTTPHeaders.BlobContentType != nil {
|
||||
req.Raw().Header["x-ms-blob-content-type"] = []string{*blobHTTPHeaders.BlobContentType}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfMatch != nil {
|
||||
req.Raw().Header["If-Match"] = []string{string(*modifiedAccessConditions.IfMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfModifiedSince != nil {
|
||||
req.Raw().Header["If-Modified-Since"] = []string{(*modifiedAccessConditions.IfModifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfNoneMatch != nil {
|
||||
req.Raw().Header["If-None-Match"] = []string{string(*modifiedAccessConditions.IfNoneMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfUnmodifiedSince != nil {
|
||||
req.Raw().Header["If-Unmodified-Since"] = []string{(*modifiedAccessConditions.IfUnmodifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if options != nil && options.Tier != nil {
|
||||
req.Raw().Header["x-ms-access-tier"] = []string{string(*options.Tier)}
|
||||
}
|
||||
if blobHTTPHeaders != nil && blobHTTPHeaders.BlobCacheControl != nil {
|
||||
req.Raw().Header["x-ms-blob-cache-control"] = []string{*blobHTTPHeaders.BlobCacheControl}
|
||||
}
|
||||
if blobHTTPHeaders != nil && blobHTTPHeaders.BlobContentDisposition != nil {
|
||||
req.Raw().Header["x-ms-blob-content-disposition"] = []string{*blobHTTPHeaders.BlobContentDisposition}
|
||||
}
|
||||
if blobHTTPHeaders != nil && blobHTTPHeaders.BlobContentEncoding != nil {
|
||||
req.Raw().Header["x-ms-blob-content-encoding"] = []string{*blobHTTPHeaders.BlobContentEncoding}
|
||||
|
|
@ -865,8 +880,42 @@ func (client *BlockBlobClient) uploadCreateRequest(ctx context.Context, contentL
|
|||
if blobHTTPHeaders != nil && blobHTTPHeaders.BlobContentMD5 != nil {
|
||||
req.Raw().Header["x-ms-blob-content-md5"] = []string{base64.StdEncoding.EncodeToString(blobHTTPHeaders.BlobContentMD5)}
|
||||
}
|
||||
if blobHTTPHeaders != nil && blobHTTPHeaders.BlobCacheControl != nil {
|
||||
req.Raw().Header["x-ms-blob-cache-control"] = []string{*blobHTTPHeaders.BlobCacheControl}
|
||||
if blobHTTPHeaders != nil && blobHTTPHeaders.BlobContentType != nil {
|
||||
req.Raw().Header["x-ms-blob-content-type"] = []string{*blobHTTPHeaders.BlobContentType}
|
||||
}
|
||||
req.Raw().Header["x-ms-blob-type"] = []string{"BlockBlob"}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
if options != nil && options.TransactionalContentCRC64 != nil {
|
||||
req.Raw().Header["x-ms-content-crc64"] = []string{base64.StdEncoding.EncodeToString(options.TransactionalContentCRC64)}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionAlgorithm != nil {
|
||||
req.Raw().Header["x-ms-encryption-algorithm"] = []string{string(*cpkInfo.EncryptionAlgorithm)}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionKey != nil {
|
||||
req.Raw().Header["x-ms-encryption-key"] = []string{*cpkInfo.EncryptionKey}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionKeySHA256 != nil {
|
||||
req.Raw().Header["x-ms-encryption-key-sha256"] = []string{*cpkInfo.EncryptionKeySHA256}
|
||||
}
|
||||
if cpkScopeInfo != nil && cpkScopeInfo.EncryptionScope != nil {
|
||||
req.Raw().Header["x-ms-encryption-scope"] = []string{*cpkScopeInfo.EncryptionScope}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfTags != nil {
|
||||
req.Raw().Header["x-ms-if-tags"] = []string{*modifiedAccessConditions.IfTags}
|
||||
}
|
||||
if options != nil && options.ImmutabilityPolicyMode != nil {
|
||||
req.Raw().Header["x-ms-immutability-policy-mode"] = []string{string(*options.ImmutabilityPolicyMode)}
|
||||
}
|
||||
if options != nil && options.ImmutabilityPolicyExpiry != nil {
|
||||
req.Raw().Header["x-ms-immutability-policy-until-date"] = []string{(*options.ImmutabilityPolicyExpiry).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil {
|
||||
req.Raw().Header["x-ms-lease-id"] = []string{*leaseAccessConditions.LeaseID}
|
||||
}
|
||||
if options != nil && options.LegalHold != nil {
|
||||
req.Raw().Header["x-ms-legal-hold"] = []string{strconv.FormatBool(*options.LegalHold)}
|
||||
}
|
||||
if options != nil && options.Metadata != nil {
|
||||
for k, v := range options.Metadata {
|
||||
|
|
@ -875,62 +924,10 @@ func (client *BlockBlobClient) uploadCreateRequest(ctx context.Context, contentL
|
|||
}
|
||||
}
|
||||
}
|
||||
if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil {
|
||||
req.Raw().Header["x-ms-lease-id"] = []string{*leaseAccessConditions.LeaseID}
|
||||
}
|
||||
if blobHTTPHeaders != nil && blobHTTPHeaders.BlobContentDisposition != nil {
|
||||
req.Raw().Header["x-ms-blob-content-disposition"] = []string{*blobHTTPHeaders.BlobContentDisposition}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionKey != nil {
|
||||
req.Raw().Header["x-ms-encryption-key"] = []string{*cpkInfo.EncryptionKey}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionKeySHA256 != nil {
|
||||
req.Raw().Header["x-ms-encryption-key-sha256"] = []string{*cpkInfo.EncryptionKeySHA256}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionAlgorithm != nil {
|
||||
req.Raw().Header["x-ms-encryption-algorithm"] = []string{string(*cpkInfo.EncryptionAlgorithm)}
|
||||
}
|
||||
if cpkScopeInfo != nil && cpkScopeInfo.EncryptionScope != nil {
|
||||
req.Raw().Header["x-ms-encryption-scope"] = []string{*cpkScopeInfo.EncryptionScope}
|
||||
}
|
||||
if options != nil && options.Tier != nil {
|
||||
req.Raw().Header["x-ms-access-tier"] = []string{string(*options.Tier)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfModifiedSince != nil {
|
||||
req.Raw().Header["If-Modified-Since"] = []string{(*modifiedAccessConditions.IfModifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfUnmodifiedSince != nil {
|
||||
req.Raw().Header["If-Unmodified-Since"] = []string{(*modifiedAccessConditions.IfUnmodifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfMatch != nil {
|
||||
req.Raw().Header["If-Match"] = []string{string(*modifiedAccessConditions.IfMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfNoneMatch != nil {
|
||||
req.Raw().Header["If-None-Match"] = []string{string(*modifiedAccessConditions.IfNoneMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfTags != nil {
|
||||
req.Raw().Header["x-ms-if-tags"] = []string{*modifiedAccessConditions.IfTags}
|
||||
}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
if options != nil && options.BlobTagsString != nil {
|
||||
req.Raw().Header["x-ms-tags"] = []string{*options.BlobTagsString}
|
||||
}
|
||||
if options != nil && options.ImmutabilityPolicyExpiry != nil {
|
||||
req.Raw().Header["x-ms-immutability-policy-until-date"] = []string{(*options.ImmutabilityPolicyExpiry).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if options != nil && options.ImmutabilityPolicyMode != nil {
|
||||
req.Raw().Header["x-ms-immutability-policy-mode"] = []string{string(*options.ImmutabilityPolicyMode)}
|
||||
}
|
||||
if options != nil && options.LegalHold != nil {
|
||||
req.Raw().Header["x-ms-legal-hold"] = []string{strconv.FormatBool(*options.LegalHold)}
|
||||
}
|
||||
if options != nil && options.TransactionalContentCRC64 != nil {
|
||||
req.Raw().Header["x-ms-content-crc64"] = []string{base64.StdEncoding.EncodeToString(options.TransactionalContentCRC64)}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
if err := req.SetBody(body, "application/octet-stream"); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,3 @@
|
|||
//go:build go1.18
|
||||
// +build go1.18
|
||||
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
// Code generated by Microsoft (R) AutoRest Code Generator. DO NOT EDIT.
|
||||
|
|
|
|||
|
|
@ -1,6 +1,3 @@
|
|||
//go:build go1.18
|
||||
// +build go1.18
|
||||
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
// Code generated by Microsoft (R) AutoRest Code Generator. DO NOT EDIT.
|
||||
|
|
@ -71,22 +68,22 @@ func (client *ContainerClient) acquireLeaseCreateRequest(ctx context.Context, du
|
|||
reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10))
|
||||
}
|
||||
req.Raw().URL.RawQuery = reqQP.Encode()
|
||||
req.Raw().Header["x-ms-lease-action"] = []string{"acquire"}
|
||||
req.Raw().Header["x-ms-lease-duration"] = []string{strconv.FormatInt(int64(duration), 10)}
|
||||
if options != nil && options.ProposedLeaseID != nil {
|
||||
req.Raw().Header["x-ms-proposed-lease-id"] = []string{*options.ProposedLeaseID}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfModifiedSince != nil {
|
||||
req.Raw().Header["If-Modified-Since"] = []string{(*modifiedAccessConditions.IfModifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfUnmodifiedSince != nil {
|
||||
req.Raw().Header["If-Unmodified-Since"] = []string{(*modifiedAccessConditions.IfUnmodifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
req.Raw().Header["x-ms-lease-action"] = []string{"acquire"}
|
||||
req.Raw().Header["x-ms-lease-duration"] = []string{strconv.FormatInt(int64(duration), 10)}
|
||||
if options != nil && options.ProposedLeaseID != nil {
|
||||
req.Raw().Header["x-ms-proposed-lease-id"] = []string{*options.ProposedLeaseID}
|
||||
}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
return req, nil
|
||||
}
|
||||
|
||||
|
|
@ -163,21 +160,21 @@ func (client *ContainerClient) breakLeaseCreateRequest(ctx context.Context, opti
|
|||
reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10))
|
||||
}
|
||||
req.Raw().URL.RawQuery = reqQP.Encode()
|
||||
req.Raw().Header["x-ms-lease-action"] = []string{"break"}
|
||||
if options != nil && options.BreakPeriod != nil {
|
||||
req.Raw().Header["x-ms-lease-break-period"] = []string{strconv.FormatInt(int64(*options.BreakPeriod), 10)}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfModifiedSince != nil {
|
||||
req.Raw().Header["If-Modified-Since"] = []string{(*modifiedAccessConditions.IfModifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfUnmodifiedSince != nil {
|
||||
req.Raw().Header["If-Unmodified-Since"] = []string{(*modifiedAccessConditions.IfUnmodifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
req.Raw().Header["x-ms-lease-action"] = []string{"break"}
|
||||
if options != nil && options.BreakPeriod != nil {
|
||||
req.Raw().Header["x-ms-lease-break-period"] = []string{strconv.FormatInt(int64(*options.BreakPeriod), 10)}
|
||||
}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
return req, nil
|
||||
}
|
||||
|
||||
|
|
@ -263,20 +260,20 @@ func (client *ContainerClient) changeLeaseCreateRequest(ctx context.Context, lea
|
|||
reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10))
|
||||
}
|
||||
req.Raw().URL.RawQuery = reqQP.Encode()
|
||||
req.Raw().Header["x-ms-lease-action"] = []string{"change"}
|
||||
req.Raw().Header["x-ms-lease-id"] = []string{leaseID}
|
||||
req.Raw().Header["x-ms-proposed-lease-id"] = []string{proposedLeaseID}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfModifiedSince != nil {
|
||||
req.Raw().Header["If-Modified-Since"] = []string{(*modifiedAccessConditions.IfModifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfUnmodifiedSince != nil {
|
||||
req.Raw().Header["If-Unmodified-Since"] = []string{(*modifiedAccessConditions.IfUnmodifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
req.Raw().Header["x-ms-lease-action"] = []string{"change"}
|
||||
req.Raw().Header["x-ms-lease-id"] = []string{leaseID}
|
||||
req.Raw().Header["x-ms-proposed-lease-id"] = []string{proposedLeaseID}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
return req, nil
|
||||
}
|
||||
|
||||
|
|
@ -352,17 +349,10 @@ func (client *ContainerClient) createCreateRequest(ctx context.Context, options
|
|||
reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10))
|
||||
}
|
||||
req.Raw().URL.RawQuery = reqQP.Encode()
|
||||
if options != nil && options.Metadata != nil {
|
||||
for k, v := range options.Metadata {
|
||||
if v != nil {
|
||||
req.Raw().Header["x-ms-meta-"+k] = []string{*v}
|
||||
}
|
||||
}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
if options != nil && options.Access != nil {
|
||||
req.Raw().Header["x-ms-blob-public-access"] = []string{string(*options.Access)}
|
||||
}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
|
|
@ -372,7 +362,14 @@ func (client *ContainerClient) createCreateRequest(ctx context.Context, options
|
|||
if containerCPKScopeInfo != nil && containerCPKScopeInfo.PreventEncryptionScopeOverride != nil {
|
||||
req.Raw().Header["x-ms-deny-encryption-scope-override"] = []string{strconv.FormatBool(*containerCPKScopeInfo.PreventEncryptionScopeOverride)}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
if options != nil && options.Metadata != nil {
|
||||
for k, v := range options.Metadata {
|
||||
if v != nil {
|
||||
req.Raw().Header["x-ms-meta-"+k] = []string{*v}
|
||||
}
|
||||
}
|
||||
}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
return req, nil
|
||||
}
|
||||
|
||||
|
|
@ -446,20 +443,20 @@ func (client *ContainerClient) deleteCreateRequest(ctx context.Context, options
|
|||
reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10))
|
||||
}
|
||||
req.Raw().URL.RawQuery = reqQP.Encode()
|
||||
if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil {
|
||||
req.Raw().Header["x-ms-lease-id"] = []string{*leaseAccessConditions.LeaseID}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfModifiedSince != nil {
|
||||
req.Raw().Header["If-Modified-Since"] = []string{(*modifiedAccessConditions.IfModifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfUnmodifiedSince != nil {
|
||||
req.Raw().Header["If-Unmodified-Since"] = []string{(*modifiedAccessConditions.IfUnmodifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil {
|
||||
req.Raw().Header["x-ms-lease-id"] = []string{*leaseAccessConditions.LeaseID}
|
||||
}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
return req, nil
|
||||
}
|
||||
|
||||
|
|
@ -517,27 +514,27 @@ func (client *ContainerClient) filterBlobsCreateRequest(ctx context.Context, whe
|
|||
return nil, err
|
||||
}
|
||||
reqQP := req.Raw().URL.Query()
|
||||
reqQP.Set("restype", "container")
|
||||
reqQP.Set("comp", "blobs")
|
||||
if options != nil && options.Timeout != nil {
|
||||
reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10))
|
||||
if options != nil && options.Include != nil {
|
||||
reqQP.Set("include", strings.Join(strings.Fields(strings.Trim(fmt.Sprint(options.Include), "[]")), ","))
|
||||
}
|
||||
reqQP.Set("where", where)
|
||||
if options != nil && options.Marker != nil {
|
||||
reqQP.Set("marker", *options.Marker)
|
||||
}
|
||||
if options != nil && options.Maxresults != nil {
|
||||
reqQP.Set("maxresults", strconv.FormatInt(int64(*options.Maxresults), 10))
|
||||
}
|
||||
if options != nil && options.Include != nil {
|
||||
reqQP.Set("include", strings.Join(strings.Fields(strings.Trim(fmt.Sprint(options.Include), "[]")), ","))
|
||||
reqQP.Set("restype", "container")
|
||||
if options != nil && options.Timeout != nil {
|
||||
reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10))
|
||||
}
|
||||
reqQP.Set("where", where)
|
||||
req.Raw().URL.RawQuery = reqQP.Encode()
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
return req, nil
|
||||
}
|
||||
|
||||
|
|
@ -599,20 +596,20 @@ func (client *ContainerClient) getAccessPolicyCreateRequest(ctx context.Context,
|
|||
return nil, err
|
||||
}
|
||||
reqQP := req.Raw().URL.Query()
|
||||
reqQP.Set("restype", "container")
|
||||
reqQP.Set("comp", "acl")
|
||||
reqQP.Set("restype", "container")
|
||||
if options != nil && options.Timeout != nil {
|
||||
reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10))
|
||||
}
|
||||
req.Raw().URL.RawQuery = reqQP.Encode()
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil {
|
||||
req.Raw().Header["x-ms-lease-id"] = []string{*leaseAccessConditions.LeaseID}
|
||||
}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
return req, nil
|
||||
}
|
||||
|
||||
|
|
@ -685,11 +682,11 @@ func (client *ContainerClient) getAccountInfoCreateRequest(ctx context.Context,
|
|||
return nil, err
|
||||
}
|
||||
reqQP := req.Raw().URL.Query()
|
||||
reqQP.Set("restype", "account")
|
||||
reqQP.Set("comp", "properties")
|
||||
reqQP.Set("restype", "account")
|
||||
req.Raw().URL.RawQuery = reqQP.Encode()
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
return req, nil
|
||||
}
|
||||
|
||||
|
|
@ -758,14 +755,14 @@ func (client *ContainerClient) getPropertiesCreateRequest(ctx context.Context, o
|
|||
reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10))
|
||||
}
|
||||
req.Raw().URL.RawQuery = reqQP.Encode()
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil {
|
||||
req.Raw().Header["x-ms-lease-id"] = []string{*leaseAccessConditions.LeaseID}
|
||||
}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
return req, nil
|
||||
}
|
||||
|
||||
|
|
@ -865,10 +862,9 @@ func (client *ContainerClient) ListBlobFlatSegmentCreateRequest(ctx context.Cont
|
|||
return nil, err
|
||||
}
|
||||
reqQP := req.Raw().URL.Query()
|
||||
reqQP.Set("restype", "container")
|
||||
reqQP.Set("comp", "list")
|
||||
if options != nil && options.Prefix != nil {
|
||||
reqQP.Set("prefix", *options.Prefix)
|
||||
if options != nil && options.Include != nil {
|
||||
reqQP.Set("include", strings.Join(strings.Fields(strings.Trim(fmt.Sprint(options.Include), "[]")), ","))
|
||||
}
|
||||
if options != nil && options.Marker != nil {
|
||||
reqQP.Set("marker", *options.Marker)
|
||||
|
|
@ -876,18 +872,19 @@ func (client *ContainerClient) ListBlobFlatSegmentCreateRequest(ctx context.Cont
|
|||
if options != nil && options.Maxresults != nil {
|
||||
reqQP.Set("maxresults", strconv.FormatInt(int64(*options.Maxresults), 10))
|
||||
}
|
||||
if options != nil && options.Include != nil {
|
||||
reqQP.Set("include", strings.Join(strings.Fields(strings.Trim(fmt.Sprint(options.Include), "[]")), ","))
|
||||
if options != nil && options.Prefix != nil {
|
||||
reqQP.Set("prefix", *options.Prefix)
|
||||
}
|
||||
reqQP.Set("restype", "container")
|
||||
if options != nil && options.Timeout != nil {
|
||||
reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10))
|
||||
}
|
||||
req.Raw().URL.RawQuery = reqQP.Encode()
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
return req, nil
|
||||
}
|
||||
|
||||
|
|
@ -955,30 +952,30 @@ func (client *ContainerClient) ListBlobHierarchySegmentCreateRequest(ctx context
|
|||
return nil, err
|
||||
}
|
||||
reqQP := req.Raw().URL.Query()
|
||||
reqQP.Set("restype", "container")
|
||||
reqQP.Set("comp", "list")
|
||||
if options != nil && options.Prefix != nil {
|
||||
reqQP.Set("prefix", *options.Prefix)
|
||||
}
|
||||
reqQP.Set("delimiter", delimiter)
|
||||
if options != nil && options.Include != nil {
|
||||
reqQP.Set("include", strings.Join(strings.Fields(strings.Trim(fmt.Sprint(options.Include), "[]")), ","))
|
||||
}
|
||||
if options != nil && options.Marker != nil {
|
||||
reqQP.Set("marker", *options.Marker)
|
||||
}
|
||||
if options != nil && options.Maxresults != nil {
|
||||
reqQP.Set("maxresults", strconv.FormatInt(int64(*options.Maxresults), 10))
|
||||
}
|
||||
if options != nil && options.Include != nil {
|
||||
reqQP.Set("include", strings.Join(strings.Fields(strings.Trim(fmt.Sprint(options.Include), "[]")), ","))
|
||||
if options != nil && options.Prefix != nil {
|
||||
reqQP.Set("prefix", *options.Prefix)
|
||||
}
|
||||
reqQP.Set("restype", "container")
|
||||
if options != nil && options.Timeout != nil {
|
||||
reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10))
|
||||
}
|
||||
req.Raw().URL.RawQuery = reqQP.Encode()
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
return req, nil
|
||||
}
|
||||
|
||||
|
|
@ -1049,19 +1046,19 @@ func (client *ContainerClient) releaseLeaseCreateRequest(ctx context.Context, le
|
|||
reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10))
|
||||
}
|
||||
req.Raw().URL.RawQuery = reqQP.Encode()
|
||||
req.Raw().Header["x-ms-lease-action"] = []string{"release"}
|
||||
req.Raw().Header["x-ms-lease-id"] = []string{leaseID}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfModifiedSince != nil {
|
||||
req.Raw().Header["If-Modified-Since"] = []string{(*modifiedAccessConditions.IfModifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfUnmodifiedSince != nil {
|
||||
req.Raw().Header["If-Unmodified-Since"] = []string{(*modifiedAccessConditions.IfUnmodifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
req.Raw().Header["x-ms-lease-action"] = []string{"release"}
|
||||
req.Raw().Header["x-ms-lease-id"] = []string{leaseID}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
return req, nil
|
||||
}
|
||||
|
||||
|
|
@ -1128,13 +1125,13 @@ func (client *ContainerClient) renameCreateRequest(ctx context.Context, sourceCo
|
|||
return nil, err
|
||||
}
|
||||
reqQP := req.Raw().URL.Query()
|
||||
reqQP.Set("restype", "container")
|
||||
reqQP.Set("comp", "rename")
|
||||
reqQP.Set("restype", "container")
|
||||
if options != nil && options.Timeout != nil {
|
||||
reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10))
|
||||
}
|
||||
req.Raw().URL.RawQuery = reqQP.Encode()
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
|
|
@ -1142,7 +1139,7 @@ func (client *ContainerClient) renameCreateRequest(ctx context.Context, sourceCo
|
|||
if options != nil && options.SourceLeaseID != nil {
|
||||
req.Raw().Header["x-ms-source-lease-id"] = []string{*options.SourceLeaseID}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
return req, nil
|
||||
}
|
||||
|
||||
|
|
@ -1207,19 +1204,19 @@ func (client *ContainerClient) renewLeaseCreateRequest(ctx context.Context, leas
|
|||
reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10))
|
||||
}
|
||||
req.Raw().URL.RawQuery = reqQP.Encode()
|
||||
req.Raw().Header["x-ms-lease-action"] = []string{"renew"}
|
||||
req.Raw().Header["x-ms-lease-id"] = []string{leaseID}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfModifiedSince != nil {
|
||||
req.Raw().Header["If-Modified-Since"] = []string{(*modifiedAccessConditions.IfModifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfUnmodifiedSince != nil {
|
||||
req.Raw().Header["If-Unmodified-Since"] = []string{(*modifiedAccessConditions.IfUnmodifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
req.Raw().Header["x-ms-lease-action"] = []string{"renew"}
|
||||
req.Raw().Header["x-ms-lease-id"] = []string{leaseID}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
return req, nil
|
||||
}
|
||||
|
||||
|
|
@ -1288,13 +1285,13 @@ func (client *ContainerClient) restoreCreateRequest(ctx context.Context, options
|
|||
return nil, err
|
||||
}
|
||||
reqQP := req.Raw().URL.Query()
|
||||
reqQP.Set("restype", "container")
|
||||
reqQP.Set("comp", "undelete")
|
||||
reqQP.Set("restype", "container")
|
||||
if options != nil && options.Timeout != nil {
|
||||
reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10))
|
||||
}
|
||||
req.Raw().URL.RawQuery = reqQP.Encode()
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
|
|
@ -1304,7 +1301,7 @@ func (client *ContainerClient) restoreCreateRequest(ctx context.Context, options
|
|||
if options != nil && options.DeletedContainerVersion != nil {
|
||||
req.Raw().Header["x-ms-deleted-container-version"] = []string{*options.DeletedContainerVersion}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
return req, nil
|
||||
}
|
||||
|
||||
|
|
@ -1365,29 +1362,29 @@ func (client *ContainerClient) setAccessPolicyCreateRequest(ctx context.Context,
|
|||
return nil, err
|
||||
}
|
||||
reqQP := req.Raw().URL.Query()
|
||||
reqQP.Set("restype", "container")
|
||||
reqQP.Set("comp", "acl")
|
||||
reqQP.Set("restype", "container")
|
||||
if options != nil && options.Timeout != nil {
|
||||
reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10))
|
||||
}
|
||||
req.Raw().URL.RawQuery = reqQP.Encode()
|
||||
if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil {
|
||||
req.Raw().Header["x-ms-lease-id"] = []string{*leaseAccessConditions.LeaseID}
|
||||
}
|
||||
if options != nil && options.Access != nil {
|
||||
req.Raw().Header["x-ms-blob-public-access"] = []string{string(*options.Access)}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfModifiedSince != nil {
|
||||
req.Raw().Header["If-Modified-Since"] = []string{(*modifiedAccessConditions.IfModifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfUnmodifiedSince != nil {
|
||||
req.Raw().Header["If-Unmodified-Since"] = []string{(*modifiedAccessConditions.IfUnmodifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
if options != nil && options.Access != nil {
|
||||
req.Raw().Header["x-ms-blob-public-access"] = []string{string(*options.Access)}
|
||||
}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil {
|
||||
req.Raw().Header["x-ms-lease-id"] = []string{*leaseAccessConditions.LeaseID}
|
||||
}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
type wrapper struct {
|
||||
XMLName xml.Name `xml:"SignedIdentifiers"`
|
||||
ContainerACL *[]*SignedIdentifier `xml:"SignedIdentifier"`
|
||||
|
|
@ -1462,12 +1459,19 @@ func (client *ContainerClient) setMetadataCreateRequest(ctx context.Context, opt
|
|||
return nil, err
|
||||
}
|
||||
reqQP := req.Raw().URL.Query()
|
||||
reqQP.Set("restype", "container")
|
||||
reqQP.Set("comp", "metadata")
|
||||
reqQP.Set("restype", "container")
|
||||
if options != nil && options.Timeout != nil {
|
||||
reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10))
|
||||
}
|
||||
req.Raw().URL.RawQuery = reqQP.Encode()
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfModifiedSince != nil {
|
||||
req.Raw().Header["If-Modified-Since"] = []string{(*modifiedAccessConditions.IfModifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil {
|
||||
req.Raw().Header["x-ms-lease-id"] = []string{*leaseAccessConditions.LeaseID}
|
||||
}
|
||||
|
|
@ -1478,14 +1482,7 @@ func (client *ContainerClient) setMetadataCreateRequest(ctx context.Context, opt
|
|||
}
|
||||
}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfModifiedSince != nil {
|
||||
req.Raw().Header["If-Modified-Since"] = []string{(*modifiedAccessConditions.IfModifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
return req, nil
|
||||
}
|
||||
|
||||
|
|
@ -1555,20 +1552,20 @@ func (client *ContainerClient) submitBatchCreateRequest(ctx context.Context, con
|
|||
return nil, err
|
||||
}
|
||||
reqQP := req.Raw().URL.Query()
|
||||
reqQP.Set("restype", "container")
|
||||
reqQP.Set("comp", "batch")
|
||||
reqQP.Set("restype", "container")
|
||||
if options != nil && options.Timeout != nil {
|
||||
reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10))
|
||||
}
|
||||
req.Raw().URL.RawQuery = reqQP.Encode()
|
||||
runtime.SkipBodyDownload(req)
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
req.Raw().Header["Content-Length"] = []string{strconv.FormatInt(contentLength, 10)}
|
||||
req.Raw().Header["Content-Type"] = []string{multipartContentType}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
if err := req.SetBody(body, multipartContentType); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,3 @@
|
|||
//go:build go1.18
|
||||
// +build go1.18
|
||||
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
// Code generated by Microsoft (R) AutoRest Code Generator. DO NOT EDIT.
|
||||
|
|
|
|||
|
|
@ -1,6 +1,3 @@
|
|||
//go:build go1.18
|
||||
// +build go1.18
|
||||
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
// Code generated by Microsoft (R) AutoRest Code Generator. DO NOT EDIT.
|
||||
|
|
@ -46,8 +43,12 @@ func (a *AccessPolicy) UnmarshalXML(dec *xml.Decoder, start xml.StartElement) er
|
|||
if err := dec.DecodeElement(aux, &start); err != nil {
|
||||
return err
|
||||
}
|
||||
a.Expiry = (*time.Time)(aux.Expiry)
|
||||
a.Start = (*time.Time)(aux.Start)
|
||||
if aux.Expiry != nil && !(*time.Time)(aux.Expiry).IsZero() {
|
||||
a.Expiry = (*time.Time)(aux.Expiry)
|
||||
}
|
||||
if aux.Start != nil && !(*time.Time)(aux.Start).IsZero() {
|
||||
a.Start = (*time.Time)(aux.Start)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
@ -152,19 +153,35 @@ func (b *BlobProperties) UnmarshalXML(dec *xml.Decoder, start xml.StartElement)
|
|||
if err := dec.DecodeElement(aux, &start); err != nil {
|
||||
return err
|
||||
}
|
||||
b.AccessTierChangeTime = (*time.Time)(aux.AccessTierChangeTime)
|
||||
if aux.AccessTierChangeTime != nil && !(*time.Time)(aux.AccessTierChangeTime).IsZero() {
|
||||
b.AccessTierChangeTime = (*time.Time)(aux.AccessTierChangeTime)
|
||||
}
|
||||
if aux.ContentMD5 != nil {
|
||||
if err := runtime.DecodeByteArray(*aux.ContentMD5, &b.ContentMD5, runtime.Base64StdFormat); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
b.CopyCompletionTime = (*time.Time)(aux.CopyCompletionTime)
|
||||
b.CreationTime = (*time.Time)(aux.CreationTime)
|
||||
b.DeletedTime = (*time.Time)(aux.DeletedTime)
|
||||
b.ExpiresOn = (*time.Time)(aux.ExpiresOn)
|
||||
b.ImmutabilityPolicyExpiresOn = (*time.Time)(aux.ImmutabilityPolicyExpiresOn)
|
||||
b.LastAccessedOn = (*time.Time)(aux.LastAccessedOn)
|
||||
b.LastModified = (*time.Time)(aux.LastModified)
|
||||
if aux.CopyCompletionTime != nil && !(*time.Time)(aux.CopyCompletionTime).IsZero() {
|
||||
b.CopyCompletionTime = (*time.Time)(aux.CopyCompletionTime)
|
||||
}
|
||||
if aux.CreationTime != nil && !(*time.Time)(aux.CreationTime).IsZero() {
|
||||
b.CreationTime = (*time.Time)(aux.CreationTime)
|
||||
}
|
||||
if aux.DeletedTime != nil && !(*time.Time)(aux.DeletedTime).IsZero() {
|
||||
b.DeletedTime = (*time.Time)(aux.DeletedTime)
|
||||
}
|
||||
if aux.ExpiresOn != nil && !(*time.Time)(aux.ExpiresOn).IsZero() {
|
||||
b.ExpiresOn = (*time.Time)(aux.ExpiresOn)
|
||||
}
|
||||
if aux.ImmutabilityPolicyExpiresOn != nil && !(*time.Time)(aux.ImmutabilityPolicyExpiresOn).IsZero() {
|
||||
b.ImmutabilityPolicyExpiresOn = (*time.Time)(aux.ImmutabilityPolicyExpiresOn)
|
||||
}
|
||||
if aux.LastAccessedOn != nil && !(*time.Time)(aux.LastAccessedOn).IsZero() {
|
||||
b.LastAccessedOn = (*time.Time)(aux.LastAccessedOn)
|
||||
}
|
||||
if aux.LastModified != nil && !(*time.Time)(aux.LastModified).IsZero() {
|
||||
b.LastModified = (*time.Time)(aux.LastModified)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
@ -271,8 +288,12 @@ func (c *ContainerProperties) UnmarshalXML(dec *xml.Decoder, start xml.StartElem
|
|||
if err := dec.DecodeElement(aux, &start); err != nil {
|
||||
return err
|
||||
}
|
||||
c.DeletedTime = (*time.Time)(aux.DeletedTime)
|
||||
c.LastModified = (*time.Time)(aux.LastModified)
|
||||
if aux.DeletedTime != nil && !(*time.Time)(aux.DeletedTime).IsZero() {
|
||||
c.DeletedTime = (*time.Time)(aux.DeletedTime)
|
||||
}
|
||||
if aux.LastModified != nil && !(*time.Time)(aux.LastModified).IsZero() {
|
||||
c.LastModified = (*time.Time)(aux.LastModified)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
@ -316,7 +337,9 @@ func (g *GeoReplication) UnmarshalXML(dec *xml.Decoder, start xml.StartElement)
|
|||
if err := dec.DecodeElement(aux, &start); err != nil {
|
||||
return err
|
||||
}
|
||||
g.LastSyncTime = (*time.Time)(aux.LastSyncTime)
|
||||
if aux.LastSyncTime != nil && !(*time.Time)(aux.LastSyncTime).IsZero() {
|
||||
g.LastSyncTime = (*time.Time)(aux.LastSyncTime)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
@ -436,8 +459,12 @@ func (u *UserDelegationKey) UnmarshalXML(dec *xml.Decoder, start xml.StartElemen
|
|||
if err := dec.DecodeElement(aux, &start); err != nil {
|
||||
return err
|
||||
}
|
||||
u.SignedExpiry = (*time.Time)(aux.SignedExpiry)
|
||||
u.SignedStart = (*time.Time)(aux.SignedStart)
|
||||
if aux.SignedExpiry != nil && !(*time.Time)(aux.SignedExpiry).IsZero() {
|
||||
u.SignedExpiry = (*time.Time)(aux.SignedExpiry)
|
||||
}
|
||||
if aux.SignedStart != nil && !(*time.Time)(aux.SignedStart).IsZero() {
|
||||
u.SignedStart = (*time.Time)(aux.SignedStart)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
@ -451,18 +478,8 @@ func populate(m map[string]any, k string, v any) {
|
|||
}
|
||||
}
|
||||
|
||||
func populateAny(m map[string]any, k string, v any) {
|
||||
if v == nil {
|
||||
return
|
||||
} else if azcore.IsNullValue(v) {
|
||||
m[k] = nil
|
||||
} else {
|
||||
m[k] = v
|
||||
}
|
||||
}
|
||||
|
||||
func unpopulate(data json.RawMessage, fn string, v any) error {
|
||||
if data == nil {
|
||||
if data == nil || string(data) == "null" {
|
||||
return nil
|
||||
}
|
||||
if err := json.Unmarshal(data, v); err != nil {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,3 @@
|
|||
//go:build go1.18
|
||||
// +build go1.18
|
||||
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
// Code generated by Microsoft (R) AutoRest Code Generator. DO NOT EDIT.
|
||||
|
|
|
|||
|
|
@ -1,6 +1,3 @@
|
|||
//go:build go1.18
|
||||
// +build go1.18
|
||||
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
// Code generated by Microsoft (R) AutoRest Code Generator. DO NOT EDIT.
|
||||
|
|
@ -69,13 +66,25 @@ func (client *PageBlobClient) clearPagesCreateRequest(ctx context.Context, conte
|
|||
reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10))
|
||||
}
|
||||
req.Raw().URL.RawQuery = reqQP.Encode()
|
||||
req.Raw().Header["x-ms-page-write"] = []string{"clear"}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
req.Raw().Header["Content-Length"] = []string{strconv.FormatInt(contentLength, 10)}
|
||||
if options != nil && options.Range != nil {
|
||||
req.Raw().Header["x-ms-range"] = []string{*options.Range}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfMatch != nil {
|
||||
req.Raw().Header["If-Match"] = []string{string(*modifiedAccessConditions.IfMatch)}
|
||||
}
|
||||
if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil {
|
||||
req.Raw().Header["x-ms-lease-id"] = []string{*leaseAccessConditions.LeaseID}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfModifiedSince != nil {
|
||||
req.Raw().Header["If-Modified-Since"] = []string{(*modifiedAccessConditions.IfModifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfNoneMatch != nil {
|
||||
req.Raw().Header["If-None-Match"] = []string{string(*modifiedAccessConditions.IfNoneMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfUnmodifiedSince != nil {
|
||||
req.Raw().Header["If-Unmodified-Since"] = []string{(*modifiedAccessConditions.IfUnmodifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionAlgorithm != nil {
|
||||
req.Raw().Header["x-ms-encryption-algorithm"] = []string{string(*cpkInfo.EncryptionAlgorithm)}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionKey != nil {
|
||||
req.Raw().Header["x-ms-encryption-key"] = []string{*cpkInfo.EncryptionKey}
|
||||
|
|
@ -83,41 +92,29 @@ func (client *PageBlobClient) clearPagesCreateRequest(ctx context.Context, conte
|
|||
if cpkInfo != nil && cpkInfo.EncryptionKeySHA256 != nil {
|
||||
req.Raw().Header["x-ms-encryption-key-sha256"] = []string{*cpkInfo.EncryptionKeySHA256}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionAlgorithm != nil {
|
||||
req.Raw().Header["x-ms-encryption-algorithm"] = []string{string(*cpkInfo.EncryptionAlgorithm)}
|
||||
}
|
||||
if cpkScopeInfo != nil && cpkScopeInfo.EncryptionScope != nil {
|
||||
req.Raw().Header["x-ms-encryption-scope"] = []string{*cpkScopeInfo.EncryptionScope}
|
||||
}
|
||||
if sequenceNumberAccessConditions != nil && sequenceNumberAccessConditions.IfSequenceNumberEqualTo != nil {
|
||||
req.Raw().Header["x-ms-if-sequence-number-eq"] = []string{strconv.FormatInt(*sequenceNumberAccessConditions.IfSequenceNumberEqualTo, 10)}
|
||||
}
|
||||
if sequenceNumberAccessConditions != nil && sequenceNumberAccessConditions.IfSequenceNumberLessThanOrEqualTo != nil {
|
||||
req.Raw().Header["x-ms-if-sequence-number-le"] = []string{strconv.FormatInt(*sequenceNumberAccessConditions.IfSequenceNumberLessThanOrEqualTo, 10)}
|
||||
}
|
||||
if sequenceNumberAccessConditions != nil && sequenceNumberAccessConditions.IfSequenceNumberLessThan != nil {
|
||||
req.Raw().Header["x-ms-if-sequence-number-lt"] = []string{strconv.FormatInt(*sequenceNumberAccessConditions.IfSequenceNumberLessThan, 10)}
|
||||
}
|
||||
if sequenceNumberAccessConditions != nil && sequenceNumberAccessConditions.IfSequenceNumberEqualTo != nil {
|
||||
req.Raw().Header["x-ms-if-sequence-number-eq"] = []string{strconv.FormatInt(*sequenceNumberAccessConditions.IfSequenceNumberEqualTo, 10)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfModifiedSince != nil {
|
||||
req.Raw().Header["If-Modified-Since"] = []string{(*modifiedAccessConditions.IfModifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfUnmodifiedSince != nil {
|
||||
req.Raw().Header["If-Unmodified-Since"] = []string{(*modifiedAccessConditions.IfUnmodifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfMatch != nil {
|
||||
req.Raw().Header["If-Match"] = []string{string(*modifiedAccessConditions.IfMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfNoneMatch != nil {
|
||||
req.Raw().Header["If-None-Match"] = []string{string(*modifiedAccessConditions.IfNoneMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfTags != nil {
|
||||
req.Raw().Header["x-ms-if-tags"] = []string{*modifiedAccessConditions.IfTags}
|
||||
}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil {
|
||||
req.Raw().Header["x-ms-lease-id"] = []string{*leaseAccessConditions.LeaseID}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
req.Raw().Header["x-ms-page-write"] = []string{"clear"}
|
||||
if options != nil && options.Range != nil {
|
||||
req.Raw().Header["x-ms-range"] = []string{*options.Range}
|
||||
}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
return req, nil
|
||||
}
|
||||
|
||||
|
|
@ -218,27 +215,27 @@ func (client *PageBlobClient) copyIncrementalCreateRequest(ctx context.Context,
|
|||
reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10))
|
||||
}
|
||||
req.Raw().URL.RawQuery = reqQP.Encode()
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfModifiedSince != nil {
|
||||
req.Raw().Header["If-Modified-Since"] = []string{(*modifiedAccessConditions.IfModifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfUnmodifiedSince != nil {
|
||||
req.Raw().Header["If-Unmodified-Since"] = []string{(*modifiedAccessConditions.IfUnmodifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfMatch != nil {
|
||||
req.Raw().Header["If-Match"] = []string{string(*modifiedAccessConditions.IfMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfModifiedSince != nil {
|
||||
req.Raw().Header["If-Modified-Since"] = []string{(*modifiedAccessConditions.IfModifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfNoneMatch != nil {
|
||||
req.Raw().Header["If-None-Match"] = []string{string(*modifiedAccessConditions.IfNoneMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfTags != nil {
|
||||
req.Raw().Header["x-ms-if-tags"] = []string{*modifiedAccessConditions.IfTags}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfUnmodifiedSince != nil {
|
||||
req.Raw().Header["If-Unmodified-Since"] = []string{(*modifiedAccessConditions.IfUnmodifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
req.Raw().Header["x-ms-copy-source"] = []string{copySource}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
req.Raw().Header["x-ms-copy-source"] = []string{copySource}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfTags != nil {
|
||||
req.Raw().Header["x-ms-if-tags"] = []string{*modifiedAccessConditions.IfTags}
|
||||
}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
return req, nil
|
||||
}
|
||||
|
||||
|
|
@ -322,13 +319,28 @@ func (client *PageBlobClient) createCreateRequest(ctx context.Context, contentLe
|
|||
reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10))
|
||||
}
|
||||
req.Raw().URL.RawQuery = reqQP.Encode()
|
||||
req.Raw().Header["x-ms-blob-type"] = []string{"PageBlob"}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
req.Raw().Header["Content-Length"] = []string{strconv.FormatInt(contentLength, 10)}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfMatch != nil {
|
||||
req.Raw().Header["If-Match"] = []string{string(*modifiedAccessConditions.IfMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfModifiedSince != nil {
|
||||
req.Raw().Header["If-Modified-Since"] = []string{(*modifiedAccessConditions.IfModifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfNoneMatch != nil {
|
||||
req.Raw().Header["If-None-Match"] = []string{string(*modifiedAccessConditions.IfNoneMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfUnmodifiedSince != nil {
|
||||
req.Raw().Header["If-Unmodified-Since"] = []string{(*modifiedAccessConditions.IfUnmodifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if options != nil && options.Tier != nil {
|
||||
req.Raw().Header["x-ms-access-tier"] = []string{string(*options.Tier)}
|
||||
}
|
||||
if blobHTTPHeaders != nil && blobHTTPHeaders.BlobContentType != nil {
|
||||
req.Raw().Header["x-ms-blob-content-type"] = []string{*blobHTTPHeaders.BlobContentType}
|
||||
if blobHTTPHeaders != nil && blobHTTPHeaders.BlobCacheControl != nil {
|
||||
req.Raw().Header["x-ms-blob-cache-control"] = []string{*blobHTTPHeaders.BlobCacheControl}
|
||||
}
|
||||
if blobHTTPHeaders != nil && blobHTTPHeaders.BlobContentDisposition != nil {
|
||||
req.Raw().Header["x-ms-blob-content-disposition"] = []string{*blobHTTPHeaders.BlobContentDisposition}
|
||||
}
|
||||
if blobHTTPHeaders != nil && blobHTTPHeaders.BlobContentEncoding != nil {
|
||||
req.Raw().Header["x-ms-blob-content-encoding"] = []string{*blobHTTPHeaders.BlobContentEncoding}
|
||||
|
|
@ -336,11 +348,46 @@ func (client *PageBlobClient) createCreateRequest(ctx context.Context, contentLe
|
|||
if blobHTTPHeaders != nil && blobHTTPHeaders.BlobContentLanguage != nil {
|
||||
req.Raw().Header["x-ms-blob-content-language"] = []string{*blobHTTPHeaders.BlobContentLanguage}
|
||||
}
|
||||
req.Raw().Header["x-ms-blob-content-length"] = []string{strconv.FormatInt(blobContentLength, 10)}
|
||||
if blobHTTPHeaders != nil && blobHTTPHeaders.BlobContentMD5 != nil {
|
||||
req.Raw().Header["x-ms-blob-content-md5"] = []string{base64.StdEncoding.EncodeToString(blobHTTPHeaders.BlobContentMD5)}
|
||||
}
|
||||
if blobHTTPHeaders != nil && blobHTTPHeaders.BlobCacheControl != nil {
|
||||
req.Raw().Header["x-ms-blob-cache-control"] = []string{*blobHTTPHeaders.BlobCacheControl}
|
||||
if blobHTTPHeaders != nil && blobHTTPHeaders.BlobContentType != nil {
|
||||
req.Raw().Header["x-ms-blob-content-type"] = []string{*blobHTTPHeaders.BlobContentType}
|
||||
}
|
||||
if options != nil && options.BlobSequenceNumber != nil {
|
||||
req.Raw().Header["x-ms-blob-sequence-number"] = []string{strconv.FormatInt(*options.BlobSequenceNumber, 10)}
|
||||
}
|
||||
req.Raw().Header["x-ms-blob-type"] = []string{"PageBlob"}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionAlgorithm != nil {
|
||||
req.Raw().Header["x-ms-encryption-algorithm"] = []string{string(*cpkInfo.EncryptionAlgorithm)}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionKey != nil {
|
||||
req.Raw().Header["x-ms-encryption-key"] = []string{*cpkInfo.EncryptionKey}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionKeySHA256 != nil {
|
||||
req.Raw().Header["x-ms-encryption-key-sha256"] = []string{*cpkInfo.EncryptionKeySHA256}
|
||||
}
|
||||
if cpkScopeInfo != nil && cpkScopeInfo.EncryptionScope != nil {
|
||||
req.Raw().Header["x-ms-encryption-scope"] = []string{*cpkScopeInfo.EncryptionScope}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfTags != nil {
|
||||
req.Raw().Header["x-ms-if-tags"] = []string{*modifiedAccessConditions.IfTags}
|
||||
}
|
||||
if options != nil && options.ImmutabilityPolicyMode != nil {
|
||||
req.Raw().Header["x-ms-immutability-policy-mode"] = []string{string(*options.ImmutabilityPolicyMode)}
|
||||
}
|
||||
if options != nil && options.ImmutabilityPolicyExpiry != nil {
|
||||
req.Raw().Header["x-ms-immutability-policy-until-date"] = []string{(*options.ImmutabilityPolicyExpiry).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil {
|
||||
req.Raw().Header["x-ms-lease-id"] = []string{*leaseAccessConditions.LeaseID}
|
||||
}
|
||||
if options != nil && options.LegalHold != nil {
|
||||
req.Raw().Header["x-ms-legal-hold"] = []string{strconv.FormatBool(*options.LegalHold)}
|
||||
}
|
||||
if options != nil && options.Metadata != nil {
|
||||
for k, v := range options.Metadata {
|
||||
|
|
@ -349,60 +396,10 @@ func (client *PageBlobClient) createCreateRequest(ctx context.Context, contentLe
|
|||
}
|
||||
}
|
||||
}
|
||||
if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil {
|
||||
req.Raw().Header["x-ms-lease-id"] = []string{*leaseAccessConditions.LeaseID}
|
||||
}
|
||||
if blobHTTPHeaders != nil && blobHTTPHeaders.BlobContentDisposition != nil {
|
||||
req.Raw().Header["x-ms-blob-content-disposition"] = []string{*blobHTTPHeaders.BlobContentDisposition}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionKey != nil {
|
||||
req.Raw().Header["x-ms-encryption-key"] = []string{*cpkInfo.EncryptionKey}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionKeySHA256 != nil {
|
||||
req.Raw().Header["x-ms-encryption-key-sha256"] = []string{*cpkInfo.EncryptionKeySHA256}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionAlgorithm != nil {
|
||||
req.Raw().Header["x-ms-encryption-algorithm"] = []string{string(*cpkInfo.EncryptionAlgorithm)}
|
||||
}
|
||||
if cpkScopeInfo != nil && cpkScopeInfo.EncryptionScope != nil {
|
||||
req.Raw().Header["x-ms-encryption-scope"] = []string{*cpkScopeInfo.EncryptionScope}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfModifiedSince != nil {
|
||||
req.Raw().Header["If-Modified-Since"] = []string{(*modifiedAccessConditions.IfModifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfUnmodifiedSince != nil {
|
||||
req.Raw().Header["If-Unmodified-Since"] = []string{(*modifiedAccessConditions.IfUnmodifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfMatch != nil {
|
||||
req.Raw().Header["If-Match"] = []string{string(*modifiedAccessConditions.IfMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfNoneMatch != nil {
|
||||
req.Raw().Header["If-None-Match"] = []string{string(*modifiedAccessConditions.IfNoneMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfTags != nil {
|
||||
req.Raw().Header["x-ms-if-tags"] = []string{*modifiedAccessConditions.IfTags}
|
||||
}
|
||||
req.Raw().Header["x-ms-blob-content-length"] = []string{strconv.FormatInt(blobContentLength, 10)}
|
||||
if options != nil && options.BlobSequenceNumber != nil {
|
||||
req.Raw().Header["x-ms-blob-sequence-number"] = []string{strconv.FormatInt(*options.BlobSequenceNumber, 10)}
|
||||
}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
if options != nil && options.BlobTagsString != nil {
|
||||
req.Raw().Header["x-ms-tags"] = []string{*options.BlobTagsString}
|
||||
}
|
||||
if options != nil && options.ImmutabilityPolicyExpiry != nil {
|
||||
req.Raw().Header["x-ms-immutability-policy-until-date"] = []string{(*options.ImmutabilityPolicyExpiry).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if options != nil && options.ImmutabilityPolicyMode != nil {
|
||||
req.Raw().Header["x-ms-immutability-policy-mode"] = []string{string(*options.ImmutabilityPolicyMode)}
|
||||
}
|
||||
if options != nil && options.LegalHold != nil {
|
||||
req.Raw().Header["x-ms-legal-hold"] = []string{strconv.FormatBool(*options.LegalHold)}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
return req, nil
|
||||
}
|
||||
|
||||
|
|
@ -498,45 +495,45 @@ func (client *PageBlobClient) GetPageRangesCreateRequest(ctx context.Context, op
|
|||
}
|
||||
reqQP := req.Raw().URL.Query()
|
||||
reqQP.Set("comp", "pagelist")
|
||||
if options != nil && options.Snapshot != nil {
|
||||
reqQP.Set("snapshot", *options.Snapshot)
|
||||
}
|
||||
if options != nil && options.Timeout != nil {
|
||||
reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10))
|
||||
}
|
||||
if options != nil && options.Marker != nil {
|
||||
reqQP.Set("marker", *options.Marker)
|
||||
}
|
||||
if options != nil && options.Maxresults != nil {
|
||||
reqQP.Set("maxresults", strconv.FormatInt(int64(*options.Maxresults), 10))
|
||||
}
|
||||
req.Raw().URL.RawQuery = reqQP.Encode()
|
||||
if options != nil && options.Range != nil {
|
||||
req.Raw().Header["x-ms-range"] = []string{*options.Range}
|
||||
if options != nil && options.Snapshot != nil {
|
||||
reqQP.Set("snapshot", *options.Snapshot)
|
||||
}
|
||||
if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil {
|
||||
req.Raw().Header["x-ms-lease-id"] = []string{*leaseAccessConditions.LeaseID}
|
||||
if options != nil && options.Timeout != nil {
|
||||
reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10))
|
||||
}
|
||||
req.Raw().URL.RawQuery = reqQP.Encode()
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfMatch != nil {
|
||||
req.Raw().Header["If-Match"] = []string{string(*modifiedAccessConditions.IfMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfModifiedSince != nil {
|
||||
req.Raw().Header["If-Modified-Since"] = []string{(*modifiedAccessConditions.IfModifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfNoneMatch != nil {
|
||||
req.Raw().Header["If-None-Match"] = []string{string(*modifiedAccessConditions.IfNoneMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfUnmodifiedSince != nil {
|
||||
req.Raw().Header["If-Unmodified-Since"] = []string{(*modifiedAccessConditions.IfUnmodifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfMatch != nil {
|
||||
req.Raw().Header["If-Match"] = []string{string(*modifiedAccessConditions.IfMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfNoneMatch != nil {
|
||||
req.Raw().Header["If-None-Match"] = []string{string(*modifiedAccessConditions.IfNoneMatch)}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfTags != nil {
|
||||
req.Raw().Header["x-ms-if-tags"] = []string{*modifiedAccessConditions.IfTags}
|
||||
}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil {
|
||||
req.Raw().Header["x-ms-lease-id"] = []string{*leaseAccessConditions.LeaseID}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
if options != nil && options.Range != nil {
|
||||
req.Raw().Header["x-ms-range"] = []string{*options.Range}
|
||||
}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
return req, nil
|
||||
}
|
||||
|
||||
|
|
@ -619,51 +616,51 @@ func (client *PageBlobClient) GetPageRangesDiffCreateRequest(ctx context.Context
|
|||
}
|
||||
reqQP := req.Raw().URL.Query()
|
||||
reqQP.Set("comp", "pagelist")
|
||||
if options != nil && options.Snapshot != nil {
|
||||
reqQP.Set("snapshot", *options.Snapshot)
|
||||
}
|
||||
if options != nil && options.Timeout != nil {
|
||||
reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10))
|
||||
}
|
||||
if options != nil && options.Prevsnapshot != nil {
|
||||
reqQP.Set("prevsnapshot", *options.Prevsnapshot)
|
||||
}
|
||||
if options != nil && options.Marker != nil {
|
||||
reqQP.Set("marker", *options.Marker)
|
||||
}
|
||||
if options != nil && options.Maxresults != nil {
|
||||
reqQP.Set("maxresults", strconv.FormatInt(int64(*options.Maxresults), 10))
|
||||
}
|
||||
if options != nil && options.Prevsnapshot != nil {
|
||||
reqQP.Set("prevsnapshot", *options.Prevsnapshot)
|
||||
}
|
||||
if options != nil && options.Snapshot != nil {
|
||||
reqQP.Set("snapshot", *options.Snapshot)
|
||||
}
|
||||
if options != nil && options.Timeout != nil {
|
||||
reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10))
|
||||
}
|
||||
req.Raw().URL.RawQuery = reqQP.Encode()
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfMatch != nil {
|
||||
req.Raw().Header["If-Match"] = []string{string(*modifiedAccessConditions.IfMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfModifiedSince != nil {
|
||||
req.Raw().Header["If-Modified-Since"] = []string{(*modifiedAccessConditions.IfModifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfNoneMatch != nil {
|
||||
req.Raw().Header["If-None-Match"] = []string{string(*modifiedAccessConditions.IfNoneMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfUnmodifiedSince != nil {
|
||||
req.Raw().Header["If-Unmodified-Since"] = []string{(*modifiedAccessConditions.IfUnmodifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfTags != nil {
|
||||
req.Raw().Header["x-ms-if-tags"] = []string{*modifiedAccessConditions.IfTags}
|
||||
}
|
||||
if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil {
|
||||
req.Raw().Header["x-ms-lease-id"] = []string{*leaseAccessConditions.LeaseID}
|
||||
}
|
||||
if options != nil && options.PrevSnapshotURL != nil {
|
||||
req.Raw().Header["x-ms-previous-snapshot-url"] = []string{*options.PrevSnapshotURL}
|
||||
}
|
||||
if options != nil && options.Range != nil {
|
||||
req.Raw().Header["x-ms-range"] = []string{*options.Range}
|
||||
}
|
||||
if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil {
|
||||
req.Raw().Header["x-ms-lease-id"] = []string{*leaseAccessConditions.LeaseID}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfModifiedSince != nil {
|
||||
req.Raw().Header["If-Modified-Since"] = []string{(*modifiedAccessConditions.IfModifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfUnmodifiedSince != nil {
|
||||
req.Raw().Header["If-Unmodified-Since"] = []string{(*modifiedAccessConditions.IfUnmodifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfMatch != nil {
|
||||
req.Raw().Header["If-Match"] = []string{string(*modifiedAccessConditions.IfMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfNoneMatch != nil {
|
||||
req.Raw().Header["If-None-Match"] = []string{string(*modifiedAccessConditions.IfNoneMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfTags != nil {
|
||||
req.Raw().Header["x-ms-if-tags"] = []string{*modifiedAccessConditions.IfTags}
|
||||
}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
return req, nil
|
||||
}
|
||||
|
||||
|
|
@ -750,8 +747,25 @@ func (client *PageBlobClient) resizeCreateRequest(ctx context.Context, blobConte
|
|||
reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10))
|
||||
}
|
||||
req.Raw().URL.RawQuery = reqQP.Encode()
|
||||
if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil {
|
||||
req.Raw().Header["x-ms-lease-id"] = []string{*leaseAccessConditions.LeaseID}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfMatch != nil {
|
||||
req.Raw().Header["If-Match"] = []string{string(*modifiedAccessConditions.IfMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfModifiedSince != nil {
|
||||
req.Raw().Header["If-Modified-Since"] = []string{(*modifiedAccessConditions.IfModifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfNoneMatch != nil {
|
||||
req.Raw().Header["If-None-Match"] = []string{string(*modifiedAccessConditions.IfNoneMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfUnmodifiedSince != nil {
|
||||
req.Raw().Header["If-Unmodified-Since"] = []string{(*modifiedAccessConditions.IfUnmodifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
req.Raw().Header["x-ms-blob-content-length"] = []string{strconv.FormatInt(blobContentLength, 10)}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionAlgorithm != nil {
|
||||
req.Raw().Header["x-ms-encryption-algorithm"] = []string{string(*cpkInfo.EncryptionAlgorithm)}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionKey != nil {
|
||||
req.Raw().Header["x-ms-encryption-key"] = []string{*cpkInfo.EncryptionKey}
|
||||
|
|
@ -759,33 +773,16 @@ func (client *PageBlobClient) resizeCreateRequest(ctx context.Context, blobConte
|
|||
if cpkInfo != nil && cpkInfo.EncryptionKeySHA256 != nil {
|
||||
req.Raw().Header["x-ms-encryption-key-sha256"] = []string{*cpkInfo.EncryptionKeySHA256}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionAlgorithm != nil {
|
||||
req.Raw().Header["x-ms-encryption-algorithm"] = []string{string(*cpkInfo.EncryptionAlgorithm)}
|
||||
}
|
||||
if cpkScopeInfo != nil && cpkScopeInfo.EncryptionScope != nil {
|
||||
req.Raw().Header["x-ms-encryption-scope"] = []string{*cpkScopeInfo.EncryptionScope}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfModifiedSince != nil {
|
||||
req.Raw().Header["If-Modified-Since"] = []string{(*modifiedAccessConditions.IfModifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfUnmodifiedSince != nil {
|
||||
req.Raw().Header["If-Unmodified-Since"] = []string{(*modifiedAccessConditions.IfUnmodifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfMatch != nil {
|
||||
req.Raw().Header["If-Match"] = []string{string(*modifiedAccessConditions.IfMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfNoneMatch != nil {
|
||||
req.Raw().Header["If-None-Match"] = []string{string(*modifiedAccessConditions.IfNoneMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfTags != nil {
|
||||
req.Raw().Header["x-ms-if-tags"] = []string{*modifiedAccessConditions.IfTags}
|
||||
}
|
||||
req.Raw().Header["x-ms-blob-content-length"] = []string{strconv.FormatInt(blobContentLength, 10)}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil {
|
||||
req.Raw().Header["x-ms-lease-id"] = []string{*leaseAccessConditions.LeaseID}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
return req, nil
|
||||
}
|
||||
|
||||
|
|
@ -868,33 +865,33 @@ func (client *PageBlobClient) updateSequenceNumberCreateRequest(ctx context.Cont
|
|||
reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10))
|
||||
}
|
||||
req.Raw().URL.RawQuery = reqQP.Encode()
|
||||
if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil {
|
||||
req.Raw().Header["x-ms-lease-id"] = []string{*leaseAccessConditions.LeaseID}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfMatch != nil {
|
||||
req.Raw().Header["If-Match"] = []string{string(*modifiedAccessConditions.IfMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfModifiedSince != nil {
|
||||
req.Raw().Header["If-Modified-Since"] = []string{(*modifiedAccessConditions.IfModifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfNoneMatch != nil {
|
||||
req.Raw().Header["If-None-Match"] = []string{string(*modifiedAccessConditions.IfNoneMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfUnmodifiedSince != nil {
|
||||
req.Raw().Header["If-Unmodified-Since"] = []string{(*modifiedAccessConditions.IfUnmodifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfMatch != nil {
|
||||
req.Raw().Header["If-Match"] = []string{string(*modifiedAccessConditions.IfMatch)}
|
||||
if options != nil && options.BlobSequenceNumber != nil {
|
||||
req.Raw().Header["x-ms-blob-sequence-number"] = []string{strconv.FormatInt(*options.BlobSequenceNumber, 10)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfNoneMatch != nil {
|
||||
req.Raw().Header["If-None-Match"] = []string{string(*modifiedAccessConditions.IfNoneMatch)}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfTags != nil {
|
||||
req.Raw().Header["x-ms-if-tags"] = []string{*modifiedAccessConditions.IfTags}
|
||||
}
|
||||
if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil {
|
||||
req.Raw().Header["x-ms-lease-id"] = []string{*leaseAccessConditions.LeaseID}
|
||||
}
|
||||
req.Raw().Header["x-ms-sequence-number-action"] = []string{string(sequenceNumberAction)}
|
||||
if options != nil && options.BlobSequenceNumber != nil {
|
||||
req.Raw().Header["x-ms-blob-sequence-number"] = []string{strconv.FormatInt(*options.BlobSequenceNumber, 10)}
|
||||
}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
return req, nil
|
||||
}
|
||||
|
||||
|
|
@ -980,19 +977,31 @@ func (client *PageBlobClient) uploadPagesCreateRequest(ctx context.Context, cont
|
|||
reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10))
|
||||
}
|
||||
req.Raw().URL.RawQuery = reqQP.Encode()
|
||||
req.Raw().Header["x-ms-page-write"] = []string{"update"}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
req.Raw().Header["Content-Length"] = []string{strconv.FormatInt(contentLength, 10)}
|
||||
if options != nil && options.TransactionalContentMD5 != nil {
|
||||
req.Raw().Header["Content-MD5"] = []string{base64.StdEncoding.EncodeToString(options.TransactionalContentMD5)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfMatch != nil {
|
||||
req.Raw().Header["If-Match"] = []string{string(*modifiedAccessConditions.IfMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfModifiedSince != nil {
|
||||
req.Raw().Header["If-Modified-Since"] = []string{(*modifiedAccessConditions.IfModifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfNoneMatch != nil {
|
||||
req.Raw().Header["If-None-Match"] = []string{string(*modifiedAccessConditions.IfNoneMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfUnmodifiedSince != nil {
|
||||
req.Raw().Header["If-Unmodified-Since"] = []string{(*modifiedAccessConditions.IfUnmodifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
if options != nil && options.TransactionalContentCRC64 != nil {
|
||||
req.Raw().Header["x-ms-content-crc64"] = []string{base64.StdEncoding.EncodeToString(options.TransactionalContentCRC64)}
|
||||
}
|
||||
if options != nil && options.Range != nil {
|
||||
req.Raw().Header["x-ms-range"] = []string{*options.Range}
|
||||
}
|
||||
if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil {
|
||||
req.Raw().Header["x-ms-lease-id"] = []string{*leaseAccessConditions.LeaseID}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionAlgorithm != nil {
|
||||
req.Raw().Header["x-ms-encryption-algorithm"] = []string{string(*cpkInfo.EncryptionAlgorithm)}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionKey != nil {
|
||||
req.Raw().Header["x-ms-encryption-key"] = []string{*cpkInfo.EncryptionKey}
|
||||
|
|
@ -1000,41 +1009,29 @@ func (client *PageBlobClient) uploadPagesCreateRequest(ctx context.Context, cont
|
|||
if cpkInfo != nil && cpkInfo.EncryptionKeySHA256 != nil {
|
||||
req.Raw().Header["x-ms-encryption-key-sha256"] = []string{*cpkInfo.EncryptionKeySHA256}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionAlgorithm != nil {
|
||||
req.Raw().Header["x-ms-encryption-algorithm"] = []string{string(*cpkInfo.EncryptionAlgorithm)}
|
||||
}
|
||||
if cpkScopeInfo != nil && cpkScopeInfo.EncryptionScope != nil {
|
||||
req.Raw().Header["x-ms-encryption-scope"] = []string{*cpkScopeInfo.EncryptionScope}
|
||||
}
|
||||
if sequenceNumberAccessConditions != nil && sequenceNumberAccessConditions.IfSequenceNumberEqualTo != nil {
|
||||
req.Raw().Header["x-ms-if-sequence-number-eq"] = []string{strconv.FormatInt(*sequenceNumberAccessConditions.IfSequenceNumberEqualTo, 10)}
|
||||
}
|
||||
if sequenceNumberAccessConditions != nil && sequenceNumberAccessConditions.IfSequenceNumberLessThanOrEqualTo != nil {
|
||||
req.Raw().Header["x-ms-if-sequence-number-le"] = []string{strconv.FormatInt(*sequenceNumberAccessConditions.IfSequenceNumberLessThanOrEqualTo, 10)}
|
||||
}
|
||||
if sequenceNumberAccessConditions != nil && sequenceNumberAccessConditions.IfSequenceNumberLessThan != nil {
|
||||
req.Raw().Header["x-ms-if-sequence-number-lt"] = []string{strconv.FormatInt(*sequenceNumberAccessConditions.IfSequenceNumberLessThan, 10)}
|
||||
}
|
||||
if sequenceNumberAccessConditions != nil && sequenceNumberAccessConditions.IfSequenceNumberEqualTo != nil {
|
||||
req.Raw().Header["x-ms-if-sequence-number-eq"] = []string{strconv.FormatInt(*sequenceNumberAccessConditions.IfSequenceNumberEqualTo, 10)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfModifiedSince != nil {
|
||||
req.Raw().Header["If-Modified-Since"] = []string{(*modifiedAccessConditions.IfModifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfUnmodifiedSince != nil {
|
||||
req.Raw().Header["If-Unmodified-Since"] = []string{(*modifiedAccessConditions.IfUnmodifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfMatch != nil {
|
||||
req.Raw().Header["If-Match"] = []string{string(*modifiedAccessConditions.IfMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfNoneMatch != nil {
|
||||
req.Raw().Header["If-None-Match"] = []string{string(*modifiedAccessConditions.IfNoneMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfTags != nil {
|
||||
req.Raw().Header["x-ms-if-tags"] = []string{*modifiedAccessConditions.IfTags}
|
||||
}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil {
|
||||
req.Raw().Header["x-ms-lease-id"] = []string{*leaseAccessConditions.LeaseID}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
req.Raw().Header["x-ms-page-write"] = []string{"update"}
|
||||
if options != nil && options.Range != nil {
|
||||
req.Raw().Header["x-ms-range"] = []string{*options.Range}
|
||||
}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
if err := req.SetBody(body, "application/octet-stream"); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
@ -1158,31 +1155,41 @@ func (client *PageBlobClient) uploadPagesFromURLCreateRequest(ctx context.Contex
|
|||
reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10))
|
||||
}
|
||||
req.Raw().URL.RawQuery = reqQP.Encode()
|
||||
req.Raw().Header["x-ms-page-write"] = []string{"update"}
|
||||
req.Raw().Header["x-ms-copy-source"] = []string{sourceURL}
|
||||
req.Raw().Header["x-ms-source-range"] = []string{sourceRange}
|
||||
if options != nil && options.SourceContentMD5 != nil {
|
||||
req.Raw().Header["x-ms-source-content-md5"] = []string{base64.StdEncoding.EncodeToString(options.SourceContentMD5)}
|
||||
}
|
||||
if options != nil && options.SourceContentcrc64 != nil {
|
||||
req.Raw().Header["x-ms-source-content-crc64"] = []string{base64.StdEncoding.EncodeToString(options.SourceContentcrc64)}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
req.Raw().Header["Content-Length"] = []string{strconv.FormatInt(contentLength, 10)}
|
||||
req.Raw().Header["x-ms-range"] = []string{rangeParam}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfMatch != nil {
|
||||
req.Raw().Header["If-Match"] = []string{string(*modifiedAccessConditions.IfMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfModifiedSince != nil {
|
||||
req.Raw().Header["If-Modified-Since"] = []string{(*modifiedAccessConditions.IfModifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfNoneMatch != nil {
|
||||
req.Raw().Header["If-None-Match"] = []string{string(*modifiedAccessConditions.IfNoneMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfUnmodifiedSince != nil {
|
||||
req.Raw().Header["If-Unmodified-Since"] = []string{(*modifiedAccessConditions.IfUnmodifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
req.Raw().Header["x-ms-copy-source"] = []string{sourceURL}
|
||||
if options != nil && options.CopySourceAuthorization != nil {
|
||||
req.Raw().Header["x-ms-copy-source-authorization"] = []string{*options.CopySourceAuthorization}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionAlgorithm != nil {
|
||||
req.Raw().Header["x-ms-encryption-algorithm"] = []string{string(*cpkInfo.EncryptionAlgorithm)}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionKey != nil {
|
||||
req.Raw().Header["x-ms-encryption-key"] = []string{*cpkInfo.EncryptionKey}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionKeySHA256 != nil {
|
||||
req.Raw().Header["x-ms-encryption-key-sha256"] = []string{*cpkInfo.EncryptionKeySHA256}
|
||||
}
|
||||
if cpkInfo != nil && cpkInfo.EncryptionAlgorithm != nil {
|
||||
req.Raw().Header["x-ms-encryption-algorithm"] = []string{string(*cpkInfo.EncryptionAlgorithm)}
|
||||
}
|
||||
if cpkScopeInfo != nil && cpkScopeInfo.EncryptionScope != nil {
|
||||
req.Raw().Header["x-ms-encryption-scope"] = []string{*cpkScopeInfo.EncryptionScope}
|
||||
}
|
||||
if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil {
|
||||
req.Raw().Header["x-ms-lease-id"] = []string{*leaseAccessConditions.LeaseID}
|
||||
if sequenceNumberAccessConditions != nil && sequenceNumberAccessConditions.IfSequenceNumberEqualTo != nil {
|
||||
req.Raw().Header["x-ms-if-sequence-number-eq"] = []string{strconv.FormatInt(*sequenceNumberAccessConditions.IfSequenceNumberEqualTo, 10)}
|
||||
}
|
||||
if sequenceNumberAccessConditions != nil && sequenceNumberAccessConditions.IfSequenceNumberLessThanOrEqualTo != nil {
|
||||
req.Raw().Header["x-ms-if-sequence-number-le"] = []string{strconv.FormatInt(*sequenceNumberAccessConditions.IfSequenceNumberLessThanOrEqualTo, 10)}
|
||||
|
|
@ -1190,44 +1197,34 @@ func (client *PageBlobClient) uploadPagesFromURLCreateRequest(ctx context.Contex
|
|||
if sequenceNumberAccessConditions != nil && sequenceNumberAccessConditions.IfSequenceNumberLessThan != nil {
|
||||
req.Raw().Header["x-ms-if-sequence-number-lt"] = []string{strconv.FormatInt(*sequenceNumberAccessConditions.IfSequenceNumberLessThan, 10)}
|
||||
}
|
||||
if sequenceNumberAccessConditions != nil && sequenceNumberAccessConditions.IfSequenceNumberEqualTo != nil {
|
||||
req.Raw().Header["x-ms-if-sequence-number-eq"] = []string{strconv.FormatInt(*sequenceNumberAccessConditions.IfSequenceNumberEqualTo, 10)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfModifiedSince != nil {
|
||||
req.Raw().Header["If-Modified-Since"] = []string{(*modifiedAccessConditions.IfModifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfUnmodifiedSince != nil {
|
||||
req.Raw().Header["If-Unmodified-Since"] = []string{(*modifiedAccessConditions.IfUnmodifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfMatch != nil {
|
||||
req.Raw().Header["If-Match"] = []string{string(*modifiedAccessConditions.IfMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfNoneMatch != nil {
|
||||
req.Raw().Header["If-None-Match"] = []string{string(*modifiedAccessConditions.IfNoneMatch)}
|
||||
}
|
||||
if modifiedAccessConditions != nil && modifiedAccessConditions.IfTags != nil {
|
||||
req.Raw().Header["x-ms-if-tags"] = []string{*modifiedAccessConditions.IfTags}
|
||||
}
|
||||
if sourceModifiedAccessConditions != nil && sourceModifiedAccessConditions.SourceIfModifiedSince != nil {
|
||||
req.Raw().Header["x-ms-source-if-modified-since"] = []string{(*sourceModifiedAccessConditions.SourceIfModifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
if leaseAccessConditions != nil && leaseAccessConditions.LeaseID != nil {
|
||||
req.Raw().Header["x-ms-lease-id"] = []string{*leaseAccessConditions.LeaseID}
|
||||
}
|
||||
if sourceModifiedAccessConditions != nil && sourceModifiedAccessConditions.SourceIfUnmodifiedSince != nil {
|
||||
req.Raw().Header["x-ms-source-if-unmodified-since"] = []string{(*sourceModifiedAccessConditions.SourceIfUnmodifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
req.Raw().Header["x-ms-page-write"] = []string{"update"}
|
||||
req.Raw().Header["x-ms-range"] = []string{rangeParam}
|
||||
if options != nil && options.SourceContentcrc64 != nil {
|
||||
req.Raw().Header["x-ms-source-content-crc64"] = []string{base64.StdEncoding.EncodeToString(options.SourceContentcrc64)}
|
||||
}
|
||||
if options != nil && options.SourceContentMD5 != nil {
|
||||
req.Raw().Header["x-ms-source-content-md5"] = []string{base64.StdEncoding.EncodeToString(options.SourceContentMD5)}
|
||||
}
|
||||
if sourceModifiedAccessConditions != nil && sourceModifiedAccessConditions.SourceIfMatch != nil {
|
||||
req.Raw().Header["x-ms-source-if-match"] = []string{string(*sourceModifiedAccessConditions.SourceIfMatch)}
|
||||
}
|
||||
if sourceModifiedAccessConditions != nil && sourceModifiedAccessConditions.SourceIfModifiedSince != nil {
|
||||
req.Raw().Header["x-ms-source-if-modified-since"] = []string{(*sourceModifiedAccessConditions.SourceIfModifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
if sourceModifiedAccessConditions != nil && sourceModifiedAccessConditions.SourceIfNoneMatch != nil {
|
||||
req.Raw().Header["x-ms-source-if-none-match"] = []string{string(*sourceModifiedAccessConditions.SourceIfNoneMatch)}
|
||||
}
|
||||
if sourceModifiedAccessConditions != nil && sourceModifiedAccessConditions.SourceIfUnmodifiedSince != nil {
|
||||
req.Raw().Header["x-ms-source-if-unmodified-since"] = []string{(*sourceModifiedAccessConditions.SourceIfUnmodifiedSince).In(gmt).Format(time.RFC1123)}
|
||||
}
|
||||
req.Raw().Header["x-ms-source-range"] = []string{sourceRange}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
if options != nil && options.CopySourceAuthorization != nil {
|
||||
req.Raw().Header["x-ms-copy-source-authorization"] = []string{*options.CopySourceAuthorization}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
return req, nil
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,3 @@
|
|||
//go:build go1.18
|
||||
// +build go1.18
|
||||
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
// Code generated by Microsoft (R) AutoRest Code Generator. DO NOT EDIT.
|
||||
|
|
@ -1,6 +1,3 @@
|
|||
//go:build go1.18
|
||||
// +build go1.18
|
||||
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
// Code generated by Microsoft (R) AutoRest Code Generator. DO NOT EDIT.
|
||||
|
|
@ -62,25 +59,25 @@ func (client *ServiceClient) filterBlobsCreateRequest(ctx context.Context, where
|
|||
}
|
||||
reqQP := req.Raw().URL.Query()
|
||||
reqQP.Set("comp", "blobs")
|
||||
if options != nil && options.Timeout != nil {
|
||||
reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10))
|
||||
if options != nil && options.Include != nil {
|
||||
reqQP.Set("include", strings.Join(strings.Fields(strings.Trim(fmt.Sprint(options.Include), "[]")), ","))
|
||||
}
|
||||
reqQP.Set("where", where)
|
||||
if options != nil && options.Marker != nil {
|
||||
reqQP.Set("marker", *options.Marker)
|
||||
}
|
||||
if options != nil && options.Maxresults != nil {
|
||||
reqQP.Set("maxresults", strconv.FormatInt(int64(*options.Maxresults), 10))
|
||||
}
|
||||
if options != nil && options.Include != nil {
|
||||
reqQP.Set("include", strings.Join(strings.Fields(strings.Trim(fmt.Sprint(options.Include), "[]")), ","))
|
||||
if options != nil && options.Timeout != nil {
|
||||
reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10))
|
||||
}
|
||||
reqQP.Set("where", where)
|
||||
req.Raw().URL.RawQuery = strings.Replace(reqQP.Encode(), "+", "%20", -1)
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
return req, nil
|
||||
}
|
||||
|
||||
|
|
@ -139,11 +136,11 @@ func (client *ServiceClient) getAccountInfoCreateRequest(ctx context.Context, op
|
|||
return nil, err
|
||||
}
|
||||
reqQP := req.Raw().URL.Query()
|
||||
reqQP.Set("restype", "account")
|
||||
reqQP.Set("comp", "properties")
|
||||
reqQP.Set("restype", "account")
|
||||
req.Raw().URL.RawQuery = reqQP.Encode()
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
return req, nil
|
||||
}
|
||||
|
||||
|
|
@ -213,17 +210,17 @@ func (client *ServiceClient) getPropertiesCreateRequest(ctx context.Context, opt
|
|||
return nil, err
|
||||
}
|
||||
reqQP := req.Raw().URL.Query()
|
||||
reqQP.Set("restype", "service")
|
||||
reqQP.Set("comp", "properties")
|
||||
reqQP.Set("restype", "service")
|
||||
if options != nil && options.Timeout != nil {
|
||||
reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10))
|
||||
}
|
||||
req.Raw().URL.RawQuery = reqQP.Encode()
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
return req, nil
|
||||
}
|
||||
|
||||
|
|
@ -276,17 +273,17 @@ func (client *ServiceClient) getStatisticsCreateRequest(ctx context.Context, opt
|
|||
return nil, err
|
||||
}
|
||||
reqQP := req.Raw().URL.Query()
|
||||
reqQP.Set("restype", "service")
|
||||
reqQP.Set("comp", "stats")
|
||||
reqQP.Set("restype", "service")
|
||||
if options != nil && options.Timeout != nil {
|
||||
reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10))
|
||||
}
|
||||
req.Raw().URL.RawQuery = reqQP.Encode()
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
return req, nil
|
||||
}
|
||||
|
||||
|
|
@ -348,17 +345,17 @@ func (client *ServiceClient) getUserDelegationKeyCreateRequest(ctx context.Conte
|
|||
return nil, err
|
||||
}
|
||||
reqQP := req.Raw().URL.Query()
|
||||
reqQP.Set("restype", "service")
|
||||
reqQP.Set("comp", "userdelegationkey")
|
||||
reqQP.Set("restype", "service")
|
||||
if options != nil && options.Timeout != nil {
|
||||
reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10))
|
||||
}
|
||||
req.Raw().URL.RawQuery = reqQP.Encode()
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
if err := runtime.MarshalAsXML(req, keyInfo); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
@ -405,8 +402,8 @@ func (client *ServiceClient) ListContainersSegmentCreateRequest(ctx context.Cont
|
|||
}
|
||||
reqQP := req.Raw().URL.Query()
|
||||
reqQP.Set("comp", "list")
|
||||
if options != nil && options.Prefix != nil {
|
||||
reqQP.Set("prefix", *options.Prefix)
|
||||
if options != nil && options.Include != nil {
|
||||
reqQP.Set("include", strings.Join(strings.Fields(strings.Trim(fmt.Sprint(options.Include), "[]")), ","))
|
||||
}
|
||||
if options != nil && options.Marker != nil {
|
||||
reqQP.Set("marker", *options.Marker)
|
||||
|
|
@ -414,18 +411,18 @@ func (client *ServiceClient) ListContainersSegmentCreateRequest(ctx context.Cont
|
|||
if options != nil && options.Maxresults != nil {
|
||||
reqQP.Set("maxresults", strconv.FormatInt(int64(*options.Maxresults), 10))
|
||||
}
|
||||
if options != nil && options.Include != nil {
|
||||
reqQP.Set("include", strings.Join(strings.Fields(strings.Trim(fmt.Sprint(options.Include), "[]")), ","))
|
||||
if options != nil && options.Prefix != nil {
|
||||
reqQP.Set("prefix", *options.Prefix)
|
||||
}
|
||||
if options != nil && options.Timeout != nil {
|
||||
reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10))
|
||||
}
|
||||
req.Raw().URL.RawQuery = reqQP.Encode()
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
return req, nil
|
||||
}
|
||||
|
||||
|
|
@ -479,17 +476,17 @@ func (client *ServiceClient) setPropertiesCreateRequest(ctx context.Context, sto
|
|||
return nil, err
|
||||
}
|
||||
reqQP := req.Raw().URL.Query()
|
||||
reqQP.Set("restype", "service")
|
||||
reqQP.Set("comp", "properties")
|
||||
reqQP.Set("restype", "service")
|
||||
if options != nil && options.Timeout != nil {
|
||||
reqQP.Set("timeout", strconv.FormatInt(int64(*options.Timeout), 10))
|
||||
}
|
||||
req.Raw().URL.RawQuery = reqQP.Encode()
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
if err := runtime.MarshalAsXML(req, storageServiceProperties); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
@ -551,13 +548,13 @@ func (client *ServiceClient) submitBatchCreateRequest(ctx context.Context, conte
|
|||
}
|
||||
req.Raw().URL.RawQuery = reqQP.Encode()
|
||||
runtime.SkipBodyDownload(req)
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
req.Raw().Header["Content-Length"] = []string{strconv.FormatInt(contentLength, 10)}
|
||||
req.Raw().Header["Content-Type"] = []string{multipartContentType}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
if options != nil && options.RequestID != nil {
|
||||
req.Raw().Header["x-ms-client-request-id"] = []string{*options.RequestID}
|
||||
}
|
||||
req.Raw().Header["Accept"] = []string{"application/xml"}
|
||||
req.Raw().Header["x-ms-version"] = []string{ServiceVersion}
|
||||
if err := req.SetBody(body, multipartContentType); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,3 @@
|
|||
//go:build go1.18
|
||||
// +build go1.18
|
||||
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
// Code generated by Microsoft (R) AutoRest Code Generator. DO NOT EDIT.
|
||||
|
|
@ -36,7 +33,14 @@ func (t *dateTimeRFC1123) UnmarshalJSON(data []byte) error {
|
|||
}
|
||||
|
||||
func (t *dateTimeRFC1123) UnmarshalText(data []byte) error {
|
||||
if len(data) == 0 {
|
||||
return nil
|
||||
}
|
||||
p, err := time.Parse(time.RFC1123, string(data))
|
||||
*t = dateTimeRFC1123(p)
|
||||
return err
|
||||
}
|
||||
|
||||
func (t dateTimeRFC1123) String() string {
|
||||
return time.Time(t).Format(time.RFC1123)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,3 @@
|
|||
//go:build go1.18
|
||||
// +build go1.18
|
||||
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
// Code generated by Microsoft (R) AutoRest Code Generator. DO NOT EDIT.
|
||||
|
|
@ -15,12 +12,16 @@ import (
|
|||
)
|
||||
|
||||
// Azure reports time in UTC but it doesn't include the 'Z' time zone suffix in some cases.
|
||||
var tzOffsetRegex = regexp.MustCompile(`(Z|z|\+|-)(\d+:\d+)*"*$`)
|
||||
var tzOffsetRegex = regexp.MustCompile(`(?:Z|z|\+|-)(?:\d+:\d+)*"*$`)
|
||||
|
||||
const (
|
||||
utcDateTimeJSON = `"2006-01-02T15:04:05.999999999"`
|
||||
utcDateTime = "2006-01-02T15:04:05.999999999"
|
||||
dateTimeJSON = `"` + time.RFC3339Nano + `"`
|
||||
utcDateTime = "2006-01-02T15:04:05.999999999"
|
||||
utcDateTimeJSON = `"` + utcDateTime + `"`
|
||||
utcDateTimeNoT = "2006-01-02 15:04:05.999999999"
|
||||
utcDateTimeJSONNoT = `"` + utcDateTimeNoT + `"`
|
||||
dateTimeNoT = `2006-01-02 15:04:05.999999999Z07:00`
|
||||
dateTimeJSON = `"` + time.RFC3339Nano + `"`
|
||||
dateTimeJSONNoT = `"` + dateTimeNoT + `"`
|
||||
)
|
||||
|
||||
type dateTimeRFC3339 time.Time
|
||||
|
|
@ -36,17 +37,36 @@ func (t dateTimeRFC3339) MarshalText() ([]byte, error) {
|
|||
}
|
||||
|
||||
func (t *dateTimeRFC3339) UnmarshalJSON(data []byte) error {
|
||||
layout := utcDateTimeJSON
|
||||
if tzOffsetRegex.Match(data) {
|
||||
tzOffset := tzOffsetRegex.Match(data)
|
||||
hasT := strings.Contains(string(data), "T") || strings.Contains(string(data), "t")
|
||||
var layout string
|
||||
if tzOffset && hasT {
|
||||
layout = dateTimeJSON
|
||||
} else if tzOffset {
|
||||
layout = dateTimeJSONNoT
|
||||
} else if hasT {
|
||||
layout = utcDateTimeJSON
|
||||
} else {
|
||||
layout = utcDateTimeJSONNoT
|
||||
}
|
||||
return t.Parse(layout, string(data))
|
||||
}
|
||||
|
||||
func (t *dateTimeRFC3339) UnmarshalText(data []byte) error {
|
||||
layout := utcDateTime
|
||||
if tzOffsetRegex.Match(data) {
|
||||
if len(data) == 0 {
|
||||
return nil
|
||||
}
|
||||
tzOffset := tzOffsetRegex.Match(data)
|
||||
hasT := strings.Contains(string(data), "T") || strings.Contains(string(data), "t")
|
||||
var layout string
|
||||
if tzOffset && hasT {
|
||||
layout = time.RFC3339Nano
|
||||
} else if tzOffset {
|
||||
layout = dateTimeNoT
|
||||
} else if hasT {
|
||||
layout = utcDateTime
|
||||
} else {
|
||||
layout = utcDateTimeNoT
|
||||
}
|
||||
return t.Parse(layout, string(data))
|
||||
}
|
||||
|
|
@ -56,3 +76,7 @@ func (t *dateTimeRFC3339) Parse(layout, value string) error {
|
|||
*t = dateTimeRFC3339(p)
|
||||
return err
|
||||
}
|
||||
|
||||
func (t dateTimeRFC3339) String() string {
|
||||
return time.Time(t).Format(time.RFC3339Nano)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,3 @@
|
|||
//go:build go1.18
|
||||
// +build go1.18
|
||||
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
// Code generated by Microsoft (R) AutoRest Code Generator. DO NOT EDIT.
|
||||
|
|
|
|||
|
|
@ -44,7 +44,6 @@ func DoBatchTransfer(ctx context.Context, o *BatchTransferOptions) error {
|
|||
|
||||
// Create the goroutines that process each operation (in parallel).
|
||||
for g := uint16(0); g < o.Concurrency; g++ {
|
||||
//grIndex := g
|
||||
go func() {
|
||||
for f := range operationChannel {
|
||||
err := f()
|
||||
|
|
|
|||
4
vendor/github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/pageblob/client.go
generated
vendored
4
vendor/github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/pageblob/client.go
generated
vendored
|
|
@ -380,8 +380,8 @@ func (pb *Client) GetAccountInfo(ctx context.Context, o *blob.GetAccountInfoOpti
|
|||
|
||||
// SetHTTPHeaders changes a blob's HTTP headers.
|
||||
// For more information, see https://docs.microsoft.com/rest/api/storageservices/set-blob-properties.
|
||||
func (pb *Client) SetHTTPHeaders(ctx context.Context, HTTPHeaders blob.HTTPHeaders, o *blob.SetHTTPHeadersOptions) (blob.SetHTTPHeadersResponse, error) {
|
||||
return pb.BlobClient().SetHTTPHeaders(ctx, HTTPHeaders, o)
|
||||
func (pb *Client) SetHTTPHeaders(ctx context.Context, httpHeaders blob.HTTPHeaders, o *blob.SetHTTPHeadersOptions) (blob.SetHTTPHeadersResponse, error) {
|
||||
return pb.BlobClient().SetHTTPHeaders(ctx, httpHeaders, o)
|
||||
}
|
||||
|
||||
// SetMetadata changes a blob's metadata.
|
||||
|
|
|
|||
4
vendor/github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/sas/service.go
generated
vendored
4
vendor/github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/sas/service.go
generated
vendored
|
|
@ -255,7 +255,7 @@ func (v BlobSignatureValues) SignWithUserDelegation(userDelegationCredential *Us
|
|||
signature: signature,
|
||||
}
|
||||
|
||||
//User delegation SAS specific parameters
|
||||
// User delegation SAS specific parameters
|
||||
p.signedOID = *udk.SignedOID
|
||||
p.signedTID = *udk.SignedTID
|
||||
p.signedStart = *udk.SignedStart
|
||||
|
|
@ -272,7 +272,7 @@ func getCanonicalName(account string, containerName string, blobName string, dir
|
|||
// Blob: "/blob/account/containername/blobname"
|
||||
elements := []string{"/blob/", account, "/", containerName}
|
||||
if blobName != "" {
|
||||
elements = append(elements, "/", strings.Replace(blobName, "\\", "/", -1))
|
||||
elements = append(elements, "/", strings.ReplaceAll(blobName, "\\", "/"))
|
||||
} else if directoryName != "" {
|
||||
elements = append(elements, "/", directoryName)
|
||||
}
|
||||
|
|
|
|||
2
vendor/github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/sas/url_parts.go
generated
vendored
2
vendor/github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/sas/url_parts.go
generated
vendored
|
|
@ -117,7 +117,7 @@ func (up URLParts) String() string {
|
|||
|
||||
rawQuery := up.UnparsedParams
|
||||
|
||||
//If no snapshot is initially provided, fill it in from the SAS query properties to help the user
|
||||
// If no snapshot is initially provided, fill it in from the SAS query properties to help the user
|
||||
if up.Snapshot == "" && !up.SAS.SnapshotTime().IsZero() {
|
||||
up.Snapshot = up.SAS.SnapshotTime().Format(exported.SnapshotTimeFormat)
|
||||
}
|
||||
|
|
|
|||
109
vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go
generated
vendored
109
vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go
generated
vendored
|
|
@ -829,27 +829,48 @@ var awsPartition = partition{
|
|||
endpointKey{
|
||||
Region: "ap-northeast-2",
|
||||
}: endpoint{},
|
||||
endpointKey{
|
||||
Region: "ap-northeast-3",
|
||||
}: endpoint{},
|
||||
endpointKey{
|
||||
Region: "ap-south-1",
|
||||
}: endpoint{},
|
||||
endpointKey{
|
||||
Region: "ap-south-2",
|
||||
}: endpoint{},
|
||||
endpointKey{
|
||||
Region: "ap-southeast-1",
|
||||
}: endpoint{},
|
||||
endpointKey{
|
||||
Region: "ap-southeast-2",
|
||||
}: endpoint{},
|
||||
endpointKey{
|
||||
Region: "ap-southeast-3",
|
||||
}: endpoint{},
|
||||
endpointKey{
|
||||
Region: "ap-southeast-4",
|
||||
}: endpoint{},
|
||||
endpointKey{
|
||||
Region: "ca-central-1",
|
||||
}: endpoint{},
|
||||
endpointKey{
|
||||
Region: "ca-west-1",
|
||||
}: endpoint{},
|
||||
endpointKey{
|
||||
Region: "eu-central-1",
|
||||
}: endpoint{},
|
||||
endpointKey{
|
||||
Region: "eu-central-2",
|
||||
}: endpoint{},
|
||||
endpointKey{
|
||||
Region: "eu-north-1",
|
||||
}: endpoint{},
|
||||
endpointKey{
|
||||
Region: "eu-south-1",
|
||||
}: endpoint{},
|
||||
endpointKey{
|
||||
Region: "eu-south-2",
|
||||
}: endpoint{},
|
||||
endpointKey{
|
||||
Region: "eu-west-1",
|
||||
}: endpoint{},
|
||||
|
|
@ -859,6 +880,12 @@ var awsPartition = partition{
|
|||
endpointKey{
|
||||
Region: "eu-west-3",
|
||||
}: endpoint{},
|
||||
endpointKey{
|
||||
Region: "il-central-1",
|
||||
}: endpoint{},
|
||||
endpointKey{
|
||||
Region: "me-central-1",
|
||||
}: endpoint{},
|
||||
endpointKey{
|
||||
Region: "me-south-1",
|
||||
}: endpoint{},
|
||||
|
|
@ -13041,6 +13068,9 @@ var awsPartition = partition{
|
|||
endpointKey{
|
||||
Region: "eu-central-1",
|
||||
}: endpoint{},
|
||||
endpointKey{
|
||||
Region: "eu-central-2",
|
||||
}: endpoint{},
|
||||
endpointKey{
|
||||
Region: "eu-north-1",
|
||||
}: endpoint{},
|
||||
|
|
@ -22495,6 +22525,9 @@ var awsPartition = partition{
|
|||
}: endpoint{
|
||||
Hostname: "network-firewall-fips.ca-central-1.amazonaws.com",
|
||||
},
|
||||
endpointKey{
|
||||
Region: "ca-west-1",
|
||||
}: endpoint{},
|
||||
endpointKey{
|
||||
Region: "eu-central-1",
|
||||
}: endpoint{},
|
||||
|
|
@ -24452,6 +24485,14 @@ var awsPartition = partition{
|
|||
Region: "ca-central-1",
|
||||
},
|
||||
},
|
||||
endpointKey{
|
||||
Region: "ca-west-1",
|
||||
}: endpoint{
|
||||
Hostname: "portal.sso.ca-west-1.amazonaws.com",
|
||||
CredentialScope: credentialScope{
|
||||
Region: "ca-west-1",
|
||||
},
|
||||
},
|
||||
endpointKey{
|
||||
Region: "eu-central-1",
|
||||
}: endpoint{
|
||||
|
|
@ -33594,6 +33635,20 @@ var awsPartition = partition{
|
|||
}: endpoint{},
|
||||
},
|
||||
},
|
||||
"tax": service{
|
||||
PartitionEndpoint: "aws-global",
|
||||
IsRegionalized: boxedFalse,
|
||||
Endpoints: serviceEndpoints{
|
||||
endpointKey{
|
||||
Region: "aws-global",
|
||||
}: endpoint{
|
||||
Hostname: "tax.us-east-1.amazonaws.com",
|
||||
CredentialScope: credentialScope{
|
||||
Region: "us-east-1",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
"textract": service{
|
||||
Endpoints: serviceEndpoints{
|
||||
endpointKey{
|
||||
|
|
@ -39946,16 +40001,12 @@ var awsusgovPartition = partition{
|
|||
Endpoints: serviceEndpoints{
|
||||
endpointKey{
|
||||
Region: "us-gov-east-1",
|
||||
}: endpoint{
|
||||
Hostname: "autoscaling-plans.us-gov-east-1.amazonaws.com",
|
||||
Protocols: []string{"http", "https"},
|
||||
},
|
||||
}: endpoint{},
|
||||
endpointKey{
|
||||
Region: "us-gov-east-1",
|
||||
Variant: fipsVariant,
|
||||
}: endpoint{
|
||||
Hostname: "autoscaling-plans.us-gov-east-1.amazonaws.com",
|
||||
Protocols: []string{"http", "https"},
|
||||
Hostname: "autoscaling-plans.us-gov-east-1.amazonaws.com",
|
||||
},
|
||||
endpointKey{
|
||||
Region: "us-gov-east-1-fips",
|
||||
|
|
@ -39967,16 +40018,12 @@ var awsusgovPartition = partition{
|
|||
},
|
||||
endpointKey{
|
||||
Region: "us-gov-west-1",
|
||||
}: endpoint{
|
||||
Hostname: "autoscaling-plans.us-gov-west-1.amazonaws.com",
|
||||
Protocols: []string{"http", "https"},
|
||||
},
|
||||
}: endpoint{},
|
||||
endpointKey{
|
||||
Region: "us-gov-west-1",
|
||||
Variant: fipsVariant,
|
||||
}: endpoint{
|
||||
Hostname: "autoscaling-plans.us-gov-west-1.amazonaws.com",
|
||||
Protocols: []string{"http", "https"},
|
||||
Hostname: "autoscaling-plans.us-gov-west-1.amazonaws.com",
|
||||
},
|
||||
endpointKey{
|
||||
Region: "us-gov-west-1-fips",
|
||||
|
|
@ -40942,20 +40989,40 @@ var awsusgovPartition = partition{
|
|||
"directconnect": service{
|
||||
Endpoints: serviceEndpoints{
|
||||
endpointKey{
|
||||
Region: "us-gov-east-1",
|
||||
Region: "fips-us-gov-east-1",
|
||||
}: endpoint{
|
||||
Hostname: "directconnect.us-gov-east-1.amazonaws.com",
|
||||
Hostname: "directconnect-fips.us-gov-east-1.amazonaws.com",
|
||||
CredentialScope: credentialScope{
|
||||
Region: "us-gov-east-1",
|
||||
},
|
||||
Deprecated: boxedTrue,
|
||||
},
|
||||
endpointKey{
|
||||
Region: "us-gov-west-1",
|
||||
Region: "fips-us-gov-west-1",
|
||||
}: endpoint{
|
||||
Hostname: "directconnect.us-gov-west-1.amazonaws.com",
|
||||
Hostname: "directconnect-fips.us-gov-west-1.amazonaws.com",
|
||||
CredentialScope: credentialScope{
|
||||
Region: "us-gov-west-1",
|
||||
},
|
||||
Deprecated: boxedTrue,
|
||||
},
|
||||
endpointKey{
|
||||
Region: "us-gov-east-1",
|
||||
}: endpoint{},
|
||||
endpointKey{
|
||||
Region: "us-gov-east-1",
|
||||
Variant: fipsVariant,
|
||||
}: endpoint{
|
||||
Hostname: "directconnect-fips.us-gov-east-1.amazonaws.com",
|
||||
},
|
||||
endpointKey{
|
||||
Region: "us-gov-west-1",
|
||||
}: endpoint{},
|
||||
endpointKey{
|
||||
Region: "us-gov-west-1",
|
||||
Variant: fipsVariant,
|
||||
}: endpoint{
|
||||
Hostname: "directconnect-fips.us-gov-west-1.amazonaws.com",
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
@ -46345,6 +46412,9 @@ var awsisoPartition = partition{
|
|||
endpointKey{
|
||||
Region: "us-iso-east-1",
|
||||
}: endpoint{},
|
||||
endpointKey{
|
||||
Region: "us-iso-west-1",
|
||||
}: endpoint{},
|
||||
},
|
||||
},
|
||||
"appconfig": service{
|
||||
|
|
@ -47658,6 +47728,13 @@ var awsisobPartition = partition{
|
|||
}: endpoint{},
|
||||
},
|
||||
},
|
||||
"apigateway": service{
|
||||
Endpoints: serviceEndpoints{
|
||||
endpointKey{
|
||||
Region: "us-isob-east-1",
|
||||
}: endpoint{},
|
||||
},
|
||||
},
|
||||
"appconfig": service{
|
||||
Endpoints: serviceEndpoints{
|
||||
endpointKey{
|
||||
|
|
|
|||
13
vendor/github.com/aws/aws-sdk-go/aws/request/waiter.go
generated
vendored
13
vendor/github.com/aws/aws-sdk-go/aws/request/waiter.go
generated
vendored
|
|
@ -256,8 +256,17 @@ func (a *WaiterAcceptor) match(name string, l aws.Logger, req *Request, err erro
|
|||
s := a.Expected.(int)
|
||||
result = s == req.HTTPResponse.StatusCode
|
||||
case ErrorWaiterMatch:
|
||||
if aerr, ok := err.(awserr.Error); ok {
|
||||
result = aerr.Code() == a.Expected.(string)
|
||||
switch ex := a.Expected.(type) {
|
||||
case string:
|
||||
if aerr, ok := err.(awserr.Error); ok {
|
||||
result = aerr.Code() == ex
|
||||
}
|
||||
case bool:
|
||||
if ex {
|
||||
result = err != nil
|
||||
} else {
|
||||
result = err == nil
|
||||
}
|
||||
}
|
||||
default:
|
||||
waiterLogf(l, "WARNING: Waiter %s encountered unexpected matcher: %s",
|
||||
|
|
|
|||
2
vendor/github.com/aws/aws-sdk-go/aws/version.go
generated
vendored
2
vendor/github.com/aws/aws-sdk-go/aws/version.go
generated
vendored
|
|
@ -5,4 +5,4 @@ package aws
|
|||
const SDKName = "aws-sdk-go"
|
||||
|
||||
// SDKVersion is the version of this SDK
|
||||
const SDKVersion = "1.54.18"
|
||||
const SDKVersion = "1.55.2"
|
||||
|
|
|
|||
891
vendor/github.com/aws/aws-sdk-go/service/ec2/api.go
generated
vendored
891
vendor/github.com/aws/aws-sdk-go/service/ec2/api.go
generated
vendored
File diff suppressed because it is too large
Load diff
1
vendor/github.com/go-logr/logr/README.md
generated
vendored
1
vendor/github.com/go-logr/logr/README.md
generated
vendored
|
|
@ -1,6 +1,7 @@
|
|||
# A minimal logging API for Go
|
||||
|
||||
[](https://pkg.go.dev/github.com/go-logr/logr)
|
||||
[](https://goreportcard.com/report/github.com/go-logr/logr)
|
||||
[](https://securityscorecards.dev/viewer/?platform=github.com&org=go-logr&repo=logr)
|
||||
|
||||
logr offers an(other) opinion on how Go programs and libraries can do logging
|
||||
|
|
|
|||
185
vendor/github.com/go-logr/logr/funcr/funcr.go
generated
vendored
185
vendor/github.com/go-logr/logr/funcr/funcr.go
generated
vendored
|
|
@ -236,15 +236,14 @@ func newFormatter(opts Options, outfmt outputFormat) Formatter {
|
|||
// implementation. It should be constructed with NewFormatter. Some of
|
||||
// its methods directly implement logr.LogSink.
|
||||
type Formatter struct {
|
||||
outputFormat outputFormat
|
||||
prefix string
|
||||
values []any
|
||||
valuesStr string
|
||||
parentValuesStr string
|
||||
depth int
|
||||
opts *Options
|
||||
group string // for slog groups
|
||||
groupDepth int
|
||||
outputFormat outputFormat
|
||||
prefix string
|
||||
values []any
|
||||
valuesStr string
|
||||
depth int
|
||||
opts *Options
|
||||
groupName string // for slog groups
|
||||
groups []groupDef
|
||||
}
|
||||
|
||||
// outputFormat indicates which outputFormat to use.
|
||||
|
|
@ -257,6 +256,13 @@ const (
|
|||
outputJSON
|
||||
)
|
||||
|
||||
// groupDef represents a saved group. The values may be empty, but we don't
|
||||
// know if we need to render the group until the final record is rendered.
|
||||
type groupDef struct {
|
||||
name string
|
||||
values string
|
||||
}
|
||||
|
||||
// PseudoStruct is a list of key-value pairs that gets logged as a struct.
|
||||
type PseudoStruct []any
|
||||
|
||||
|
|
@ -264,76 +270,102 @@ type PseudoStruct []any
|
|||
func (f Formatter) render(builtins, args []any) string {
|
||||
// Empirically bytes.Buffer is faster than strings.Builder for this.
|
||||
buf := bytes.NewBuffer(make([]byte, 0, 1024))
|
||||
|
||||
if f.outputFormat == outputJSON {
|
||||
buf.WriteByte('{') // for the whole line
|
||||
buf.WriteByte('{') // for the whole record
|
||||
}
|
||||
|
||||
// Render builtins
|
||||
vals := builtins
|
||||
if hook := f.opts.RenderBuiltinsHook; hook != nil {
|
||||
vals = hook(f.sanitize(vals))
|
||||
}
|
||||
f.flatten(buf, vals, false, false) // keys are ours, no need to escape
|
||||
f.flatten(buf, vals, false) // keys are ours, no need to escape
|
||||
continuing := len(builtins) > 0
|
||||
|
||||
if f.parentValuesStr != "" {
|
||||
// Turn the inner-most group into a string
|
||||
argsStr := func() string {
|
||||
buf := bytes.NewBuffer(make([]byte, 0, 1024))
|
||||
|
||||
vals = args
|
||||
if hook := f.opts.RenderArgsHook; hook != nil {
|
||||
vals = hook(f.sanitize(vals))
|
||||
}
|
||||
f.flatten(buf, vals, true) // escape user-provided keys
|
||||
|
||||
return buf.String()
|
||||
}()
|
||||
|
||||
// Render the stack of groups from the inside out.
|
||||
bodyStr := f.renderGroup(f.groupName, f.valuesStr, argsStr)
|
||||
for i := len(f.groups) - 1; i >= 0; i-- {
|
||||
grp := &f.groups[i]
|
||||
if grp.values == "" && bodyStr == "" {
|
||||
// no contents, so we must elide the whole group
|
||||
continue
|
||||
}
|
||||
bodyStr = f.renderGroup(grp.name, grp.values, bodyStr)
|
||||
}
|
||||
|
||||
if bodyStr != "" {
|
||||
if continuing {
|
||||
buf.WriteByte(f.comma())
|
||||
}
|
||||
buf.WriteString(f.parentValuesStr)
|
||||
continuing = true
|
||||
}
|
||||
|
||||
groupDepth := f.groupDepth
|
||||
if f.group != "" {
|
||||
if f.valuesStr != "" || len(args) != 0 {
|
||||
if continuing {
|
||||
buf.WriteByte(f.comma())
|
||||
}
|
||||
buf.WriteString(f.quoted(f.group, true)) // escape user-provided keys
|
||||
buf.WriteByte(f.colon())
|
||||
buf.WriteByte('{') // for the group
|
||||
continuing = false
|
||||
} else {
|
||||
// The group was empty
|
||||
groupDepth--
|
||||
}
|
||||
}
|
||||
|
||||
if f.valuesStr != "" {
|
||||
if continuing {
|
||||
buf.WriteByte(f.comma())
|
||||
}
|
||||
buf.WriteString(f.valuesStr)
|
||||
continuing = true
|
||||
}
|
||||
|
||||
vals = args
|
||||
if hook := f.opts.RenderArgsHook; hook != nil {
|
||||
vals = hook(f.sanitize(vals))
|
||||
}
|
||||
f.flatten(buf, vals, continuing, true) // escape user-provided keys
|
||||
|
||||
for i := 0; i < groupDepth; i++ {
|
||||
buf.WriteByte('}') // for the groups
|
||||
buf.WriteString(bodyStr)
|
||||
}
|
||||
|
||||
if f.outputFormat == outputJSON {
|
||||
buf.WriteByte('}') // for the whole line
|
||||
buf.WriteByte('}') // for the whole record
|
||||
}
|
||||
|
||||
return buf.String()
|
||||
}
|
||||
|
||||
// flatten renders a list of key-value pairs into a buffer. If continuing is
|
||||
// true, it assumes that the buffer has previous values and will emit a
|
||||
// separator (which depends on the output format) before the first pair it
|
||||
// writes. If escapeKeys is true, the keys are assumed to have
|
||||
// non-JSON-compatible characters in them and must be evaluated for escapes.
|
||||
// renderGroup returns a string representation of the named group with rendered
|
||||
// values and args. If the name is empty, this will return the values and args,
|
||||
// joined. If the name is not empty, this will return a single key-value pair,
|
||||
// where the value is a grouping of the values and args. If the values and
|
||||
// args are both empty, this will return an empty string, even if the name was
|
||||
// specified.
|
||||
func (f Formatter) renderGroup(name string, values string, args string) string {
|
||||
buf := bytes.NewBuffer(make([]byte, 0, 1024))
|
||||
|
||||
needClosingBrace := false
|
||||
if name != "" && (values != "" || args != "") {
|
||||
buf.WriteString(f.quoted(name, true)) // escape user-provided keys
|
||||
buf.WriteByte(f.colon())
|
||||
buf.WriteByte('{')
|
||||
needClosingBrace = true
|
||||
}
|
||||
|
||||
continuing := false
|
||||
if values != "" {
|
||||
buf.WriteString(values)
|
||||
continuing = true
|
||||
}
|
||||
|
||||
if args != "" {
|
||||
if continuing {
|
||||
buf.WriteByte(f.comma())
|
||||
}
|
||||
buf.WriteString(args)
|
||||
}
|
||||
|
||||
if needClosingBrace {
|
||||
buf.WriteByte('}')
|
||||
}
|
||||
|
||||
return buf.String()
|
||||
}
|
||||
|
||||
// flatten renders a list of key-value pairs into a buffer. If escapeKeys is
|
||||
// true, the keys are assumed to have non-JSON-compatible characters in them
|
||||
// and must be evaluated for escapes.
|
||||
//
|
||||
// This function returns a potentially modified version of kvList, which
|
||||
// ensures that there is a value for every key (adding a value if needed) and
|
||||
// that each key is a string (substituting a key if needed).
|
||||
func (f Formatter) flatten(buf *bytes.Buffer, kvList []any, continuing bool, escapeKeys bool) []any {
|
||||
func (f Formatter) flatten(buf *bytes.Buffer, kvList []any, escapeKeys bool) []any {
|
||||
// This logic overlaps with sanitize() but saves one type-cast per key,
|
||||
// which can be measurable.
|
||||
if len(kvList)%2 != 0 {
|
||||
|
|
@ -354,7 +386,7 @@ func (f Formatter) flatten(buf *bytes.Buffer, kvList []any, continuing bool, esc
|
|||
}
|
||||
v := kvList[i+1]
|
||||
|
||||
if i > 0 || continuing {
|
||||
if i > 0 {
|
||||
if f.outputFormat == outputJSON {
|
||||
buf.WriteByte(f.comma())
|
||||
} else {
|
||||
|
|
@ -766,46 +798,17 @@ func (f Formatter) sanitize(kvList []any) []any {
|
|||
// startGroup opens a new group scope (basically a sub-struct), which locks all
|
||||
// the current saved values and starts them anew. This is needed to satisfy
|
||||
// slog.
|
||||
func (f *Formatter) startGroup(group string) {
|
||||
func (f *Formatter) startGroup(name string) {
|
||||
// Unnamed groups are just inlined.
|
||||
if group == "" {
|
||||
if name == "" {
|
||||
return
|
||||
}
|
||||
|
||||
// Any saved values can no longer be changed.
|
||||
buf := bytes.NewBuffer(make([]byte, 0, 1024))
|
||||
continuing := false
|
||||
|
||||
if f.parentValuesStr != "" {
|
||||
buf.WriteString(f.parentValuesStr)
|
||||
continuing = true
|
||||
}
|
||||
|
||||
if f.group != "" && f.valuesStr != "" {
|
||||
if continuing {
|
||||
buf.WriteByte(f.comma())
|
||||
}
|
||||
buf.WriteString(f.quoted(f.group, true)) // escape user-provided keys
|
||||
buf.WriteByte(f.colon())
|
||||
buf.WriteByte('{') // for the group
|
||||
continuing = false
|
||||
}
|
||||
|
||||
if f.valuesStr != "" {
|
||||
if continuing {
|
||||
buf.WriteByte(f.comma())
|
||||
}
|
||||
buf.WriteString(f.valuesStr)
|
||||
}
|
||||
|
||||
// NOTE: We don't close the scope here - that's done later, when a log line
|
||||
// is actually rendered (because we have N scopes to close).
|
||||
|
||||
f.parentValuesStr = buf.String()
|
||||
n := len(f.groups)
|
||||
f.groups = append(f.groups[:n:n], groupDef{f.groupName, f.valuesStr})
|
||||
|
||||
// Start collecting new values.
|
||||
f.group = group
|
||||
f.groupDepth++
|
||||
f.groupName = name
|
||||
f.valuesStr = ""
|
||||
f.values = nil
|
||||
}
|
||||
|
|
@ -900,7 +903,7 @@ func (f *Formatter) AddValues(kvList []any) {
|
|||
|
||||
// Pre-render values, so we don't have to do it on each Info/Error call.
|
||||
buf := bytes.NewBuffer(make([]byte, 0, 1024))
|
||||
f.flatten(buf, vals, false, true) // escape user-provided keys
|
||||
f.flatten(buf, vals, true) // escape user-provided keys
|
||||
f.valuesStr = buf.String()
|
||||
}
|
||||
|
||||
|
|
|
|||
2
vendor/github.com/googleapis/gax-go/v2/.release-please-manifest.json
generated
vendored
2
vendor/github.com/googleapis/gax-go/v2/.release-please-manifest.json
generated
vendored
|
|
@ -1,3 +1,3 @@
|
|||
{
|
||||
"v2": "2.12.5"
|
||||
"v2": "2.13.0"
|
||||
}
|
||||
|
|
|
|||
7
vendor/github.com/googleapis/gax-go/v2/CHANGES.md
generated
vendored
7
vendor/github.com/googleapis/gax-go/v2/CHANGES.md
generated
vendored
|
|
@ -1,5 +1,12 @@
|
|||
# Changelog
|
||||
|
||||
## [2.13.0](https://github.com/googleapis/gax-go/compare/v2.12.5...v2.13.0) (2024-07-22)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **iterator:** add package to help work with new iter.Seq types ([#358](https://github.com/googleapis/gax-go/issues/358)) ([6bccdaa](https://github.com/googleapis/gax-go/commit/6bccdaac011fe6fd147e4eb533a8e6520b7d4acc))
|
||||
|
||||
## [2.12.5](https://github.com/googleapis/gax-go/compare/v2.12.4...v2.12.5) (2024-06-18)
|
||||
|
||||
|
||||
|
|
|
|||
2
vendor/github.com/googleapis/gax-go/v2/internal/version.go
generated
vendored
2
vendor/github.com/googleapis/gax-go/v2/internal/version.go
generated
vendored
|
|
@ -30,4 +30,4 @@
|
|||
package internal
|
||||
|
||||
// Version is the current tagged release of the library.
|
||||
const Version = "2.12.5"
|
||||
const Version = "2.13.0"
|
||||
|
|
|
|||
6
vendor/github.com/gophercloud/gophercloud/CHANGELOG.md
generated
vendored
6
vendor/github.com/gophercloud/gophercloud/CHANGELOG.md
generated
vendored
|
|
@ -1,3 +1,9 @@
|
|||
## v1.14.0 (2024-07-24)
|
||||
|
||||
* [GH-3095](https://github.com/gophercloud/gophercloud/pull/3095) [neutron]: introduce Description argument for the portforwarding
|
||||
* [GH-3098](https://github.com/gophercloud/gophercloud/pull/3098) [neutron]: introduce Stateful argument for the security groups
|
||||
* [GH-3099](https://github.com/gophercloud/gophercloud/pull/3099) [networking]: subnet add field dns_publish_fixed_ip
|
||||
|
||||
## v1.13.0 (2024-07-08)
|
||||
|
||||
* [GH-3044](https://github.com/gophercloud/gophercloud/pull/3044) [v1] Add ci jobs for openstack caracal
|
||||
|
|
|
|||
2
vendor/github.com/gophercloud/gophercloud/provider_client.go
generated
vendored
2
vendor/github.com/gophercloud/gophercloud/provider_client.go
generated
vendored
|
|
@ -14,7 +14,7 @@ import (
|
|||
|
||||
// DefaultUserAgent is the default User-Agent string set in the request header.
|
||||
const (
|
||||
DefaultUserAgent = "gophercloud/v1.13.0"
|
||||
DefaultUserAgent = "gophercloud/v1.14.0"
|
||||
DefaultMaxBackoffRetries = 60
|
||||
)
|
||||
|
||||
|
|
|
|||
12
vendor/github.com/osbuild/images/pkg/blueprint/customizations.go
generated
vendored
12
vendor/github.com/osbuild/images/pkg/blueprint/customizations.go
generated
vendored
|
|
@ -114,9 +114,10 @@ type ServicesCustomization struct {
|
|||
}
|
||||
|
||||
type OpenSCAPCustomization struct {
|
||||
DataStream string `json:"datastream,omitempty" toml:"datastream,omitempty"`
|
||||
ProfileID string `json:"profile_id,omitempty" toml:"profile_id,omitempty"`
|
||||
Tailoring *OpenSCAPTailoringCustomizations `json:"tailoring,omitempty" toml:"tailoring,omitempty"`
|
||||
DataStream string `json:"datastream,omitempty" toml:"datastream,omitempty"`
|
||||
ProfileID string `json:"profile_id,omitempty" toml:"profile_id,omitempty"`
|
||||
Tailoring *OpenSCAPTailoringCustomizations `json:"tailoring,omitempty" toml:"tailoring,omitempty"`
|
||||
XMLTailoring *OpenSCAPXMLTailoringCustomizations `json:"xml_tailoring,omitempty" toml:"xml_tailoring,omitempty"`
|
||||
}
|
||||
|
||||
type OpenSCAPTailoringCustomizations struct {
|
||||
|
|
@ -124,6 +125,11 @@ type OpenSCAPTailoringCustomizations struct {
|
|||
Unselected []string `json:"unselected,omitempty" toml:"unselected,omitempty"`
|
||||
}
|
||||
|
||||
type OpenSCAPXMLTailoringCustomizations struct {
|
||||
ProfileID string `json:"profile_id,omitempty" toml:"profile_id,omitempty"`
|
||||
Filepath string `json:"filepath,omitempty" toml:"filepath,omitempty"`
|
||||
}
|
||||
|
||||
// Configure the container storage separately from containers, since we most likely would
|
||||
// like to use the same storage path for all of the containers.
|
||||
type ContainerStorageCustomization struct {
|
||||
|
|
|
|||
70
vendor/github.com/osbuild/images/pkg/customizations/oscap/oscap.go
generated
vendored
70
vendor/github.com/osbuild/images/pkg/customizations/oscap/oscap.go
generated
vendored
|
|
@ -1,7 +1,11 @@
|
|||
package oscap
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"github.com/osbuild/images/pkg/blueprint"
|
||||
)
|
||||
|
||||
type Profile string
|
||||
|
|
@ -57,6 +61,72 @@ type TailoringConfig struct {
|
|||
Unselected []string
|
||||
}
|
||||
|
||||
func NewConfigs(oscapConfig blueprint.OpenSCAPCustomization, defaultDatastream *string) (*RemediationConfig, *TailoringConfig, error) {
|
||||
var datastream = oscapConfig.DataStream
|
||||
if datastream == "" {
|
||||
if defaultDatastream == nil {
|
||||
return nil, nil, fmt.Errorf("No OSCAP datastream specified and the distro does not have any default set")
|
||||
}
|
||||
datastream = *defaultDatastream
|
||||
}
|
||||
|
||||
remediationConfig := &RemediationConfig{
|
||||
Datastream: datastream,
|
||||
ProfileID: oscapConfig.ProfileID,
|
||||
CompressionEnabled: true,
|
||||
}
|
||||
|
||||
if oscapConfig.XMLTailoring != nil && oscapConfig.Tailoring != nil {
|
||||
return nil, nil, fmt.Errorf("Either XML tailoring file and profile ID must be set or custom rules (selected/unselected), not both")
|
||||
}
|
||||
|
||||
if xmlConfigs := oscapConfig.XMLTailoring; xmlConfigs != nil {
|
||||
if xmlConfigs.Filepath == "" {
|
||||
return nil, nil, fmt.Errorf("Filepath to an XML tailoring file is required")
|
||||
}
|
||||
|
||||
if xmlConfigs.ProfileID == "" {
|
||||
return nil, nil, fmt.Errorf("Tailoring profile ID is required for an XML tailoring file")
|
||||
}
|
||||
|
||||
remediationConfig.ProfileID = xmlConfigs.ProfileID
|
||||
remediationConfig.TailoringPath = xmlConfigs.Filepath
|
||||
|
||||
// since the XML tailoring file has already been provided
|
||||
// we don't need the autotailor stage and the config can
|
||||
// be left empty and we can just return the `remediationConfig`
|
||||
return remediationConfig, nil, nil
|
||||
}
|
||||
|
||||
tc := oscapConfig.Tailoring
|
||||
if tc == nil {
|
||||
return remediationConfig, nil, nil
|
||||
}
|
||||
|
||||
tailoringPath := filepath.Join(DataDir, "tailoring.xml")
|
||||
tailoredProfileID := fmt.Sprintf("%s_osbuild_tailoring", remediationConfig.ProfileID)
|
||||
|
||||
tailoringConfig := &TailoringConfig{
|
||||
RemediationConfig: RemediationConfig{
|
||||
ProfileID: remediationConfig.ProfileID,
|
||||
TailoringPath: tailoringPath,
|
||||
Datastream: datastream,
|
||||
},
|
||||
TailoredProfileID: tailoredProfileID,
|
||||
Selected: tc.Selected,
|
||||
Unselected: tc.Unselected,
|
||||
}
|
||||
|
||||
// the reason for changing the remediation config profile
|
||||
// after we create the tailoring configs is that the tailoring
|
||||
// config needs to know about the original base profile id, but
|
||||
// the remediation config needs to know the updated profile id.
|
||||
remediationConfig.ProfileID = tailoredProfileID
|
||||
remediationConfig.TailoringPath = tailoringPath
|
||||
|
||||
return remediationConfig, tailoringConfig, nil
|
||||
}
|
||||
|
||||
func DefaultFedoraDatastream() string {
|
||||
return defaultFedoraDatastream
|
||||
}
|
||||
|
|
|
|||
33
vendor/github.com/osbuild/images/pkg/distro/fedora/images.go
generated
vendored
33
vendor/github.com/osbuild/images/pkg/distro/fedora/images.go
generated
vendored
|
|
@ -3,7 +3,6 @@ package fedora
|
|||
import (
|
||||
"fmt"
|
||||
"math/rand"
|
||||
"path/filepath"
|
||||
|
||||
"github.com/osbuild/images/internal/common"
|
||||
"github.com/osbuild/images/internal/workload"
|
||||
|
|
@ -190,37 +189,13 @@ func osCustomizations(
|
|||
}
|
||||
osc.Directories = append(osc.Directories, oscapDataNode)
|
||||
|
||||
var datastream = oscapConfig.DataStream
|
||||
if datastream == "" {
|
||||
if imageConfig.DefaultOSCAPDatastream == nil {
|
||||
return manifest.OSCustomizations{}, fmt.Errorf("No OSCAP datastream specified and the distro does not have any default set")
|
||||
}
|
||||
datastream = *imageConfig.DefaultOSCAPDatastream
|
||||
}
|
||||
|
||||
remediationConfig := oscap.RemediationConfig{
|
||||
Datastream: datastream,
|
||||
ProfileID: oscapConfig.ProfileID,
|
||||
CompressionEnabled: true,
|
||||
}
|
||||
|
||||
var tailoringConfig *oscap.TailoringConfig
|
||||
if oscapConfig.Tailoring != nil {
|
||||
remediationConfig.TailoringPath = filepath.Join(oscap.DataDir, "tailoring.xml")
|
||||
tailoringConfig = &oscap.TailoringConfig{
|
||||
RemediationConfig: remediationConfig,
|
||||
TailoredProfileID: fmt.Sprintf("%s_osbuild_tailoring", oscapConfig.ProfileID),
|
||||
Selected: oscapConfig.Tailoring.Selected,
|
||||
Unselected: oscapConfig.Tailoring.Unselected,
|
||||
}
|
||||
// we need to set this after the tailoring config
|
||||
// since the tailoring config needs to know about both
|
||||
// the base profile id and the tailored profile id
|
||||
remediationConfig.ProfileID = tailoringConfig.TailoredProfileID
|
||||
remediationConfig, tailoringConfig, err := oscap.NewConfigs(*oscapConfig, imageConfig.DefaultOSCAPDatastream)
|
||||
if err != nil {
|
||||
panic(fmt.Errorf("error creating OpenSCAP configs: %w", err))
|
||||
}
|
||||
|
||||
osc.OpenSCAPTailorConfig = tailoringConfig
|
||||
osc.OpenSCAPRemediationConfig = &remediationConfig
|
||||
osc.OpenSCAPRemediationConfig = remediationConfig
|
||||
}
|
||||
|
||||
osc.ShellInit = imageConfig.ShellInit
|
||||
|
|
|
|||
33
vendor/github.com/osbuild/images/pkg/distro/rhel/images.go
generated
vendored
33
vendor/github.com/osbuild/images/pkg/distro/rhel/images.go
generated
vendored
|
|
@ -3,7 +3,6 @@ package rhel
|
|||
import (
|
||||
"fmt"
|
||||
"math/rand"
|
||||
"path/filepath"
|
||||
|
||||
"github.com/osbuild/images/internal/workload"
|
||||
"github.com/osbuild/images/pkg/blueprint"
|
||||
|
|
@ -211,37 +210,13 @@ func osCustomizations(
|
|||
}
|
||||
osc.Directories = append(osc.Directories, oscapDataNode)
|
||||
|
||||
var datastream = oscapConfig.DataStream
|
||||
if datastream == "" {
|
||||
if imageConfig.DefaultOSCAPDatastream == nil {
|
||||
return manifest.OSCustomizations{}, fmt.Errorf("No OSCAP datastream specified and the distro does not have any default set")
|
||||
}
|
||||
datastream = *imageConfig.DefaultOSCAPDatastream
|
||||
}
|
||||
|
||||
remediationConfig := oscap.RemediationConfig{
|
||||
Datastream: datastream,
|
||||
ProfileID: oscapConfig.ProfileID,
|
||||
CompressionEnabled: true,
|
||||
}
|
||||
|
||||
var tailoringConfig *oscap.TailoringConfig
|
||||
if oscapConfig.Tailoring != nil {
|
||||
remediationConfig.TailoringPath = filepath.Join(oscap.DataDir, "tailoring.xml")
|
||||
tailoringConfig = &oscap.TailoringConfig{
|
||||
RemediationConfig: remediationConfig,
|
||||
TailoredProfileID: fmt.Sprintf("%s_osbuild_tailoring", oscapConfig.ProfileID),
|
||||
Selected: oscapConfig.Tailoring.Selected,
|
||||
Unselected: oscapConfig.Tailoring.Unselected,
|
||||
}
|
||||
// we need to set this after the tailoring config
|
||||
// since the tailoring config needs to know about both
|
||||
// the base profile id and the tailored profile id
|
||||
remediationConfig.ProfileID = tailoringConfig.TailoredProfileID
|
||||
remediationConfig, tailoringConfig, err := oscap.NewConfigs(*oscapConfig, imageConfig.DefaultOSCAPDatastream)
|
||||
if err != nil {
|
||||
panic(fmt.Errorf("error creating OpenSCAP configs: %w", err))
|
||||
}
|
||||
|
||||
osc.OpenSCAPTailorConfig = tailoringConfig
|
||||
osc.OpenSCAPRemediationConfig = &remediationConfig
|
||||
osc.OpenSCAPRemediationConfig = remediationConfig
|
||||
}
|
||||
|
||||
osc.ShellInit = imageConfig.ShellInit
|
||||
|
|
|
|||
14
vendor/github.com/osbuild/images/pkg/distro/rhel/rhel9/azure.go
generated
vendored
14
vendor/github.com/osbuild/images/pkg/distro/rhel/rhel9/azure.go
generated
vendored
|
|
@ -216,12 +216,18 @@ func azureSapPackageSet(t *rhel.ImageType) rpmmd.PackageSet {
|
|||
}
|
||||
|
||||
// PARTITION TABLES
|
||||
|
||||
func azureRhuiBasePartitionTables(t *rhel.ImageType) (disk.PartitionTable, bool) {
|
||||
// RHEL >= 9.3 needs to have a bigger /boot, see RHEL-7999
|
||||
bootSize := uint64(600) * common.MebiByte
|
||||
if common.VersionLessThan(t.Arch().Distro().OsVersion(), "9.3") && t.IsRHEL() {
|
||||
var bootSize uint64
|
||||
switch {
|
||||
case common.VersionLessThan(t.Arch().Distro().OsVersion(), "9.3") && t.IsRHEL():
|
||||
// RHEL <= 9.2 had only 500 MiB /boot
|
||||
bootSize = 500 * common.MebiByte
|
||||
case common.VersionLessThan(t.Arch().Distro().OsVersion(), "9.4") && t.IsRHEL():
|
||||
// RHEL 9.3 had 600 MiB /boot, see RHEL-7999
|
||||
bootSize = 600 * common.MebiByte
|
||||
default:
|
||||
// RHEL >= 9.4 needs to have even a bigger /boot, see COMPOSER-2155
|
||||
bootSize = 1 * common.GibiByte
|
||||
}
|
||||
|
||||
switch t.Arch().Name() {
|
||||
|
|
|
|||
2
vendor/github.com/osbuild/images/pkg/osbuild/copy_stage.go
generated
vendored
2
vendor/github.com/osbuild/images/pkg/osbuild/copy_stage.go
generated
vendored
|
|
@ -61,7 +61,7 @@ func GenCopyFSTreeOptions(inputName, inputPipeline, filename string, pt *disk.Pa
|
|||
[]Mount,
|
||||
) {
|
||||
|
||||
fsRootMntName, mounts, devices, err := genMountsDevicesFromPt(filename, pt)
|
||||
fsRootMntName, mounts, devices, err := GenMountsDevicesFromPT(filename, pt)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
|
|
|||
4
vendor/github.com/osbuild/images/pkg/osbuild/device.go
generated
vendored
4
vendor/github.com/osbuild/images/pkg/osbuild/device.go
generated
vendored
|
|
@ -266,7 +266,7 @@ func genOsbuildMount(source string, mnt disk.Mountable) (*Mount, error) {
|
|||
}
|
||||
}
|
||||
|
||||
// genMountsDevicesFromPt generates osbuild mounts and devices from a disk.PartitionTable
|
||||
// GenMountsDevicesFromPT generates osbuild mounts and devices from a disk.PartitionTable
|
||||
// filename is the name of the underlying image file (which will get loop-mounted).
|
||||
//
|
||||
// Returned values:
|
||||
|
|
@ -274,7 +274,7 @@ func genOsbuildMount(source string, mnt disk.Mountable) (*Mount, error) {
|
|||
// 2) generated mounts
|
||||
// 3) generated devices
|
||||
// 4) error if any
|
||||
func genMountsDevicesFromPt(filename string, pt *disk.PartitionTable) (string, []Mount, map[string]Device, error) {
|
||||
func GenMountsDevicesFromPT(filename string, pt *disk.PartitionTable) (string, []Mount, map[string]Device, error) {
|
||||
devices := make(map[string]Device, len(pt.Partitions))
|
||||
mounts := make([]Mount, 0, len(pt.Partitions))
|
||||
var fsRootMntName string
|
||||
|
|
|
|||
142
vendor/github.com/vmware/govmomi/govc/flags/output.go
generated
vendored
142
vendor/github.com/vmware/govmomi/govc/flags/output.go
generated
vendored
|
|
@ -1,11 +1,11 @@
|
|||
/*
|
||||
Copyright (c) 2014-2016 VMware, Inc. All Rights Reserved.
|
||||
Copyright (c) 2014-2024 VMware, Inc. All Rights Reserved.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
|
|
@ -26,11 +26,11 @@ import (
|
|||
"os"
|
||||
"reflect"
|
||||
"strings"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/dougm/pretty"
|
||||
|
||||
"github.com/vmware/govmomi/govc/cli"
|
||||
"github.com/vmware/govmomi/task"
|
||||
"github.com/vmware/govmomi/vim25/progress"
|
||||
"github.com/vmware/govmomi/vim25/soap"
|
||||
|
|
@ -50,6 +50,7 @@ type OutputFlag struct {
|
|||
TTY bool
|
||||
Dump bool
|
||||
Out io.Writer
|
||||
Spec bool
|
||||
|
||||
formatError bool
|
||||
formatIndent bool
|
||||
|
|
@ -72,6 +73,9 @@ func (flag *OutputFlag) Register(ctx context.Context, f *flag.FlagSet) {
|
|||
f.BoolVar(&flag.JSON, "json", false, "Enable JSON output")
|
||||
f.BoolVar(&flag.XML, "xml", false, "Enable XML output")
|
||||
f.BoolVar(&flag.Dump, "dump", false, "Enable Go output")
|
||||
if cli.ShowUnreleased() {
|
||||
f.BoolVar(&flag.Spec, "spec", false, "Output spec without sending request")
|
||||
}
|
||||
// Avoid adding more flags for now..
|
||||
flag.formatIndent = os.Getenv("GOVC_INDENT") != "false" // Default to indented output
|
||||
flag.formatError = os.Getenv("GOVC_FORMAT_ERROR") != "false" // Default to formatted errors
|
||||
|
|
@ -159,6 +163,25 @@ func dumpValue(val interface{}) interface{} {
|
|||
return val
|
||||
}
|
||||
|
||||
type outputAny struct {
|
||||
Value any
|
||||
}
|
||||
|
||||
func (*outputAny) Write(io.Writer) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (a *outputAny) Dump() interface{} {
|
||||
return a.Value
|
||||
}
|
||||
|
||||
func (flag *OutputFlag) WriteAny(val any) error {
|
||||
if !flag.All() {
|
||||
flag.XML = true
|
||||
}
|
||||
return flag.WriteResult(&outputAny{val})
|
||||
}
|
||||
|
||||
func (flag *OutputFlag) WriteResult(result OutputWriter) error {
|
||||
var err error
|
||||
|
||||
|
|
@ -204,7 +227,7 @@ type errorOutput struct {
|
|||
}
|
||||
|
||||
func (e errorOutput) Write(w io.Writer) error {
|
||||
reason := e.error.Error()
|
||||
reason := e.Error()
|
||||
var messages []string
|
||||
var faults []types.LocalizableMessage
|
||||
|
||||
|
|
@ -261,15 +284,15 @@ func (e errorOutput) canEncode() bool {
|
|||
return soap.IsSoapFault(e.error) || soap.IsVimFault(e.error)
|
||||
}
|
||||
|
||||
// cannotEncode causes cli.Run to output err.Error() as it would without an error format specified
|
||||
var cannotEncode = errors.New("cannot encode error")
|
||||
// errCannotEncode causes cli.Run to output err.Error() as it would without an error format specified
|
||||
var errCannotEncode = errors.New("cannot encode error")
|
||||
|
||||
func (e errorOutput) MarshalJSON() ([]byte, error) {
|
||||
_, ok := e.error.(json.Marshaler)
|
||||
if ok || e.canEncode() {
|
||||
return json.Marshal(e.error)
|
||||
}
|
||||
return nil, cannotEncode
|
||||
return nil, errCannotEncode
|
||||
}
|
||||
|
||||
func (e errorOutput) MarshalXML(encoder *xml.Encoder, start xml.StartElement) error {
|
||||
|
|
@ -277,108 +300,9 @@ func (e errorOutput) MarshalXML(encoder *xml.Encoder, start xml.StartElement) er
|
|||
if ok || e.canEncode() {
|
||||
return encoder.Encode(e.error)
|
||||
}
|
||||
return cannotEncode
|
||||
return errCannotEncode
|
||||
}
|
||||
|
||||
type progressLogger struct {
|
||||
flag *OutputFlag
|
||||
prefix string
|
||||
|
||||
wg sync.WaitGroup
|
||||
|
||||
sink chan chan progress.Report
|
||||
done chan struct{}
|
||||
}
|
||||
|
||||
func newProgressLogger(flag *OutputFlag, prefix string) *progressLogger {
|
||||
p := &progressLogger{
|
||||
flag: flag,
|
||||
prefix: prefix,
|
||||
|
||||
sink: make(chan chan progress.Report),
|
||||
done: make(chan struct{}),
|
||||
}
|
||||
|
||||
p.wg.Add(1)
|
||||
|
||||
go p.loopA()
|
||||
|
||||
return p
|
||||
}
|
||||
|
||||
// loopA runs before Sink() has been called.
|
||||
func (p *progressLogger) loopA() {
|
||||
var err error
|
||||
|
||||
defer p.wg.Done()
|
||||
|
||||
tick := time.NewTicker(100 * time.Millisecond)
|
||||
defer tick.Stop()
|
||||
|
||||
called := false
|
||||
|
||||
for stop := false; !stop; {
|
||||
select {
|
||||
case ch := <-p.sink:
|
||||
err = p.loopB(tick, ch)
|
||||
stop = true
|
||||
called = true
|
||||
case <-p.done:
|
||||
stop = true
|
||||
case <-tick.C:
|
||||
line := fmt.Sprintf("\r%s", p.prefix)
|
||||
p.flag.Log(line)
|
||||
}
|
||||
}
|
||||
|
||||
if err != nil && err != io.EOF {
|
||||
p.flag.Log(fmt.Sprintf("\r%sError: %s\n", p.prefix, err))
|
||||
} else if called {
|
||||
p.flag.Log(fmt.Sprintf("\r%sOK\n", p.prefix))
|
||||
}
|
||||
}
|
||||
|
||||
// loopA runs after Sink() has been called.
|
||||
func (p *progressLogger) loopB(tick *time.Ticker, ch <-chan progress.Report) error {
|
||||
var r progress.Report
|
||||
var ok bool
|
||||
var err error
|
||||
|
||||
for ok = true; ok; {
|
||||
select {
|
||||
case r, ok = <-ch:
|
||||
if !ok {
|
||||
break
|
||||
}
|
||||
err = r.Error()
|
||||
case <-tick.C:
|
||||
line := fmt.Sprintf("\r%s", p.prefix)
|
||||
if r != nil {
|
||||
line += fmt.Sprintf("(%.0f%%", r.Percentage())
|
||||
detail := r.Detail()
|
||||
if detail != "" {
|
||||
line += fmt.Sprintf(", %s", detail)
|
||||
}
|
||||
line += ")"
|
||||
}
|
||||
p.flag.Log(line)
|
||||
}
|
||||
}
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
func (p *progressLogger) Sink() chan<- progress.Report {
|
||||
ch := make(chan progress.Report)
|
||||
p.sink <- ch
|
||||
return ch
|
||||
}
|
||||
|
||||
func (p *progressLogger) Wait() {
|
||||
close(p.done)
|
||||
p.wg.Wait()
|
||||
}
|
||||
|
||||
func (flag *OutputFlag) ProgressLogger(prefix string) *progressLogger {
|
||||
return newProgressLogger(flag, prefix)
|
||||
func (flag *OutputFlag) ProgressLogger(prefix string) *progress.ProgressLogger {
|
||||
return progress.NewProgressLogger(flag.Log, prefix)
|
||||
}
|
||||
|
|
|
|||
74
vendor/github.com/vmware/govmomi/govc/importx/options.go
generated
vendored
74
vendor/github.com/vmware/govmomi/govc/importx/options.go
generated
vendored
|
|
@ -1,11 +1,11 @@
|
|||
/*
|
||||
Copyright (c) 2015-2023 VMware, Inc. All Rights Reserved.
|
||||
Copyright (c) 2015-2024 VMware, Inc. All Rights Reserved.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
|
|
@ -26,78 +26,12 @@ import (
|
|||
"github.com/vmware/govmomi/govc/flags"
|
||||
"github.com/vmware/govmomi/object"
|
||||
"github.com/vmware/govmomi/ovf"
|
||||
"github.com/vmware/govmomi/ovf/importer"
|
||||
"github.com/vmware/govmomi/vim25/types"
|
||||
)
|
||||
|
||||
type KeyValue struct {
|
||||
Key string
|
||||
Value string
|
||||
}
|
||||
|
||||
// case insensitive for Key + Value
|
||||
func (kv *KeyValue) UnmarshalJSON(b []byte) error {
|
||||
e := struct {
|
||||
types.KeyValue
|
||||
Key *string
|
||||
Value *string
|
||||
}{
|
||||
types.KeyValue{}, &kv.Key, &kv.Value,
|
||||
}
|
||||
|
||||
err := json.Unmarshal(b, &e)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if kv.Key == "" {
|
||||
kv.Key = e.KeyValue.Key // "key"
|
||||
}
|
||||
|
||||
if kv.Value == "" {
|
||||
kv.Value = e.KeyValue.Value // "value"
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
type Property struct {
|
||||
KeyValue
|
||||
Spec *ovf.Property `json:",omitempty"`
|
||||
}
|
||||
|
||||
type Network struct {
|
||||
Name string
|
||||
Network string
|
||||
}
|
||||
|
||||
type Options struct {
|
||||
AllDeploymentOptions []string `json:",omitempty"`
|
||||
Deployment string `json:",omitempty"`
|
||||
|
||||
AllDiskProvisioningOptions []string `json:",omitempty"`
|
||||
DiskProvisioning string
|
||||
|
||||
AllIPAllocationPolicyOptions []string `json:",omitempty"`
|
||||
IPAllocationPolicy string
|
||||
|
||||
AllIPProtocolOptions []string `json:",omitempty"`
|
||||
IPProtocol string
|
||||
|
||||
PropertyMapping []Property `json:",omitempty"`
|
||||
|
||||
NetworkMapping []Network `json:",omitempty"`
|
||||
|
||||
Annotation string `json:",omitempty"`
|
||||
|
||||
MarkAsTemplate bool
|
||||
PowerOn bool
|
||||
InjectOvfEnv bool
|
||||
WaitForIP bool
|
||||
Name *string
|
||||
}
|
||||
|
||||
type OptionsFlag struct {
|
||||
Options Options
|
||||
Options importer.Options
|
||||
|
||||
path string
|
||||
}
|
||||
|
|
|
|||
15
vendor/github.com/vmware/govmomi/govc/importx/ova.go
generated
vendored
15
vendor/github.com/vmware/govmomi/govc/importx/ova.go
generated
vendored
|
|
@ -1,11 +1,11 @@
|
|||
/*
|
||||
Copyright (c) 2014-2015 VMware, Inc. All Rights Reserved.
|
||||
Copyright (c) 2014-2024 VMware, Inc. All Rights Reserved.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
|
|
@ -22,6 +22,7 @@ import (
|
|||
|
||||
"github.com/vmware/govmomi/govc/cli"
|
||||
"github.com/vmware/govmomi/object"
|
||||
"github.com/vmware/govmomi/ovf/importer"
|
||||
"github.com/vmware/govmomi/vim25/types"
|
||||
)
|
||||
|
||||
|
|
@ -43,21 +44,21 @@ func (cmd *ova) Run(ctx context.Context, f *flag.FlagSet) error {
|
|||
return err
|
||||
}
|
||||
|
||||
archive := &TapeArchive{Path: fpath}
|
||||
archive.Client = cmd.Client
|
||||
archive := &importer.TapeArchive{Path: fpath}
|
||||
archive.Client = cmd.Importer.Client
|
||||
|
||||
cmd.Archive = archive
|
||||
cmd.Importer.Archive = archive
|
||||
|
||||
moref, err := cmd.Import(fpath)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
vm := object.NewVirtualMachine(cmd.Client, *moref)
|
||||
vm := object.NewVirtualMachine(cmd.Importer.Client, *moref)
|
||||
return cmd.Deploy(vm, cmd.OutputFlag)
|
||||
}
|
||||
|
||||
func (cmd *ova) Import(fpath string) (*types.ManagedObjectReference, error) {
|
||||
ovf := "*.ovf"
|
||||
return cmd.ovfx.Import(ovf)
|
||||
return cmd.Importer.Import(context.TODO(), ovf, cmd.Options)
|
||||
}
|
||||
|
|
|
|||
337
vendor/github.com/vmware/govmomi/govc/importx/ovf.go
generated
vendored
337
vendor/github.com/vmware/govmomi/govc/importx/ovf.go
generated
vendored
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright (c) 2014-2023 VMware, Inc. All Rights Reserved.
|
||||
Copyright (c) 2014-2024 VMware, Inc. All Rights Reserved.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
|
@ -17,23 +17,14 @@ limitations under the License.
|
|||
package importx
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"errors"
|
||||
"flag"
|
||||
"fmt"
|
||||
"path"
|
||||
"strings"
|
||||
|
||||
"github.com/vmware/govmomi/find"
|
||||
"github.com/vmware/govmomi/govc/cli"
|
||||
"github.com/vmware/govmomi/govc/flags"
|
||||
"github.com/vmware/govmomi/nfc"
|
||||
"github.com/vmware/govmomi/object"
|
||||
"github.com/vmware/govmomi/ovf"
|
||||
"github.com/vmware/govmomi/vim25"
|
||||
"github.com/vmware/govmomi/vim25/soap"
|
||||
"github.com/vmware/govmomi/vim25/types"
|
||||
"github.com/vmware/govmomi/ovf/importer"
|
||||
)
|
||||
|
||||
type ovfx struct {
|
||||
|
|
@ -43,17 +34,9 @@ type ovfx struct {
|
|||
*flags.ResourcePoolFlag
|
||||
*flags.FolderFlag
|
||||
|
||||
*ArchiveFlag
|
||||
*OptionsFlag
|
||||
|
||||
Name string
|
||||
VerifyManifest bool
|
||||
Hidden bool
|
||||
|
||||
Client *vim25.Client
|
||||
Datacenter *object.Datacenter
|
||||
Datastore *object.Datastore
|
||||
ResourcePool *object.ResourcePool
|
||||
Importer importer.Importer
|
||||
}
|
||||
|
||||
func init() {
|
||||
|
|
@ -72,14 +55,12 @@ func (cmd *ovfx) Register(ctx context.Context, f *flag.FlagSet) {
|
|||
cmd.FolderFlag, ctx = flags.NewFolderFlag(ctx)
|
||||
cmd.FolderFlag.Register(ctx, f)
|
||||
|
||||
cmd.ArchiveFlag, ctx = newArchiveFlag(ctx)
|
||||
cmd.ArchiveFlag.Register(ctx, f)
|
||||
cmd.OptionsFlag, ctx = newOptionsFlag(ctx)
|
||||
cmd.OptionsFlag.Register(ctx, f)
|
||||
|
||||
f.StringVar(&cmd.Name, "name", "", "Name to use for new entity")
|
||||
f.BoolVar(&cmd.VerifyManifest, "m", false, "Verify checksum of uploaded files against manifest (.mf)")
|
||||
f.BoolVar(&cmd.Hidden, "hidden", false, "Enable hidden properties")
|
||||
f.StringVar(&cmd.Importer.Name, "name", "", "Name to use for new entity")
|
||||
f.BoolVar(&cmd.Importer.VerifyManifest, "m", false, "Verify checksum of uploaded files against manifest (.mf)")
|
||||
f.BoolVar(&cmd.Importer.Hidden, "hidden", false, "Enable hidden properties")
|
||||
}
|
||||
|
||||
func (cmd *ovfx) Process(ctx context.Context) error {
|
||||
|
|
@ -95,9 +76,6 @@ func (cmd *ovfx) Process(ctx context.Context) error {
|
|||
if err := cmd.ResourcePoolFlag.Process(ctx); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := cmd.ArchiveFlag.Process(ctx); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := cmd.OptionsFlag.Process(ctx); err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
@ -117,17 +95,17 @@ func (cmd *ovfx) Run(ctx context.Context, f *flag.FlagSet) error {
|
|||
return err
|
||||
}
|
||||
|
||||
archive := &FileArchive{Path: fpath}
|
||||
archive.Client = cmd.Client
|
||||
archive := &importer.FileArchive{Path: fpath}
|
||||
archive.Client = cmd.Importer.Client
|
||||
|
||||
cmd.Archive = archive
|
||||
cmd.Importer.Archive = archive
|
||||
|
||||
moref, err := cmd.Import(fpath)
|
||||
moref, err := cmd.Importer.Import(context.TODO(), fpath, cmd.Options)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
vm := object.NewVirtualMachine(cmd.Client, *moref)
|
||||
vm := object.NewVirtualMachine(cmd.Importer.Client, *moref)
|
||||
return cmd.Deploy(vm, cmd.OutputFlag)
|
||||
}
|
||||
|
||||
|
|
@ -139,313 +117,70 @@ func (cmd *ovfx) Prepare(f *flag.FlagSet) (string, error) {
|
|||
return "", errors.New("no file specified")
|
||||
}
|
||||
|
||||
cmd.Client, err = cmd.DatastoreFlag.Client()
|
||||
cmd.Importer.Log = cmd.OutputFlag.Log
|
||||
cmd.Importer.Client, err = cmd.DatastoreFlag.Client()
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
cmd.Datacenter, err = cmd.DatastoreFlag.Datacenter()
|
||||
cmd.Importer.Datacenter, err = cmd.DatastoreFlag.Datacenter()
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
cmd.Datastore, err = cmd.DatastoreFlag.Datastore()
|
||||
cmd.Importer.Datastore, err = cmd.DatastoreFlag.Datastore()
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
cmd.ResourcePool, err = cmd.ResourcePoolFlag.ResourcePoolIfSpecified()
|
||||
cmd.Importer.ResourcePool, err = cmd.ResourcePoolIfSpecified()
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
return f.Arg(0), nil
|
||||
}
|
||||
|
||||
func (cmd *ovfx) Map(op []Property) (p []types.KeyValue) {
|
||||
for _, v := range op {
|
||||
p = append(p, types.KeyValue{
|
||||
Key: v.Key,
|
||||
Value: v.Value,
|
||||
})
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
func (cmd *ovfx) validateNetwork(e *ovf.Envelope, net Network) {
|
||||
var names []string
|
||||
|
||||
if e.Network != nil {
|
||||
for _, n := range e.Network.Networks {
|
||||
if n.Name == net.Name {
|
||||
return
|
||||
}
|
||||
names = append(names, n.Name)
|
||||
}
|
||||
}
|
||||
|
||||
_, _ = cmd.Log(fmt.Sprintf("Warning: invalid NetworkMapping.Name=%q, valid names=%s\n", net.Name, names))
|
||||
}
|
||||
|
||||
func (cmd *ovfx) NetworkMap(e *ovf.Envelope) ([]types.OvfNetworkMapping, error) {
|
||||
ctx := context.TODO()
|
||||
finder, err := cmd.DatastoreFlag.Finder()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var nmap []types.OvfNetworkMapping
|
||||
for _, m := range cmd.Options.NetworkMapping {
|
||||
if m.Network == "" {
|
||||
continue // Not set, let vSphere choose the default network
|
||||
}
|
||||
cmd.validateNetwork(e, m)
|
||||
|
||||
var ref types.ManagedObjectReference
|
||||
|
||||
net, err := finder.Network(ctx, m.Network)
|
||||
if err != nil {
|
||||
switch err.(type) {
|
||||
case *find.NotFoundError:
|
||||
if !ref.FromString(m.Network) {
|
||||
return nil, err
|
||||
} // else this is a raw MO ref
|
||||
default:
|
||||
return nil, err
|
||||
}
|
||||
} else {
|
||||
ref = net.Reference()
|
||||
}
|
||||
|
||||
nmap = append(nmap, types.OvfNetworkMapping{
|
||||
Name: m.Name,
|
||||
Network: ref,
|
||||
})
|
||||
}
|
||||
|
||||
return nmap, err
|
||||
}
|
||||
|
||||
func (cmd *ovfx) Import(fpath string) (*types.ManagedObjectReference, error) {
|
||||
ctx := context.TODO()
|
||||
|
||||
o, err := cmd.ReadOvf(fpath)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
e, err := cmd.ReadEnvelope(o)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to parse ovf: %s", err)
|
||||
}
|
||||
|
||||
name := "Govc Virtual Appliance"
|
||||
if e.VirtualSystem != nil {
|
||||
name = e.VirtualSystem.ID
|
||||
if e.VirtualSystem.Name != nil {
|
||||
name = *e.VirtualSystem.Name
|
||||
}
|
||||
|
||||
if cmd.Hidden {
|
||||
// TODO: userConfigurable is optional and defaults to false, so we should *add* userConfigurable=true
|
||||
// if not set for a Property. But, there'd be a bunch more work involved to preserve other data in doing
|
||||
// a complete xml.Marshal of the .ovf
|
||||
o = bytes.ReplaceAll(o, []byte(`userConfigurable="false"`), []byte(`userConfigurable="true"`))
|
||||
}
|
||||
}
|
||||
|
||||
// Override name from options if specified
|
||||
if cmd.Options.Name != nil {
|
||||
name = *cmd.Options.Name
|
||||
}
|
||||
|
||||
// Override name from arguments if specified
|
||||
if cmd.Name != "" {
|
||||
name = cmd.Name
|
||||
}
|
||||
|
||||
nmap, err := cmd.NetworkMap(e)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
cisp := types.OvfCreateImportSpecParams{
|
||||
DiskProvisioning: cmd.Options.DiskProvisioning,
|
||||
EntityName: name,
|
||||
IpAllocationPolicy: cmd.Options.IPAllocationPolicy,
|
||||
IpProtocol: cmd.Options.IPProtocol,
|
||||
OvfManagerCommonParams: types.OvfManagerCommonParams{
|
||||
DeploymentOption: cmd.Options.Deployment,
|
||||
Locale: "US"},
|
||||
PropertyMapping: cmd.Map(cmd.Options.PropertyMapping),
|
||||
NetworkMapping: nmap,
|
||||
}
|
||||
|
||||
host, err := cmd.HostSystemIfSpecified()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return "", err
|
||||
}
|
||||
|
||||
if cmd.ResourcePool == nil {
|
||||
if cmd.Importer.ResourcePool == nil {
|
||||
if host == nil {
|
||||
cmd.ResourcePool, err = cmd.ResourcePoolFlag.ResourcePool()
|
||||
cmd.Importer.ResourcePool, err = cmd.ResourcePoolFlag.ResourcePool()
|
||||
} else {
|
||||
cmd.ResourcePool, err = host.ResourcePool(ctx)
|
||||
cmd.Importer.ResourcePool, err = host.ResourcePool(context.TODO())
|
||||
}
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return "", err
|
||||
}
|
||||
}
|
||||
|
||||
m := ovf.NewManager(cmd.Client)
|
||||
spec, err := m.CreateImportSpec(ctx, string(o), cmd.ResourcePool, cmd.Datastore, cisp)
|
||||
cmd.Importer.Finder, err = cmd.DatastoreFlag.Finder()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if spec.Error != nil {
|
||||
return nil, errors.New(spec.Error[0].LocalizedMessage)
|
||||
}
|
||||
if spec.Warning != nil {
|
||||
for _, w := range spec.Warning {
|
||||
_, _ = cmd.Log(fmt.Sprintf("Warning: %s\n", w.LocalizedMessage))
|
||||
}
|
||||
return "", err
|
||||
}
|
||||
|
||||
if cmd.Options.Annotation != "" {
|
||||
switch s := spec.ImportSpec.(type) {
|
||||
case *types.VirtualMachineImportSpec:
|
||||
s.ConfigSpec.Annotation = cmd.Options.Annotation
|
||||
case *types.VirtualAppImportSpec:
|
||||
s.VAppConfigSpec.Annotation = cmd.Options.Annotation
|
||||
}
|
||||
cmd.Importer.Host, err = cmd.HostSystemIfSpecified()
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
var folder *object.Folder
|
||||
// The folder argument must not be set on a VM in a vApp, otherwise causes
|
||||
// InvalidArgument fault: A specified parameter was not correct: pool
|
||||
if cmd.ResourcePool.Reference().Type != "VirtualApp" {
|
||||
folder, err = cmd.FolderOrDefault("vm")
|
||||
if cmd.Importer.ResourcePool.Reference().Type != "VirtualApp" {
|
||||
cmd.Importer.Folder, err = cmd.FolderOrDefault("vm")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return "", err
|
||||
}
|
||||
}
|
||||
|
||||
if cmd.VerifyManifest {
|
||||
err = cmd.readManifest(fpath)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
if cmd.Importer.Name == "" {
|
||||
// Override name from options if specified
|
||||
if cmd.Options.Name != nil {
|
||||
cmd.Importer.Name = *cmd.Options.Name
|
||||
}
|
||||
} else {
|
||||
cmd.Options.Name = &cmd.Importer.Name
|
||||
}
|
||||
|
||||
lease, err := cmd.ResourcePool.ImportVApp(ctx, spec.ImportSpec, folder, host)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
info, err := lease.Wait(ctx, spec.FileItem)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
u := lease.StartUpdater(ctx, info)
|
||||
defer u.Done()
|
||||
|
||||
for _, i := range info.Items {
|
||||
err = cmd.Upload(ctx, lease, i)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
return &info.Entity, lease.Complete(ctx)
|
||||
}
|
||||
|
||||
func (cmd *ovfx) Upload(ctx context.Context, lease *nfc.Lease, item nfc.FileItem) error {
|
||||
file := item.Path
|
||||
|
||||
f, size, err := cmd.Open(file)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer f.Close()
|
||||
|
||||
logger := cmd.ProgressLogger(fmt.Sprintf("Uploading %s... ", path.Base(file)))
|
||||
defer logger.Wait()
|
||||
|
||||
opts := soap.Upload{
|
||||
ContentLength: size,
|
||||
Progress: logger,
|
||||
}
|
||||
|
||||
err = lease.Upload(ctx, item, f, opts)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if cmd.VerifyManifest {
|
||||
mapImportKeyToKey := func(urls []types.HttpNfcLeaseDeviceUrl, importKey string) string {
|
||||
for _, url := range urls {
|
||||
if url.ImportKey == importKey {
|
||||
return url.Key
|
||||
}
|
||||
}
|
||||
return ""
|
||||
}
|
||||
leaseInfo, err := lease.Wait(ctx, nil)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return cmd.validateChecksum(ctx, lease, file, mapImportKeyToKey(leaseInfo.DeviceUrl, item.DeviceId))
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (cmd *ovfx) validateChecksum(ctx context.Context, lease *nfc.Lease, file string, key string) error {
|
||||
sum, found := cmd.manifest[file]
|
||||
if !found {
|
||||
msg := fmt.Sprintf("missing checksum for %v in manifest file", file)
|
||||
return errors.New(msg)
|
||||
}
|
||||
// Perform the checksum match eagerly, after each file upload, instead
|
||||
// of after uploading all the files, to provide fail-fast behavior.
|
||||
// (Trade-off here is multiple GetManifest() API calls to the server.)
|
||||
manifests, err := lease.GetManifest(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
for _, m := range manifests {
|
||||
if m.Key == key {
|
||||
// Compare server-side computed checksum of uploaded file
|
||||
// against the client's manifest entry (assuming client's
|
||||
// manifest has correct checksums - client doesn't compute
|
||||
// checksum of the file before uploading).
|
||||
|
||||
// Try matching sha1 first (newer versions have moved to sha256).
|
||||
if strings.ToUpper(sum.Algorithm) == "SHA1" {
|
||||
if sum.Checksum != m.Sha1 {
|
||||
msg := fmt.Sprintf("manifest checksum %v mismatch with uploaded checksum %v for file %v",
|
||||
sum.Checksum, m.Sha1, file)
|
||||
return errors.New(msg)
|
||||
}
|
||||
// Uploaded file checksum computed by server matches with local manifest entry.
|
||||
return nil
|
||||
}
|
||||
// If not sha1, check for other types (in a separate field).
|
||||
if !strings.EqualFold(sum.Algorithm, m.ChecksumType) {
|
||||
msg := fmt.Sprintf("manifest checksum type %v mismatch with uploaded checksum type %v for file %v",
|
||||
sum.Algorithm, m.ChecksumType, file)
|
||||
return errors.New(msg)
|
||||
}
|
||||
if !strings.EqualFold(sum.Checksum, m.Checksum) {
|
||||
msg := fmt.Sprintf("manifest checksum %v mismatch with uploaded checksum %v for file %v",
|
||||
sum.Checksum, m.Checksum, file)
|
||||
return errors.New(msg)
|
||||
}
|
||||
// Uploaded file checksum computed by server matches with local manifest entry.
|
||||
return nil
|
||||
}
|
||||
}
|
||||
msg := fmt.Sprintf("missing manifest entry on server for uploaded file %v (key %v), manifests=%#v", file, key, manifests)
|
||||
return errors.New(msg)
|
||||
return f.Arg(0), nil
|
||||
}
|
||||
|
|
|
|||
139
vendor/github.com/vmware/govmomi/govc/importx/spec.go
generated
vendored
139
vendor/github.com/vmware/govmomi/govc/importx/spec.go
generated
vendored
|
|
@ -22,27 +22,18 @@ import (
|
|||
"fmt"
|
||||
"io"
|
||||
"path"
|
||||
"strings"
|
||||
|
||||
"github.com/vmware/govmomi/govc/cli"
|
||||
"github.com/vmware/govmomi/govc/flags"
|
||||
"github.com/vmware/govmomi/ovf"
|
||||
"github.com/vmware/govmomi/vim25/types"
|
||||
)
|
||||
|
||||
var (
|
||||
allDiskProvisioningOptions = types.OvfCreateImportSpecParamsDiskProvisioningType("").Strings()
|
||||
|
||||
allIPAllocationPolicyOptions = types.VAppIPAssignmentInfoIpAllocationPolicy("").Strings()
|
||||
|
||||
allIPProtocolOptions = types.VAppIPAssignmentInfoProtocols("").Strings()
|
||||
"github.com/vmware/govmomi/ovf/importer"
|
||||
)
|
||||
|
||||
type spec struct {
|
||||
*ArchiveFlag
|
||||
*flags.ClientFlag
|
||||
*flags.OutputFlag
|
||||
|
||||
Archive importer.Archive
|
||||
|
||||
hidden bool
|
||||
}
|
||||
|
||||
|
|
@ -51,8 +42,6 @@ func init() {
|
|||
}
|
||||
|
||||
func (cmd *spec) Register(ctx context.Context, f *flag.FlagSet) {
|
||||
cmd.ArchiveFlag, ctx = newArchiveFlag(ctx)
|
||||
cmd.ArchiveFlag.Register(ctx, f)
|
||||
cmd.ClientFlag, ctx = flags.NewClientFlag(ctx)
|
||||
cmd.ClientFlag.Register(ctx, f)
|
||||
|
||||
|
|
@ -63,9 +52,6 @@ func (cmd *spec) Register(ctx context.Context, f *flag.FlagSet) {
|
|||
}
|
||||
|
||||
func (cmd *spec) Process(ctx context.Context) error {
|
||||
if err := cmd.ArchiveFlag.Process(ctx); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := cmd.ClientFlag.Process(ctx); err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
@ -86,29 +72,29 @@ func (cmd *spec) Run(ctx context.Context, f *flag.FlagSet) error {
|
|||
if len(fpath) > 0 {
|
||||
switch path.Ext(fpath) {
|
||||
case ".ovf":
|
||||
cmd.Archive = &FileArchive{Path: fpath}
|
||||
cmd.Archive = &importer.FileArchive{Path: fpath}
|
||||
case "", ".ova":
|
||||
cmd.Archive = &TapeArchive{Path: fpath}
|
||||
cmd.Archive = &importer.TapeArchive{Path: fpath}
|
||||
fpath = "*.ovf"
|
||||
default:
|
||||
return fmt.Errorf("invalid file extension %s", path.Ext(fpath))
|
||||
}
|
||||
|
||||
if isRemotePath(f.Arg(0)) {
|
||||
if importer.IsRemotePath(f.Arg(0)) {
|
||||
client, err := cmd.Client()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
switch archive := cmd.Archive.(type) {
|
||||
case *FileArchive:
|
||||
case *importer.FileArchive:
|
||||
archive.Client = client
|
||||
case *TapeArchive:
|
||||
case *importer.TapeArchive:
|
||||
archive.Client = client
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
env, err := cmd.Spec(fpath)
|
||||
env, err := importer.Spec(fpath, cmd.Archive, cmd.hidden, cmd.Verbose())
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
@ -120,114 +106,9 @@ func (cmd *spec) Run(ctx context.Context, f *flag.FlagSet) error {
|
|||
}
|
||||
|
||||
type specResult struct {
|
||||
*Options
|
||||
*importer.Options
|
||||
}
|
||||
|
||||
func (*specResult) Write(w io.Writer) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (cmd *spec) Map(e *ovf.Envelope) (res []Property) {
|
||||
if e == nil || e.VirtualSystem == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
for _, p := range e.VirtualSystem.Product {
|
||||
for i, v := range p.Property {
|
||||
if v.UserConfigurable == nil {
|
||||
continue
|
||||
}
|
||||
if !*v.UserConfigurable && !cmd.hidden {
|
||||
continue
|
||||
}
|
||||
|
||||
d := ""
|
||||
if v.Default != nil {
|
||||
d = *v.Default
|
||||
}
|
||||
|
||||
// vSphere only accept True/False as boolean values for some reason
|
||||
if v.Type == "boolean" {
|
||||
d = strings.Title(d)
|
||||
}
|
||||
|
||||
np := Property{KeyValue: KeyValue{Key: p.Key(v), Value: d}}
|
||||
|
||||
if cmd.Verbose() {
|
||||
np.Spec = &p.Property[i]
|
||||
}
|
||||
|
||||
res = append(res, np)
|
||||
}
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
func (cmd *spec) Spec(fpath string) (*Options, error) {
|
||||
e := &ovf.Envelope{}
|
||||
if fpath != "" {
|
||||
d, err := cmd.ReadOvf(fpath)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if e, err = cmd.ReadEnvelope(d); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
var deploymentOptions []string
|
||||
if e.DeploymentOption != nil && e.DeploymentOption.Configuration != nil {
|
||||
// add default first
|
||||
for _, c := range e.DeploymentOption.Configuration {
|
||||
if c.Default != nil && *c.Default {
|
||||
deploymentOptions = append(deploymentOptions, c.ID)
|
||||
}
|
||||
}
|
||||
|
||||
for _, c := range e.DeploymentOption.Configuration {
|
||||
if c.Default == nil || !*c.Default {
|
||||
deploymentOptions = append(deploymentOptions, c.ID)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
o := Options{
|
||||
DiskProvisioning: allDiskProvisioningOptions[0],
|
||||
IPAllocationPolicy: allIPAllocationPolicyOptions[0],
|
||||
IPProtocol: allIPProtocolOptions[0],
|
||||
MarkAsTemplate: false,
|
||||
PowerOn: false,
|
||||
WaitForIP: false,
|
||||
InjectOvfEnv: false,
|
||||
PropertyMapping: cmd.Map(e),
|
||||
}
|
||||
|
||||
if deploymentOptions != nil {
|
||||
o.Deployment = deploymentOptions[0]
|
||||
}
|
||||
|
||||
if e.VirtualSystem != nil && e.VirtualSystem.Annotation != nil {
|
||||
for _, a := range e.VirtualSystem.Annotation {
|
||||
o.Annotation += a.Annotation
|
||||
}
|
||||
}
|
||||
|
||||
if e.Network != nil {
|
||||
for _, net := range e.Network.Networks {
|
||||
o.NetworkMapping = append(o.NetworkMapping, Network{net.Name, ""})
|
||||
}
|
||||
}
|
||||
|
||||
if cmd.Verbose() {
|
||||
if deploymentOptions != nil {
|
||||
o.AllDeploymentOptions = deploymentOptions
|
||||
}
|
||||
o.AllDiskProvisioningOptions = allDiskProvisioningOptions
|
||||
o.AllIPAllocationPolicyOptions = allIPAllocationPolicyOptions
|
||||
o.AllIPProtocolOptions = allIPProtocolOptions
|
||||
}
|
||||
|
||||
return &o, nil
|
||||
}
|
||||
|
|
|
|||
11
vendor/github.com/vmware/govmomi/govc/vm/clone.go
generated
vendored
11
vendor/github.com/vmware/govmomi/govc/vm/clone.go
generated
vendored
|
|
@ -1,11 +1,11 @@
|
|||
/*
|
||||
Copyright (c) 2014-2016 VMware, Inc. All Rights Reserved.
|
||||
Copyright (c) 2016-2024 VMware, Inc. All Rights Reserved.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
|
|
@ -243,6 +243,9 @@ func (cmd *clone) Run(ctx context.Context, f *flag.FlagSet) error {
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if cmd.Spec {
|
||||
return nil
|
||||
}
|
||||
|
||||
if cmd.cpus > 0 || cmd.memory > 0 || cmd.annotation != "" {
|
||||
vmConfigSpec := types.VirtualMachineConfigSpec{}
|
||||
|
|
@ -471,6 +474,10 @@ func (cmd *clone) cloneVM(ctx context.Context) (*object.VirtualMachine, error) {
|
|||
cloneSpec.Customization = &customSpec
|
||||
}
|
||||
|
||||
if cmd.Spec {
|
||||
return nil, cmd.WriteAny(cloneSpec)
|
||||
}
|
||||
|
||||
task, err := cmd.VirtualMachine.Clone(ctx, cmd.Folder, cmd.name, *cloneSpec)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
|
|
|||
16
vendor/github.com/vmware/govmomi/govc/vm/create.go
generated
vendored
16
vendor/github.com/vmware/govmomi/govc/vm/create.go
generated
vendored
|
|
@ -307,7 +307,7 @@ func (cmd *create) Run(ctx context.Context, f *flag.FlagSet) error {
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if cmd.place {
|
||||
if cmd.place || cmd.Spec {
|
||||
return nil
|
||||
}
|
||||
info, err := task.WaitForResult(ctx, nil)
|
||||
|
|
@ -490,7 +490,7 @@ func (cmd *create) createVM(ctx context.Context) (*object.Task, error) {
|
|||
return nil, fmt.Errorf("please provide either a cluster, datastore or datastore-cluster")
|
||||
}
|
||||
|
||||
if !cmd.force {
|
||||
if !cmd.force && !cmd.Spec {
|
||||
vmxPath := fmt.Sprintf("%s/%s.vmx", cmd.name, cmd.name)
|
||||
|
||||
_, err := datastore.Stat(ctx, vmxPath)
|
||||
|
|
@ -506,6 +506,10 @@ func (cmd *create) createVM(ctx context.Context) (*object.Task, error) {
|
|||
VmPathName: fmt.Sprintf("[%s]", datastore.Name()),
|
||||
}
|
||||
|
||||
if cmd.Spec {
|
||||
return nil, cmd.WriteAny(spec)
|
||||
}
|
||||
|
||||
return folder.CreateVM(ctx, *spec, cmd.ResourcePool, cmd.HostSystem)
|
||||
}
|
||||
|
||||
|
|
@ -519,6 +523,14 @@ func (cmd *create) addStorage(devices object.VirtualDeviceList) (object.VirtualD
|
|||
|
||||
devices = append(devices, nvme)
|
||||
cmd.controller = devices.Name(nvme)
|
||||
} else if cmd.controller == "sata" {
|
||||
sata, err := devices.CreateSATAController()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
devices = append(devices, sata)
|
||||
cmd.controller = devices.Name(sata)
|
||||
} else {
|
||||
scsi, err := devices.CreateSCSIController(cmd.controller)
|
||||
if err != nil {
|
||||
|
|
|
|||
42
vendor/github.com/vmware/govmomi/govc/vm/migrate.go
generated
vendored
42
vendor/github.com/vmware/govmomi/govc/vm/migrate.go
generated
vendored
|
|
@ -1,11 +1,11 @@
|
|||
/*
|
||||
Copyright (c) 2016 VMware, Inc. All Rights Reserved.
|
||||
Copyright (c) 2016-2024 VMware, Inc. All Rights Reserved.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
|
|
@ -32,6 +32,7 @@ type migrate struct {
|
|||
*flags.ResourcePoolFlag
|
||||
*flags.HostSystemFlag
|
||||
*flags.DatastoreFlag
|
||||
*flags.NetworkFlag
|
||||
*flags.VirtualMachineFlag
|
||||
|
||||
priority types.VirtualMachineMovePriority
|
||||
|
|
@ -58,6 +59,9 @@ func (cmd *migrate) Register(ctx context.Context, f *flag.FlagSet) {
|
|||
cmd.DatastoreFlag, ctx = flags.NewDatastoreFlag(ctx)
|
||||
cmd.DatastoreFlag.Register(ctx, f)
|
||||
|
||||
cmd.NetworkFlag, ctx = flags.NewNetworkFlag(ctx)
|
||||
cmd.NetworkFlag.Register(ctx, f)
|
||||
|
||||
f.StringVar((*string)(&cmd.priority), "priority", string(types.VirtualMachineMovePriorityDefaultPriority), "The task priority")
|
||||
}
|
||||
|
||||
|
|
@ -77,6 +81,9 @@ func (cmd *migrate) Process(ctx context.Context) error {
|
|||
if err := cmd.DatastoreFlag.Process(ctx); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := cmd.NetworkFlag.Process(ctx); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
@ -95,7 +102,36 @@ Examples:
|
|||
}
|
||||
|
||||
func (cmd *migrate) relocate(ctx context.Context, vm *object.VirtualMachine) error {
|
||||
task, err := vm.Relocate(ctx, cmd.spec, cmd.priority)
|
||||
spec := cmd.spec
|
||||
|
||||
if cmd.NetworkFlag.IsSet() {
|
||||
dev, err := cmd.NetworkFlag.Device()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
devices, err := vm.Device(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
net := devices.SelectByType((*types.VirtualEthernetCard)(nil))
|
||||
if len(net) != 1 {
|
||||
return fmt.Errorf("-net specified, but %s has %d nics", vm.Name(), len(net))
|
||||
}
|
||||
cmd.NetworkFlag.Change(net[0], dev)
|
||||
|
||||
spec.DeviceChange = append(spec.DeviceChange, &types.VirtualDeviceConfigSpec{
|
||||
Device: net[0],
|
||||
Operation: types.VirtualDeviceConfigSpecOperationEdit,
|
||||
})
|
||||
}
|
||||
|
||||
if cmd.VirtualMachineFlag.Spec {
|
||||
return cmd.VirtualMachineFlag.WriteAny(spec)
|
||||
}
|
||||
|
||||
task, err := vm.Relocate(ctx, spec, cmd.priority)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
|||
2
vendor/github.com/vmware/govmomi/internal/version/version.go
generated
vendored
2
vendor/github.com/vmware/govmomi/internal/version/version.go
generated
vendored
|
|
@ -21,5 +21,5 @@ const (
|
|||
ClientName = "govmomi"
|
||||
|
||||
// ClientVersion is the version of this SDK
|
||||
ClientVersion = "0.38.0"
|
||||
ClientVersion = "0.39.0"
|
||||
)
|
||||
|
|
|
|||
77
vendor/github.com/vmware/govmomi/object/virtual_device_list.go
generated
vendored
77
vendor/github.com/vmware/govmomi/object/virtual_device_list.go
generated
vendored
|
|
@ -361,6 +361,77 @@ func (l VirtualDeviceList) newNVMEBusNumber() int32 {
|
|||
return -1
|
||||
}
|
||||
|
||||
// FindSATAController will find the named SATA or AHCI controller if given, otherwise will pick an available controller.
|
||||
// An error is returned if the named controller is not found or not a SATA or AHCI controller. Or, if name is not
|
||||
// given and no available controller can be found.
|
||||
func (l VirtualDeviceList) FindSATAController(name string) (types.BaseVirtualController, error) {
|
||||
if name != "" {
|
||||
d := l.Find(name)
|
||||
if d == nil {
|
||||
return nil, fmt.Errorf("device '%s' not found", name)
|
||||
}
|
||||
switch c := d.(type) {
|
||||
case *types.VirtualSATAController:
|
||||
return c, nil
|
||||
case *types.VirtualAHCIController:
|
||||
return c, nil
|
||||
default:
|
||||
return nil, fmt.Errorf("%s is not a SATA or AHCI controller", name)
|
||||
}
|
||||
}
|
||||
|
||||
c := l.PickController((*types.VirtualSATAController)(nil))
|
||||
if c == nil {
|
||||
c = l.PickController((*types.VirtualAHCIController)(nil))
|
||||
}
|
||||
if c == nil {
|
||||
return nil, errors.New("no available SATA or AHCI controller")
|
||||
}
|
||||
|
||||
switch c := c.(type) {
|
||||
case *types.VirtualSATAController:
|
||||
return c, nil
|
||||
case *types.VirtualAHCIController:
|
||||
return c, nil
|
||||
}
|
||||
|
||||
return nil, errors.New("unexpected controller type")
|
||||
}
|
||||
|
||||
// CreateSATAController creates a new SATA controller.
|
||||
func (l VirtualDeviceList) CreateSATAController() (types.BaseVirtualDevice, error) {
|
||||
sata := &types.VirtualAHCIController{}
|
||||
sata.BusNumber = l.newSATABusNumber()
|
||||
sata.Key = l.NewKey()
|
||||
|
||||
return sata, nil
|
||||
}
|
||||
|
||||
var sataBusNumbers = []int{0, 1, 2, 3}
|
||||
|
||||
// newSATABusNumber returns the bus number to use for adding a new SATA bus device.
|
||||
// -1 is returned if there are no bus numbers available.
|
||||
func (l VirtualDeviceList) newSATABusNumber() int32 {
|
||||
var used []int
|
||||
|
||||
for _, d := range l.SelectByType((*types.VirtualSATAController)(nil)) {
|
||||
num := d.(types.BaseVirtualController).GetVirtualController().BusNumber
|
||||
if num >= 0 {
|
||||
used = append(used, int(num))
|
||||
} // else caller is creating a new vm using SATAControllerTypes
|
||||
}
|
||||
|
||||
sort.Ints(used)
|
||||
|
||||
for i, n := range sataBusNumbers {
|
||||
if i == len(used) || n != used[i] {
|
||||
return int32(n)
|
||||
}
|
||||
}
|
||||
|
||||
return -1
|
||||
}
|
||||
|
||||
// FindDiskController will find an existing ide or scsi disk controller.
|
||||
func (l VirtualDeviceList) FindDiskController(name string) (types.BaseVirtualController, error) {
|
||||
switch {
|
||||
|
|
@ -370,6 +441,8 @@ func (l VirtualDeviceList) FindDiskController(name string) (types.BaseVirtualCon
|
|||
return l.FindSCSIController("")
|
||||
case name == "nvme":
|
||||
return l.FindNVMEController("")
|
||||
case name == "sata":
|
||||
return l.FindSATAController("")
|
||||
default:
|
||||
if c, ok := l.Find(name).(types.BaseVirtualController); ok {
|
||||
return c, nil
|
||||
|
|
@ -389,6 +462,8 @@ func (l VirtualDeviceList) PickController(kind types.BaseVirtualController) type
|
|||
return num < 15
|
||||
case *types.VirtualIDEController:
|
||||
return num < 2
|
||||
case types.BaseVirtualSATAController:
|
||||
return num < 30
|
||||
case *types.VirtualNVMEController:
|
||||
return num < 8
|
||||
default:
|
||||
|
|
@ -909,8 +984,6 @@ func (l VirtualDeviceList) Type(device types.BaseVirtualDevice) string {
|
|||
return "pvscsi"
|
||||
case *types.VirtualLsiLogicSASController:
|
||||
return "lsilogic-sas"
|
||||
case *types.VirtualNVMEController:
|
||||
return "nvme"
|
||||
case *types.VirtualPrecisionClock:
|
||||
return "clock"
|
||||
default:
|
||||
|
|
|
|||
27
vendor/github.com/vmware/govmomi/object/virtual_disk_manager.go
generated
vendored
27
vendor/github.com/vmware/govmomi/object/virtual_disk_manager.go
generated
vendored
|
|
@ -94,6 +94,33 @@ func (m VirtualDiskManager) CreateVirtualDisk(
|
|||
return NewTask(m.c, res.Returnval), nil
|
||||
}
|
||||
|
||||
// ExtendVirtualDisk extends an existing virtual disk.
|
||||
func (m VirtualDiskManager) ExtendVirtualDisk(
|
||||
ctx context.Context,
|
||||
name string, datacenter *Datacenter,
|
||||
capacityKb int64,
|
||||
eagerZero *bool) (*Task, error) {
|
||||
|
||||
req := types.ExtendVirtualDisk_Task{
|
||||
This: m.Reference(),
|
||||
Name: name,
|
||||
NewCapacityKb: capacityKb,
|
||||
EagerZero: eagerZero,
|
||||
}
|
||||
|
||||
if datacenter != nil {
|
||||
ref := datacenter.Reference()
|
||||
req.Datacenter = &ref
|
||||
}
|
||||
|
||||
res, err := methods.ExtendVirtualDisk_Task(ctx, m.c, &req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return NewTask(m.c, res.Returnval), nil
|
||||
}
|
||||
|
||||
// MoveVirtualDisk moves a virtual disk.
|
||||
func (m VirtualDiskManager) MoveVirtualDisk(
|
||||
ctx context.Context,
|
||||
|
|
|
|||
111
vendor/github.com/vmware/govmomi/object/vm_compatability_checker.go
generated
vendored
Normal file
111
vendor/github.com/vmware/govmomi/object/vm_compatability_checker.go
generated
vendored
Normal file
|
|
@ -0,0 +1,111 @@
|
|||
/*
|
||||
Copyright (c) 2024-2024 VMware, Inc. All Rights Reserved.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package object
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/vmware/govmomi/vim25"
|
||||
"github.com/vmware/govmomi/vim25/methods"
|
||||
"github.com/vmware/govmomi/vim25/types"
|
||||
)
|
||||
|
||||
// VmCompatibilityChecker models the CompatibilityChecker, a singleton managed
|
||||
// object that can answer questions about compatibility of a virtual machine
|
||||
// with a host.
|
||||
//
|
||||
// For more information, see:
|
||||
// https://dp-downloads.broadcom.com/api-content/apis/API_VWSA_001/8.0U3/html/ReferenceGuides/vim.vm.check.CompatibilityChecker.html
|
||||
type VmCompatibilityChecker struct {
|
||||
Common
|
||||
}
|
||||
|
||||
func NewVmCompatibilityChecker(c *vim25.Client) *VmCompatibilityChecker {
|
||||
return &VmCompatibilityChecker{
|
||||
Common: NewCommon(c, *c.ServiceContent.VmCompatibilityChecker),
|
||||
}
|
||||
}
|
||||
|
||||
func (c VmCompatibilityChecker) CheckCompatibility(
|
||||
ctx context.Context,
|
||||
vm types.ManagedObjectReference,
|
||||
host *types.ManagedObjectReference,
|
||||
pool *types.ManagedObjectReference,
|
||||
testTypes ...types.CheckTestType) ([]types.CheckResult, error) {
|
||||
|
||||
req := types.CheckCompatibility_Task{
|
||||
This: c.Reference(),
|
||||
Vm: vm,
|
||||
Host: host,
|
||||
Pool: pool,
|
||||
TestType: checkTestTypesToStrings(testTypes),
|
||||
}
|
||||
|
||||
res, err := methods.CheckCompatibility_Task(ctx, c.c, &req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
ti, err := NewTask(c.c, res.Returnval).WaitForResult(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return ti.Result.(types.ArrayOfCheckResult).CheckResult, nil
|
||||
}
|
||||
|
||||
func (c VmCompatibilityChecker) CheckVmConfig(
|
||||
ctx context.Context,
|
||||
spec types.VirtualMachineConfigSpec,
|
||||
vm *types.ManagedObjectReference,
|
||||
host *types.ManagedObjectReference,
|
||||
pool *types.ManagedObjectReference,
|
||||
testTypes ...types.CheckTestType) ([]types.CheckResult, error) {
|
||||
|
||||
req := types.CheckVmConfig_Task{
|
||||
This: c.Reference(),
|
||||
Spec: spec,
|
||||
Vm: vm,
|
||||
Host: host,
|
||||
Pool: pool,
|
||||
TestType: checkTestTypesToStrings(testTypes),
|
||||
}
|
||||
|
||||
res, err := methods.CheckVmConfig_Task(ctx, c.c, &req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
ti, err := NewTask(c.c, res.Returnval).WaitForResult(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return ti.Result.(types.ArrayOfCheckResult).CheckResult, nil
|
||||
}
|
||||
|
||||
func checkTestTypesToStrings(testTypes []types.CheckTestType) []string {
|
||||
if len(testTypes) == 0 {
|
||||
return nil
|
||||
}
|
||||
|
||||
s := make([]string, len(testTypes))
|
||||
for i := range testTypes {
|
||||
s[i] = string(testTypes[i])
|
||||
}
|
||||
return s
|
||||
}
|
||||
67
vendor/github.com/vmware/govmomi/object/vm_provisioning_checker.go
generated
vendored
Normal file
67
vendor/github.com/vmware/govmomi/object/vm_provisioning_checker.go
generated
vendored
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
/*
|
||||
Copyright (c) 2024-2024 VMware, Inc. All Rights Reserved.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package object
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/vmware/govmomi/vim25"
|
||||
"github.com/vmware/govmomi/vim25/methods"
|
||||
"github.com/vmware/govmomi/vim25/types"
|
||||
)
|
||||
|
||||
// VmProvisioningChecker models the ProvisioningChecker, a singleton managed
|
||||
// object that can answer questions about the feasibility of certain
|
||||
// provisioning operations.
|
||||
//
|
||||
// For more information, see:
|
||||
// https://dp-downloads.broadcom.com/api-content/apis/API_VWSA_001/8.0U3/html/ReferenceGuides/vim.vm.check.ProvisioningChecker.html
|
||||
type VmProvisioningChecker struct {
|
||||
Common
|
||||
}
|
||||
|
||||
func NewVmProvisioningChecker(c *vim25.Client) *VmProvisioningChecker {
|
||||
return &VmProvisioningChecker{
|
||||
Common: NewCommon(c, *c.ServiceContent.VmProvisioningChecker),
|
||||
}
|
||||
}
|
||||
|
||||
func (c VmProvisioningChecker) CheckRelocate(
|
||||
ctx context.Context,
|
||||
vm types.ManagedObjectReference,
|
||||
spec types.VirtualMachineRelocateSpec,
|
||||
testTypes ...types.CheckTestType) ([]types.CheckResult, error) {
|
||||
|
||||
req := types.CheckRelocate_Task{
|
||||
This: c.Reference(),
|
||||
Vm: vm,
|
||||
Spec: spec,
|
||||
TestType: checkTestTypesToStrings(testTypes),
|
||||
}
|
||||
|
||||
res, err := methods.CheckRelocate_Task(ctx, c.c, &req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
ti, err := NewTask(c.c, res.Returnval).WaitForResult(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return ti.Result.(types.ArrayOfCheckResult).CheckResult, nil
|
||||
}
|
||||
|
|
@ -1,11 +1,11 @@
|
|||
/*
|
||||
Copyright (c) 2014-2015 VMware, Inc. All Rights Reserved.
|
||||
Copyright (c) 2024-2024 VMware, Inc. All Rights Reserved.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
|
|
@ -14,14 +14,13 @@ See the License for the specific language governing permissions and
|
|||
limitations under the License.
|
||||
*/
|
||||
|
||||
package importx
|
||||
package importer
|
||||
|
||||
import (
|
||||
"archive/tar"
|
||||
"bytes"
|
||||
"context"
|
||||
"errors"
|
||||
"flag"
|
||||
"fmt"
|
||||
"io"
|
||||
"net/url"
|
||||
|
|
@ -31,32 +30,12 @@ import (
|
|||
"strings"
|
||||
|
||||
"github.com/vmware/govmomi/ovf"
|
||||
"github.com/vmware/govmomi/vapi/library"
|
||||
"github.com/vmware/govmomi/vim25"
|
||||
"github.com/vmware/govmomi/vim25/soap"
|
||||
)
|
||||
|
||||
// ArchiveFlag doesn't register any flags;
|
||||
// only encapsulates some common archive related functionality.
|
||||
type ArchiveFlag struct {
|
||||
Archive
|
||||
|
||||
manifest map[string]*library.Checksum
|
||||
}
|
||||
|
||||
func newArchiveFlag(ctx context.Context) (*ArchiveFlag, context.Context) {
|
||||
return &ArchiveFlag{}, ctx
|
||||
}
|
||||
|
||||
func (f *ArchiveFlag) Register(ctx context.Context, fs *flag.FlagSet) {
|
||||
}
|
||||
|
||||
func (f *ArchiveFlag) Process(ctx context.Context) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (f *ArchiveFlag) ReadOvf(fpath string) ([]byte, error) {
|
||||
r, _, err := f.Open(fpath)
|
||||
func ReadOvf(fpath string, a Archive) ([]byte, error) {
|
||||
r, _, err := a.Open(fpath)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
@ -65,7 +44,7 @@ func (f *ArchiveFlag) ReadOvf(fpath string) ([]byte, error) {
|
|||
return io.ReadAll(r)
|
||||
}
|
||||
|
||||
func (f *ArchiveFlag) ReadEnvelope(data []byte) (*ovf.Envelope, error) {
|
||||
func ReadEnvelope(data []byte) (*ovf.Envelope, error) {
|
||||
e, err := ovf.Unmarshal(bytes.NewReader(data))
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to parse ovf: %s", err)
|
||||
|
|
@ -74,22 +53,6 @@ func (f *ArchiveFlag) ReadEnvelope(data []byte) (*ovf.Envelope, error) {
|
|||
return e, nil
|
||||
}
|
||||
|
||||
func (f *ArchiveFlag) readManifest(fpath string) error {
|
||||
base := filepath.Base(fpath)
|
||||
ext := filepath.Ext(base)
|
||||
mfName := strings.Replace(base, ext, ".mf", 1)
|
||||
|
||||
mf, _, err := f.Open(mfName)
|
||||
if err != nil {
|
||||
msg := fmt.Sprintf("manifest %q: %s", mf, err)
|
||||
fmt.Fprintln(os.Stderr, msg)
|
||||
return errors.New(msg)
|
||||
}
|
||||
f.manifest, err = library.ReadManifest(mf)
|
||||
_ = mf.Close()
|
||||
return err
|
||||
}
|
||||
|
||||
type Archive interface {
|
||||
Open(string) (io.ReadCloser, int64, error)
|
||||
}
|
||||
|
|
@ -163,7 +126,7 @@ type Opener struct {
|
|||
*vim25.Client
|
||||
}
|
||||
|
||||
func isRemotePath(path string) bool {
|
||||
func IsRemotePath(path string) bool {
|
||||
if strings.HasPrefix(path, "http://") || strings.HasPrefix(path, "https://") {
|
||||
return true
|
||||
}
|
||||
|
|
@ -185,7 +148,7 @@ func (o Opener) OpenLocal(path string) (io.ReadCloser, int64, error) {
|
|||
}
|
||||
|
||||
func (o Opener) OpenFile(path string) (io.ReadCloser, int64, error) {
|
||||
if isRemotePath(path) {
|
||||
if IsRemotePath(path) {
|
||||
return o.OpenRemote(path)
|
||||
}
|
||||
return o.OpenLocal(path)
|
||||
|
|
@ -1,11 +1,11 @@
|
|||
/*
|
||||
Copyright (c) 2014 VMware, Inc. All Rights Reserved.
|
||||
Copyright (c) 2024-2024 VMware, Inc. All Rights Reserved.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
|
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||
limitations under the License.
|
||||
*/
|
||||
|
||||
package importx
|
||||
package importer
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
326
vendor/github.com/vmware/govmomi/ovf/importer/importer.go
generated
vendored
Normal file
326
vendor/github.com/vmware/govmomi/ovf/importer/importer.go
generated
vendored
Normal file
|
|
@ -0,0 +1,326 @@
|
|||
/*
|
||||
Copyright (c) 2024-2024 VMware, Inc. All Rights Reserved.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package importer
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
"os"
|
||||
"path"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"github.com/vmware/govmomi/find"
|
||||
"github.com/vmware/govmomi/nfc"
|
||||
"github.com/vmware/govmomi/object"
|
||||
"github.com/vmware/govmomi/ovf"
|
||||
"github.com/vmware/govmomi/vapi/library"
|
||||
"github.com/vmware/govmomi/vim25"
|
||||
"github.com/vmware/govmomi/vim25/progress"
|
||||
"github.com/vmware/govmomi/vim25/soap"
|
||||
"github.com/vmware/govmomi/vim25/types"
|
||||
)
|
||||
|
||||
type Importer struct {
|
||||
Log progress.LogFunc
|
||||
|
||||
Name string
|
||||
VerifyManifest bool
|
||||
Hidden bool
|
||||
|
||||
Client *vim25.Client
|
||||
Finder *find.Finder
|
||||
Sinker progress.Sinker
|
||||
|
||||
Datacenter *object.Datacenter
|
||||
Datastore *object.Datastore
|
||||
ResourcePool *object.ResourcePool
|
||||
Host *object.HostSystem
|
||||
Folder *object.Folder
|
||||
|
||||
Archive Archive
|
||||
Manifest map[string]*library.Checksum
|
||||
}
|
||||
|
||||
func (imp *Importer) ReadManifest(fpath string) error {
|
||||
base := filepath.Base(fpath)
|
||||
ext := filepath.Ext(base)
|
||||
mfName := strings.Replace(base, ext, ".mf", 1)
|
||||
|
||||
mf, _, err := imp.Archive.Open(mfName)
|
||||
if err != nil {
|
||||
msg := fmt.Sprintf("manifest %q: %s", mf, err)
|
||||
fmt.Fprintln(os.Stderr, msg)
|
||||
return errors.New(msg)
|
||||
}
|
||||
imp.Manifest, err = library.ReadManifest(mf)
|
||||
_ = mf.Close()
|
||||
return err
|
||||
}
|
||||
|
||||
func (imp *Importer) Import(ctx context.Context, fpath string, opts Options) (*types.ManagedObjectReference, error) {
|
||||
|
||||
o, err := ReadOvf(fpath, imp.Archive)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
e, err := ReadEnvelope(o)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to parse ovf: %s", err)
|
||||
}
|
||||
|
||||
if e.VirtualSystem != nil {
|
||||
if e.VirtualSystem != nil {
|
||||
if opts.Name == nil {
|
||||
opts.Name = &e.VirtualSystem.ID
|
||||
if e.VirtualSystem.Name != nil {
|
||||
opts.Name = e.VirtualSystem.Name
|
||||
}
|
||||
}
|
||||
}
|
||||
if imp.Hidden {
|
||||
// TODO: userConfigurable is optional and defaults to false, so we should *add* userConfigurable=true
|
||||
// if not set for a Property. But, there'd be a bunch more work involved to preserve other data in doing
|
||||
// a complete xml.Marshal of the .ovf
|
||||
o = bytes.ReplaceAll(o, []byte(`userConfigurable="false"`), []byte(`userConfigurable="true"`))
|
||||
}
|
||||
}
|
||||
|
||||
name := "Govc Virtual Appliance"
|
||||
if opts.Name != nil {
|
||||
name = *opts.Name
|
||||
}
|
||||
|
||||
nmap, err := imp.NetworkMap(ctx, e, opts.NetworkMapping)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
cisp := types.OvfCreateImportSpecParams{
|
||||
DiskProvisioning: opts.DiskProvisioning,
|
||||
EntityName: name,
|
||||
IpAllocationPolicy: opts.IPAllocationPolicy,
|
||||
IpProtocol: opts.IPProtocol,
|
||||
OvfManagerCommonParams: types.OvfManagerCommonParams{
|
||||
DeploymentOption: opts.Deployment,
|
||||
Locale: "US"},
|
||||
PropertyMapping: OVFMap(opts.PropertyMapping),
|
||||
NetworkMapping: nmap,
|
||||
}
|
||||
|
||||
m := ovf.NewManager(imp.Client)
|
||||
spec, err := m.CreateImportSpec(ctx, string(o), imp.ResourcePool, imp.Datastore, cisp)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if spec.Error != nil {
|
||||
return nil, errors.New(spec.Error[0].LocalizedMessage)
|
||||
}
|
||||
if spec.Warning != nil {
|
||||
for _, w := range spec.Warning {
|
||||
_, _ = imp.Log(fmt.Sprintf("Warning: %s\n", w.LocalizedMessage))
|
||||
}
|
||||
}
|
||||
|
||||
if opts.Annotation != "" {
|
||||
switch s := spec.ImportSpec.(type) {
|
||||
case *types.VirtualMachineImportSpec:
|
||||
s.ConfigSpec.Annotation = opts.Annotation
|
||||
case *types.VirtualAppImportSpec:
|
||||
s.VAppConfigSpec.Annotation = opts.Annotation
|
||||
}
|
||||
}
|
||||
|
||||
if imp.VerifyManifest {
|
||||
if err := imp.ReadManifest(fpath); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
lease, err := imp.ResourcePool.ImportVApp(ctx, spec.ImportSpec, imp.Folder, imp.Host)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
info, err := lease.Wait(ctx, spec.FileItem)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
u := lease.StartUpdater(ctx, info)
|
||||
defer u.Done()
|
||||
|
||||
for _, i := range info.Items {
|
||||
if err := imp.Upload(ctx, lease, i); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
return &info.Entity, lease.Complete(ctx)
|
||||
}
|
||||
|
||||
func (imp *Importer) NetworkMap(ctx context.Context, e *ovf.Envelope, networks []Network) ([]types.OvfNetworkMapping, error) {
|
||||
var nmap []types.OvfNetworkMapping
|
||||
for _, m := range networks {
|
||||
if m.Network == "" {
|
||||
continue // Not set, let vSphere choose the default network
|
||||
}
|
||||
if err := ValidateNetwork(e, m); err != nil && imp.Log != nil {
|
||||
_, _ = imp.Log(err.Error() + "\n")
|
||||
}
|
||||
|
||||
var ref types.ManagedObjectReference
|
||||
|
||||
net, err := imp.Finder.Network(ctx, m.Network)
|
||||
if err != nil {
|
||||
switch err.(type) {
|
||||
case *find.NotFoundError:
|
||||
if !ref.FromString(m.Network) {
|
||||
return nil, err
|
||||
} // else this is a raw MO ref
|
||||
default:
|
||||
return nil, err
|
||||
}
|
||||
} else {
|
||||
ref = net.Reference()
|
||||
}
|
||||
|
||||
nmap = append(nmap, types.OvfNetworkMapping{
|
||||
Name: m.Name,
|
||||
Network: ref,
|
||||
})
|
||||
}
|
||||
|
||||
return nmap, nil
|
||||
}
|
||||
|
||||
func OVFMap(op []Property) (p []types.KeyValue) {
|
||||
for _, v := range op {
|
||||
p = append(p, types.KeyValue{
|
||||
Key: v.Key,
|
||||
Value: v.Value,
|
||||
})
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
func ValidateNetwork(e *ovf.Envelope, net Network) error {
|
||||
var names []string
|
||||
|
||||
if e.Network != nil {
|
||||
for _, n := range e.Network.Networks {
|
||||
if n.Name == net.Name {
|
||||
return nil
|
||||
}
|
||||
names = append(names, n.Name)
|
||||
}
|
||||
}
|
||||
|
||||
return fmt.Errorf("warning: invalid NetworkMapping.Name=%q, valid names=%s", net.Name, names)
|
||||
}
|
||||
|
||||
func ValidateChecksum(ctx context.Context, lease *nfc.Lease, sum *library.Checksum, file string, key string) error {
|
||||
// Perform the checksum match eagerly, after each file upload, instead
|
||||
// of after uploading all the files, to provide fail-fast behavior.
|
||||
// (Trade-off here is multiple GetManifest() API calls to the server.)
|
||||
manifests, err := lease.GetManifest(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
for _, m := range manifests {
|
||||
if m.Key == key {
|
||||
// Compare server-side computed checksum of uploaded file
|
||||
// against the client's manifest entry (assuming client's
|
||||
// manifest has correct checksums - client doesn't compute
|
||||
// checksum of the file before uploading).
|
||||
|
||||
// Try matching sha1 first (newer versions have moved to sha256).
|
||||
if strings.ToUpper(sum.Algorithm) == "SHA1" {
|
||||
if sum.Checksum != m.Sha1 {
|
||||
msg := fmt.Sprintf("manifest checksum %v mismatch with uploaded checksum %v for file %v",
|
||||
sum.Checksum, m.Sha1, file)
|
||||
return errors.New(msg)
|
||||
}
|
||||
// Uploaded file checksum computed by server matches with local manifest entry.
|
||||
return nil
|
||||
}
|
||||
// If not sha1, check for other types (in a separate field).
|
||||
if !strings.EqualFold(sum.Algorithm, m.ChecksumType) {
|
||||
msg := fmt.Sprintf("manifest checksum type %v mismatch with uploaded checksum type %v for file %v",
|
||||
sum.Algorithm, m.ChecksumType, file)
|
||||
return errors.New(msg)
|
||||
}
|
||||
if !strings.EqualFold(sum.Checksum, m.Checksum) {
|
||||
msg := fmt.Sprintf("manifest checksum %v mismatch with uploaded checksum %v for file %v",
|
||||
sum.Checksum, m.Checksum, file)
|
||||
return errors.New(msg)
|
||||
}
|
||||
// Uploaded file checksum computed by server matches with local manifest entry.
|
||||
return nil
|
||||
}
|
||||
}
|
||||
msg := fmt.Sprintf("missing manifest entry on server for uploaded file %v (key %v), manifests=%#v", file, key, manifests)
|
||||
return errors.New(msg)
|
||||
}
|
||||
|
||||
func (imp *Importer) Upload(ctx context.Context, lease *nfc.Lease, item nfc.FileItem) error {
|
||||
file := item.Path
|
||||
|
||||
f, size, err := imp.Archive.Open(file)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer f.Close()
|
||||
|
||||
logger := progress.NewProgressLogger(imp.Log, fmt.Sprintf("Uploading %s... ", path.Base(file)))
|
||||
defer logger.Wait()
|
||||
|
||||
opts := soap.Upload{
|
||||
ContentLength: size,
|
||||
Progress: logger,
|
||||
}
|
||||
|
||||
err = lease.Upload(ctx, item, f, opts)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if imp.VerifyManifest {
|
||||
mapImportKeyToKey := func(urls []types.HttpNfcLeaseDeviceUrl, importKey string) string {
|
||||
for _, url := range urls {
|
||||
if url.ImportKey == importKey {
|
||||
return url.Key
|
||||
}
|
||||
}
|
||||
return ""
|
||||
}
|
||||
leaseInfo, err := lease.Wait(ctx, nil)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
sum, ok := imp.Manifest[file]
|
||||
if !ok {
|
||||
return fmt.Errorf("missing checksum for %v in manifest file", file)
|
||||
}
|
||||
return ValidateChecksum(ctx, lease, sum, file, mapImportKeyToKey(leaseInfo.DeviceUrl, item.DeviceId))
|
||||
}
|
||||
return nil
|
||||
}
|
||||
91
vendor/github.com/vmware/govmomi/ovf/importer/options.go
generated
vendored
Normal file
91
vendor/github.com/vmware/govmomi/ovf/importer/options.go
generated
vendored
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
/*
|
||||
Copyright (c) 2024-2024 VMware, Inc. All Rights Reserved.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package importer
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
|
||||
"github.com/vmware/govmomi/ovf"
|
||||
"github.com/vmware/govmomi/vim25/types"
|
||||
)
|
||||
|
||||
type KeyValue struct {
|
||||
Key string
|
||||
Value string
|
||||
}
|
||||
|
||||
// case insensitive for Key + Value
|
||||
func (kv *KeyValue) UnmarshalJSON(b []byte) error {
|
||||
e := struct {
|
||||
types.KeyValue
|
||||
Key *string
|
||||
Value *string
|
||||
}{
|
||||
types.KeyValue{}, &kv.Key, &kv.Value,
|
||||
}
|
||||
|
||||
err := json.Unmarshal(b, &e)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if kv.Key == "" {
|
||||
kv.Key = e.KeyValue.Key // "key"
|
||||
}
|
||||
|
||||
if kv.Value == "" {
|
||||
kv.Value = e.KeyValue.Value // "value"
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
type Property struct {
|
||||
KeyValue
|
||||
Spec *ovf.Property `json:",omitempty"`
|
||||
}
|
||||
|
||||
type Network struct {
|
||||
Name string
|
||||
Network string
|
||||
}
|
||||
|
||||
type Options struct {
|
||||
AllDeploymentOptions []string `json:",omitempty"`
|
||||
Deployment string `json:",omitempty"`
|
||||
|
||||
AllDiskProvisioningOptions []string `json:",omitempty"`
|
||||
DiskProvisioning string
|
||||
|
||||
AllIPAllocationPolicyOptions []string `json:",omitempty"`
|
||||
IPAllocationPolicy string
|
||||
|
||||
AllIPProtocolOptions []string `json:",omitempty"`
|
||||
IPProtocol string
|
||||
|
||||
PropertyMapping []Property `json:",omitempty"`
|
||||
|
||||
NetworkMapping []Network `json:",omitempty"`
|
||||
|
||||
Annotation string `json:",omitempty"`
|
||||
|
||||
MarkAsTemplate bool
|
||||
PowerOn bool
|
||||
InjectOvfEnv bool
|
||||
WaitForIP bool
|
||||
Name *string
|
||||
}
|
||||
138
vendor/github.com/vmware/govmomi/ovf/importer/spec.go
generated
vendored
Normal file
138
vendor/github.com/vmware/govmomi/ovf/importer/spec.go
generated
vendored
Normal file
|
|
@ -0,0 +1,138 @@
|
|||
/*
|
||||
Copyright (c) 2024-2024 VMware, Inc. All Rights Reserved.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package importer
|
||||
|
||||
import (
|
||||
"golang.org/x/text/cases"
|
||||
"golang.org/x/text/language"
|
||||
|
||||
"github.com/vmware/govmomi/ovf"
|
||||
"github.com/vmware/govmomi/vim25/types"
|
||||
)
|
||||
|
||||
var (
|
||||
allDiskProvisioningOptions = types.OvfCreateImportSpecParamsDiskProvisioningType("").Strings()
|
||||
|
||||
allIPAllocationPolicyOptions = types.VAppIPAssignmentInfoIpAllocationPolicy("").Strings()
|
||||
|
||||
allIPProtocolOptions = types.VAppIPAssignmentInfoProtocols("").Strings()
|
||||
)
|
||||
|
||||
func SpecMap(e *ovf.Envelope, hidden, verbose bool) (res []Property) {
|
||||
if e == nil || e.VirtualSystem == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
for _, p := range e.VirtualSystem.Product {
|
||||
for i, v := range p.Property {
|
||||
if v.UserConfigurable == nil {
|
||||
continue
|
||||
}
|
||||
if !*v.UserConfigurable && !hidden {
|
||||
continue
|
||||
}
|
||||
|
||||
d := ""
|
||||
if v.Default != nil {
|
||||
d = *v.Default
|
||||
}
|
||||
|
||||
// vSphere only accept True/False as boolean values for some reason
|
||||
if v.Type == "boolean" {
|
||||
d = cases.Title(language.Und).String(d)
|
||||
}
|
||||
|
||||
np := Property{KeyValue: KeyValue{Key: p.Key(v), Value: d}}
|
||||
|
||||
if verbose {
|
||||
np.Spec = &p.Property[i]
|
||||
}
|
||||
|
||||
res = append(res, np)
|
||||
}
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
func Spec(fpath string, a Archive, hidden, verbose bool) (*Options, error) {
|
||||
e := &ovf.Envelope{}
|
||||
if fpath != "" {
|
||||
d, err := ReadOvf(fpath, a)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if e, err = ReadEnvelope(d); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
var deploymentOptions []string
|
||||
if e.DeploymentOption != nil && e.DeploymentOption.Configuration != nil {
|
||||
// add default first
|
||||
for _, c := range e.DeploymentOption.Configuration {
|
||||
if c.Default != nil && *c.Default {
|
||||
deploymentOptions = append(deploymentOptions, c.ID)
|
||||
}
|
||||
}
|
||||
|
||||
for _, c := range e.DeploymentOption.Configuration {
|
||||
if c.Default == nil || !*c.Default {
|
||||
deploymentOptions = append(deploymentOptions, c.ID)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
o := Options{
|
||||
DiskProvisioning: allDiskProvisioningOptions[0],
|
||||
IPAllocationPolicy: allIPAllocationPolicyOptions[0],
|
||||
IPProtocol: allIPProtocolOptions[0],
|
||||
MarkAsTemplate: false,
|
||||
PowerOn: false,
|
||||
WaitForIP: false,
|
||||
InjectOvfEnv: false,
|
||||
PropertyMapping: SpecMap(e, hidden, verbose),
|
||||
}
|
||||
|
||||
if deploymentOptions != nil {
|
||||
o.Deployment = deploymentOptions[0]
|
||||
}
|
||||
|
||||
if e.VirtualSystem != nil && e.VirtualSystem.Annotation != nil {
|
||||
for _, a := range e.VirtualSystem.Annotation {
|
||||
o.Annotation += a.Annotation
|
||||
}
|
||||
}
|
||||
|
||||
if e.Network != nil {
|
||||
for _, net := range e.Network.Networks {
|
||||
o.NetworkMapping = append(o.NetworkMapping, Network{net.Name, ""})
|
||||
}
|
||||
}
|
||||
|
||||
if verbose {
|
||||
if deploymentOptions != nil {
|
||||
o.AllDeploymentOptions = deploymentOptions
|
||||
}
|
||||
o.AllDiskProvisioningOptions = allDiskProvisioningOptions
|
||||
o.AllIPAllocationPolicyOptions = allIPAllocationPolicyOptions
|
||||
o.AllIPProtocolOptions = allIPProtocolOptions
|
||||
}
|
||||
|
||||
return &o, nil
|
||||
}
|
||||
50
vendor/github.com/vmware/govmomi/vapi/library/finder/path.go
generated
vendored
50
vendor/github.com/vmware/govmomi/vapi/library/finder/path.go
generated
vendored
|
|
@ -21,10 +21,13 @@ import (
|
|||
"fmt"
|
||||
"net/url"
|
||||
"path"
|
||||
"strings"
|
||||
|
||||
"github.com/vmware/govmomi/object"
|
||||
"github.com/vmware/govmomi/property"
|
||||
"github.com/vmware/govmomi/vapi/library"
|
||||
"github.com/vmware/govmomi/vim25"
|
||||
"github.com/vmware/govmomi/vim25/mo"
|
||||
"github.com/vmware/govmomi/vim25/types"
|
||||
)
|
||||
|
||||
|
|
@ -130,3 +133,50 @@ func (f *PathFinder) datastoreName(ctx context.Context, id string) (string, erro
|
|||
f.cache[id] = name
|
||||
return name, nil
|
||||
}
|
||||
|
||||
// ResolveLibraryItemStorage transforms StorageURIs Datastore url (uuid) to Datastore name.
|
||||
func (f *PathFinder) ResolveLibraryItemStorage(ctx context.Context, storage []library.Storage) error {
|
||||
// TODO:
|
||||
// - reuse PathFinder.cache
|
||||
// - the transform here isn't Content Library specific, but is currently the only known use case
|
||||
backing := map[string]*mo.Datastore{}
|
||||
var ids []types.ManagedObjectReference
|
||||
|
||||
// don't think we can have more than 1 Datastore backing currently, future proof anyhow
|
||||
for _, item := range storage {
|
||||
id := item.StorageBacking.DatastoreID
|
||||
if _, ok := backing[id]; ok {
|
||||
continue
|
||||
}
|
||||
backing[id] = nil
|
||||
ids = append(ids, types.ManagedObjectReference{Type: "Datastore", Value: id})
|
||||
}
|
||||
|
||||
var ds []mo.Datastore
|
||||
pc := property.DefaultCollector(f.c)
|
||||
if err := pc.Retrieve(ctx, ids, []string{"name", "info.url"}, &ds); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
for i := range ds {
|
||||
backing[ds[i].Self.Value] = &ds[i]
|
||||
}
|
||||
|
||||
for _, item := range storage {
|
||||
b := backing[item.StorageBacking.DatastoreID]
|
||||
dsurl := b.Info.GetDatastoreInfo().Url
|
||||
|
||||
for i := range item.StorageURIs {
|
||||
u := strings.TrimPrefix(item.StorageURIs[i], dsurl)
|
||||
u = strings.TrimPrefix(u, "/")
|
||||
u = strings.SplitN(u, "?", 2)[0] // strip query, if any
|
||||
|
||||
item.StorageURIs[i] = (&object.DatastorePath{
|
||||
Datastore: b.Name,
|
||||
Path: u,
|
||||
}).String()
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
|
|||
26
vendor/github.com/vmware/govmomi/vim25/mo/type_info.go
generated
vendored
26
vendor/github.com/vmware/govmomi/vim25/mo/type_info.go
generated
vendored
|
|
@ -35,9 +35,6 @@ type typeInfo struct {
|
|||
|
||||
// Map property names to field indices.
|
||||
props map[string][]int
|
||||
|
||||
// Use base type for interface indices.
|
||||
base bool
|
||||
}
|
||||
|
||||
var typeInfoLock sync.RWMutex
|
||||
|
|
@ -68,20 +65,22 @@ func typeInfoForType(tname string) *typeInfo {
|
|||
|
||||
func baseType(ftyp reflect.Type) reflect.Type {
|
||||
base := strings.TrimPrefix(ftyp.Name(), "Base")
|
||||
switch base {
|
||||
case "MethodFault":
|
||||
return nil
|
||||
}
|
||||
if kind, ok := types.TypeFunc()(base); ok {
|
||||
return kind
|
||||
}
|
||||
return ftyp
|
||||
return nil
|
||||
}
|
||||
|
||||
func newTypeInfo(typ reflect.Type, base ...bool) *typeInfo {
|
||||
func newTypeInfo(typ reflect.Type) *typeInfo {
|
||||
t := typeInfo{
|
||||
typ: typ,
|
||||
props: make(map[string][]int),
|
||||
}
|
||||
if len(base) == 1 {
|
||||
t.base = base[0]
|
||||
}
|
||||
|
||||
t.build(typ, "", []int{})
|
||||
|
||||
return &t
|
||||
|
|
@ -170,13 +169,16 @@ func (t *typeInfo) build(typ reflect.Type, fn string, fi []int) {
|
|||
t.build(ftyp, fnc, fic)
|
||||
}
|
||||
|
||||
// Base type can only access base fields, for example Datastore.Info
|
||||
// is types.BaseDataStore, so we create a new(types.DatastoreInfo)
|
||||
// Indexed property path may traverse into array element fields.
|
||||
// When interface, use the base type to index fields.
|
||||
// For example, BaseVirtualDevice:
|
||||
// config.hardware.device[4000].deviceInfo.label
|
||||
if t.base && ftyp.Kind() == reflect.Interface {
|
||||
base := baseType(ftyp)
|
||||
t.build(base, fnc, fic)
|
||||
if ftyp.Kind() == reflect.Interface {
|
||||
if base := baseType(ftyp); base != nil {
|
||||
t.build(base, fnc, fic)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -283,7 +285,7 @@ func assignValue(val reflect.Value, fi []int, pv reflect.Value, field ...string)
|
|||
item = reflect.New(rt.Elem())
|
||||
}
|
||||
|
||||
field := newTypeInfo(item.Type(), true)
|
||||
field := newTypeInfo(item.Type())
|
||||
if ix, ok := field.props[path]; ok {
|
||||
assignValue(item, ix, pv)
|
||||
}
|
||||
|
|
|
|||
125
vendor/github.com/vmware/govmomi/vim25/progress/loger.go
generated
vendored
Normal file
125
vendor/github.com/vmware/govmomi/vim25/progress/loger.go
generated
vendored
Normal file
|
|
@ -0,0 +1,125 @@
|
|||
/*
|
||||
Copyright (c) 2024-2024 VMware, Inc. All Rights Reserved.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package progress
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
"sync"
|
||||
"time"
|
||||
)
|
||||
|
||||
type LogFunc func(msg string) (int, error)
|
||||
|
||||
type ProgressLogger struct {
|
||||
log LogFunc
|
||||
prefix string
|
||||
|
||||
wg sync.WaitGroup
|
||||
|
||||
sink chan chan Report
|
||||
done chan struct{}
|
||||
}
|
||||
|
||||
func NewProgressLogger(log LogFunc, prefix string) *ProgressLogger {
|
||||
p := &ProgressLogger{
|
||||
log: log,
|
||||
prefix: prefix,
|
||||
|
||||
sink: make(chan chan Report),
|
||||
done: make(chan struct{}),
|
||||
}
|
||||
|
||||
p.wg.Add(1)
|
||||
|
||||
go p.loopA()
|
||||
|
||||
return p
|
||||
}
|
||||
|
||||
// loopA runs before Sink() has been called.
|
||||
func (p *ProgressLogger) loopA() {
|
||||
var err error
|
||||
|
||||
defer p.wg.Done()
|
||||
|
||||
tick := time.NewTicker(100 * time.Millisecond)
|
||||
defer tick.Stop()
|
||||
|
||||
called := false
|
||||
|
||||
for stop := false; !stop; {
|
||||
select {
|
||||
case ch := <-p.sink:
|
||||
err = p.loopB(tick, ch)
|
||||
stop = true
|
||||
called = true
|
||||
case <-p.done:
|
||||
stop = true
|
||||
case <-tick.C:
|
||||
line := fmt.Sprintf("\r%s", p.prefix)
|
||||
p.log(line)
|
||||
}
|
||||
}
|
||||
|
||||
if err != nil && err != io.EOF {
|
||||
p.log(fmt.Sprintf("\r%sError: %s\n", p.prefix, err))
|
||||
} else if called {
|
||||
p.log(fmt.Sprintf("\r%sOK\n", p.prefix))
|
||||
}
|
||||
}
|
||||
|
||||
// loopA runs after Sink() has been called.
|
||||
func (p *ProgressLogger) loopB(tick *time.Ticker, ch <-chan Report) error {
|
||||
var r Report
|
||||
var ok bool
|
||||
var err error
|
||||
|
||||
for ok = true; ok; {
|
||||
select {
|
||||
case r, ok = <-ch:
|
||||
if !ok {
|
||||
break
|
||||
}
|
||||
err = r.Error()
|
||||
case <-tick.C:
|
||||
line := fmt.Sprintf("\r%s", p.prefix)
|
||||
if r != nil {
|
||||
line += fmt.Sprintf("(%.0f%%", r.Percentage())
|
||||
detail := r.Detail()
|
||||
if detail != "" {
|
||||
line += fmt.Sprintf(", %s", detail)
|
||||
}
|
||||
line += ")"
|
||||
}
|
||||
p.log(line)
|
||||
}
|
||||
}
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
func (p *ProgressLogger) Sink() chan<- Report {
|
||||
ch := make(chan Report)
|
||||
p.sink <- ch
|
||||
return ch
|
||||
}
|
||||
|
||||
func (p *ProgressLogger) Wait() {
|
||||
close(p.done)
|
||||
p.wg.Wait()
|
||||
}
|
||||
4
vendor/github.com/vmware/govmomi/vim25/types/types.go
generated
vendored
4
vendor/github.com/vmware/govmomi/vim25/types/types.go
generated
vendored
|
|
@ -91361,7 +91361,7 @@ type VirtualMachineVirtualNuma struct {
|
|||
// vNUMA node.
|
||||
// If set to be non zero, VM uses the value as vNUMA node size.
|
||||
// If unset, the VM continue to follow the behavior in last poweron.
|
||||
CoresPerNumaNode int32 `xml:"coresPerNumaNode,omitempty" json:"coresPerNumaNode,omitempty"`
|
||||
CoresPerNumaNode *int32 `xml:"coresPerNumaNode" json:"coresPerNumaNode,omitempty"`
|
||||
// Capability to expose virtual NUMA when CPU hotadd is enabled.
|
||||
//
|
||||
// If set to true, ESXi will consider exposing virtual NUMA to
|
||||
|
|
@ -91389,7 +91389,7 @@ type VirtualMachineVirtualNumaInfo struct {
|
|||
// field should be ignored.
|
||||
// In other cases, this field represents the virtual NUMA node size
|
||||
// seen by the guest.
|
||||
CoresPerNumaNode int32 `xml:"coresPerNumaNode,omitempty" json:"coresPerNumaNode,omitempty"`
|
||||
CoresPerNumaNode *int32 `xml:"coresPerNumaNode" json:"coresPerNumaNode,omitempty"`
|
||||
// Whether coresPerNode is determined automatically.
|
||||
AutoCoresPerNumaNode *bool `xml:"autoCoresPerNumaNode" json:"autoCoresPerNumaNode,omitempty"`
|
||||
// Whether virtual NUMA topology is exposed when CPU hotadd is
|
||||
|
|
|
|||
164
vendor/github.com/vmware/govmomi/vmdk/disk_info.go
generated
vendored
Normal file
164
vendor/github.com/vmware/govmomi/vmdk/disk_info.go
generated
vendored
Normal file
|
|
@ -0,0 +1,164 @@
|
|||
/*
|
||||
Copyright (c) 2024-2024 VMware, Inc. All Rights Reserved.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package vmdk
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
"github.com/vmware/govmomi/object"
|
||||
"github.com/vmware/govmomi/vim25"
|
||||
"github.com/vmware/govmomi/vim25/mo"
|
||||
"github.com/vmware/govmomi/vim25/types"
|
||||
)
|
||||
|
||||
type VirtualDiskInfo struct {
|
||||
CapacityInBytes int64
|
||||
DeviceKey int32
|
||||
FileName string
|
||||
Size int64
|
||||
UniqueSize int64
|
||||
}
|
||||
|
||||
// GetVirtualDiskInfoByUUID returns information about a virtual disk identified
|
||||
// by the provided UUID. This method is valid for the following backing types:
|
||||
//
|
||||
// - VirtualDiskFlatVer2BackingInfo
|
||||
// - VirtualDiskSeSparseBackingInfo
|
||||
// - VirtualDiskRawDiskMappingVer1BackingInfo
|
||||
// - VirtualDiskSparseVer2BackingInfo
|
||||
// - VirtualDiskRawDiskVer2BackingInfo
|
||||
//
|
||||
// These are the only backing types that have a UUID property for comparing the
|
||||
// provided value.
|
||||
func GetVirtualDiskInfoByUUID(
|
||||
ctx context.Context,
|
||||
client *vim25.Client,
|
||||
mo mo.VirtualMachine,
|
||||
fetchProperties bool,
|
||||
diskUUID string) (VirtualDiskInfo, error) {
|
||||
|
||||
if diskUUID == "" {
|
||||
return VirtualDiskInfo{}, fmt.Errorf("diskUUID is empty")
|
||||
}
|
||||
|
||||
switch {
|
||||
case fetchProperties,
|
||||
mo.Config == nil,
|
||||
mo.Config.Hardware.Device == nil,
|
||||
mo.LayoutEx == nil,
|
||||
mo.LayoutEx.Disk == nil,
|
||||
mo.LayoutEx.File == nil:
|
||||
|
||||
if ctx == nil {
|
||||
return VirtualDiskInfo{}, fmt.Errorf("ctx is nil")
|
||||
}
|
||||
if client == nil {
|
||||
return VirtualDiskInfo{}, fmt.Errorf("client is nil")
|
||||
}
|
||||
|
||||
obj := object.NewVirtualMachine(client, mo.Self)
|
||||
|
||||
if err := obj.Properties(
|
||||
ctx,
|
||||
mo.Self,
|
||||
[]string{"config", "layoutEx"},
|
||||
&mo); err != nil {
|
||||
|
||||
return VirtualDiskInfo{},
|
||||
fmt.Errorf("failed to retrieve properties: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
// Find the disk by UUID by inspecting all of the disk backing types that
|
||||
// can have an associated UUID.
|
||||
var (
|
||||
disk *types.VirtualDisk
|
||||
fileName string
|
||||
)
|
||||
for i := range mo.Config.Hardware.Device {
|
||||
switch tvd := mo.Config.Hardware.Device[i].(type) {
|
||||
case *types.VirtualDisk:
|
||||
switch tb := tvd.Backing.(type) {
|
||||
case *types.VirtualDiskFlatVer2BackingInfo:
|
||||
if tb.Uuid == diskUUID {
|
||||
disk = tvd
|
||||
fileName = tb.FileName
|
||||
}
|
||||
case *types.VirtualDiskSeSparseBackingInfo:
|
||||
if tb.Uuid == diskUUID {
|
||||
disk = tvd
|
||||
fileName = tb.FileName
|
||||
}
|
||||
case *types.VirtualDiskRawDiskMappingVer1BackingInfo:
|
||||
if tb.Uuid == diskUUID {
|
||||
disk = tvd
|
||||
fileName = tb.FileName
|
||||
}
|
||||
case *types.VirtualDiskSparseVer2BackingInfo:
|
||||
if tb.Uuid == diskUUID {
|
||||
disk = tvd
|
||||
fileName = tb.FileName
|
||||
}
|
||||
case *types.VirtualDiskRawDiskVer2BackingInfo:
|
||||
if tb.Uuid == diskUUID {
|
||||
disk = tvd
|
||||
fileName = tb.DescriptorFileName
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if disk == nil {
|
||||
return VirtualDiskInfo{},
|
||||
fmt.Errorf("disk not found with uuid %q", diskUUID)
|
||||
}
|
||||
|
||||
// Build a lookup table for determining if file key belongs to this disk
|
||||
// chain.
|
||||
diskFileKeys := map[int32]struct{}{}
|
||||
for i := range mo.LayoutEx.Disk {
|
||||
if d := mo.LayoutEx.Disk[i]; d.Key == disk.Key {
|
||||
for j := range d.Chain {
|
||||
for k := range d.Chain[j].FileKey {
|
||||
diskFileKeys[d.Chain[j].FileKey[k]] = struct{}{}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Sum the disk's total size and unique size.
|
||||
var (
|
||||
size int64
|
||||
uniqueSize int64
|
||||
)
|
||||
for i := range mo.LayoutEx.File {
|
||||
f := mo.LayoutEx.File[i]
|
||||
if _, ok := diskFileKeys[f.Key]; ok {
|
||||
size += f.Size
|
||||
uniqueSize += f.UniqueSize
|
||||
}
|
||||
}
|
||||
|
||||
return VirtualDiskInfo{
|
||||
CapacityInBytes: disk.CapacityInBytes,
|
||||
DeviceKey: disk.Key,
|
||||
FileName: fileName,
|
||||
Size: size,
|
||||
UniqueSize: uniqueSize,
|
||||
}, nil
|
||||
}
|
||||
20
vendor/github.com/vmware/govmomi/vmdk/import.go
generated
vendored
20
vendor/github.com/vmware/govmomi/vmdk/import.go
generated
vendored
|
|
@ -10,7 +10,7 @@ You may obtain a copy of the License at
|
|||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
nSee the License for the specific language governing permissions and
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
|
|
@ -41,8 +41,8 @@ var (
|
|||
ErrInvalidFormat = errors.New("vmdk: invalid format (must be streamOptimized)")
|
||||
)
|
||||
|
||||
// info is used to inspect a vmdk and generate an ovf template
|
||||
type info struct {
|
||||
// Info is used to inspect a vmdk and generate an ovf template
|
||||
type Info struct {
|
||||
Header struct {
|
||||
MagicNumber uint32
|
||||
Version uint32
|
||||
|
|
@ -56,15 +56,15 @@ type info struct {
|
|||
ImportName string
|
||||
}
|
||||
|
||||
// stat looks at the vmdk header to make sure the format is streamOptimized and
|
||||
// Stat looks at the vmdk header to make sure the format is streamOptimized and
|
||||
// extracts the disk capacity required to properly generate the ovf descriptor.
|
||||
func stat(name string) (*info, error) {
|
||||
func Stat(name string) (*Info, error) {
|
||||
f, err := os.Open(filepath.Clean(name))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var di info
|
||||
var di Info
|
||||
|
||||
var buf bytes.Buffer
|
||||
|
||||
|
|
@ -174,8 +174,8 @@ var ovfenv = `<?xml version="1.0" encoding="UTF-8"?>
|
|||
</VirtualSystem>
|
||||
</Envelope>`
|
||||
|
||||
// ovf returns an expanded descriptor template
|
||||
func (di *info) ovf() (string, error) {
|
||||
// OVF returns an expanded descriptor template
|
||||
func (di *Info) OVF() (string, error) {
|
||||
var buf bytes.Buffer
|
||||
|
||||
tmpl, err := template.New("ovf").Parse(ovfenv)
|
||||
|
|
@ -209,7 +209,7 @@ func Import(ctx context.Context, c *vim25.Client, name string, datastore *object
|
|||
m := ovf.NewManager(c)
|
||||
fm := datastore.NewFileManager(p.Datacenter, p.Force)
|
||||
|
||||
disk, err := stat(name)
|
||||
disk, err := Stat(name)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
@ -245,7 +245,7 @@ func Import(ctx context.Context, c *vim25.Client, name string, datastore *object
|
|||
}
|
||||
|
||||
// Expand the ovf template
|
||||
descriptor, err := disk.ovf()
|
||||
descriptor, err := disk.OVF()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
|||
2
vendor/golang.org/x/mod/module/module.go
generated
vendored
2
vendor/golang.org/x/mod/module/module.go
generated
vendored
|
|
@ -506,7 +506,6 @@ var badWindowsNames = []string{
|
|||
"PRN",
|
||||
"AUX",
|
||||
"NUL",
|
||||
"COM0",
|
||||
"COM1",
|
||||
"COM2",
|
||||
"COM3",
|
||||
|
|
@ -516,7 +515,6 @@ var badWindowsNames = []string{
|
|||
"COM7",
|
||||
"COM8",
|
||||
"COM9",
|
||||
"LPT0",
|
||||
"LPT1",
|
||||
"LPT2",
|
||||
"LPT3",
|
||||
|
|
|
|||
24
vendor/golang.org/x/tools/go/ast/astutil/enclosing.go
generated
vendored
24
vendor/golang.org/x/tools/go/ast/astutil/enclosing.go
generated
vendored
|
|
@ -106,8 +106,21 @@ func PathEnclosingInterval(root *ast.File, start, end token.Pos) (path []ast.Nod
|
|||
|
||||
// Does augmented child strictly contain [start, end)?
|
||||
if augPos <= start && end <= augEnd {
|
||||
_, isToken := child.(tokenNode)
|
||||
return isToken || visit(child)
|
||||
if is[tokenNode](child) {
|
||||
return true
|
||||
}
|
||||
|
||||
// childrenOf elides the FuncType node beneath FuncDecl.
|
||||
// Add it back here for TypeParams, Params, Results,
|
||||
// all FieldLists). But we don't add it back for the "func" token
|
||||
// even though it is is the tree at FuncDecl.Type.Func.
|
||||
if decl, ok := node.(*ast.FuncDecl); ok {
|
||||
if fields, ok := child.(*ast.FieldList); ok && fields != decl.Recv {
|
||||
path = append(path, decl.Type)
|
||||
}
|
||||
}
|
||||
|
||||
return visit(child)
|
||||
}
|
||||
|
||||
// Does [start, end) overlap multiple children?
|
||||
|
|
@ -313,6 +326,8 @@ func childrenOf(n ast.Node) []ast.Node {
|
|||
//
|
||||
// As a workaround, we inline the case for FuncType
|
||||
// here and order things correctly.
|
||||
// We also need to insert the elided FuncType just
|
||||
// before the 'visit' recursion.
|
||||
//
|
||||
children = nil // discard ast.Walk(FuncDecl) info subtrees
|
||||
children = append(children, tok(n.Type.Func, len("func")))
|
||||
|
|
@ -632,3 +647,8 @@ func NodeDescription(n ast.Node) string {
|
|||
}
|
||||
panic(fmt.Sprintf("unexpected node type: %T", n))
|
||||
}
|
||||
|
||||
func is[T any](x any) bool {
|
||||
_, ok := x.(T)
|
||||
return ok
|
||||
}
|
||||
|
|
|
|||
1
vendor/golang.org/x/tools/go/ast/astutil/util.go
generated
vendored
1
vendor/golang.org/x/tools/go/ast/astutil/util.go
generated
vendored
|
|
@ -7,6 +7,7 @@ package astutil
|
|||
import "go/ast"
|
||||
|
||||
// Unparen returns e with any enclosing parentheses stripped.
|
||||
// TODO(adonovan): use go1.22's ast.Unparen.
|
||||
func Unparen(e ast.Expr) ast.Expr {
|
||||
for {
|
||||
p, ok := e.(*ast.ParenExpr)
|
||||
|
|
|
|||
19
vendor/golang.org/x/tools/internal/gocommand/invoke.go
generated
vendored
19
vendor/golang.org/x/tools/internal/gocommand/invoke.go
generated
vendored
|
|
@ -200,12 +200,14 @@ func (i *Invocation) runWithFriendlyError(ctx context.Context, stdout, stderr io
|
|||
return
|
||||
}
|
||||
|
||||
func (i *Invocation) run(ctx context.Context, stdout, stderr io.Writer) error {
|
||||
log := i.Logf
|
||||
if log == nil {
|
||||
log = func(string, ...interface{}) {}
|
||||
// logf logs if i.Logf is non-nil.
|
||||
func (i *Invocation) logf(format string, args ...any) {
|
||||
if i.Logf != nil {
|
||||
i.Logf(format, args...)
|
||||
}
|
||||
}
|
||||
|
||||
func (i *Invocation) run(ctx context.Context, stdout, stderr io.Writer) error {
|
||||
goArgs := []string{i.Verb}
|
||||
|
||||
appendModFile := func() {
|
||||
|
|
@ -277,7 +279,12 @@ func (i *Invocation) run(ctx context.Context, stdout, stderr io.Writer) error {
|
|||
cmd.Dir = i.WorkingDir
|
||||
}
|
||||
|
||||
defer func(start time.Time) { log("%s for %v", time.Since(start), cmdDebugStr(cmd)) }(time.Now())
|
||||
debugStr := cmdDebugStr(cmd)
|
||||
i.logf("starting %v", debugStr)
|
||||
start := time.Now()
|
||||
defer func() {
|
||||
i.logf("%s for %v", time.Since(start), debugStr)
|
||||
}()
|
||||
|
||||
return runCmdContext(ctx, cmd)
|
||||
}
|
||||
|
|
@ -514,7 +521,7 @@ func WriteOverlays(overlay map[string][]byte) (filename string, cleanup func(),
|
|||
for k, v := range overlay {
|
||||
// Use a unique basename for each file (001-foo.go),
|
||||
// to avoid creating nested directories.
|
||||
base := fmt.Sprintf("%d-%s.go", 1+len(overlays), filepath.Base(k))
|
||||
base := fmt.Sprintf("%d-%s", 1+len(overlays), filepath.Base(k))
|
||||
filename := filepath.Join(dir, base)
|
||||
err := os.WriteFile(filename, v, 0666)
|
||||
if err != nil {
|
||||
|
|
|
|||
345
vendor/golang.org/x/tools/internal/imports/fix.go
generated
vendored
345
vendor/golang.org/x/tools/internal/imports/fix.go
generated
vendored
|
|
@ -27,6 +27,7 @@ import (
|
|||
"unicode"
|
||||
"unicode/utf8"
|
||||
|
||||
"golang.org/x/sync/errgroup"
|
||||
"golang.org/x/tools/go/ast/astutil"
|
||||
"golang.org/x/tools/internal/event"
|
||||
"golang.org/x/tools/internal/gocommand"
|
||||
|
|
@ -365,9 +366,7 @@ func (p *pass) load() ([]*ImportFix, bool) {
|
|||
if p.loadRealPackageNames {
|
||||
err := p.loadPackageNames(append(imports, p.candidates...))
|
||||
if err != nil {
|
||||
if p.env.Logf != nil {
|
||||
p.env.Logf("loading package names: %v", err)
|
||||
}
|
||||
p.env.logf("loading package names: %v", err)
|
||||
return nil, false
|
||||
}
|
||||
}
|
||||
|
|
@ -563,7 +562,14 @@ func (p *pass) addCandidate(imp *ImportInfo, pkg *packageInfo) {
|
|||
|
||||
// fixImports adds and removes imports from f so that all its references are
|
||||
// satisfied and there are no unused imports.
|
||||
func fixImports(fset *token.FileSet, f *ast.File, filename string, env *ProcessEnv) error {
|
||||
//
|
||||
// This is declared as a variable rather than a function so goimports can
|
||||
// easily be extended by adding a file with an init function.
|
||||
//
|
||||
// DO NOT REMOVE: used internally at Google.
|
||||
var fixImports = fixImportsDefault
|
||||
|
||||
func fixImportsDefault(fset *token.FileSet, f *ast.File, filename string, env *ProcessEnv) error {
|
||||
fixes, err := getFixes(context.Background(), fset, f, filename, env)
|
||||
if err != nil {
|
||||
return err
|
||||
|
|
@ -580,9 +586,7 @@ func getFixes(ctx context.Context, fset *token.FileSet, f *ast.File, filename st
|
|||
return nil, err
|
||||
}
|
||||
srcDir := filepath.Dir(abs)
|
||||
if env.Logf != nil {
|
||||
env.Logf("fixImports(filename=%q), abs=%q, srcDir=%q ...", filename, abs, srcDir)
|
||||
}
|
||||
env.logf("fixImports(filename=%q), abs=%q, srcDir=%q ...", filename, abs, srcDir)
|
||||
|
||||
// First pass: looking only at f, and using the naive algorithm to
|
||||
// derive package names from import paths, see if the file is already
|
||||
|
|
@ -1014,16 +1018,26 @@ func (e *ProcessEnv) GetResolver() (Resolver, error) {
|
|||
// already know the view type.
|
||||
if len(e.Env["GOMOD"]) == 0 && len(e.Env["GOWORK"]) == 0 {
|
||||
e.resolver = newGopathResolver(e)
|
||||
e.logf("created gopath resolver")
|
||||
} else if r, err := newModuleResolver(e, e.ModCache); err != nil {
|
||||
e.resolverErr = err
|
||||
e.logf("failed to create module resolver: %v", err)
|
||||
} else {
|
||||
e.resolver = Resolver(r)
|
||||
e.logf("created module resolver")
|
||||
}
|
||||
}
|
||||
|
||||
return e.resolver, e.resolverErr
|
||||
}
|
||||
|
||||
// logf logs if e.Logf is non-nil.
|
||||
func (e *ProcessEnv) logf(format string, args ...any) {
|
||||
if e.Logf != nil {
|
||||
e.Logf(format, args...)
|
||||
}
|
||||
}
|
||||
|
||||
// buildContext returns the build.Context to use for matching files.
|
||||
//
|
||||
// TODO(rfindley): support dynamic GOOS, GOARCH here, when doing cross-platform
|
||||
|
|
@ -1127,8 +1141,8 @@ type Resolver interface {
|
|||
// scan works with callback to search for packages. See scanCallback for details.
|
||||
scan(ctx context.Context, callback *scanCallback) error
|
||||
|
||||
// loadExports returns the set of exported symbols in the package at dir.
|
||||
// loadExports may be called concurrently.
|
||||
// loadExports returns the package name and set of exported symbols in the
|
||||
// package at dir. loadExports may be called concurrently.
|
||||
loadExports(ctx context.Context, pkg *pkg, includeTest bool) (string, []stdlib.Symbol, error)
|
||||
|
||||
// scoreImportPath returns the relevance for an import path.
|
||||
|
|
@ -1205,54 +1219,52 @@ func addExternalCandidates(ctx context.Context, pass *pass, refs references, fil
|
|||
imp *ImportInfo
|
||||
pkg *packageInfo
|
||||
}
|
||||
results := make(chan result, len(refs))
|
||||
results := make([]*result, len(refs))
|
||||
|
||||
ctx, cancel := context.WithCancel(ctx)
|
||||
var wg sync.WaitGroup
|
||||
defer func() {
|
||||
cancel()
|
||||
wg.Wait()
|
||||
}()
|
||||
var (
|
||||
firstErr error
|
||||
firstErrOnce sync.Once
|
||||
)
|
||||
g, ctx := errgroup.WithContext(ctx)
|
||||
|
||||
searcher := symbolSearcher{
|
||||
logf: pass.env.logf,
|
||||
srcDir: pass.srcDir,
|
||||
xtest: strings.HasSuffix(pass.f.Name.Name, "_test"),
|
||||
loadExports: resolver.loadExports,
|
||||
}
|
||||
|
||||
i := 0
|
||||
for pkgName, symbols := range refs {
|
||||
wg.Add(1)
|
||||
go func(pkgName string, symbols map[string]bool) {
|
||||
defer wg.Done()
|
||||
|
||||
found, err := findImport(ctx, pass, found[pkgName], pkgName, symbols)
|
||||
index := i // claim an index in results
|
||||
i++
|
||||
pkgName := pkgName
|
||||
symbols := symbols
|
||||
|
||||
g.Go(func() error {
|
||||
found, err := searcher.search(ctx, found[pkgName], pkgName, symbols)
|
||||
if err != nil {
|
||||
firstErrOnce.Do(func() {
|
||||
firstErr = err
|
||||
cancel()
|
||||
})
|
||||
return
|
||||
return err
|
||||
}
|
||||
|
||||
if found == nil {
|
||||
return // No matching package.
|
||||
return nil // No matching package.
|
||||
}
|
||||
|
||||
imp := &ImportInfo{
|
||||
ImportPath: found.importPathShort,
|
||||
}
|
||||
|
||||
pkg := &packageInfo{
|
||||
name: pkgName,
|
||||
exports: symbols,
|
||||
}
|
||||
results <- result{imp, pkg}
|
||||
}(pkgName, symbols)
|
||||
results[index] = &result{imp, pkg}
|
||||
return nil
|
||||
})
|
||||
}
|
||||
if err := g.Wait(); err != nil {
|
||||
return err
|
||||
}
|
||||
go func() {
|
||||
wg.Wait()
|
||||
close(results)
|
||||
}()
|
||||
|
||||
for result := range results {
|
||||
for _, result := range results {
|
||||
if result == nil {
|
||||
continue
|
||||
}
|
||||
// Don't offer completions that would shadow predeclared
|
||||
// names, such as github.com/coreos/etcd/error.
|
||||
if types.Universe.Lookup(result.pkg.name) != nil { // predeclared
|
||||
|
|
@ -1266,7 +1278,7 @@ func addExternalCandidates(ctx context.Context, pass *pass, refs references, fil
|
|||
}
|
||||
pass.addCandidate(result.imp, result.pkg)
|
||||
}
|
||||
return firstErr
|
||||
return nil
|
||||
}
|
||||
|
||||
// notIdentifier reports whether ch is an invalid identifier character.
|
||||
|
|
@ -1610,9 +1622,7 @@ func loadExportsFromFiles(ctx context.Context, env *ProcessEnv, dir string, incl
|
|||
fullFile := filepath.Join(dir, fi.Name())
|
||||
f, err := parser.ParseFile(fset, fullFile, nil, 0)
|
||||
if err != nil {
|
||||
if env.Logf != nil {
|
||||
env.Logf("error parsing %v: %v", fullFile, err)
|
||||
}
|
||||
env.logf("error parsing %v: %v", fullFile, err)
|
||||
continue
|
||||
}
|
||||
if f.Name.Name == "documentation" {
|
||||
|
|
@ -1648,9 +1658,7 @@ func loadExportsFromFiles(ctx context.Context, env *ProcessEnv, dir string, incl
|
|||
}
|
||||
sortSymbols(exports)
|
||||
|
||||
if env.Logf != nil {
|
||||
env.Logf("loaded exports in dir %v (package %v): %v", dir, pkgName, exports)
|
||||
}
|
||||
env.logf("loaded exports in dir %v (package %v): %v", dir, pkgName, exports)
|
||||
return pkgName, exports, nil
|
||||
}
|
||||
|
||||
|
|
@ -1660,25 +1668,39 @@ func sortSymbols(syms []stdlib.Symbol) {
|
|||
})
|
||||
}
|
||||
|
||||
// findImport searches for a package with the given symbols.
|
||||
// If no package is found, findImport returns ("", false, nil)
|
||||
func findImport(ctx context.Context, pass *pass, candidates []pkgDistance, pkgName string, symbols map[string]bool) (*pkg, error) {
|
||||
// A symbolSearcher searches for a package with a set of symbols, among a set
|
||||
// of candidates. See [symbolSearcher.search].
|
||||
//
|
||||
// The search occurs within the scope of a single file, with context captured
|
||||
// in srcDir and xtest.
|
||||
type symbolSearcher struct {
|
||||
logf func(string, ...any)
|
||||
srcDir string // directory containing the file
|
||||
xtest bool // if set, the file containing is an x_test file
|
||||
loadExports func(ctx context.Context, pkg *pkg, includeTest bool) (string, []stdlib.Symbol, error)
|
||||
}
|
||||
|
||||
// search searches the provided candidates for a package containing all
|
||||
// exported symbols.
|
||||
//
|
||||
// If successful, returns the resulting package.
|
||||
func (s *symbolSearcher) search(ctx context.Context, candidates []pkgDistance, pkgName string, symbols map[string]bool) (*pkg, error) {
|
||||
// Sort the candidates by their import package length,
|
||||
// assuming that shorter package names are better than long
|
||||
// ones. Note that this sorts by the de-vendored name, so
|
||||
// there's no "penalty" for vendoring.
|
||||
sort.Sort(byDistanceOrImportPathShortLength(candidates))
|
||||
if pass.env.Logf != nil {
|
||||
if s.logf != nil {
|
||||
for i, c := range candidates {
|
||||
pass.env.Logf("%s candidate %d/%d: %v in %v", pkgName, i+1, len(candidates), c.pkg.importPathShort, c.pkg.dir)
|
||||
s.logf("%s candidate %d/%d: %v in %v", pkgName, i+1, len(candidates), c.pkg.importPathShort, c.pkg.dir)
|
||||
}
|
||||
}
|
||||
resolver, err := pass.env.GetResolver()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// Collect exports for packages with matching names.
|
||||
// Arrange rescv so that we can we can await results in order of relevance
|
||||
// and exit as soon as we find the first match.
|
||||
//
|
||||
// Search with bounded concurrency, returning as soon as the first result
|
||||
// among rescv is non-nil.
|
||||
rescv := make([]chan *pkg, len(candidates))
|
||||
for i := range candidates {
|
||||
rescv[i] = make(chan *pkg, 1)
|
||||
|
|
@ -1686,6 +1708,7 @@ func findImport(ctx context.Context, pass *pass, candidates []pkgDistance, pkgNa
|
|||
const maxConcurrentPackageImport = 4
|
||||
loadExportsSem := make(chan struct{}, maxConcurrentPackageImport)
|
||||
|
||||
// Ensure that all work is completed at exit.
|
||||
ctx, cancel := context.WithCancel(ctx)
|
||||
var wg sync.WaitGroup
|
||||
defer func() {
|
||||
|
|
@ -1693,6 +1716,7 @@ func findImport(ctx context.Context, pass *pass, candidates []pkgDistance, pkgNa
|
|||
wg.Wait()
|
||||
}()
|
||||
|
||||
// Start the search.
|
||||
wg.Add(1)
|
||||
go func() {
|
||||
defer wg.Done()
|
||||
|
|
@ -1703,55 +1727,67 @@ func findImport(ctx context.Context, pass *pass, candidates []pkgDistance, pkgNa
|
|||
return
|
||||
}
|
||||
|
||||
i := i
|
||||
c := c
|
||||
wg.Add(1)
|
||||
go func(c pkgDistance, resc chan<- *pkg) {
|
||||
go func() {
|
||||
defer func() {
|
||||
<-loadExportsSem
|
||||
wg.Done()
|
||||
}()
|
||||
|
||||
if pass.env.Logf != nil {
|
||||
pass.env.Logf("loading exports in dir %s (seeking package %s)", c.pkg.dir, pkgName)
|
||||
if s.logf != nil {
|
||||
s.logf("loading exports in dir %s (seeking package %s)", c.pkg.dir, pkgName)
|
||||
}
|
||||
// If we're an x_test, load the package under test's test variant.
|
||||
includeTest := strings.HasSuffix(pass.f.Name.Name, "_test") && c.pkg.dir == pass.srcDir
|
||||
_, exports, err := resolver.loadExports(ctx, c.pkg, includeTest)
|
||||
pkg, err := s.searchOne(ctx, c, symbols)
|
||||
if err != nil {
|
||||
if pass.env.Logf != nil {
|
||||
pass.env.Logf("loading exports in dir %s (seeking package %s): %v", c.pkg.dir, pkgName, err)
|
||||
if s.logf != nil && ctx.Err() == nil {
|
||||
s.logf("loading exports in dir %s (seeking package %s): %v", c.pkg.dir, pkgName, err)
|
||||
}
|
||||
resc <- nil
|
||||
return
|
||||
pkg = nil
|
||||
}
|
||||
|
||||
exportsMap := make(map[string]bool, len(exports))
|
||||
for _, sym := range exports {
|
||||
exportsMap[sym.Name] = true
|
||||
}
|
||||
|
||||
// If it doesn't have the right
|
||||
// symbols, send nil to mean no match.
|
||||
for symbol := range symbols {
|
||||
if !exportsMap[symbol] {
|
||||
resc <- nil
|
||||
return
|
||||
}
|
||||
}
|
||||
resc <- c.pkg
|
||||
}(c, rescv[i])
|
||||
rescv[i] <- pkg // may be nil
|
||||
}()
|
||||
}
|
||||
}()
|
||||
|
||||
// Await the first (best) result.
|
||||
for _, resc := range rescv {
|
||||
pkg := <-resc
|
||||
if pkg == nil {
|
||||
continue
|
||||
select {
|
||||
case r := <-resc:
|
||||
if r != nil {
|
||||
return r, nil
|
||||
}
|
||||
case <-ctx.Done():
|
||||
return nil, ctx.Err()
|
||||
}
|
||||
return pkg, nil
|
||||
}
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func (s *symbolSearcher) searchOne(ctx context.Context, c pkgDistance, symbols map[string]bool) (*pkg, error) {
|
||||
if ctx.Err() != nil {
|
||||
return nil, ctx.Err()
|
||||
}
|
||||
// If we're considering the package under test from an x_test, load the
|
||||
// test variant.
|
||||
includeTest := s.xtest && c.pkg.dir == s.srcDir
|
||||
_, exports, err := s.loadExports(ctx, c.pkg, includeTest)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
exportsMap := make(map[string]bool, len(exports))
|
||||
for _, sym := range exports {
|
||||
exportsMap[sym.Name] = true
|
||||
}
|
||||
for symbol := range symbols {
|
||||
if !exportsMap[symbol] {
|
||||
return nil, nil // no match
|
||||
}
|
||||
}
|
||||
return c.pkg, nil
|
||||
}
|
||||
|
||||
// pkgIsCandidate reports whether pkg is a candidate for satisfying the
|
||||
// finding which package pkgIdent in the file named by filename is trying
|
||||
// to refer to.
|
||||
|
|
@ -1771,58 +1807,24 @@ func pkgIsCandidate(filename string, refs references, pkg *pkg) bool {
|
|||
}
|
||||
|
||||
// Speed optimization to minimize disk I/O:
|
||||
// the last two components on disk must contain the
|
||||
// package name somewhere.
|
||||
//
|
||||
// This permits mismatch naming like directory
|
||||
// "go-foo" being package "foo", or "pkg.v3" being "pkg",
|
||||
// or directory "google.golang.org/api/cloudbilling/v1"
|
||||
// being package "cloudbilling", but doesn't
|
||||
// permit a directory "foo" to be package
|
||||
// "bar", which is strongly discouraged
|
||||
// anyway. There's no reason goimports needs
|
||||
// to be slow just to accommodate that.
|
||||
// Use the matchesPath heuristic to filter to package paths that could
|
||||
// reasonably match a dangling reference.
|
||||
//
|
||||
// This permits mismatch naming like directory "go-foo" being package "foo",
|
||||
// or "pkg.v3" being "pkg", or directory
|
||||
// "google.golang.org/api/cloudbilling/v1" being package "cloudbilling", but
|
||||
// doesn't permit a directory "foo" to be package "bar", which is strongly
|
||||
// discouraged anyway. There's no reason goimports needs to be slow just to
|
||||
// accommodate that.
|
||||
for pkgIdent := range refs {
|
||||
lastTwo := lastTwoComponents(pkg.importPathShort)
|
||||
if strings.Contains(lastTwo, pkgIdent) {
|
||||
return true
|
||||
}
|
||||
if hasHyphenOrUpperASCII(lastTwo) && !hasHyphenOrUpperASCII(pkgIdent) {
|
||||
lastTwo = lowerASCIIAndRemoveHyphen(lastTwo)
|
||||
if strings.Contains(lastTwo, pkgIdent) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func hasHyphenOrUpperASCII(s string) bool {
|
||||
for i := 0; i < len(s); i++ {
|
||||
b := s[i]
|
||||
if b == '-' || ('A' <= b && b <= 'Z') {
|
||||
if matchesPath(pkgIdent, pkg.importPathShort) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func lowerASCIIAndRemoveHyphen(s string) (ret string) {
|
||||
buf := make([]byte, 0, len(s))
|
||||
for i := 0; i < len(s); i++ {
|
||||
b := s[i]
|
||||
switch {
|
||||
case b == '-':
|
||||
continue
|
||||
case 'A' <= b && b <= 'Z':
|
||||
buf = append(buf, b+('a'-'A'))
|
||||
default:
|
||||
buf = append(buf, b)
|
||||
}
|
||||
}
|
||||
return string(buf)
|
||||
}
|
||||
|
||||
// canUse reports whether the package in dir is usable from filename,
|
||||
// respecting the Go "internal" and "vendor" visibility rules.
|
||||
func canUse(filename, dir string) bool {
|
||||
|
|
@ -1863,19 +1865,84 @@ func canUse(filename, dir string) bool {
|
|||
return !strings.Contains(relSlash, "/vendor/") && !strings.Contains(relSlash, "/internal/") && !strings.HasSuffix(relSlash, "/internal")
|
||||
}
|
||||
|
||||
// lastTwoComponents returns at most the last two path components
|
||||
// of v, using either / or \ as the path separator.
|
||||
func lastTwoComponents(v string) string {
|
||||
// matchesPath reports whether ident may match a potential package name
|
||||
// referred to by path, using heuristics to filter out unidiomatic package
|
||||
// names.
|
||||
//
|
||||
// Specifically, it checks whether either of the last two '/'- or '\'-delimited
|
||||
// path segments matches the identifier. The segment-matching heuristic must
|
||||
// allow for various conventions around segment naming, including go-foo,
|
||||
// foo-go, and foo.v3. To handle all of these, matching considers both (1) the
|
||||
// entire segment, ignoring '-' and '.', as well as (2) the last subsegment
|
||||
// separated by '-' or '.'. So the segment foo-go matches all of the following
|
||||
// identifiers: foo, go, and foogo. All matches are case insensitive (for ASCII
|
||||
// identifiers).
|
||||
//
|
||||
// See the docstring for [pkgIsCandidate] for an explanation of how this
|
||||
// heuristic filters potential candidate packages.
|
||||
func matchesPath(ident, path string) bool {
|
||||
// Ignore case, for ASCII.
|
||||
lowerIfASCII := func(b byte) byte {
|
||||
if 'A' <= b && b <= 'Z' {
|
||||
return b + ('a' - 'A')
|
||||
}
|
||||
return b
|
||||
}
|
||||
|
||||
// match reports whether path[start:end] matches ident, ignoring [.-].
|
||||
match := func(start, end int) bool {
|
||||
ii := len(ident) - 1 // current byte in ident
|
||||
pi := end - 1 // current byte in path
|
||||
for ; pi >= start && ii >= 0; pi-- {
|
||||
pb := path[pi]
|
||||
if pb == '-' || pb == '.' {
|
||||
continue
|
||||
}
|
||||
pb = lowerIfASCII(pb)
|
||||
ib := lowerIfASCII(ident[ii])
|
||||
if pb != ib {
|
||||
return false
|
||||
}
|
||||
ii--
|
||||
}
|
||||
return ii < 0 && pi < start // all bytes matched
|
||||
}
|
||||
|
||||
// segmentEnd and subsegmentEnd hold the end points of the current segment
|
||||
// and subsegment intervals.
|
||||
segmentEnd := len(path)
|
||||
subsegmentEnd := len(path)
|
||||
|
||||
// Count slashes; we only care about the last two segments.
|
||||
nslash := 0
|
||||
for i := len(v) - 1; i >= 0; i-- {
|
||||
if v[i] == '/' || v[i] == '\\' {
|
||||
|
||||
for i := len(path) - 1; i >= 0; i-- {
|
||||
switch b := path[i]; b {
|
||||
// TODO(rfindley): we handle backlashes here only because the previous
|
||||
// heuristic handled backslashes. This is perhaps overly defensive, but is
|
||||
// the result of many lessons regarding Chesterton's fence and the
|
||||
// goimports codebase.
|
||||
//
|
||||
// However, this function is only ever called with something called an
|
||||
// 'importPath'. Is it possible that this is a real import path, and
|
||||
// therefore we need only consider forward slashes?
|
||||
case '/', '\\':
|
||||
if match(i+1, segmentEnd) || match(i+1, subsegmentEnd) {
|
||||
return true
|
||||
}
|
||||
nslash++
|
||||
if nslash == 2 {
|
||||
return v[i:]
|
||||
return false // did not match above
|
||||
}
|
||||
segmentEnd, subsegmentEnd = i, i // reset
|
||||
case '-', '.':
|
||||
if match(i+1, subsegmentEnd) {
|
||||
return true
|
||||
}
|
||||
subsegmentEnd = i
|
||||
}
|
||||
}
|
||||
return v
|
||||
return match(0, segmentEnd) || match(0, subsegmentEnd)
|
||||
}
|
||||
|
||||
type visitFn func(node ast.Node) ast.Visitor
|
||||
|
|
|
|||
8
vendor/golang.org/x/tools/internal/imports/mod.go
generated
vendored
8
vendor/golang.org/x/tools/internal/imports/mod.go
generated
vendored
|
|
@ -265,9 +265,7 @@ func (r *ModuleResolver) initAllMods() error {
|
|||
return err
|
||||
}
|
||||
if mod.Dir == "" {
|
||||
if r.env.Logf != nil {
|
||||
r.env.Logf("module %v has not been downloaded and will be ignored", mod.Path)
|
||||
}
|
||||
r.env.logf("module %v has not been downloaded and will be ignored", mod.Path)
|
||||
// Can't do anything with a module that's not downloaded.
|
||||
continue
|
||||
}
|
||||
|
|
@ -766,9 +764,7 @@ func (r *ModuleResolver) scanDirForPackage(root gopathwalk.Root, dir string) dir
|
|||
}
|
||||
modPath, err := module.UnescapePath(filepath.ToSlash(matches[1]))
|
||||
if err != nil {
|
||||
if r.env.Logf != nil {
|
||||
r.env.Logf("decoding module cache path %q: %v", subdir, err)
|
||||
}
|
||||
r.env.logf("decoding module cache path %q: %v", subdir, err)
|
||||
return directoryPackageInfo{
|
||||
status: directoryScanned,
|
||||
err: fmt.Errorf("decoding module cache path %q: %v", subdir, err),
|
||||
|
|
|
|||
111
vendor/golang.org/x/tools/internal/stdlib/manifest.go
generated
vendored
111
vendor/golang.org/x/tools/internal/stdlib/manifest.go
generated
vendored
|
|
@ -23,6 +23,7 @@ var PackageSymbols = map[string][]Symbol{
|
|||
{"ErrWriteAfterClose", Var, 0},
|
||||
{"ErrWriteTooLong", Var, 0},
|
||||
{"FileInfoHeader", Func, 1},
|
||||
{"FileInfoNames", Type, 23},
|
||||
{"Format", Type, 10},
|
||||
{"FormatGNU", Const, 10},
|
||||
{"FormatPAX", Const, 10},
|
||||
|
|
@ -820,6 +821,7 @@ var PackageSymbols = map[string][]Symbol{
|
|||
{"(*ConnectionState).ExportKeyingMaterial", Method, 11},
|
||||
{"(*Dialer).Dial", Method, 15},
|
||||
{"(*Dialer).DialContext", Method, 15},
|
||||
{"(*ECHRejectionError).Error", Method, 23},
|
||||
{"(*QUICConn).Close", Method, 21},
|
||||
{"(*QUICConn).ConnectionState", Method, 21},
|
||||
{"(*QUICConn).HandleData", Method, 21},
|
||||
|
|
@ -827,6 +829,7 @@ var PackageSymbols = map[string][]Symbol{
|
|||
{"(*QUICConn).SendSessionTicket", Method, 21},
|
||||
{"(*QUICConn).SetTransportParameters", Method, 21},
|
||||
{"(*QUICConn).Start", Method, 21},
|
||||
{"(*QUICConn).StoreSession", Method, 23},
|
||||
{"(*SessionState).Bytes", Method, 21},
|
||||
{"(AlertError).Error", Method, 21},
|
||||
{"(ClientAuthType).String", Method, 15},
|
||||
|
|
@ -877,6 +880,8 @@ var PackageSymbols = map[string][]Symbol{
|
|||
{"Config.ClientSessionCache", Field, 3},
|
||||
{"Config.CurvePreferences", Field, 3},
|
||||
{"Config.DynamicRecordSizingDisabled", Field, 7},
|
||||
{"Config.EncryptedClientHelloConfigList", Field, 23},
|
||||
{"Config.EncryptedClientHelloRejectionVerify", Field, 23},
|
||||
{"Config.GetCertificate", Field, 4},
|
||||
{"Config.GetClientCertificate", Field, 8},
|
||||
{"Config.GetConfigForClient", Field, 8},
|
||||
|
|
@ -902,6 +907,7 @@ var PackageSymbols = map[string][]Symbol{
|
|||
{"ConnectionState", Type, 0},
|
||||
{"ConnectionState.CipherSuite", Field, 0},
|
||||
{"ConnectionState.DidResume", Field, 1},
|
||||
{"ConnectionState.ECHAccepted", Field, 23},
|
||||
{"ConnectionState.HandshakeComplete", Field, 0},
|
||||
{"ConnectionState.NegotiatedProtocol", Field, 0},
|
||||
{"ConnectionState.NegotiatedProtocolIsMutual", Field, 0},
|
||||
|
|
@ -925,6 +931,8 @@ var PackageSymbols = map[string][]Symbol{
|
|||
{"ECDSAWithP384AndSHA384", Const, 8},
|
||||
{"ECDSAWithP521AndSHA512", Const, 8},
|
||||
{"ECDSAWithSHA1", Const, 10},
|
||||
{"ECHRejectionError", Type, 23},
|
||||
{"ECHRejectionError.RetryConfigList", Field, 23},
|
||||
{"Ed25519", Const, 13},
|
||||
{"InsecureCipherSuites", Func, 14},
|
||||
{"Listen", Func, 0},
|
||||
|
|
@ -943,6 +951,7 @@ var PackageSymbols = map[string][]Symbol{
|
|||
{"ParseSessionState", Func, 21},
|
||||
{"QUICClient", Func, 21},
|
||||
{"QUICConfig", Type, 21},
|
||||
{"QUICConfig.EnableStoreSessionEvent", Field, 23},
|
||||
{"QUICConfig.TLSConfig", Field, 21},
|
||||
{"QUICConn", Type, 21},
|
||||
{"QUICEncryptionLevel", Type, 21},
|
||||
|
|
@ -954,16 +963,20 @@ var PackageSymbols = map[string][]Symbol{
|
|||
{"QUICEvent.Data", Field, 21},
|
||||
{"QUICEvent.Kind", Field, 21},
|
||||
{"QUICEvent.Level", Field, 21},
|
||||
{"QUICEvent.SessionState", Field, 23},
|
||||
{"QUICEvent.Suite", Field, 21},
|
||||
{"QUICEventKind", Type, 21},
|
||||
{"QUICHandshakeDone", Const, 21},
|
||||
{"QUICNoEvent", Const, 21},
|
||||
{"QUICRejectedEarlyData", Const, 21},
|
||||
{"QUICResumeSession", Const, 23},
|
||||
{"QUICServer", Func, 21},
|
||||
{"QUICSessionTicketOptions", Type, 21},
|
||||
{"QUICSessionTicketOptions.EarlyData", Field, 21},
|
||||
{"QUICSessionTicketOptions.Extra", Field, 23},
|
||||
{"QUICSetReadSecret", Const, 21},
|
||||
{"QUICSetWriteSecret", Const, 21},
|
||||
{"QUICStoreSession", Const, 23},
|
||||
{"QUICTransportParameters", Const, 21},
|
||||
{"QUICTransportParametersRequired", Const, 21},
|
||||
{"QUICWriteData", Const, 21},
|
||||
|
|
@ -1036,6 +1049,8 @@ var PackageSymbols = map[string][]Symbol{
|
|||
{"(*Certificate).Verify", Method, 0},
|
||||
{"(*Certificate).VerifyHostname", Method, 0},
|
||||
{"(*CertificateRequest).CheckSignature", Method, 5},
|
||||
{"(*OID).UnmarshalBinary", Method, 23},
|
||||
{"(*OID).UnmarshalText", Method, 23},
|
||||
{"(*RevocationList).CheckSignatureFrom", Method, 19},
|
||||
{"(CertificateInvalidError).Error", Method, 0},
|
||||
{"(ConstraintViolationError).Error", Method, 0},
|
||||
|
|
@ -1043,6 +1058,8 @@ var PackageSymbols = map[string][]Symbol{
|
|||
{"(InsecureAlgorithmError).Error", Method, 6},
|
||||
{"(OID).Equal", Method, 22},
|
||||
{"(OID).EqualASN1OID", Method, 22},
|
||||
{"(OID).MarshalBinary", Method, 23},
|
||||
{"(OID).MarshalText", Method, 23},
|
||||
{"(OID).String", Method, 22},
|
||||
{"(PublicKeyAlgorithm).String", Method, 10},
|
||||
{"(SignatureAlgorithm).String", Method, 6},
|
||||
|
|
@ -1196,6 +1213,7 @@ var PackageSymbols = map[string][]Symbol{
|
|||
{"ParseCertificates", Func, 0},
|
||||
{"ParseDERCRL", Func, 0},
|
||||
{"ParseECPrivateKey", Func, 1},
|
||||
{"ParseOID", Func, 23},
|
||||
{"ParsePKCS1PrivateKey", Func, 0},
|
||||
{"ParsePKCS1PublicKey", Func, 10},
|
||||
{"ParsePKCS8PrivateKey", Func, 0},
|
||||
|
|
@ -2541,6 +2559,7 @@ var PackageSymbols = map[string][]Symbol{
|
|||
{"PT_NOTE", Const, 0},
|
||||
{"PT_NULL", Const, 0},
|
||||
{"PT_OPENBSD_BOOTDATA", Const, 16},
|
||||
{"PT_OPENBSD_NOBTCFI", Const, 23},
|
||||
{"PT_OPENBSD_RANDOMIZE", Const, 16},
|
||||
{"PT_OPENBSD_WXNEEDED", Const, 16},
|
||||
{"PT_PAX_FLAGS", Const, 16},
|
||||
|
|
@ -3620,13 +3639,16 @@ var PackageSymbols = map[string][]Symbol{
|
|||
{"STT_COMMON", Const, 0},
|
||||
{"STT_FILE", Const, 0},
|
||||
{"STT_FUNC", Const, 0},
|
||||
{"STT_GNU_IFUNC", Const, 23},
|
||||
{"STT_HIOS", Const, 0},
|
||||
{"STT_HIPROC", Const, 0},
|
||||
{"STT_LOOS", Const, 0},
|
||||
{"STT_LOPROC", Const, 0},
|
||||
{"STT_NOTYPE", Const, 0},
|
||||
{"STT_OBJECT", Const, 0},
|
||||
{"STT_RELC", Const, 23},
|
||||
{"STT_SECTION", Const, 0},
|
||||
{"STT_SRELC", Const, 23},
|
||||
{"STT_TLS", Const, 0},
|
||||
{"STV_DEFAULT", Const, 0},
|
||||
{"STV_HIDDEN", Const, 0},
|
||||
|
|
@ -4544,11 +4566,14 @@ var PackageSymbols = map[string][]Symbol{
|
|||
{"URLEncoding", Var, 0},
|
||||
},
|
||||
"encoding/binary": {
|
||||
{"Append", Func, 23},
|
||||
{"AppendByteOrder", Type, 19},
|
||||
{"AppendUvarint", Func, 19},
|
||||
{"AppendVarint", Func, 19},
|
||||
{"BigEndian", Var, 0},
|
||||
{"ByteOrder", Type, 0},
|
||||
{"Decode", Func, 23},
|
||||
{"Encode", Func, 23},
|
||||
{"LittleEndian", Var, 0},
|
||||
{"MaxVarintLen16", Const, 0},
|
||||
{"MaxVarintLen32", Const, 0},
|
||||
|
|
@ -5308,6 +5333,7 @@ var PackageSymbols = map[string][]Symbol{
|
|||
{"ParenExpr.Rparen", Field, 0},
|
||||
{"ParenExpr.X", Field, 0},
|
||||
{"Pkg", Const, 0},
|
||||
{"Preorder", Func, 23},
|
||||
{"Print", Func, 0},
|
||||
{"RECV", Const, 0},
|
||||
{"RangeStmt", Type, 0},
|
||||
|
|
@ -5898,7 +5924,12 @@ var PackageSymbols = map[string][]Symbol{
|
|||
},
|
||||
"go/types": {
|
||||
{"(*Alias).Obj", Method, 22},
|
||||
{"(*Alias).Origin", Method, 23},
|
||||
{"(*Alias).Rhs", Method, 23},
|
||||
{"(*Alias).SetTypeParams", Method, 23},
|
||||
{"(*Alias).String", Method, 22},
|
||||
{"(*Alias).TypeArgs", Method, 23},
|
||||
{"(*Alias).TypeParams", Method, 23},
|
||||
{"(*Alias).Underlying", Method, 22},
|
||||
{"(*ArgumentError).Error", Method, 18},
|
||||
{"(*ArgumentError).Unwrap", Method, 18},
|
||||
|
|
@ -5943,6 +5974,7 @@ var PackageSymbols = map[string][]Symbol{
|
|||
{"(*Func).Pkg", Method, 5},
|
||||
{"(*Func).Pos", Method, 5},
|
||||
{"(*Func).Scope", Method, 5},
|
||||
{"(*Func).Signature", Method, 23},
|
||||
{"(*Func).String", Method, 5},
|
||||
{"(*Func).Type", Method, 5},
|
||||
{"(*Info).ObjectOf", Method, 5},
|
||||
|
|
@ -6992,6 +7024,12 @@ var PackageSymbols = map[string][]Symbol{
|
|||
{"TempFile", Func, 0},
|
||||
{"WriteFile", Func, 0},
|
||||
},
|
||||
"iter": {
|
||||
{"Pull", Func, 23},
|
||||
{"Pull2", Func, 23},
|
||||
{"Seq", Type, 23},
|
||||
{"Seq2", Type, 23},
|
||||
},
|
||||
"log": {
|
||||
{"(*Logger).Fatal", Method, 0},
|
||||
{"(*Logger).Fatalf", Method, 0},
|
||||
|
|
@ -7222,11 +7260,16 @@ var PackageSymbols = map[string][]Symbol{
|
|||
{"Writer", Type, 0},
|
||||
},
|
||||
"maps": {
|
||||
{"All", Func, 23},
|
||||
{"Clone", Func, 21},
|
||||
{"Collect", Func, 23},
|
||||
{"Copy", Func, 21},
|
||||
{"DeleteFunc", Func, 21},
|
||||
{"Equal", Func, 21},
|
||||
{"EqualFunc", Func, 21},
|
||||
{"Insert", Func, 23},
|
||||
{"Keys", Func, 23},
|
||||
{"Values", Func, 23},
|
||||
},
|
||||
"math": {
|
||||
{"Abs", Func, 0},
|
||||
|
|
@ -7617,6 +7660,7 @@ var PackageSymbols = map[string][]Symbol{
|
|||
},
|
||||
"math/rand/v2": {
|
||||
{"(*ChaCha8).MarshalBinary", Method, 22},
|
||||
{"(*ChaCha8).Read", Method, 23},
|
||||
{"(*ChaCha8).Seed", Method, 22},
|
||||
{"(*ChaCha8).Uint64", Method, 22},
|
||||
{"(*ChaCha8).UnmarshalBinary", Method, 22},
|
||||
|
|
@ -7636,6 +7680,7 @@ var PackageSymbols = map[string][]Symbol{
|
|||
{"(*Rand).NormFloat64", Method, 22},
|
||||
{"(*Rand).Perm", Method, 22},
|
||||
{"(*Rand).Shuffle", Method, 22},
|
||||
{"(*Rand).Uint", Method, 23},
|
||||
{"(*Rand).Uint32", Method, 22},
|
||||
{"(*Rand).Uint32N", Method, 22},
|
||||
{"(*Rand).Uint64", Method, 22},
|
||||
|
|
@ -7663,6 +7708,7 @@ var PackageSymbols = map[string][]Symbol{
|
|||
{"Rand", Type, 22},
|
||||
{"Shuffle", Func, 22},
|
||||
{"Source", Type, 22},
|
||||
{"Uint", Func, 23},
|
||||
{"Uint32", Func, 22},
|
||||
{"Uint32N", Func, 22},
|
||||
{"Uint64", Func, 22},
|
||||
|
|
@ -7743,6 +7789,7 @@ var PackageSymbols = map[string][]Symbol{
|
|||
{"(*DNSError).Error", Method, 0},
|
||||
{"(*DNSError).Temporary", Method, 0},
|
||||
{"(*DNSError).Timeout", Method, 0},
|
||||
{"(*DNSError).Unwrap", Method, 23},
|
||||
{"(*Dialer).Dial", Method, 1},
|
||||
{"(*Dialer).DialContext", Method, 7},
|
||||
{"(*Dialer).MultipathTCP", Method, 21},
|
||||
|
|
@ -7809,6 +7856,7 @@ var PackageSymbols = map[string][]Symbol{
|
|||
{"(*TCPConn).RemoteAddr", Method, 0},
|
||||
{"(*TCPConn).SetDeadline", Method, 0},
|
||||
{"(*TCPConn).SetKeepAlive", Method, 0},
|
||||
{"(*TCPConn).SetKeepAliveConfig", Method, 23},
|
||||
{"(*TCPConn).SetKeepAlivePeriod", Method, 2},
|
||||
{"(*TCPConn).SetLinger", Method, 0},
|
||||
{"(*TCPConn).SetNoDelay", Method, 0},
|
||||
|
|
@ -7922,6 +7970,7 @@ var PackageSymbols = map[string][]Symbol{
|
|||
{"DNSError.IsTimeout", Field, 0},
|
||||
{"DNSError.Name", Field, 0},
|
||||
{"DNSError.Server", Field, 0},
|
||||
{"DNSError.UnwrapErr", Field, 23},
|
||||
{"DefaultResolver", Var, 8},
|
||||
{"Dial", Func, 0},
|
||||
{"DialIP", Func, 0},
|
||||
|
|
@ -7937,6 +7986,7 @@ var PackageSymbols = map[string][]Symbol{
|
|||
{"Dialer.DualStack", Field, 2},
|
||||
{"Dialer.FallbackDelay", Field, 5},
|
||||
{"Dialer.KeepAlive", Field, 3},
|
||||
{"Dialer.KeepAliveConfig", Field, 23},
|
||||
{"Dialer.LocalAddr", Field, 1},
|
||||
{"Dialer.Resolver", Field, 8},
|
||||
{"Dialer.Timeout", Field, 1},
|
||||
|
|
@ -7989,10 +8039,16 @@ var PackageSymbols = map[string][]Symbol{
|
|||
{"Interfaces", Func, 0},
|
||||
{"InvalidAddrError", Type, 0},
|
||||
{"JoinHostPort", Func, 0},
|
||||
{"KeepAliveConfig", Type, 23},
|
||||
{"KeepAliveConfig.Count", Field, 23},
|
||||
{"KeepAliveConfig.Enable", Field, 23},
|
||||
{"KeepAliveConfig.Idle", Field, 23},
|
||||
{"KeepAliveConfig.Interval", Field, 23},
|
||||
{"Listen", Func, 0},
|
||||
{"ListenConfig", Type, 11},
|
||||
{"ListenConfig.Control", Field, 11},
|
||||
{"ListenConfig.KeepAlive", Field, 13},
|
||||
{"ListenConfig.KeepAliveConfig", Field, 23},
|
||||
{"ListenIP", Func, 0},
|
||||
{"ListenMulticastUDP", Func, 0},
|
||||
{"ListenPacket", Func, 0},
|
||||
|
|
@ -8081,6 +8137,7 @@ var PackageSymbols = map[string][]Symbol{
|
|||
{"(*Request).Context", Method, 7},
|
||||
{"(*Request).Cookie", Method, 0},
|
||||
{"(*Request).Cookies", Method, 0},
|
||||
{"(*Request).CookiesNamed", Method, 23},
|
||||
{"(*Request).FormFile", Method, 0},
|
||||
{"(*Request).FormValue", Method, 0},
|
||||
{"(*Request).MultipartReader", Method, 0},
|
||||
|
|
@ -8148,7 +8205,9 @@ var PackageSymbols = map[string][]Symbol{
|
|||
{"Cookie.HttpOnly", Field, 0},
|
||||
{"Cookie.MaxAge", Field, 0},
|
||||
{"Cookie.Name", Field, 0},
|
||||
{"Cookie.Partitioned", Field, 23},
|
||||
{"Cookie.Path", Field, 0},
|
||||
{"Cookie.Quoted", Field, 23},
|
||||
{"Cookie.Raw", Field, 0},
|
||||
{"Cookie.RawExpires", Field, 0},
|
||||
{"Cookie.SameSite", Field, 11},
|
||||
|
|
@ -8225,7 +8284,9 @@ var PackageSymbols = map[string][]Symbol{
|
|||
{"NoBody", Var, 8},
|
||||
{"NotFound", Func, 0},
|
||||
{"NotFoundHandler", Func, 0},
|
||||
{"ParseCookie", Func, 23},
|
||||
{"ParseHTTPVersion", Func, 0},
|
||||
{"ParseSetCookie", Func, 23},
|
||||
{"ParseTime", Func, 1},
|
||||
{"Post", Func, 0},
|
||||
{"PostForm", Func, 0},
|
||||
|
|
@ -8252,6 +8313,7 @@ var PackageSymbols = map[string][]Symbol{
|
|||
{"Request.Host", Field, 0},
|
||||
{"Request.Method", Field, 0},
|
||||
{"Request.MultipartForm", Field, 0},
|
||||
{"Request.Pattern", Field, 23},
|
||||
{"Request.PostForm", Field, 1},
|
||||
{"Request.Proto", Field, 0},
|
||||
{"Request.ProtoMajor", Field, 0},
|
||||
|
|
@ -8453,6 +8515,7 @@ var PackageSymbols = map[string][]Symbol{
|
|||
{"DefaultRemoteAddr", Const, 0},
|
||||
{"NewRecorder", Func, 0},
|
||||
{"NewRequest", Func, 7},
|
||||
{"NewRequestWithContext", Func, 23},
|
||||
{"NewServer", Func, 0},
|
||||
{"NewTLSServer", Func, 0},
|
||||
{"NewUnstartedServer", Func, 0},
|
||||
|
|
@ -8917,6 +8980,7 @@ var PackageSymbols = map[string][]Symbol{
|
|||
{"Chown", Func, 0},
|
||||
{"Chtimes", Func, 0},
|
||||
{"Clearenv", Func, 0},
|
||||
{"CopyFS", Func, 23},
|
||||
{"Create", Func, 0},
|
||||
{"CreateTemp", Func, 16},
|
||||
{"DevNull", Const, 0},
|
||||
|
|
@ -9150,6 +9214,7 @@ var PackageSymbols = map[string][]Symbol{
|
|||
{"IsLocal", Func, 20},
|
||||
{"Join", Func, 0},
|
||||
{"ListSeparator", Const, 0},
|
||||
{"Localize", Func, 23},
|
||||
{"Match", Func, 0},
|
||||
{"Rel", Func, 0},
|
||||
{"Separator", Const, 0},
|
||||
|
|
@ -9232,6 +9297,8 @@ var PackageSymbols = map[string][]Symbol{
|
|||
{"(Value).Pointer", Method, 0},
|
||||
{"(Value).Recv", Method, 0},
|
||||
{"(Value).Send", Method, 0},
|
||||
{"(Value).Seq", Method, 23},
|
||||
{"(Value).Seq2", Method, 23},
|
||||
{"(Value).Set", Method, 0},
|
||||
{"(Value).SetBool", Method, 0},
|
||||
{"(Value).SetBytes", Method, 0},
|
||||
|
|
@ -9314,6 +9381,7 @@ var PackageSymbols = map[string][]Symbol{
|
|||
{"SelectSend", Const, 1},
|
||||
{"SendDir", Const, 0},
|
||||
{"Slice", Const, 0},
|
||||
{"SliceAt", Func, 23},
|
||||
{"SliceHeader", Type, 0},
|
||||
{"SliceHeader.Cap", Field, 0},
|
||||
{"SliceHeader.Data", Field, 0},
|
||||
|
|
@ -9655,6 +9723,7 @@ var PackageSymbols = map[string][]Symbol{
|
|||
{"BuildSetting", Type, 18},
|
||||
{"BuildSetting.Key", Field, 18},
|
||||
{"BuildSetting.Value", Field, 18},
|
||||
{"CrashOptions", Type, 23},
|
||||
{"FreeOSMemory", Func, 1},
|
||||
{"GCStats", Type, 1},
|
||||
{"GCStats.LastGC", Field, 1},
|
||||
|
|
@ -9672,6 +9741,7 @@ var PackageSymbols = map[string][]Symbol{
|
|||
{"PrintStack", Func, 0},
|
||||
{"ReadBuildInfo", Func, 12},
|
||||
{"ReadGCStats", Func, 1},
|
||||
{"SetCrashOutput", Func, 23},
|
||||
{"SetGCPercent", Func, 1},
|
||||
{"SetMaxStack", Func, 2},
|
||||
{"SetMaxThreads", Func, 2},
|
||||
|
|
@ -9742,10 +9812,15 @@ var PackageSymbols = map[string][]Symbol{
|
|||
{"WithRegion", Func, 11},
|
||||
},
|
||||
"slices": {
|
||||
{"All", Func, 23},
|
||||
{"AppendSeq", Func, 23},
|
||||
{"Backward", Func, 23},
|
||||
{"BinarySearch", Func, 21},
|
||||
{"BinarySearchFunc", Func, 21},
|
||||
{"Chunk", Func, 23},
|
||||
{"Clip", Func, 21},
|
||||
{"Clone", Func, 21},
|
||||
{"Collect", Func, 23},
|
||||
{"Compact", Func, 21},
|
||||
{"CompactFunc", Func, 21},
|
||||
{"Compare", Func, 21},
|
||||
|
|
@ -9767,11 +9842,16 @@ var PackageSymbols = map[string][]Symbol{
|
|||
{"MaxFunc", Func, 21},
|
||||
{"Min", Func, 21},
|
||||
{"MinFunc", Func, 21},
|
||||
{"Repeat", Func, 23},
|
||||
{"Replace", Func, 21},
|
||||
{"Reverse", Func, 21},
|
||||
{"Sort", Func, 21},
|
||||
{"SortFunc", Func, 21},
|
||||
{"SortStableFunc", Func, 21},
|
||||
{"Sorted", Func, 23},
|
||||
{"SortedFunc", Func, 23},
|
||||
{"SortedStableFunc", Func, 23},
|
||||
{"Values", Func, 23},
|
||||
},
|
||||
"sort": {
|
||||
{"(Float64Slice).Len", Method, 0},
|
||||
|
|
@ -9936,10 +10016,14 @@ var PackageSymbols = map[string][]Symbol{
|
|||
{"TrimSpace", Func, 0},
|
||||
{"TrimSuffix", Func, 1},
|
||||
},
|
||||
"structs": {
|
||||
{"HostLayout", Type, 23},
|
||||
},
|
||||
"sync": {
|
||||
{"(*Cond).Broadcast", Method, 0},
|
||||
{"(*Cond).Signal", Method, 0},
|
||||
{"(*Cond).Wait", Method, 0},
|
||||
{"(*Map).Clear", Method, 23},
|
||||
{"(*Map).CompareAndDelete", Method, 20},
|
||||
{"(*Map).CompareAndSwap", Method, 20},
|
||||
{"(*Map).Delete", Method, 9},
|
||||
|
|
@ -9986,13 +10070,17 @@ var PackageSymbols = map[string][]Symbol{
|
|||
{"(*Bool).Store", Method, 19},
|
||||
{"(*Bool).Swap", Method, 19},
|
||||
{"(*Int32).Add", Method, 19},
|
||||
{"(*Int32).And", Method, 23},
|
||||
{"(*Int32).CompareAndSwap", Method, 19},
|
||||
{"(*Int32).Load", Method, 19},
|
||||
{"(*Int32).Or", Method, 23},
|
||||
{"(*Int32).Store", Method, 19},
|
||||
{"(*Int32).Swap", Method, 19},
|
||||
{"(*Int64).Add", Method, 19},
|
||||
{"(*Int64).And", Method, 23},
|
||||
{"(*Int64).CompareAndSwap", Method, 19},
|
||||
{"(*Int64).Load", Method, 19},
|
||||
{"(*Int64).Or", Method, 23},
|
||||
{"(*Int64).Store", Method, 19},
|
||||
{"(*Int64).Swap", Method, 19},
|
||||
{"(*Pointer).CompareAndSwap", Method, 19},
|
||||
|
|
@ -10000,18 +10088,24 @@ var PackageSymbols = map[string][]Symbol{
|
|||
{"(*Pointer).Store", Method, 19},
|
||||
{"(*Pointer).Swap", Method, 19},
|
||||
{"(*Uint32).Add", Method, 19},
|
||||
{"(*Uint32).And", Method, 23},
|
||||
{"(*Uint32).CompareAndSwap", Method, 19},
|
||||
{"(*Uint32).Load", Method, 19},
|
||||
{"(*Uint32).Or", Method, 23},
|
||||
{"(*Uint32).Store", Method, 19},
|
||||
{"(*Uint32).Swap", Method, 19},
|
||||
{"(*Uint64).Add", Method, 19},
|
||||
{"(*Uint64).And", Method, 23},
|
||||
{"(*Uint64).CompareAndSwap", Method, 19},
|
||||
{"(*Uint64).Load", Method, 19},
|
||||
{"(*Uint64).Or", Method, 23},
|
||||
{"(*Uint64).Store", Method, 19},
|
||||
{"(*Uint64).Swap", Method, 19},
|
||||
{"(*Uintptr).Add", Method, 19},
|
||||
{"(*Uintptr).And", Method, 23},
|
||||
{"(*Uintptr).CompareAndSwap", Method, 19},
|
||||
{"(*Uintptr).Load", Method, 19},
|
||||
{"(*Uintptr).Or", Method, 23},
|
||||
{"(*Uintptr).Store", Method, 19},
|
||||
{"(*Uintptr).Swap", Method, 19},
|
||||
{"(*Value).CompareAndSwap", Method, 17},
|
||||
|
|
@ -10023,6 +10117,11 @@ var PackageSymbols = map[string][]Symbol{
|
|||
{"AddUint32", Func, 0},
|
||||
{"AddUint64", Func, 0},
|
||||
{"AddUintptr", Func, 0},
|
||||
{"AndInt32", Func, 23},
|
||||
{"AndInt64", Func, 23},
|
||||
{"AndUint32", Func, 23},
|
||||
{"AndUint64", Func, 23},
|
||||
{"AndUintptr", Func, 23},
|
||||
{"Bool", Type, 19},
|
||||
{"CompareAndSwapInt32", Func, 0},
|
||||
{"CompareAndSwapInt64", Func, 0},
|
||||
|
|
@ -10038,6 +10137,11 @@ var PackageSymbols = map[string][]Symbol{
|
|||
{"LoadUint32", Func, 0},
|
||||
{"LoadUint64", Func, 0},
|
||||
{"LoadUintptr", Func, 0},
|
||||
{"OrInt32", Func, 23},
|
||||
{"OrInt64", Func, 23},
|
||||
{"OrUint32", Func, 23},
|
||||
{"OrUint64", Func, 23},
|
||||
{"OrUintptr", Func, 23},
|
||||
{"Pointer", Type, 19},
|
||||
{"StoreInt32", Func, 0},
|
||||
{"StoreInt64", Func, 0},
|
||||
|
|
@ -16200,6 +16304,7 @@ var PackageSymbols = map[string][]Symbol{
|
|||
{"WSAEACCES", Const, 2},
|
||||
{"WSAECONNABORTED", Const, 9},
|
||||
{"WSAECONNRESET", Const, 3},
|
||||
{"WSAENOPROTOOPT", Const, 23},
|
||||
{"WSAEnumProtocols", Func, 2},
|
||||
{"WSAID_CONNECTEX", Var, 1},
|
||||
{"WSAIoctl", Func, 0},
|
||||
|
|
@ -17284,6 +17389,7 @@ var PackageSymbols = map[string][]Symbol{
|
|||
{"Encode", Func, 0},
|
||||
{"EncodeRune", Func, 0},
|
||||
{"IsSurrogate", Func, 0},
|
||||
{"RuneLen", Func, 23},
|
||||
},
|
||||
"unicode/utf8": {
|
||||
{"AppendRune", Func, 18},
|
||||
|
|
@ -17306,6 +17412,11 @@ var PackageSymbols = map[string][]Symbol{
|
|||
{"ValidRune", Func, 1},
|
||||
{"ValidString", Func, 0},
|
||||
},
|
||||
"unique": {
|
||||
{"(Handle).Value", Method, 23},
|
||||
{"Handle", Type, 23},
|
||||
{"Make", Func, 23},
|
||||
},
|
||||
"unsafe": {
|
||||
{"Add", Func, 0},
|
||||
{"Alignof", Func, 0},
|
||||
|
|
|
|||
2
vendor/google.golang.org/api/internal/version.go
generated
vendored
2
vendor/google.golang.org/api/internal/version.go
generated
vendored
|
|
@ -5,4 +5,4 @@
|
|||
package internal
|
||||
|
||||
// Version is the current tagged release of the library.
|
||||
const Version = "0.188.0"
|
||||
const Version = "0.189.0"
|
||||
|
|
|
|||
47
vendor/google.golang.org/api/storage/v1/storage-api.json
generated
vendored
47
vendor/google.golang.org/api/storage/v1/storage-api.json
generated
vendored
|
|
@ -43,7 +43,7 @@
|
|||
"location": "me-central2"
|
||||
}
|
||||
],
|
||||
"etag": "\"39393931363036383932333134343736343437\"",
|
||||
"etag": "\"323732353932323032353837333633313231\"",
|
||||
"icons": {
|
||||
"x16": "https://www.google.com/images/icons/product/cloud_storage-16.png",
|
||||
"x32": "https://www.google.com/images/icons/product/cloud_storage-32.png"
|
||||
|
|
@ -4085,7 +4085,7 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"revision": "20240625",
|
||||
"revision": "20240706",
|
||||
"rootUrl": "https://storage.googleapis.com/",
|
||||
"schemas": {
|
||||
"AnywhereCache": {
|
||||
|
|
@ -4347,6 +4347,49 @@
|
|||
"description": "The ID of the bucket. For buckets, the id and name properties are the same.",
|
||||
"type": "string"
|
||||
},
|
||||
"ipFilter": {
|
||||
"description": "The bucket's IP filter configuration. Specifies the network sources that are allowed to access the operations on the bucket, as well as its underlying objects. Only enforced when the mode is set to 'Enabled'.",
|
||||
"properties": {
|
||||
"mode": {
|
||||
"description": "The mode of the IP filter. Valid values are 'Enabled' and 'Disabled'.",
|
||||
"type": "string"
|
||||
},
|
||||
"publicNetworkSource": {
|
||||
"description": "The public network source of the bucket's IP filter.",
|
||||
"properties": {
|
||||
"allowedIpCidrRanges": {
|
||||
"description": "The list of public IPv4, IPv6 cidr ranges that are allowed to access the bucket.",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": "array"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
},
|
||||
"vpcNetworkSources": {
|
||||
"description": "The list of [VPC network](https://cloud.google.com/vpc/docs/vpc) sources of the bucket's IP filter.",
|
||||
"items": {
|
||||
"properties": {
|
||||
"allowedIpCidrRanges": {
|
||||
"description": "The list of IPv4, IPv6 cidr ranges subnetworks that are allowed to access the bucket.",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"network": {
|
||||
"description": "Name of the network. Format: projects/{PROJECT_ID}/global/networks/{NETWORK_NAME}",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
},
|
||||
"type": "array"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
},
|
||||
"kind": {
|
||||
"default": "storage#bucket",
|
||||
"description": "The kind of item this is. For buckets, this is always storage#bucket.",
|
||||
|
|
|
|||
82
vendor/google.golang.org/api/storage/v1/storage-gen.go
generated
vendored
82
vendor/google.golang.org/api/storage/v1/storage-gen.go
generated
vendored
|
|
@ -466,6 +466,10 @@ type Bucket struct {
|
|||
// Id: The ID of the bucket. For buckets, the id and name properties are the
|
||||
// same.
|
||||
Id string `json:"id,omitempty"`
|
||||
// IpFilter: The bucket's IP filter configuration. Specifies the network
|
||||
// sources that are allowed to access the operations on the bucket, as well as
|
||||
// its underlying objects. Only enforced when the mode is set to 'Enabled'.
|
||||
IpFilter *BucketIpFilter `json:"ipFilter,omitempty"`
|
||||
// Kind: The kind of item this is. For buckets, this is always storage#bucket.
|
||||
Kind string `json:"kind,omitempty"`
|
||||
// Labels: User-provided labels, in key/value pairs.
|
||||
|
|
@ -803,6 +807,84 @@ func (s BucketIamConfigurationUniformBucketLevelAccess) MarshalJSON() ([]byte, e
|
|||
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
|
||||
}
|
||||
|
||||
// BucketIpFilter: The bucket's IP filter configuration. Specifies the network
|
||||
// sources that are allowed to access the operations on the bucket, as well as
|
||||
// its underlying objects. Only enforced when the mode is set to 'Enabled'.
|
||||
type BucketIpFilter struct {
|
||||
// Mode: The mode of the IP filter. Valid values are 'Enabled' and 'Disabled'.
|
||||
Mode string `json:"mode,omitempty"`
|
||||
// PublicNetworkSource: The public network source of the bucket's IP filter.
|
||||
PublicNetworkSource *BucketIpFilterPublicNetworkSource `json:"publicNetworkSource,omitempty"`
|
||||
// VpcNetworkSources: The list of VPC network
|
||||
// (https://cloud.google.com/vpc/docs/vpc) sources of the bucket's IP filter.
|
||||
VpcNetworkSources []*BucketIpFilterVpcNetworkSources `json:"vpcNetworkSources,omitempty"`
|
||||
// ForceSendFields is a list of field names (e.g. "Mode") to unconditionally
|
||||
// include in API requests. By default, fields with empty or default values are
|
||||
// omitted from API requests. See
|
||||
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
|
||||
// details.
|
||||
ForceSendFields []string `json:"-"`
|
||||
// NullFields is a list of field names (e.g. "Mode") to include in API requests
|
||||
// with the JSON null value. By default, fields with empty values are omitted
|
||||
// from API requests. See
|
||||
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
|
||||
NullFields []string `json:"-"`
|
||||
}
|
||||
|
||||
func (s BucketIpFilter) MarshalJSON() ([]byte, error) {
|
||||
type NoMethod BucketIpFilter
|
||||
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
|
||||
}
|
||||
|
||||
// BucketIpFilterPublicNetworkSource: The public network source of the bucket's
|
||||
// IP filter.
|
||||
type BucketIpFilterPublicNetworkSource struct {
|
||||
// AllowedIpCidrRanges: The list of public IPv4, IPv6 cidr ranges that are
|
||||
// allowed to access the bucket.
|
||||
AllowedIpCidrRanges []string `json:"allowedIpCidrRanges,omitempty"`
|
||||
// ForceSendFields is a list of field names (e.g. "AllowedIpCidrRanges") to
|
||||
// unconditionally include in API requests. By default, fields with empty or
|
||||
// default values are omitted from API requests. See
|
||||
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
|
||||
// details.
|
||||
ForceSendFields []string `json:"-"`
|
||||
// NullFields is a list of field names (e.g. "AllowedIpCidrRanges") to include
|
||||
// in API requests with the JSON null value. By default, fields with empty
|
||||
// values are omitted from API requests. See
|
||||
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
|
||||
NullFields []string `json:"-"`
|
||||
}
|
||||
|
||||
func (s BucketIpFilterPublicNetworkSource) MarshalJSON() ([]byte, error) {
|
||||
type NoMethod BucketIpFilterPublicNetworkSource
|
||||
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
|
||||
}
|
||||
|
||||
type BucketIpFilterVpcNetworkSources struct {
|
||||
// AllowedIpCidrRanges: The list of IPv4, IPv6 cidr ranges subnetworks that are
|
||||
// allowed to access the bucket.
|
||||
AllowedIpCidrRanges []string `json:"allowedIpCidrRanges,omitempty"`
|
||||
// Network: Name of the network. Format:
|
||||
// projects/{PROJECT_ID}/global/networks/{NETWORK_NAME}
|
||||
Network string `json:"network,omitempty"`
|
||||
// ForceSendFields is a list of field names (e.g. "AllowedIpCidrRanges") to
|
||||
// unconditionally include in API requests. By default, fields with empty or
|
||||
// default values are omitted from API requests. See
|
||||
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
|
||||
// details.
|
||||
ForceSendFields []string `json:"-"`
|
||||
// NullFields is a list of field names (e.g. "AllowedIpCidrRanges") to include
|
||||
// in API requests with the JSON null value. By default, fields with empty
|
||||
// values are omitted from API requests. See
|
||||
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
|
||||
NullFields []string `json:"-"`
|
||||
}
|
||||
|
||||
func (s BucketIpFilterVpcNetworkSources) MarshalJSON() ([]byte, error) {
|
||||
type NoMethod BucketIpFilterVpcNetworkSources
|
||||
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
|
||||
}
|
||||
|
||||
// BucketLifecycle: The bucket's lifecycle configuration. See lifecycle
|
||||
// management for more information.
|
||||
type BucketLifecycle struct {
|
||||
|
|
|
|||
23
vendor/google.golang.org/api/transport/grpc/dial.go
generated
vendored
23
vendor/google.golang.org/api/transport/grpc/dial.go
generated
vendored
|
|
@ -53,6 +53,9 @@ var logRateLimiter = rate.Sometimes{Interval: 1 * time.Second}
|
|||
// Assign to var for unit test replacement
|
||||
var dialContext = grpc.DialContext
|
||||
|
||||
// Assign to var for unit test replacement
|
||||
var dialContextNewAuth = grpctransport.Dial
|
||||
|
||||
// otelStatsHandler is a singleton otelgrpc.clientHandler to be used across
|
||||
// all dial connections to avoid the memory leak documented in
|
||||
// https://github.com/open-telemetry/opentelemetry-go-contrib/issues/4226
|
||||
|
|
@ -218,17 +221,12 @@ func dialPoolNewAuth(ctx context.Context, secure bool, poolSize int, ds *interna
|
|||
defaultEndpointTemplate = ds.DefaultEndpoint
|
||||
}
|
||||
|
||||
tokenURL, oauth2Client, err := internal.GetOAuth2Configuration(ctx, ds)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
pool, err := grpctransport.Dial(ctx, secure, &grpctransport.Options{
|
||||
pool, err := dialContextNewAuth(ctx, secure, &grpctransport.Options{
|
||||
DisableTelemetry: ds.TelemetryDisabled,
|
||||
DisableAuthentication: ds.NoAuth,
|
||||
Endpoint: ds.Endpoint,
|
||||
Metadata: metadata,
|
||||
GRPCDialOpts: ds.GRPCDialOpts,
|
||||
GRPCDialOpts: prepareDialOptsNewAuth(ds),
|
||||
PoolSize: poolSize,
|
||||
Credentials: creds,
|
||||
APIKey: ds.APIKey,
|
||||
|
|
@ -237,8 +235,6 @@ func dialPoolNewAuth(ctx context.Context, secure bool, poolSize int, ds *interna
|
|||
Audience: aud,
|
||||
CredentialsFile: ds.CredentialsFile,
|
||||
CredentialsJSON: ds.CredentialsJSON,
|
||||
TokenURL: tokenURL,
|
||||
Client: oauth2Client,
|
||||
},
|
||||
InternalOptions: &grpctransport.InternalOptions{
|
||||
EnableNonDefaultSAForDirectPath: ds.AllowNonDefaultServiceAccount,
|
||||
|
|
@ -255,6 +251,15 @@ func dialPoolNewAuth(ctx context.Context, secure bool, poolSize int, ds *interna
|
|||
return pool, err
|
||||
}
|
||||
|
||||
func prepareDialOptsNewAuth(ds *internal.DialSettings) []grpc.DialOption {
|
||||
var opts []grpc.DialOption
|
||||
if ds.UserAgent != "" {
|
||||
opts = append(opts, grpc.WithUserAgent(ds.UserAgent))
|
||||
}
|
||||
|
||||
return append(opts, ds.GRPCDialOpts...)
|
||||
}
|
||||
|
||||
func dial(ctx context.Context, insecure bool, o *internal.DialSettings) (*grpc.ClientConn, error) {
|
||||
if o.HTTPClient != nil {
|
||||
return nil, errors.New("unsupported HTTP client specified")
|
||||
|
|
|
|||
6
vendor/google.golang.org/api/transport/http/dial.go
generated
vendored
6
vendor/google.golang.org/api/transport/http/dial.go
generated
vendored
|
|
@ -107,10 +107,6 @@ func newClientNewAuth(ctx context.Context, base http.RoundTripper, ds *internal.
|
|||
if ds.RequestReason != "" {
|
||||
headers.Set("X-goog-request-reason", ds.RequestReason)
|
||||
}
|
||||
tokenURL, oauth2Client, err := internal.GetOAuth2Configuration(ctx, ds)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
client, err := httptransport.NewClient(&httptransport.Options{
|
||||
DisableTelemetry: ds.TelemetryDisabled,
|
||||
DisableAuthentication: ds.NoAuth,
|
||||
|
|
@ -125,8 +121,6 @@ func newClientNewAuth(ctx context.Context, base http.RoundTripper, ds *internal.
|
|||
Audience: aud,
|
||||
CredentialsFile: ds.CredentialsFile,
|
||||
CredentialsJSON: ds.CredentialsJSON,
|
||||
TokenURL: tokenURL,
|
||||
Client: oauth2Client,
|
||||
},
|
||||
InternalOptions: &httptransport.InternalOptions{
|
||||
EnableJWTWithScope: ds.EnableJwtWithScope,
|
||||
|
|
|
|||
28
vendor/google.golang.org/genproto/googleapis/api/annotations/client.pb.go
generated
vendored
28
vendor/google.golang.org/genproto/googleapis/api/annotations/client.pb.go
generated
vendored
|
|
@ -1024,6 +1024,13 @@ type MethodSettings struct {
|
|||
|
||||
// The fully qualified name of the method, for which the options below apply.
|
||||
// This is used to find the method to apply the options.
|
||||
//
|
||||
// Example:
|
||||
//
|
||||
// publishing:
|
||||
// method_settings:
|
||||
// - selector: google.storage.control.v2.StorageControl.CreateFolder
|
||||
// # method settings for CreateFolder...
|
||||
Selector string `protobuf:"bytes,1,opt,name=selector,proto3" json:"selector,omitempty"`
|
||||
// Describes settings to use for long-running operations when generating
|
||||
// API methods for RPCs. Complements RPCs that use the annotations in
|
||||
|
|
@ -1033,15 +1040,12 @@ type MethodSettings struct {
|
|||
//
|
||||
// publishing:
|
||||
// method_settings:
|
||||
// - selector: google.cloud.speech.v2.Speech.BatchRecognize
|
||||
// long_running:
|
||||
// initial_poll_delay:
|
||||
// seconds: 60 # 1 minute
|
||||
// poll_delay_multiplier: 1.5
|
||||
// max_poll_delay:
|
||||
// seconds: 360 # 6 minutes
|
||||
// total_poll_timeout:
|
||||
// seconds: 54000 # 90 minutes
|
||||
// - selector: google.cloud.speech.v2.Speech.BatchRecognize
|
||||
// long_running:
|
||||
// initial_poll_delay: 60s # 1 minute
|
||||
// poll_delay_multiplier: 1.5
|
||||
// max_poll_delay: 360s # 6 minutes
|
||||
// total_poll_timeout: 54000s # 90 minutes
|
||||
LongRunning *MethodSettings_LongRunning `protobuf:"bytes,2,opt,name=long_running,json=longRunning,proto3" json:"long_running,omitempty"`
|
||||
// List of top-level fields of the request message, that should be
|
||||
// automatically populated by the client libraries based on their
|
||||
|
|
@ -1051,9 +1055,9 @@ type MethodSettings struct {
|
|||
//
|
||||
// publishing:
|
||||
// method_settings:
|
||||
// - selector: google.example.v1.ExampleService.CreateExample
|
||||
// auto_populated_fields:
|
||||
// - request_id
|
||||
// - selector: google.example.v1.ExampleService.CreateExample
|
||||
// auto_populated_fields:
|
||||
// - request_id
|
||||
AutoPopulatedFields []string `protobuf:"bytes,3,rep,name=auto_populated_fields,json=autoPopulatedFields,proto3" json:"auto_populated_fields,omitempty"`
|
||||
}
|
||||
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue