Merge remote-tracking branch 'origin/master' into scrape_doc_to_builder_struct_config
This commit is contained in:
commit
3fe9d52e3f
24
CHANGELOG.md
24
CHANGELOG.md
|
@ -1,29 +1,51 @@
|
|||
## 1.4.4 (Upcoming)
|
||||
|
||||
### IMPROVEMENTS:
|
||||
* builder/amazon: Add ability to set `run_volume_tags` [GH-8051]
|
||||
* builder/amazon: Add AWS API call reties on AMI prevalidation [GH-8034]
|
||||
* builder/hcloud: Allow selecting image based on filters [GH-7945]
|
||||
* builder/hyper-v: Decrease the delay between Hyper-V VM startup and hyper-v
|
||||
builder's ability to send keystrokes to the target VM. [GH-7970]
|
||||
* builder/openstack: Store WinRM password for provisioners to use [GH-7940]
|
||||
* builder/proxmox: Shorten default boot_key_interval to 5ms from 100ms
|
||||
[GH-8088]
|
||||
* builder/ucloud: Make ucloud builder's base url configurable [GH-8095]
|
||||
* builder/virtualbox-vm: Make target snapshot optional [GH-8011] [GH-8004]
|
||||
* builder/yandex: Support GPU instances and set source image by name [GH-8091]
|
||||
* core: Add a new `floppy_label` option [GH-8099]
|
||||
* core: Added version compatibility to console command [GH-8080]
|
||||
* post-processor/vagrant-cloud: Allow use of the Artifice post-processor with
|
||||
the Vagrant Cloud post-processor [GH-8018] [GH-8027]
|
||||
* post-processor/vsphere: Removed redundant whitelist check for builders,
|
||||
allowing users to use post-processor withough the VMWare builder [GH-8064]
|
||||
|
||||
|
||||
### BUG FIXES:
|
||||
* builder/amazon: Fix FleetID crash [GH-8013]
|
||||
* builder/azure: Avoid a panic in getObjectIdFromToken [GH-8047]
|
||||
* builder/hyper-v: Fix when management interface is not part of virtual switch
|
||||
[GH-8017]
|
||||
* builder/openstack: Fix race condition created when adding metadata [GH-8016]
|
||||
* builder/outscale: Get SSH Host from VM.Nics instead of VM Root [GH-8077]
|
||||
* builder/proxmox: Bump proxmox api dep, fixing bug with checking http status
|
||||
during boot command [GH-8083]
|
||||
* builder/proxmox: Check that disk format is set when pool type requires it
|
||||
[GH-8084]
|
||||
* builder/proxmox: Fix panic caused by cancelling build [GH-8067] [GH-8072]
|
||||
* builder/qemu: Fix dropped error when retrieving version [GH-8050]
|
||||
* builder/vagrant: Fix provisioning boxes, define source and output boxes
|
||||
[GH-7957]
|
||||
* builder/vagrant: Use GlobalID when provided [GH-8092]
|
||||
* builder/virtualbox: Fix windows pathing problem for guest additions checksum
|
||||
download. [GH-7996]
|
||||
* builder/virtualbox: LoadSnapshots succeeds even if machine has no snapshots
|
||||
[GH-8096]
|
||||
* core: Fix bug where sensitive variables contianing commas were not being
|
||||
properly sanitized in UI calls. [GH-7997]
|
||||
* core: Fix handling of booleans where "unset" is a value distinct from
|
||||
"false". [GH-8021]
|
||||
* core: Fix tests that swallowed errors in goroutines [GH-8094]
|
||||
* provisioner/ansible: Fix provisioner dropped errors [GH-8045]
|
||||
* builder/proxmox: Fix panic caused by cancelling build [GH-8067] [GH-8072]
|
||||
|
||||
## 1.4.3 (August 14, 2019)
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@ import (
|
|||
"reflect"
|
||||
"testing"
|
||||
|
||||
helperconfig "github.com/hashicorp/packer/helper/config"
|
||||
"github.com/hashicorp/packer/packer"
|
||||
)
|
||||
|
||||
|
@ -126,13 +127,15 @@ func TestBuilderPrepare_Devices(t *testing.T) {
|
|||
if err != nil {
|
||||
t.Fatalf("should not have error: %s", err)
|
||||
}
|
||||
if !reflect.DeepEqual(b.config.ECSSystemDiskMapping, AlicloudDiskDevice{
|
||||
expected := AlicloudDiskDevice{
|
||||
DiskCategory: "cloud",
|
||||
Description: "system disk",
|
||||
DiskName: "system_disk",
|
||||
DiskSize: 60,
|
||||
}) {
|
||||
t.Fatalf("system disk is not set properly, actual: %#v", b.config.ECSSystemDiskMapping)
|
||||
Encrypted: helperconfig.TriUnset,
|
||||
}
|
||||
if !reflect.DeepEqual(b.config.ECSSystemDiskMapping, expected) {
|
||||
t.Fatalf("system disk is not set properly, actual: %v; expected: %v", b.config.ECSSystemDiskMapping, expected)
|
||||
}
|
||||
if !reflect.DeepEqual(b.config.ECSImagesDiskMappings, []AlicloudDiskDevice{
|
||||
{
|
||||
|
|
|
@ -7,6 +7,7 @@ import (
|
|||
"regexp"
|
||||
"strings"
|
||||
|
||||
"github.com/hashicorp/packer/helper/config"
|
||||
"github.com/hashicorp/packer/template/interpolate"
|
||||
)
|
||||
|
||||
|
@ -47,7 +48,7 @@ type AlicloudDiskDevice struct {
|
|||
// data disk. Otherwise, Packer will keep the encryption setting to what
|
||||
// it was in the source image. Please refer to Introduction of ECS disk encryption
|
||||
// for more details.
|
||||
Encrypted *bool `mapstructure:"disk_encrypted" required:"false"`
|
||||
Encrypted config.Trilean `mapstructure:"disk_encrypted" required:"false"`
|
||||
}
|
||||
|
||||
type AlicloudDiskDevices struct {
|
||||
|
@ -163,7 +164,7 @@ type AlicloudImageConfig struct {
|
|||
// instance in the main region and an encrypted copy will be generated in the
|
||||
// same region. By default, Packer will keep the encryption setting to what
|
||||
// it was in the source image.
|
||||
ImageEncrypted *bool `mapstructure:"image_encrypted" required:"false"`
|
||||
ImageEncrypted config.Trilean `mapstructure:"image_encrypted" required:"false"`
|
||||
// If this value is true, when the target image names including those
|
||||
// copied are duplicated with existing images, it will delete the existing
|
||||
// images and then create the target images, otherwise, the creation will
|
||||
|
|
|
@ -10,6 +10,7 @@ import (
|
|||
|
||||
"github.com/hashicorp/packer/common/uuid"
|
||||
"github.com/hashicorp/packer/helper/communicator"
|
||||
"github.com/hashicorp/packer/helper/config"
|
||||
"github.com/hashicorp/packer/template/interpolate"
|
||||
)
|
||||
|
||||
|
@ -20,7 +21,7 @@ type RunConfig struct {
|
|||
// Whether an ECS instance is I/O optimized or not. If this option is not
|
||||
// provided, the value will be determined by product API according to what
|
||||
// `instance_type` is used.
|
||||
IOOptimized *bool `mapstructure:"io_optimized" required:"false"`
|
||||
IOOptimized config.Trilean `mapstructure:"io_optimized" required:"false"`
|
||||
// Type of the instance. For values, see [Instance Type
|
||||
// Table](https://www.alibabacloud.com/help/doc-detail/25378.htm?spm=a3c0i.o25499en.a3.9.14a36ac8iYqKRA).
|
||||
// You can also obtain the latest instance type table by invoking the
|
||||
|
@ -112,7 +113,6 @@ type RunConfig struct {
|
|||
// to 0. For those disks containing lots of data, it may require a higher
|
||||
// timeout value.
|
||||
WaitSnapshotReadyTimeout int `mapstructure:"wait_snapshot_ready_timeout" required:"false"`
|
||||
|
||||
// Communicator settings
|
||||
Comm communicator.Config `mapstructure:",squash"`
|
||||
// If this value is true, packer will connect to
|
||||
|
|
|
@ -30,7 +30,7 @@ func (s *stepCreateAlicloudImage) Run(ctx context.Context, state multistep.State
|
|||
ui := state.Get("ui").(packer.Ui)
|
||||
|
||||
tempImageName := config.AlicloudImageName
|
||||
if config.ImageEncrypted != nil && *config.ImageEncrypted {
|
||||
if config.ImageEncrypted.True() {
|
||||
tempImageName = fmt.Sprintf("packer_%s", random.AlphaNum(7))
|
||||
ui.Say(fmt.Sprintf("Creating temporary image for encryption: %s", tempImageName))
|
||||
} else {
|
||||
|
@ -85,7 +85,7 @@ func (s *stepCreateAlicloudImage) Cleanup(state multistep.StateBag) {
|
|||
}
|
||||
|
||||
config := state.Get("config").(*Config)
|
||||
encryptedSet := config.ImageEncrypted != nil && *config.ImageEncrypted
|
||||
encryptedSet := config.ImageEncrypted.True()
|
||||
|
||||
_, cancelled := state.GetOk(multistep.StateCancelled)
|
||||
_, halted := state.GetOk(multistep.StateHalted)
|
||||
|
|
|
@ -12,12 +12,13 @@ import (
|
|||
"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
|
||||
"github.com/aliyun/alibaba-cloud-sdk-go/sdk/responses"
|
||||
"github.com/aliyun/alibaba-cloud-sdk-go/services/ecs"
|
||||
confighelper "github.com/hashicorp/packer/helper/config"
|
||||
"github.com/hashicorp/packer/helper/multistep"
|
||||
"github.com/hashicorp/packer/packer"
|
||||
)
|
||||
|
||||
type stepCreateAlicloudInstance struct {
|
||||
IOOptimized *bool
|
||||
IOOptimized confighelper.Trilean
|
||||
InstanceType string
|
||||
UserData string
|
||||
UserDataFile string
|
||||
|
@ -142,12 +143,10 @@ func (s *stepCreateAlicloudInstance) buildCreateInstanceRequest(state multistep.
|
|||
request.InternetChargeType = s.InternetChargeType
|
||||
request.InternetMaxBandwidthOut = requests.Integer(convertNumber(s.InternetMaxBandwidthOut))
|
||||
|
||||
if s.IOOptimized != nil {
|
||||
if *s.IOOptimized {
|
||||
request.IoOptimized = IOOptimizedOptimized
|
||||
} else {
|
||||
request.IoOptimized = IOOptimizedNone
|
||||
}
|
||||
if s.IOOptimized.True() {
|
||||
request.IoOptimized = IOOptimizedOptimized
|
||||
} else if s.IOOptimized.False() {
|
||||
request.IoOptimized = IOOptimizedNone
|
||||
}
|
||||
|
||||
config := state.Get("config").(*Config)
|
||||
|
@ -174,8 +173,8 @@ func (s *stepCreateAlicloudInstance) buildCreateInstanceRequest(state multistep.
|
|||
dataDisk.Description = imageDisk.Description
|
||||
dataDisk.DeleteWithInstance = strconv.FormatBool(imageDisk.DeleteWithInstance)
|
||||
dataDisk.Device = imageDisk.Device
|
||||
if imageDisk.Encrypted != nil {
|
||||
dataDisk.Encrypted = strconv.FormatBool(*imageDisk.Encrypted)
|
||||
if imageDisk.Encrypted != confighelper.TriUnset {
|
||||
dataDisk.Encrypted = strconv.FormatBool(imageDisk.Encrypted.True())
|
||||
}
|
||||
|
||||
dataDisks = append(dataDisks, dataDisk)
|
||||
|
|
|
@ -7,6 +7,7 @@ import (
|
|||
|
||||
"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
|
||||
"github.com/aliyun/alibaba-cloud-sdk-go/services/ecs"
|
||||
confighelper "github.com/hashicorp/packer/helper/config"
|
||||
"github.com/hashicorp/packer/helper/multistep"
|
||||
"github.com/hashicorp/packer/packer"
|
||||
)
|
||||
|
@ -20,7 +21,7 @@ type stepRegionCopyAlicloudImage struct {
|
|||
func (s *stepRegionCopyAlicloudImage) Run(ctx context.Context, state multistep.StateBag) multistep.StepAction {
|
||||
config := state.Get("config").(*Config)
|
||||
|
||||
if config.ImageEncrypted != nil {
|
||||
if config.ImageEncrypted != confighelper.TriUnset {
|
||||
s.AlicloudImageDestinationRegions = append(s.AlicloudImageDestinationRegions, s.RegionId)
|
||||
s.AlicloudImageDestinationNames = append(s.AlicloudImageDestinationNames, config.AlicloudImageName)
|
||||
}
|
||||
|
@ -38,7 +39,7 @@ func (s *stepRegionCopyAlicloudImage) Run(ctx context.Context, state multistep.S
|
|||
|
||||
ui.Say(fmt.Sprintf("Coping image %s from %s...", srcImageId, s.RegionId))
|
||||
for index, destinationRegion := range s.AlicloudImageDestinationRegions {
|
||||
if destinationRegion == s.RegionId && config.ImageEncrypted == nil {
|
||||
if destinationRegion == s.RegionId && config.ImageEncrypted == confighelper.TriUnset {
|
||||
continue
|
||||
}
|
||||
|
||||
|
@ -52,8 +53,8 @@ func (s *stepRegionCopyAlicloudImage) Run(ctx context.Context, state multistep.S
|
|||
copyImageRequest.ImageId = srcImageId
|
||||
copyImageRequest.DestinationRegionId = destinationRegion
|
||||
copyImageRequest.DestinationImageName = ecsImageName
|
||||
if config.ImageEncrypted != nil {
|
||||
copyImageRequest.Encrypted = requests.NewBoolean(*config.ImageEncrypted)
|
||||
if config.ImageEncrypted != confighelper.TriUnset {
|
||||
copyImageRequest.Encrypted = requests.NewBoolean(config.ImageEncrypted.True())
|
||||
}
|
||||
|
||||
imageResponse, err := client.CopyImage(copyImageRequest)
|
||||
|
@ -65,7 +66,7 @@ func (s *stepRegionCopyAlicloudImage) Run(ctx context.Context, state multistep.S
|
|||
ui.Message(fmt.Sprintf("Copy image from %s(%s) to %s(%s)", s.RegionId, srcImageId, destinationRegion, imageResponse.ImageId))
|
||||
}
|
||||
|
||||
if config.ImageEncrypted != nil {
|
||||
if config.ImageEncrypted != confighelper.TriUnset {
|
||||
if _, err := client.WaitForImageStatus(s.RegionId, alicloudImages[s.RegionId], ImageStatusAvailable, time.Duration(ALICLOUD_DEFAULT_LONG_TIMEOUT)*time.Second); err != nil {
|
||||
return halt(state, err, fmt.Sprintf("Timeout waiting image %s finish copying", alicloudImages[s.RegionId]))
|
||||
}
|
||||
|
|
|
@ -47,10 +47,10 @@ func (b *BlockDevice) Prepare(ctx *interpolate.Context) error {
|
|||
err := b.BlockDevice.Prepare(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
// Warn that encrypted must be true when setting kms_key_id
|
||||
if b.KmsKeyId != "" && b.Encrypted != nil && *b.Encrypted == false {
|
||||
if b.KmsKeyId != "" && b.Encrypted.True() {
|
||||
return fmt.Errorf("The device %v, must also have `encrypted: "+
|
||||
"true` when setting a kms_key_id.", b.DeviceName)
|
||||
}
|
||||
|
|
|
@ -7,6 +7,7 @@ import (
|
|||
"github.com/aws/aws-sdk-go/aws"
|
||||
"github.com/aws/aws-sdk-go/service/ec2"
|
||||
awscommon "github.com/hashicorp/packer/builder/amazon/common"
|
||||
confighelper "github.com/hashicorp/packer/helper/config"
|
||||
"github.com/hashicorp/packer/helper/multistep"
|
||||
"github.com/hashicorp/packer/packer"
|
||||
)
|
||||
|
@ -14,7 +15,7 @@ import (
|
|||
// StepRegisterAMI creates the AMI.
|
||||
type StepRegisterAMI struct {
|
||||
RootVolumeSize int64
|
||||
EnableAMIENASupport *bool
|
||||
EnableAMIENASupport confighelper.Trilean
|
||||
EnableAMISriovNetSupport bool
|
||||
}
|
||||
|
||||
|
@ -41,7 +42,7 @@ func (s *StepRegisterAMI) Run(ctx context.Context, state multistep.StateBag) mul
|
|||
// As of February 2017, this applies to C3, C4, D2, I2, R3, and M4 (excluding m4.16xlarge)
|
||||
registerOpts.SriovNetSupport = aws.String("simple")
|
||||
}
|
||||
if s.EnableAMIENASupport != nil && *s.EnableAMIENASupport {
|
||||
if s.EnableAMIENASupport.True() {
|
||||
// Set EnaSupport to true
|
||||
// As of February 2017, this applies to C5, I3, P2, R4, X1, and m4.16xlarge
|
||||
registerOpts.EnaSupport = aws.Bool(true)
|
||||
|
|
|
@ -7,12 +7,12 @@ import (
|
|||
"log"
|
||||
"regexp"
|
||||
|
||||
"github.com/hashicorp/packer/helper/config"
|
||||
"github.com/hashicorp/packer/template/interpolate"
|
||||
)
|
||||
|
||||
// AMIConfig is for common configuration related to creating AMIs.
|
||||
type AMIConfig struct {
|
||||
|
||||
// The name of the resulting AMI that will appear when
|
||||
// managing AMIs in the AWS console or via APIs. This must be unique. To help
|
||||
// make this unique, use a function like timestamp (see [template
|
||||
|
@ -59,7 +59,7 @@ type AMIConfig struct {
|
|||
// enhanced networking is enabled on your instance. [Amazon's
|
||||
// documentation on enabling enhanced
|
||||
// networking](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking.html#enabling_enhanced_networking).
|
||||
AMIENASupport *bool `mapstructure:"ena_support" required:"false"`
|
||||
AMIENASupport config.Trilean `mapstructure:"ena_support" required:"false"`
|
||||
// Enable enhanced networking (SriovNetSupport but not ENA) on
|
||||
// HVM-compatible AMIs. If true, add `ec2:ModifyInstanceAttribute` to your
|
||||
// AWS IAM policy. Note: you must make sure enhanced networking is enabled
|
||||
|
@ -78,7 +78,7 @@ type AMIConfig struct {
|
|||
// copying a provisioned instance to an AMI. By default, Packer will keep the
|
||||
// encryption setting to what it was in the source image. Setting false will
|
||||
// result in an unencrypted image, and true will result in an encrypted one.
|
||||
AMIEncryptBootVolume *bool `mapstructure:"encrypt_boot" required:"false"`
|
||||
AMIEncryptBootVolume config.Trilean `mapstructure:"encrypt_boot" required:"false"`
|
||||
// ID, alias or ARN of the KMS key to use for boot volume encryption. This
|
||||
// only applies to the main `region`, other regions where the AMI will be
|
||||
// copied will be encrypted by the default EBS KMS key. For valid formats
|
||||
|
@ -156,7 +156,7 @@ func (c *AMIConfig) Prepare(accessConfig *AccessConfig, ctx *interpolate.Context
|
|||
|
||||
// Prevent sharing of default KMS key encrypted volumes with other aws users
|
||||
if len(c.AMIUsers) > 0 {
|
||||
if len(c.AMIKmsKeyId) == 0 && c.AMIEncryptBootVolume != nil && *c.AMIEncryptBootVolume {
|
||||
if len(c.AMIKmsKeyId) == 0 && c.AMIEncryptBootVolume.True() {
|
||||
errs = append(errs, fmt.Errorf("Cannot share AMI encrypted with default KMS key"))
|
||||
}
|
||||
if len(c.AMIRegionKMSKeyIDs) > 0 {
|
||||
|
@ -186,7 +186,7 @@ func (c *AMIConfig) Prepare(accessConfig *AccessConfig, ctx *interpolate.Context
|
|||
}
|
||||
|
||||
if len(c.SnapshotUsers) > 0 {
|
||||
if len(c.AMIKmsKeyId) == 0 && c.AMIEncryptBootVolume != nil && *c.AMIEncryptBootVolume {
|
||||
if len(c.AMIKmsKeyId) == 0 && c.AMIEncryptBootVolume.True() {
|
||||
errs = append(errs, fmt.Errorf("Cannot share snapshot encrypted with default KMS key"))
|
||||
}
|
||||
if len(c.AMIRegionKMSKeyIDs) > 0 {
|
||||
|
|
|
@ -8,6 +8,7 @@ import (
|
|||
"github.com/aws/aws-sdk-go/aws"
|
||||
"github.com/aws/aws-sdk-go/service/ec2"
|
||||
"github.com/aws/aws-sdk-go/service/ec2/ec2iface"
|
||||
"github.com/hashicorp/packer/helper/config"
|
||||
)
|
||||
|
||||
func testAMIConfig() *AMIConfig {
|
||||
|
@ -138,7 +139,7 @@ func TestAMIConfigPrepare_regions(t *testing.T) {
|
|||
|
||||
c.SnapshotUsers = []string{"foo", "bar"}
|
||||
c.AMIKmsKeyId = "123-abc-456"
|
||||
c.AMIEncryptBootVolume = &[]bool{true}[0]
|
||||
c.AMIEncryptBootVolume = config.TriTrue
|
||||
c.AMIRegions = []string{"us-east-1", "us-west-1"}
|
||||
c.AMIRegionKMSKeyIDs = map[string]string{
|
||||
"us-east-1": "123-456-7890",
|
||||
|
@ -161,7 +162,7 @@ func TestAMIConfigPrepare_regions(t *testing.T) {
|
|||
func TestAMIConfigPrepare_Share_EncryptedBoot(t *testing.T) {
|
||||
c := testAMIConfig()
|
||||
c.AMIUsers = []string{"testAccountID"}
|
||||
c.AMIEncryptBootVolume = &[]bool{true}[0]
|
||||
c.AMIEncryptBootVolume = config.TriTrue
|
||||
|
||||
accessConf := testAccessConfig()
|
||||
|
||||
|
@ -177,7 +178,7 @@ func TestAMIConfigPrepare_Share_EncryptedBoot(t *testing.T) {
|
|||
|
||||
func TestAMIConfigPrepare_ValidateKmsKey(t *testing.T) {
|
||||
c := testAMIConfig()
|
||||
c.AMIEncryptBootVolume = aws.Bool(true)
|
||||
c.AMIEncryptBootVolume = config.TriTrue
|
||||
|
||||
accessConf := testAccessConfig()
|
||||
|
||||
|
|
|
@ -8,6 +8,7 @@ import (
|
|||
|
||||
"github.com/aws/aws-sdk-go/aws"
|
||||
"github.com/aws/aws-sdk-go/service/ec2"
|
||||
"github.com/hashicorp/packer/helper/config"
|
||||
"github.com/hashicorp/packer/template/interpolate"
|
||||
)
|
||||
|
||||
|
@ -36,7 +37,7 @@ type BlockDevice struct {
|
|||
// keep the encryption setting to what it was in the source image. Setting
|
||||
// false will result in an unencrypted device, and true will result in an
|
||||
// encrypted one.
|
||||
Encrypted *bool `mapstructure:"encrypted" required:"false"`
|
||||
Encrypted config.Trilean `mapstructure:"encrypted" required:"false"`
|
||||
// The number of I/O operations per second (IOPS) that the volume supports.
|
||||
// See the documentation on
|
||||
// [IOPs](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_EbsBlockDevice.html)
|
||||
|
@ -115,7 +116,11 @@ func (blockDevice BlockDevice) BuildEC2BlockDeviceMapping() *ec2.BlockDeviceMapp
|
|||
if blockDevice.SnapshotId != "" {
|
||||
ebsBlockDevice.SnapshotId = aws.String(blockDevice.SnapshotId)
|
||||
}
|
||||
ebsBlockDevice.Encrypted = blockDevice.Encrypted
|
||||
ebsBlockDevice.Encrypted = blockDevice.Encrypted.ToBoolPointer()
|
||||
|
||||
if blockDevice.KmsKeyId != "" {
|
||||
ebsBlockDevice.KmsKeyId = aws.String(blockDevice.KmsKeyId)
|
||||
}
|
||||
|
||||
mapping.Ebs = ebsBlockDevice
|
||||
|
||||
|
@ -127,8 +132,9 @@ func (b *BlockDevice) Prepare(ctx *interpolate.Context) error {
|
|||
return fmt.Errorf("The `device_name` must be specified " +
|
||||
"for every device in the block device mapping.")
|
||||
}
|
||||
|
||||
// Warn that encrypted must be true or nil when setting kms_key_id
|
||||
if b.KmsKeyId != "" && b.Encrypted != nil && *b.Encrypted == false {
|
||||
if b.KmsKeyId != "" && b.Encrypted.False() {
|
||||
return fmt.Errorf("The device %v, must also have `encrypted: "+
|
||||
"true` when setting a kms_key_id.", b.DeviceName)
|
||||
}
|
||||
|
|
|
@ -6,6 +6,7 @@ import (
|
|||
|
||||
"github.com/aws/aws-sdk-go/aws"
|
||||
"github.com/aws/aws-sdk-go/service/ec2"
|
||||
"github.com/hashicorp/packer/helper/config"
|
||||
)
|
||||
|
||||
func TestBlockDevice(t *testing.T) {
|
||||
|
@ -71,7 +72,7 @@ func TestBlockDevice(t *testing.T) {
|
|||
VolumeType: "gp2",
|
||||
VolumeSize: 8,
|
||||
DeleteOnTermination: true,
|
||||
Encrypted: aws.Bool(true),
|
||||
Encrypted: config.TriTrue,
|
||||
},
|
||||
|
||||
Result: &ec2.BlockDeviceMapping{
|
||||
|
@ -90,7 +91,8 @@ func TestBlockDevice(t *testing.T) {
|
|||
VolumeType: "gp2",
|
||||
VolumeSize: 8,
|
||||
DeleteOnTermination: true,
|
||||
Encrypted: aws.Bool(true),
|
||||
Encrypted: config.TriTrue,
|
||||
KmsKeyId: "2Fa48a521f-3aff-4b34-a159-376ac5d37812",
|
||||
},
|
||||
|
||||
Result: &ec2.BlockDeviceMapping{
|
||||
|
|
|
@ -8,6 +8,7 @@ import (
|
|||
"github.com/aws/aws-sdk-go/aws"
|
||||
"github.com/aws/aws-sdk-go/service/ec2"
|
||||
"github.com/aws/aws-sdk-go/service/ec2/ec2iface"
|
||||
"github.com/hashicorp/packer/helper/config"
|
||||
"github.com/hashicorp/packer/helper/multistep"
|
||||
"github.com/hashicorp/packer/packer"
|
||||
)
|
||||
|
@ -17,7 +18,7 @@ type StepAMIRegionCopy struct {
|
|||
Regions []string
|
||||
AMIKmsKeyId string
|
||||
RegionKeyIds map[string]string
|
||||
EncryptBootVolume *bool // nil means preserve
|
||||
EncryptBootVolume config.Trilean // nil means preserve
|
||||
Name string
|
||||
OriginalRegion string
|
||||
|
||||
|
@ -74,7 +75,7 @@ func (s *StepAMIRegionCopy) Run(ctx context.Context, state multistep.StateBag) m
|
|||
s.toDelete = ami
|
||||
}
|
||||
|
||||
if s.EncryptBootVolume != nil && *s.EncryptBootVolume {
|
||||
if s.EncryptBootVolume.True() {
|
||||
// encrypt_boot is true, so we have to copy the temporary
|
||||
// AMI with required encryption setting.
|
||||
// temp image was created by stepCreateAMI.
|
||||
|
@ -102,7 +103,7 @@ func (s *StepAMIRegionCopy) Run(ctx context.Context, state multistep.StateBag) m
|
|||
var regKeyID string
|
||||
ui.Message(fmt.Sprintf("Copying to: %s", region))
|
||||
|
||||
if s.EncryptBootVolume != nil && *s.EncryptBootVolume {
|
||||
if s.EncryptBootVolume.True() {
|
||||
// Encrypt is true, explicitly
|
||||
regKeyID = s.RegionKeyIds[region]
|
||||
} else {
|
||||
|
@ -112,7 +113,9 @@ func (s *StepAMIRegionCopy) Run(ctx context.Context, state multistep.StateBag) m
|
|||
|
||||
go func(region string) {
|
||||
defer wg.Done()
|
||||
id, snapshotIds, err := s.amiRegionCopy(ctx, state, s.AccessConfig, s.Name, ami, region, s.OriginalRegion, regKeyID, s.EncryptBootVolume)
|
||||
id, snapshotIds, err := s.amiRegionCopy(ctx, state, s.AccessConfig,
|
||||
s.Name, ami, region, s.OriginalRegion, regKeyID,
|
||||
s.EncryptBootVolume.ToBoolPointer())
|
||||
lock.Lock()
|
||||
defer lock.Unlock()
|
||||
amis[region] = id
|
||||
|
|
|
@ -11,6 +11,7 @@ import (
|
|||
"github.com/aws/aws-sdk-go/aws/request"
|
||||
"github.com/aws/aws-sdk-go/service/ec2"
|
||||
"github.com/aws/aws-sdk-go/service/ec2/ec2iface"
|
||||
"github.com/hashicorp/packer/helper/config"
|
||||
"github.com/hashicorp/packer/helper/multistep"
|
||||
"github.com/hashicorp/packer/packer"
|
||||
)
|
||||
|
@ -109,7 +110,7 @@ func TestStepAMIRegionCopy_duplicates(t *testing.T) {
|
|||
AMIKmsKeyId: "12345",
|
||||
// Original region key in regionkeyids is different than in amikmskeyid
|
||||
RegionKeyIds: map[string]string{"us-east-1": "12345"},
|
||||
EncryptBootVolume: aws.Bool(true),
|
||||
EncryptBootVolume: config.TriTrue,
|
||||
Name: "fake-ami-name",
|
||||
OriginalRegion: "us-east-1",
|
||||
}
|
||||
|
@ -153,7 +154,7 @@ func TestStepAMIRegionCopy_duplicates(t *testing.T) {
|
|||
stepAMIRegionCopy = StepAMIRegionCopy{
|
||||
AccessConfig: testAccessConfig(),
|
||||
Regions: []string{"us-east-1"},
|
||||
EncryptBootVolume: aws.Bool(false),
|
||||
EncryptBootVolume: config.TriFalse,
|
||||
Name: "fake-ami-name",
|
||||
OriginalRegion: "us-east-1",
|
||||
}
|
||||
|
@ -179,7 +180,7 @@ func TestStepAMIRegionCopy_duplicates(t *testing.T) {
|
|||
AMIKmsKeyId: "IlikePancakes",
|
||||
// Original region key in regionkeyids is different than in amikmskeyid
|
||||
RegionKeyIds: map[string]string{"us-east-1": "12345", "us-west-2": "abcde", "ap-east-1": "xyz"},
|
||||
EncryptBootVolume: aws.Bool(true),
|
||||
EncryptBootVolume: config.TriTrue,
|
||||
Name: "fake-ami-name",
|
||||
OriginalRegion: "us-east-1",
|
||||
}
|
||||
|
@ -226,7 +227,7 @@ func TestStepAmiRegionCopy_nil_encryption(t *testing.T) {
|
|||
Regions: make([]string, 0),
|
||||
AMIKmsKeyId: "",
|
||||
RegionKeyIds: make(map[string]string),
|
||||
EncryptBootVolume: nil,
|
||||
EncryptBootVolume: config.TriUnset,
|
||||
Name: "fake-ami-name",
|
||||
OriginalRegion: "us-east-1",
|
||||
}
|
||||
|
@ -252,7 +253,7 @@ func TestStepAmiRegionCopy_true_encryption(t *testing.T) {
|
|||
Regions: make([]string, 0),
|
||||
AMIKmsKeyId: "",
|
||||
RegionKeyIds: make(map[string]string),
|
||||
EncryptBootVolume: aws.Bool(true),
|
||||
EncryptBootVolume: config.TriTrue,
|
||||
Name: "fake-ami-name",
|
||||
OriginalRegion: "us-east-1",
|
||||
}
|
||||
|
@ -278,7 +279,7 @@ func TestStepAmiRegionCopy_nil_intermediary(t *testing.T) {
|
|||
Regions: make([]string, 0),
|
||||
AMIKmsKeyId: "",
|
||||
RegionKeyIds: make(map[string]string),
|
||||
EncryptBootVolume: aws.Bool(false),
|
||||
EncryptBootVolume: config.TriFalse,
|
||||
Name: "fake-ami-name",
|
||||
OriginalRegion: "us-east-1",
|
||||
}
|
||||
|
@ -360,7 +361,7 @@ func TestStepAmiRegionCopy_AMISkipBuildRegion(t *testing.T) {
|
|||
Name: "fake-ami-name",
|
||||
OriginalRegion: "us-east-1",
|
||||
AMISkipBuildRegion: false,
|
||||
EncryptBootVolume: aws.Bool(true),
|
||||
EncryptBootVolume: config.TriTrue,
|
||||
}
|
||||
// mock out the region connection code
|
||||
stepAMIRegionCopy.getRegionConn = getMockConn
|
||||
|
@ -386,7 +387,7 @@ func TestStepAmiRegionCopy_AMISkipBuildRegion(t *testing.T) {
|
|||
Name: "fake-ami-name",
|
||||
OriginalRegion: "us-east-1",
|
||||
AMISkipBuildRegion: true,
|
||||
EncryptBootVolume: aws.Bool(true),
|
||||
EncryptBootVolume: config.TriTrue,
|
||||
}
|
||||
// mock out the region connection code
|
||||
stepAMIRegionCopy.getRegionConn = getMockConn
|
||||
|
|
|
@ -12,6 +12,7 @@ import (
|
|||
"time"
|
||||
|
||||
"github.com/aws/aws-sdk-go/service/ec2"
|
||||
"github.com/hashicorp/packer/common/retry"
|
||||
commonhelper "github.com/hashicorp/packer/helper/common"
|
||||
"github.com/hashicorp/packer/helper/communicator"
|
||||
"github.com/hashicorp/packer/helper/multistep"
|
||||
|
@ -45,14 +46,13 @@ func (s *StepGetPassword) Run(ctx context.Context, state multistep.StateBag) mul
|
|||
// Get the password
|
||||
var password string
|
||||
var err error
|
||||
cancel := make(chan struct{})
|
||||
waitDone := make(chan bool, 1)
|
||||
go func() {
|
||||
ui.Say("Waiting for auto-generated password for instance...")
|
||||
ui.Message(
|
||||
"It is normal for this process to take up to 15 minutes,\n" +
|
||||
"but it usually takes around 5. Please wait.")
|
||||
password, err = s.waitForPassword(state, cancel)
|
||||
password, err = s.waitForPassword(ctx, state)
|
||||
waitDone <- true
|
||||
}()
|
||||
|
||||
|
@ -76,16 +76,12 @@ WaitLoop:
|
|||
err := fmt.Errorf("Timeout waiting for password.")
|
||||
state.Put("error", err)
|
||||
ui.Error(err.Error())
|
||||
close(cancel)
|
||||
return multistep.ActionHalt
|
||||
case <-time.After(1 * time.Second):
|
||||
if _, ok := state.GetOk(multistep.StateCancelled); ok {
|
||||
// The step sequence was cancelled, so cancel waiting for password
|
||||
// and just start the halting process.
|
||||
close(cancel)
|
||||
log.Println("[WARN] Interrupt detected, quitting waiting for password.")
|
||||
return multistep.ActionHalt
|
||||
}
|
||||
case <-ctx.Done():
|
||||
// The step sequence was cancelled, so cancel waiting for password
|
||||
// and just start the halting process.
|
||||
log.Println("[WARN] Interrupt detected, quitting waiting for password.")
|
||||
return multistep.ActionHalt
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -106,24 +102,38 @@ func (s *StepGetPassword) Cleanup(multistep.StateBag) {
|
|||
commonhelper.RemoveSharedStateFile("winrm_password", s.BuildName)
|
||||
}
|
||||
|
||||
func (s *StepGetPassword) waitForPassword(state multistep.StateBag, cancel <-chan struct{}) (string, error) {
|
||||
func (s *StepGetPassword) waitForPassword(ctx context.Context, state multistep.StateBag) (string, error) {
|
||||
ec2conn := state.Get("ec2").(*ec2.EC2)
|
||||
instance := state.Get("instance").(*ec2.Instance)
|
||||
privateKey := s.Comm.SSHPrivateKey
|
||||
|
||||
for {
|
||||
select {
|
||||
case <-cancel:
|
||||
case <-ctx.Done():
|
||||
log.Println("[INFO] Retrieve password wait cancelled. Exiting loop.")
|
||||
return "", errors.New("Retrieve password wait cancelled")
|
||||
case <-time.After(5 * time.Second):
|
||||
}
|
||||
|
||||
resp, err := ec2conn.GetPasswordData(&ec2.GetPasswordDataInput{
|
||||
InstanceId: instance.InstanceId,
|
||||
// Wrap in a retry so that we don't fail on rate-limiting.
|
||||
log.Printf("Retrieving auto-generated instance password...")
|
||||
var resp *ec2.GetPasswordDataOutput
|
||||
err := retry.Config{
|
||||
Tries: 11,
|
||||
RetryDelay: (&retry.Backoff{InitialBackoff: 200 * time.Millisecond, MaxBackoff: 30 * time.Second, Multiplier: 2}).Linear,
|
||||
}.Run(ctx, func(ctx context.Context) error {
|
||||
var err error
|
||||
resp, err = ec2conn.GetPasswordData(&ec2.GetPasswordDataInput{
|
||||
InstanceId: instance.InstanceId,
|
||||
})
|
||||
if err != nil {
|
||||
err := fmt.Errorf("Error retrieving auto-generated instance password: %s", err)
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
err := fmt.Errorf("Error retrieving auto-generated instance password: %s", err)
|
||||
return "", err
|
||||
}
|
||||
|
||||
|
|
|
@ -5,19 +5,20 @@ import (
|
|||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/aws/aws-sdk-go/aws"
|
||||
"github.com/aws/aws-sdk-go/service/ec2"
|
||||
"github.com/aws/aws-sdk-go/service/ec2/ec2iface"
|
||||
confighelper "github.com/hashicorp/packer/helper/config"
|
||||
"github.com/hashicorp/packer/helper/multistep"
|
||||
"github.com/hashicorp/packer/packer"
|
||||
)
|
||||
|
||||
type StepModifyEBSBackedInstance struct {
|
||||
EnableAMIENASupport *bool
|
||||
EnableAMIENASupport confighelper.Trilean
|
||||
EnableAMISriovNetSupport bool
|
||||
}
|
||||
|
||||
func (s *StepModifyEBSBackedInstance) Run(ctx context.Context, state multistep.StateBag) multistep.StepAction {
|
||||
ec2conn := state.Get("ec2").(*ec2.EC2)
|
||||
ec2conn := state.Get("ec2").(ec2iface.EC2API)
|
||||
instance := state.Get("instance").(*ec2.Instance)
|
||||
ui := state.Get("ui").(packer.Ui)
|
||||
|
||||
|
@ -40,9 +41,9 @@ func (s *StepModifyEBSBackedInstance) Run(ctx context.Context, state multistep.S
|
|||
|
||||
// Handle EnaSupport flag.
|
||||
// As of February 2017, this applies to C5, I3, P2, R4, X1, and m4.16xlarge
|
||||
if s.EnableAMIENASupport != nil {
|
||||
if s.EnableAMIENASupport != confighelper.TriUnset {
|
||||
var prefix string
|
||||
if *s.EnableAMIENASupport {
|
||||
if s.EnableAMIENASupport.True() {
|
||||
prefix = "En"
|
||||
} else {
|
||||
prefix = "Dis"
|
||||
|
@ -50,7 +51,7 @@ func (s *StepModifyEBSBackedInstance) Run(ctx context.Context, state multistep.S
|
|||
ui.Say(fmt.Sprintf("%sabling Enhanced Networking (ENA)...", prefix))
|
||||
_, err := ec2conn.ModifyInstanceAttribute(&ec2.ModifyInstanceAttributeInput{
|
||||
InstanceId: instance.InstanceId,
|
||||
EnaSupport: &ec2.AttributeBooleanValue{Value: aws.Bool(*s.EnableAMIENASupport)},
|
||||
EnaSupport: &ec2.AttributeBooleanValue{Value: s.EnableAMIENASupport.ToBoolPointer()},
|
||||
})
|
||||
if err != nil {
|
||||
err := fmt.Errorf("Error %sabling Enhanced Networking (ENA) on %s: %s", strings.ToLower(prefix), *instance.InstanceId, err)
|
||||
|
|
|
@ -0,0 +1,105 @@
|
|||
package common
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"fmt"
|
||||
"testing"
|
||||
|
||||
"github.com/aws/aws-sdk-go/aws"
|
||||
"github.com/aws/aws-sdk-go/service/ec2"
|
||||
"github.com/aws/aws-sdk-go/service/ec2/ec2iface"
|
||||
helperconfig "github.com/hashicorp/packer/helper/config"
|
||||
"github.com/hashicorp/packer/helper/multistep"
|
||||
"github.com/hashicorp/packer/packer"
|
||||
)
|
||||
|
||||
// Define a mock struct to be used in unit tests for common aws steps.
|
||||
type mockEC2Conn_ModifyEBS struct {
|
||||
ec2iface.EC2API
|
||||
Config *aws.Config
|
||||
|
||||
// Counters to figure out what code path was taken
|
||||
shouldError bool
|
||||
modifyImageAttrCount int
|
||||
}
|
||||
|
||||
func (m *mockEC2Conn_ModifyEBS) ModifyInstanceAttribute(modifyInput *ec2.ModifyInstanceAttributeInput) (*ec2.ModifyInstanceAttributeOutput, error) {
|
||||
m.modifyImageAttrCount++
|
||||
// don't need to define output since we always discard it anyway.
|
||||
output := &ec2.ModifyInstanceAttributeOutput{}
|
||||
if m.shouldError {
|
||||
return output, fmt.Errorf("fake ModifyInstanceAttribute error")
|
||||
}
|
||||
return output, nil
|
||||
}
|
||||
|
||||
// Create statebag for running test
|
||||
func fakeModifyEBSBackedInstanceState() multistep.StateBag {
|
||||
state := new(multistep.BasicStateBag)
|
||||
state.Put("ui", &packer.BasicUi{
|
||||
Reader: new(bytes.Buffer),
|
||||
Writer: new(bytes.Buffer),
|
||||
})
|
||||
state.Put("instance", "i-12345")
|
||||
return state
|
||||
}
|
||||
|
||||
func StepModifyEBSBackedInstance_EnableAMIENASupport(t *testing.T) {
|
||||
// Value is unset, so we shouldn't modify
|
||||
stepModifyEBSBackedInstance := StepModifyEBSBackedInstance{
|
||||
EnableAMIENASupport: helperconfig.TriUnset,
|
||||
EnableAMISriovNetSupport: false,
|
||||
}
|
||||
|
||||
// mock out the region connection code
|
||||
mockConn := &mockEC2Conn_ModifyEBS{
|
||||
Config: aws.NewConfig(),
|
||||
}
|
||||
|
||||
state := fakeModifyEBSBackedInstanceState()
|
||||
state.Put("ec2", mockConn)
|
||||
stepModifyEBSBackedInstance.Run(context.Background(), state)
|
||||
|
||||
if mockConn.modifyImageAttrCount > 0 {
|
||||
t.Fatalf("Should not have modified image since EnableAMIENASupport is unset")
|
||||
}
|
||||
|
||||
// Value is true, so we should modify
|
||||
stepModifyEBSBackedInstance = StepModifyEBSBackedInstance{
|
||||
EnableAMIENASupport: helperconfig.TriTrue,
|
||||
EnableAMISriovNetSupport: false,
|
||||
}
|
||||
|
||||
// mock out the region connection code
|
||||
mockConn = &mockEC2Conn_ModifyEBS{
|
||||
Config: aws.NewConfig(),
|
||||
}
|
||||
|
||||
state = fakeModifyEBSBackedInstanceState()
|
||||
state.Put("ec2", mockConn)
|
||||
stepModifyEBSBackedInstance.Run(context.Background(), state)
|
||||
|
||||
if mockConn.modifyImageAttrCount != 1 {
|
||||
t.Fatalf("Should have modified image, since EnableAMIENASupport is true")
|
||||
}
|
||||
|
||||
// Value is false, so we should modify
|
||||
stepModifyEBSBackedInstance = StepModifyEBSBackedInstance{
|
||||
EnableAMIENASupport: helperconfig.TriFalse,
|
||||
EnableAMISriovNetSupport: false,
|
||||
}
|
||||
|
||||
// mock out the region connection code
|
||||
mockConn = &mockEC2Conn_ModifyEBS{
|
||||
Config: aws.NewConfig(),
|
||||
}
|
||||
|
||||
state = fakeModifyEBSBackedInstanceState()
|
||||
state.Put("ec2", mockConn)
|
||||
stepModifyEBSBackedInstance.Run(context.Background(), state)
|
||||
|
||||
if mockConn.modifyImageAttrCount != 1 {
|
||||
t.Fatalf("Should have modified image, since EnableAMIENASupport is true")
|
||||
}
|
||||
}
|
|
@ -8,6 +8,7 @@ import (
|
|||
"time"
|
||||
|
||||
"github.com/aws/aws-sdk-go/service/ec2"
|
||||
confighelper "github.com/hashicorp/packer/helper/config"
|
||||
"github.com/hashicorp/packer/helper/multistep"
|
||||
"github.com/hashicorp/packer/packer"
|
||||
)
|
||||
|
@ -20,7 +21,7 @@ import (
|
|||
type StepSourceAMIInfo struct {
|
||||
SourceAmi string
|
||||
EnableAMISriovNetSupport bool
|
||||
EnableAMIENASupport *bool
|
||||
EnableAMIENASupport confighelper.Trilean
|
||||
AMIVirtType string
|
||||
AmiFilters AmiFilterOptions
|
||||
}
|
||||
|
@ -94,7 +95,7 @@ func (s *StepSourceAMIInfo) Run(ctx context.Context, state multistep.StateBag) m
|
|||
|
||||
// Enhanced Networking can only be enabled on HVM AMIs.
|
||||
// See http://goo.gl/icuXh5
|
||||
if (s.EnableAMIENASupport != nil && *s.EnableAMIENASupport) || s.EnableAMISriovNetSupport {
|
||||
if s.EnableAMIENASupport.True() || s.EnableAMISriovNetSupport {
|
||||
err = s.canEnableEnhancedNetworking(image)
|
||||
if err != nil {
|
||||
state.Put("error", err)
|
||||
|
|
|
@ -95,7 +95,7 @@ func (b *Builder) Prepare(raws ...interface{}) ([]string, error) {
|
|||
errs = packer.MultiErrorAppend(errs, b.config.LaunchMappings.Prepare(&b.config.ctx)...)
|
||||
errs = packer.MultiErrorAppend(errs, b.config.RunConfig.Prepare(&b.config.ctx)...)
|
||||
|
||||
if b.config.IsSpotInstance() && ((b.config.AMIENASupport != nil && *b.config.AMIENASupport) || b.config.AMISriovNetSupport) {
|
||||
if b.config.IsSpotInstance() && (b.config.AMIENASupport.True() || b.config.AMISriovNetSupport) {
|
||||
errs = packer.MultiErrorAppend(errs,
|
||||
fmt.Errorf("Spot instances do not support modification, which is required "+
|
||||
"when either `ena_support` or `sriov_support` are set. Please ensure "+
|
||||
|
|
|
@ -27,7 +27,7 @@ func (s *stepCreateAMI) Run(ctx context.Context, state multistep.StateBag) multi
|
|||
// Create the image
|
||||
amiName := config.AMIName
|
||||
state.Put("intermediary_image", false)
|
||||
if config.AMIEncryptBootVolume != nil && *config.AMIEncryptBootVolume != false || s.AMISkipBuildRegion {
|
||||
if config.AMIEncryptBootVolume.True() || s.AMISkipBuildRegion {
|
||||
state.Put("intermediary_image", true)
|
||||
|
||||
// From AWS SDK docs: You can encrypt a copy of an unencrypted snapshot,
|
||||
|
|
|
@ -78,7 +78,7 @@ func (blockDevice BlockDevice) BuildEC2BlockDeviceMapping() *ec2.BlockDeviceMapp
|
|||
if blockDevice.SnapshotId != "" {
|
||||
ebsBlockDevice.SnapshotId = aws.String(blockDevice.SnapshotId)
|
||||
}
|
||||
ebsBlockDevice.Encrypted = blockDevice.Encrypted
|
||||
ebsBlockDevice.Encrypted = blockDevice.Encrypted.ToBoolPointer()
|
||||
|
||||
mapping.Ebs = ebsBlockDevice
|
||||
|
||||
|
|
|
@ -122,7 +122,7 @@ func (b *Builder) Prepare(raws ...interface{}) ([]string, error) {
|
|||
errs = packer.MultiErrorAppend(errs, fmt.Errorf("no volume with name '%s' is found", b.config.RootDevice.SourceDeviceName))
|
||||
}
|
||||
|
||||
if b.config.IsSpotInstance() && ((b.config.AMIENASupport != nil && *b.config.AMIENASupport) || b.config.AMISriovNetSupport) {
|
||||
if b.config.IsSpotInstance() && (b.config.AMIENASupport.True() || b.config.AMISriovNetSupport) {
|
||||
errs = packer.MultiErrorAppend(errs,
|
||||
fmt.Errorf("Spot instances do not support modification, which is required "+
|
||||
"when either `ena_support` or `sriov_support` are set. Please ensure "+
|
||||
|
|
|
@ -7,6 +7,7 @@ import (
|
|||
"github.com/aws/aws-sdk-go/aws"
|
||||
"github.com/aws/aws-sdk-go/service/ec2"
|
||||
awscommon "github.com/hashicorp/packer/builder/amazon/common"
|
||||
confighelper "github.com/hashicorp/packer/helper/config"
|
||||
"github.com/hashicorp/packer/helper/multistep"
|
||||
"github.com/hashicorp/packer/packer"
|
||||
)
|
||||
|
@ -16,7 +17,7 @@ type StepRegisterAMI struct {
|
|||
RootDevice RootBlockDevice
|
||||
AMIDevices []*ec2.BlockDeviceMapping
|
||||
LaunchDevices []*ec2.BlockDeviceMapping
|
||||
EnableAMIENASupport *bool
|
||||
EnableAMIENASupport confighelper.Trilean
|
||||
EnableAMISriovNetSupport bool
|
||||
Architecture string
|
||||
image *ec2.Image
|
||||
|
@ -46,7 +47,7 @@ func (s *StepRegisterAMI) Run(ctx context.Context, state multistep.StateBag) mul
|
|||
// As of February 2017, this applies to C3, C4, D2, I2, R3, and M4 (excluding m4.16xlarge)
|
||||
registerOpts.SriovNetSupport = aws.String("simple")
|
||||
}
|
||||
if s.EnableAMIENASupport != nil && *s.EnableAMIENASupport {
|
||||
if s.EnableAMIENASupport.True() {
|
||||
// Set EnaSupport to true
|
||||
// As of February 2017, this applies to C5, I3, P2, R4, X1, and m4.16xlarge
|
||||
registerOpts.EnaSupport = aws.Bool(true)
|
||||
|
|
|
@ -30,7 +30,7 @@ type Config struct {
|
|||
// AWS IAM policy. Note: you must make sure enhanced networking is enabled
|
||||
// on your instance. See [Amazon's documentation on enabling enhanced
|
||||
// networking](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enhanced-networking.html#enabling_enhanced_networking).
|
||||
AMIENASupport *bool `mapstructure:"ena_support" required:"false"`
|
||||
AMIENASupport config.Trilean `mapstructure:"ena_support" required:"false"`
|
||||
// Enable enhanced networking (SriovNetSupport but not ENA) on
|
||||
// HVM-compatible AMIs. If true, add `ec2:ModifyInstanceAttribute` to your
|
||||
// AWS IAM policy. Note: you must make sure enhanced networking is enabled
|
||||
|
@ -112,7 +112,7 @@ func (b *Builder) Prepare(raws ...interface{}) ([]string, error) {
|
|||
errs = packer.MultiErrorAppend(errs, err)
|
||||
}
|
||||
|
||||
if b.config.IsSpotInstance() && ((b.config.AMIENASupport != nil && *b.config.AMIENASupport) || b.config.AMISriovNetSupport) {
|
||||
if b.config.IsSpotInstance() && ((b.config.AMIENASupport.True()) || b.config.AMISriovNetSupport) {
|
||||
errs = packer.MultiErrorAppend(errs,
|
||||
fmt.Errorf("Spot instances do not support modification, which is required "+
|
||||
"when either `ena_support` or `sriov_support` are set. Please ensure "+
|
||||
|
|
|
@ -201,7 +201,7 @@ func (b *Builder) Prepare(raws ...interface{}) ([]string, error) {
|
|||
errs, fmt.Errorf("x509_key_path points to bad file: %s", err))
|
||||
}
|
||||
|
||||
if b.config.IsSpotInstance() && ((b.config.AMIENASupport != nil && *b.config.AMIENASupport) || b.config.AMISriovNetSupport) {
|
||||
if b.config.IsSpotInstance() && ((b.config.AMIENASupport.True()) || b.config.AMISriovNetSupport) {
|
||||
errs = packer.MultiErrorAppend(errs,
|
||||
fmt.Errorf("Spot instances do not support modification, which is required "+
|
||||
"when either `ena_support` or `sriov_support` are set. Please ensure "+
|
||||
|
|
|
@ -7,12 +7,13 @@ import (
|
|||
"github.com/aws/aws-sdk-go/aws"
|
||||
"github.com/aws/aws-sdk-go/service/ec2"
|
||||
awscommon "github.com/hashicorp/packer/builder/amazon/common"
|
||||
confighelper "github.com/hashicorp/packer/helper/config"
|
||||
"github.com/hashicorp/packer/helper/multistep"
|
||||
"github.com/hashicorp/packer/packer"
|
||||
)
|
||||
|
||||
type StepRegisterAMI struct {
|
||||
EnableAMIENASupport *bool
|
||||
EnableAMIENASupport confighelper.Trilean
|
||||
EnableAMISriovNetSupport bool
|
||||
}
|
||||
|
||||
|
@ -38,7 +39,7 @@ func (s *StepRegisterAMI) Run(ctx context.Context, state multistep.StateBag) mul
|
|||
// As of February 2017, this applies to C3, C4, D2, I2, R3, and M4 (excluding m4.16xlarge)
|
||||
registerOpts.SriovNetSupport = aws.String("simple")
|
||||
}
|
||||
if s.EnableAMIENASupport != nil && *s.EnableAMIENASupport {
|
||||
if s.EnableAMIENASupport.True() {
|
||||
// Set EnaSupport to true
|
||||
// As of February 2017, this applies to C5, I3, P2, R4, X1, and m4.16xlarge
|
||||
registerOpts.EnaSupport = aws.Bool(true)
|
||||
|
|
|
@ -75,6 +75,7 @@ func (b *Builder) Run(ctx context.Context, ui packer.Ui, hook packer.Hook) (pack
|
|||
Debug: b.config.PackerDebug,
|
||||
},
|
||||
&stepSetupNetworking{},
|
||||
&stepDetachIso{},
|
||||
&communicator.StepConnect{
|
||||
Config: &b.config.Comm,
|
||||
Host: communicator.CommHost(b.config.Comm.SSHHost, "ipaddress"),
|
||||
|
|
|
@ -21,6 +21,7 @@ type Config struct {
|
|||
common.PackerConfig `mapstructure:",squash"`
|
||||
common.HTTPConfig `mapstructure:",squash"`
|
||||
Comm communicator.Config `mapstructure:",squash"`
|
||||
|
||||
// The CloudStack API endpoint we will connect to. It can
|
||||
// also be specified via environment variable CLOUDSTACK_API_URL, if set.
|
||||
APIURL string `mapstructure:"api_url" required:"true"`
|
||||
|
@ -58,6 +59,10 @@ type Config struct {
|
|||
// The size (in GB) of the root disk of the new
|
||||
// instance. This option is only available when using source_template.
|
||||
DiskSize int64 `mapstructure:"disk_size" required:"false"`
|
||||
//
|
||||
EjectISO bool `mapstructure:"eject_iso"`
|
||||
//
|
||||
EjectISODelay time.Duration `mapstructure:"eject_iso_delay"`
|
||||
// Set to true to expunge the instance when it is
|
||||
// destroyed. Defaults to false.
|
||||
Expunge bool `mapstructure:"expunge" required:"false"`
|
||||
|
@ -144,8 +149,9 @@ type Config struct {
|
|||
// Set to true to indicate that the template
|
||||
// contains tools to support dynamic scaling of VM cpu/memory. Defaults to
|
||||
// false.
|
||||
TemplateScalable bool `mapstructure:"template_scalable" required:"false"`
|
||||
TemplateTag string `mapstructure:"template_tag"`
|
||||
TemplateScalable bool `mapstructure:"template_scalable" required:"false"`
|
||||
//
|
||||
TemplateTag string `mapstructure:"template_tag"`
|
||||
|
||||
Tags map[string]string `mapstructure:"tags"`
|
||||
|
||||
|
|
|
@ -0,0 +1,60 @@
|
|||
package cloudstack
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"github.com/hashicorp/packer/helper/multistep"
|
||||
"github.com/hashicorp/packer/packer"
|
||||
"github.com/xanzy/go-cloudstack/cloudstack"
|
||||
)
|
||||
|
||||
type stepDetachIso struct{}
|
||||
|
||||
// Detaches currently ISO file attached to a virtual machine if any.
|
||||
func (s *stepDetachIso) Run(ctx context.Context, state multistep.StateBag) multistep.StepAction {
|
||||
ui := state.Get("ui").(packer.Ui)
|
||||
config := state.Get("config").(*Config)
|
||||
|
||||
// Check if state uses iso file and has need to eject it
|
||||
if !config.EjectISO || config.SourceISO == "" {
|
||||
return multistep.ActionContinue
|
||||
}
|
||||
|
||||
ui.Say("Checking attached iso...")
|
||||
|
||||
// Wait to make call detachIso
|
||||
if config.EjectISODelay > 0 {
|
||||
ui.Message(fmt.Sprintf("Waiting for %v before detaching ISO from virtual machine...", config.EjectISODelay))
|
||||
time.Sleep(config.EjectISODelay)
|
||||
}
|
||||
|
||||
client := state.Get("client").(*cloudstack.CloudStackClient)
|
||||
|
||||
instanceID, ok := state.Get("instance_id").(string)
|
||||
if !ok || instanceID == "" {
|
||||
err := fmt.Errorf("Could not retrieve instance_id from state")
|
||||
state.Put("error", err)
|
||||
ui.Error(err.Error())
|
||||
return multistep.ActionHalt
|
||||
}
|
||||
|
||||
ui.Message("Detaching iso from virtual machine...")
|
||||
|
||||
// Get a new DetachIsoParams and detaches Iso file from given virtualMachine instance
|
||||
detachIsoParams := client.ISO.NewDetachIsoParams(instanceID)
|
||||
response, err := client.ISO.DetachIso(detachIsoParams)
|
||||
if err != nil || response == nil {
|
||||
err := fmt.Errorf("Error detaching ISO from virtual machine: %s", err)
|
||||
state.Put("error", err)
|
||||
ui.Error(err.Error())
|
||||
return multistep.ActionHalt
|
||||
}
|
||||
|
||||
return multistep.ActionContinue
|
||||
}
|
||||
|
||||
func (s *stepDetachIso) Cleanup(state multistep.StateBag) {
|
||||
// Nothing to cleanup for this step.
|
||||
}
|
|
@ -19,7 +19,8 @@ import (
|
|||
compute "google.golang.org/api/compute/v1"
|
||||
)
|
||||
|
||||
var reImageFamily = regexp.MustCompile(`^[a-z]([-a-z0-9]{0,61}[a-z0-9])?$`)
|
||||
// used for ImageName and ImageFamily
|
||||
var validImageName = regexp.MustCompile(`^[a-z]([-a-z0-9]{0,61}[a-z0-9])?$`)
|
||||
|
||||
// Config is the configuration structure for the GCE builder. It stores
|
||||
// both the publicly settable state as well as the privately generated
|
||||
|
@ -244,17 +245,27 @@ func NewConfig(raws ...interface{}) (*Config, []string, error) {
|
|||
}
|
||||
}
|
||||
|
||||
// used for ImageName and ImageFamily
|
||||
imageErrorText := "Invalid image %s %q: The first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash"
|
||||
|
||||
if len(c.ImageName) > 63 {
|
||||
errs = packer.MultiErrorAppend(errs,
|
||||
errors.New("Invalid image name: Must not be longer than 63 characters"))
|
||||
}
|
||||
|
||||
if !validImageName.MatchString(c.ImageName) {
|
||||
errs = packer.MultiErrorAppend(errs, errors.New(fmt.Sprintf(imageErrorText, "name", c.ImageName)))
|
||||
}
|
||||
|
||||
if len(c.ImageFamily) > 63 {
|
||||
errs = packer.MultiErrorAppend(errs,
|
||||
errors.New("Invalid image family: Must not be longer than 63 characters"))
|
||||
}
|
||||
|
||||
if c.ImageFamily != "" {
|
||||
if !reImageFamily.MatchString(c.ImageFamily) {
|
||||
errs = packer.MultiErrorAppend(errs,
|
||||
errors.New("Invalid image family: The first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash"))
|
||||
if !validImageName.MatchString(c.ImageFamily) {
|
||||
errs = packer.MultiErrorAppend(errs, errors.New(fmt.Sprintf(imageErrorText, "family", c.ImageFamily)))
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if c.InstanceName == "" {
|
||||
|
|
|
@ -156,6 +156,24 @@ func TestConfigPrepare(t *testing.T) {
|
|||
"foo bar",
|
||||
true,
|
||||
},
|
||||
{
|
||||
// underscore is not allowed
|
||||
"image_name",
|
||||
"foo_bar",
|
||||
true,
|
||||
},
|
||||
{
|
||||
// too long
|
||||
"image_name",
|
||||
"foobar123xyz_abc-456-one-two_three_five_nine_seventeen_eleventy-seven",
|
||||
true,
|
||||
},
|
||||
{
|
||||
// starts with non-alphabetic character
|
||||
"image_name",
|
||||
"1boohoo",
|
||||
true,
|
||||
},
|
||||
{
|
||||
"image_encryption_key",
|
||||
map[string]string{"kmsKeyName": "foo"},
|
||||
|
|
|
@ -55,12 +55,17 @@ func (s *StepCreateWindowsPassword) Run(ctx context.Context, state multistep.Sta
|
|||
buf := make([]byte, 4)
|
||||
binary.BigEndian.PutUint32(buf, uint32(priv.E))
|
||||
|
||||
email := ""
|
||||
if c.Account != nil {
|
||||
email = c.Account.Email
|
||||
}
|
||||
|
||||
data := WindowsPasswordConfig{
|
||||
key: priv,
|
||||
UserName: c.Comm.WinRMUser,
|
||||
Modulus: base64.StdEncoding.EncodeToString(priv.N.Bytes()),
|
||||
Exponent: base64.StdEncoding.EncodeToString(buf[1:]),
|
||||
Email: c.Account.Email,
|
||||
Email: email,
|
||||
ExpireOn: time.Now().Add(time.Minute * 5),
|
||||
}
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ func isalphanumeric(b byte) bool {
|
|||
// Clean up image name by replacing invalid characters with "-"
|
||||
// and converting upper cases to lower cases
|
||||
func templateCleanImageName(s string) string {
|
||||
if reImageFamily.MatchString(s) {
|
||||
if validImageName.MatchString(s) {
|
||||
return s
|
||||
}
|
||||
b := []byte(strings.ToLower(s))
|
||||
|
|
|
@ -471,6 +471,7 @@ func (b *Builder) Run(ctx context.Context, ui packer.Ui, hook packer.Hook) (pack
|
|||
&common.StepCreateFloppy{
|
||||
Files: b.config.FloppyConfig.FloppyFiles,
|
||||
Directories: b.config.FloppyConfig.FloppyDirectories,
|
||||
Label: b.config.FloppyConfig.FloppyLabel,
|
||||
},
|
||||
&common.StepHTTPServer{
|
||||
HTTPDir: b.config.HTTPDir,
|
||||
|
|
|
@ -497,6 +497,7 @@ func (b *Builder) Run(ctx context.Context, ui packer.Ui, hook packer.Hook) (pack
|
|||
&common.StepCreateFloppy{
|
||||
Files: b.config.FloppyFiles,
|
||||
Directories: b.config.FloppyConfig.FloppyDirectories,
|
||||
Label: b.config.FloppyConfig.FloppyLabel,
|
||||
},
|
||||
&common.StepHTTPServer{
|
||||
HTTPDir: b.config.HTTPDir,
|
||||
|
|
|
@ -40,6 +40,12 @@ func (s *StepSourceImageInfo) Run(ctx context.Context, state multistep.StateBag)
|
|||
}
|
||||
|
||||
client, err := config.imageV2Client()
|
||||
if err != nil {
|
||||
err := fmt.Errorf("error creating image client: %s", err)
|
||||
state.Put("error", err)
|
||||
ui.Error(err.Error())
|
||||
return multistep.ActionHalt
|
||||
}
|
||||
|
||||
if s.SourceImageName != "" {
|
||||
s.SourceImageOpts = images.ListOpts{
|
||||
|
|
|
@ -202,6 +202,7 @@ func (b *Builder) Run(ctx context.Context, ui packer.Ui, hook packer.Hook) (pack
|
|||
&common.StepCreateFloppy{
|
||||
Files: b.config.FloppyConfig.FloppyFiles,
|
||||
Directories: b.config.FloppyConfig.FloppyDirectories,
|
||||
Label: b.config.FloppyConfig.FloppyLabel,
|
||||
},
|
||||
&common.StepHTTPServer{
|
||||
HTTPDir: b.config.HTTPDir,
|
||||
|
|
|
@ -61,6 +61,7 @@ func (b *Builder) Run(ctx context.Context, ui packer.Ui, hook packer.Hook) (pack
|
|||
&common.StepCreateFloppy{
|
||||
Files: b.config.FloppyConfig.FloppyFiles,
|
||||
Directories: b.config.FloppyConfig.FloppyDirectories,
|
||||
Label: b.config.FloppyConfig.FloppyLabel,
|
||||
},
|
||||
&StepImport{
|
||||
Name: b.config.VMName,
|
||||
|
|
|
@ -591,6 +591,7 @@ func (b *Builder) Run(ctx context.Context, ui packer.Ui, hook packer.Hook) (pack
|
|||
&common.StepCreateFloppy{
|
||||
Files: b.config.FloppyConfig.FloppyFiles,
|
||||
Directories: b.config.FloppyConfig.FloppyDirectories,
|
||||
Label: b.config.FloppyConfig.FloppyLabel,
|
||||
},
|
||||
new(stepCreateDisk),
|
||||
new(stepCopyDisk),
|
||||
|
|
|
@ -18,6 +18,7 @@ type AccessConfig struct {
|
|||
PrivateKey string `mapstructure:"private_key"`
|
||||
Region string `mapstructure:"region"`
|
||||
ProjectId string `mapstructure:"project_id"`
|
||||
BaseUrl string `mapstructure:"base_url"`
|
||||
|
||||
client *UCloudClient
|
||||
}
|
||||
|
@ -30,6 +31,9 @@ func (c *AccessConfig) Client() (*UCloudClient, error) {
|
|||
cfg := ucloud.NewConfig()
|
||||
cfg.Region = c.Region
|
||||
cfg.ProjectId = c.ProjectId
|
||||
if c.BaseUrl != "" {
|
||||
cfg.BaseUrl = c.BaseUrl
|
||||
}
|
||||
cfg.UserAgent = fmt.Sprintf("Packer-UCloud/%s", version.FormattedVersion())
|
||||
|
||||
cred := auth.NewCredential()
|
||||
|
|
|
@ -3,6 +3,7 @@ package uhost
|
|||
import (
|
||||
"fmt"
|
||||
"github.com/hashicorp/packer/packer"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"os"
|
||||
"testing"
|
||||
|
||||
|
@ -193,6 +194,17 @@ func testAccPreCheck(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestUCloudClientBaseUrlConfigurable(t *testing.T) {
|
||||
const url = "baseUrl"
|
||||
access := &AccessConfig{BaseUrl: url}
|
||||
client, err := access.Client()
|
||||
assert.Nil(t, err)
|
||||
assert.Equal(t, url, client.uaccountconn.Client.GetConfig().BaseUrl, "account conn's base url not configurable")
|
||||
assert.Equal(t, url, client.uhostconn.Client.GetConfig().BaseUrl, "host conn's base url not configurable")
|
||||
assert.Equal(t, url, client.unetconn.Client.GetConfig().BaseUrl, "net conn's base url not configurable")
|
||||
assert.Equal(t, url, client.vpcconn.Client.GetConfig().BaseUrl, "vpc conn's base url not configurable")
|
||||
}
|
||||
|
||||
func testUCloudClient() (*UCloudClient, error) {
|
||||
access := &AccessConfig{Region: "cn-bj2"}
|
||||
err := access.Config()
|
||||
|
|
|
@ -96,7 +96,13 @@ func (d *Vagrant_2_2_Driver) Verify() error {
|
|||
}
|
||||
|
||||
constraints, err := version.NewConstraint(VAGRANT_MIN_VERSION)
|
||||
if err != nil {
|
||||
return fmt.Errorf("error parsing vagrant minimum version: %v", err)
|
||||
}
|
||||
vers, err := d.Version()
|
||||
if err != nil {
|
||||
return fmt.Errorf("error getting virtualbox version: %v", err)
|
||||
}
|
||||
v, err := version.NewVersion(vers)
|
||||
if err != nil {
|
||||
return fmt.Errorf("Error figuring out Vagrant version.")
|
||||
|
|
|
@ -29,6 +29,9 @@ func TestCreateFile(t *testing.T) {
|
|||
}
|
||||
defer os.Remove(templatePath)
|
||||
contents, err := ioutil.ReadFile(templatePath)
|
||||
if err != nil {
|
||||
t.Fatalf(err.Error())
|
||||
}
|
||||
actual := string(contents)
|
||||
expected := `Vagrant.configure("2") do |config|
|
||||
config.vm.define "source", autostart: false do |source|
|
||||
|
@ -56,6 +59,9 @@ func TestCreateFile_customSync(t *testing.T) {
|
|||
}
|
||||
defer os.Remove(templatePath)
|
||||
contents, err := ioutil.ReadFile(templatePath)
|
||||
if err != nil {
|
||||
t.Fatalf(err.Error())
|
||||
}
|
||||
actual := string(contents)
|
||||
expected := `Vagrant.configure("2") do |config|
|
||||
config.vm.define "source", autostart: false do |source|
|
||||
|
|
|
@ -14,23 +14,28 @@ type StepUp struct {
|
|||
GlobalID string
|
||||
}
|
||||
|
||||
func (s *StepUp) generateArgs() []string {
|
||||
box := "source"
|
||||
if s.GlobalID != "" {
|
||||
box = s.GlobalID
|
||||
}
|
||||
|
||||
// start only the source box
|
||||
args := []string{box}
|
||||
|
||||
if s.Provider != "" {
|
||||
args = append(args, fmt.Sprintf("--provider=%s", s.Provider))
|
||||
}
|
||||
return args
|
||||
}
|
||||
|
||||
func (s *StepUp) Run(ctx context.Context, state multistep.StateBag) multistep.StepAction {
|
||||
driver := state.Get("driver").(VagrantDriver)
|
||||
ui := state.Get("ui").(packer.Ui)
|
||||
|
||||
ui.Say("Calling Vagrant Up...")
|
||||
|
||||
// start only the source box
|
||||
args := []string{"source"}
|
||||
if s.GlobalID != "" {
|
||||
args = append(args, s.GlobalID)
|
||||
}
|
||||
|
||||
if s.Provider != "" {
|
||||
args = append(args, fmt.Sprintf("--provider=%s", s.Provider))
|
||||
}
|
||||
|
||||
_, _, err := driver.Up(args)
|
||||
_, _, err := driver.Up(s.generateArgs())
|
||||
|
||||
if err != nil {
|
||||
state.Put("error", err)
|
||||
|
@ -46,16 +51,21 @@ func (s *StepUp) Cleanup(state multistep.StateBag) {
|
|||
|
||||
ui.Say(fmt.Sprintf("%sing Vagrant box...", s.TeardownMethod))
|
||||
|
||||
box := "source"
|
||||
if s.GlobalID != "" {
|
||||
box = s.GlobalID
|
||||
}
|
||||
|
||||
var err error
|
||||
if s.TeardownMethod == "halt" {
|
||||
err = driver.Halt(s.GlobalID)
|
||||
err = driver.Halt(box)
|
||||
} else if s.TeardownMethod == "suspend" {
|
||||
err = driver.Suspend(s.GlobalID)
|
||||
err = driver.Suspend(box)
|
||||
} else if s.TeardownMethod == "destroy" {
|
||||
err = driver.Destroy(s.GlobalID)
|
||||
err = driver.Destroy(box)
|
||||
} else {
|
||||
// Should never get here because of template validation
|
||||
state.Put("error", fmt.Errorf("Invalid teardown method selected; must be either halt, suspend, or destory."))
|
||||
state.Put("error", fmt.Errorf("Invalid teardown method selected; must be either halt, suspend, or destroy."))
|
||||
}
|
||||
if err != nil {
|
||||
state.Put("error", fmt.Errorf("Error halting Vagrant machine; please try to do this manually"))
|
||||
|
|
|
@ -0,0 +1,40 @@
|
|||
package vagrant
|
||||
|
||||
import (
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestPrepUpArgs(t *testing.T) {
|
||||
type testArgs struct {
|
||||
Step StepUp
|
||||
Expected []string
|
||||
}
|
||||
tests := []testArgs{
|
||||
{
|
||||
Step: StepUp{
|
||||
GlobalID: "foo",
|
||||
Provider: "bar",
|
||||
},
|
||||
Expected: []string{"foo", "--provider=bar"},
|
||||
},
|
||||
{
|
||||
Step: StepUp{},
|
||||
Expected: []string{"source"},
|
||||
},
|
||||
{
|
||||
Step: StepUp{
|
||||
Provider: "pro",
|
||||
},
|
||||
Expected: []string{"source", "--provider=pro"},
|
||||
},
|
||||
}
|
||||
for _, test := range tests {
|
||||
args := test.Step.generateArgs()
|
||||
for i, val := range test.Expected {
|
||||
if strings.Compare(args[i], val) != 0 {
|
||||
t.Fatalf("expected %#v but received %#v", test.Expected, args)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -252,17 +252,18 @@ func (d *VBox42Driver) LoadSnapshots(vmName string) (*VBoxSnapshot, error) {
|
|||
}
|
||||
log.Printf("Executing LoadSnapshots: VM: %s", vmName)
|
||||
|
||||
var rootNode *VBoxSnapshot
|
||||
stdoutString, err := d.VBoxManageWithOutput("snapshot", vmName, "list", "--machinereadable")
|
||||
if stdoutString == "This machine does not have any snapshots" {
|
||||
return rootNode, nil
|
||||
}
|
||||
if nil != err {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var rootNode *VBoxSnapshot
|
||||
if stdoutString != "This machine does not have any snapshots" {
|
||||
rootNode, err = ParseSnapshotData(stdoutString)
|
||||
if nil != err {
|
||||
return nil, err
|
||||
}
|
||||
rootNode, err = ParseSnapshotData(stdoutString)
|
||||
if nil != err {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return rootNode, nil
|
||||
|
|
|
@ -278,6 +278,7 @@ func (b *Builder) Run(ctx context.Context, ui packer.Ui, hook packer.Hook) (pack
|
|||
&common.StepCreateFloppy{
|
||||
Files: b.config.FloppyConfig.FloppyFiles,
|
||||
Directories: b.config.FloppyConfig.FloppyDirectories,
|
||||
Label: b.config.FloppyConfig.FloppyLabel,
|
||||
},
|
||||
&common.StepHTTPServer{
|
||||
HTTPDir: b.config.HTTPDir,
|
||||
|
|
|
@ -57,6 +57,7 @@ func (b *Builder) Run(ctx context.Context, ui packer.Ui, hook packer.Hook) (pack
|
|||
&common.StepCreateFloppy{
|
||||
Files: b.config.FloppyConfig.FloppyFiles,
|
||||
Directories: b.config.FloppyConfig.FloppyDirectories,
|
||||
Label: b.config.FloppyConfig.FloppyLabel,
|
||||
},
|
||||
&common.StepHTTPServer{
|
||||
HTTPDir: b.config.HTTPDir,
|
||||
|
|
|
@ -86,6 +86,7 @@ func (b *Builder) Run(ctx context.Context, ui packer.Ui, hook packer.Hook) (pack
|
|||
&common.StepCreateFloppy{
|
||||
Files: b.config.FloppyConfig.FloppyFiles,
|
||||
Directories: b.config.FloppyConfig.FloppyDirectories,
|
||||
Label: b.config.FloppyConfig.FloppyLabel,
|
||||
},
|
||||
&stepRemoteUpload{
|
||||
Key: "floppy_path",
|
||||
|
|
|
@ -82,6 +82,7 @@ func (b *Builder) Run(ctx context.Context, ui packer.Ui, hook packer.Hook) (pack
|
|||
&common.StepCreateFloppy{
|
||||
Files: b.config.FloppyConfig.FloppyFiles,
|
||||
Directories: b.config.FloppyConfig.FloppyDirectories,
|
||||
Label: b.config.FloppyConfig.FloppyLabel,
|
||||
},
|
||||
&StepCloneVMX{
|
||||
OutputDir: b.config.OutputDir,
|
||||
|
|
|
@ -61,7 +61,7 @@ func (b *Builder) Run(ctx context.Context, ui packer.Ui, hook packer.Hook) (pack
|
|||
&stepInstanceInfo{},
|
||||
&communicator.StepConnect{
|
||||
Config: &b.config.Communicator,
|
||||
Host: communicator.CommHost(b.config.Communicator.SSHHost, "instance_ip"),
|
||||
Host: commHost,
|
||||
SSHConfig: b.config.Communicator.SSHConfigFunc(),
|
||||
},
|
||||
&common.StepProvision{},
|
||||
|
|
|
@ -20,6 +20,8 @@ import (
|
|||
)
|
||||
|
||||
const defaultEndpoint = "api.cloud.yandex.net:443"
|
||||
const defaultGpuPlatformID = "gpu-standard-v1"
|
||||
const defaultPlatformID = "standard-v1"
|
||||
const defaultZone = "ru-central1-a"
|
||||
|
||||
var reImageFamily = regexp.MustCompile(`^[a-z]([-a-z0-9]{0,61}[a-z0-9])?$`)
|
||||
|
@ -61,6 +63,8 @@ type Config struct {
|
|||
ImageProductIDs []string `mapstructure:"image_product_ids" required:"false"`
|
||||
// The number of cores available to the instance.
|
||||
InstanceCores int `mapstructure:"instance_cores" required:"false"`
|
||||
//
|
||||
InstanceGpus int `mapstructure:"instance_gpus"`
|
||||
// The amount of memory available to the instance, specified in gigabytes.
|
||||
InstanceMemory int `mapstructure:"instance_mem_gb" required:"false"`
|
||||
// The name assigned to the instance.
|
||||
|
@ -87,6 +91,8 @@ type Config struct {
|
|||
// The source image ID to use to create the new image
|
||||
// from.
|
||||
SourceImageID string `mapstructure:"source_image_id" required:"false"`
|
||||
//
|
||||
SourceImageName string `mapstructure:"source_image_name"`
|
||||
// The Yandex VPC subnet id to use for
|
||||
// the launched instance. Note, the zone of the subnet must match the
|
||||
// zone in which the VM is launched.
|
||||
|
@ -183,7 +189,10 @@ func NewConfig(raws ...interface{}) (*Config, []string, error) {
|
|||
}
|
||||
|
||||
if c.PlatformID == "" {
|
||||
c.PlatformID = "standard-v1"
|
||||
c.PlatformID = defaultPlatformID
|
||||
if c.InstanceGpus != 0 {
|
||||
c.PlatformID = defaultGpuPlatformID
|
||||
}
|
||||
}
|
||||
|
||||
if es := c.Communicator.Prepare(&c.ctx); len(es) > 0 {
|
||||
|
@ -191,9 +200,15 @@ func NewConfig(raws ...interface{}) (*Config, []string, error) {
|
|||
}
|
||||
|
||||
// Process required parameters.
|
||||
if c.SourceImageID == "" && c.SourceImageFamily == "" {
|
||||
errs = packer.MultiErrorAppend(
|
||||
errs, errors.New("a source_image_id or source_image_family must be specified"))
|
||||
if c.SourceImageID == "" {
|
||||
if c.SourceImageFamily == "" && c.SourceImageName == "" {
|
||||
errs = packer.MultiErrorAppend(
|
||||
errs, errors.New("a source_image_name or source_image_family must be specified"))
|
||||
}
|
||||
if c.SourceImageFamily != "" && c.SourceImageName != "" {
|
||||
errs = packer.MultiErrorAppend(
|
||||
errs, errors.New("one of source_image_name or source_image_family must be specified, not both"))
|
||||
}
|
||||
}
|
||||
|
||||
if c.Endpoint == "" {
|
||||
|
@ -217,6 +232,11 @@ func NewConfig(raws ...interface{}) (*Config, []string, error) {
|
|||
c.FolderID = os.Getenv("YC_FOLDER_ID")
|
||||
}
|
||||
|
||||
if c.PlatformID != defaultGpuPlatformID && c.InstanceGpus != 0 {
|
||||
errs = packer.MultiErrorAppend(
|
||||
errs, fmt.Errorf("for instances with gpu platform_id must be specified as `%s`", defaultGpuPlatformID))
|
||||
}
|
||||
|
||||
if c.Token == "" && c.ServiceAccountKeyFile == "" {
|
||||
errs = packer.MultiErrorAppend(
|
||||
errs, errors.New("a token or service account key file must be specified"))
|
||||
|
|
|
@ -214,6 +214,25 @@ func TestZone(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestGpuDefaultPlatformID(t *testing.T) {
|
||||
raw := testConfig(t)
|
||||
raw["instance_gpus"] = 1
|
||||
|
||||
c, _, _ := NewConfig(raw)
|
||||
if c.PlatformID != "gpu-standard-v1" {
|
||||
t.Fatalf("expected 'gpu-standard-v1', but got '%s'", c.PlatformID)
|
||||
}
|
||||
}
|
||||
|
||||
func TestGpuWrongPlatformID(t *testing.T) {
|
||||
raw := testConfig(t)
|
||||
raw["instance_gpus"] = 1
|
||||
raw["platform_id"] = "standard-v1"
|
||||
|
||||
_, warns, errs := NewConfig(raw)
|
||||
testConfigErr(t, warns, errs, "incompatible GPU platform_id")
|
||||
}
|
||||
|
||||
// Helper stuff below
|
||||
|
||||
func testConfig(t *testing.T) (config map[string]interface{}) {
|
||||
|
|
|
@ -11,6 +11,7 @@ type Driver interface {
|
|||
SDK() *ycsdk.SDK
|
||||
GetImage(imageID string) (*Image, error)
|
||||
GetImageFromFolder(ctx context.Context, folderID string, family string) (*Image, error)
|
||||
GetImageFromFolderByName(ctx context.Context, folderID string, name string) (*Image, error)
|
||||
DeleteDisk(ctx context.Context, diskID string) error
|
||||
DeleteInstance(ctx context.Context, instanceID string) error
|
||||
DeleteSubnet(ctx context.Context, subnetID string) error
|
||||
|
|
|
@ -2,6 +2,7 @@ package yandex
|
|||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"log"
|
||||
|
||||
"github.com/hashicorp/packer/helper/useragent"
|
||||
|
@ -15,6 +16,7 @@ import (
|
|||
ycsdk "github.com/yandex-cloud/go-sdk"
|
||||
"github.com/yandex-cloud/go-sdk/iamkey"
|
||||
"github.com/yandex-cloud/go-sdk/pkg/requestid"
|
||||
"github.com/yandex-cloud/go-sdk/sdkresolvers"
|
||||
)
|
||||
|
||||
type driverYC struct {
|
||||
|
@ -110,6 +112,16 @@ func (d *driverYC) GetImageFromFolder(ctx context.Context, folderID string, fami
|
|||
}, nil
|
||||
}
|
||||
|
||||
func (d *driverYC) GetImageFromFolderByName(ctx context.Context, folderID string, imageName string) (*Image, error) {
|
||||
imageResolver := sdkresolvers.ImageResolver(imageName, sdkresolvers.FolderID(folderID))
|
||||
|
||||
if err := d.sdk.Resolve(ctx, imageResolver); err != nil {
|
||||
return nil, fmt.Errorf("failed to resolve image name: %s", err)
|
||||
}
|
||||
|
||||
return d.GetImage(imageResolver.ID())
|
||||
}
|
||||
|
||||
func (d *driverYC) DeleteImage(ID string) error {
|
||||
ctx := context.TODO()
|
||||
op, err := d.sdk.WrapOperation(d.sdk.Compute().Image().Delete(ctx, &compute.DeleteImageRequest{
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
package yandex
|
||||
|
||||
import (
|
||||
"github.com/hashicorp/packer/helper/multistep"
|
||||
)
|
||||
|
||||
func commHost(state multistep.StateBag) (string, error) {
|
||||
ipAddress := state.Get("instance_ip").(string)
|
||||
return ipAddress, nil
|
||||
}
|
|
@ -91,11 +91,19 @@ func getImage(ctx context.Context, c *Config, d Driver) (*Image, error) {
|
|||
return d.GetImage(c.SourceImageID)
|
||||
}
|
||||
|
||||
familyName := c.SourceImageFamily
|
||||
if c.SourceImageFolderID != "" {
|
||||
return d.GetImageFromFolder(ctx, c.SourceImageFolderID, familyName)
|
||||
folderID := c.SourceImageFolderID
|
||||
if folderID == "" {
|
||||
folderID = StandardImagesFolderID
|
||||
}
|
||||
return d.GetImageFromFolder(ctx, StandardImagesFolderID, familyName)
|
||||
|
||||
switch {
|
||||
case c.SourceImageFamily != "":
|
||||
return d.GetImageFromFolder(ctx, folderID, c.SourceImageFamily)
|
||||
case c.SourceImageName != "":
|
||||
return d.GetImageFromFolderByName(ctx, folderID, c.SourceImageName)
|
||||
}
|
||||
|
||||
return &Image{}, errors.New("neither source_image_name nor source_image_family defined in config")
|
||||
}
|
||||
|
||||
func (s *stepCreateInstance) Run(ctx context.Context, state multistep.StateBag) multistep.StepAction {
|
||||
|
@ -173,6 +181,7 @@ runcmd:
|
|||
ResourcesSpec: &compute.ResourcesSpec{
|
||||
Memory: toBytes(config.InstanceMemory),
|
||||
Cores: int64(config.InstanceCores),
|
||||
Gpus: int64(config.InstanceGpus),
|
||||
},
|
||||
Metadata: instanceMetadata,
|
||||
BootDiskSpec: &compute.AttachedDiskSpec{
|
||||
|
|
|
@ -20,7 +20,7 @@ func (s *stepInstanceInfo) Run(ctx context.Context, state multistep.StateBag) mu
|
|||
c := state.Get("config").(*Config)
|
||||
instanceID := state.Get("instance_id").(string)
|
||||
|
||||
ui.Say("Waiting for instance to become active...")
|
||||
ui.Say(fmt.Sprintf("Waiting for instance with id %s to become active...", instanceID))
|
||||
|
||||
ctx, cancel := context.WithTimeout(ctx, c.StateTimeout)
|
||||
defer cancel()
|
||||
|
|
|
@ -33,6 +33,7 @@ type FloppyConfig struct {
|
|||
// characters (\*, ?, and \[\]) are allowed. The maximum summary size of
|
||||
// all files in the listed directories are the same as in `floppy_files`.
|
||||
FloppyDirectories []string `mapstructure:"floppy_dirs"`
|
||||
FloppyLabel string `mapstructure:"floppy_label"`
|
||||
}
|
||||
|
||||
func (c *FloppyConfig) Prepare(ctx *interpolate.Context) []error {
|
||||
|
|
|
@ -21,6 +21,7 @@ import (
|
|||
type StepCreateFloppy struct {
|
||||
Files []string
|
||||
Directories []string
|
||||
Label string
|
||||
|
||||
floppyPath string
|
||||
|
||||
|
@ -33,6 +34,12 @@ func (s *StepCreateFloppy) Run(ctx context.Context, state multistep.StateBag) mu
|
|||
return multistep.ActionContinue
|
||||
}
|
||||
|
||||
if s.Label == "" {
|
||||
s.Label = "packer"
|
||||
} else {
|
||||
log.Printf("Floppy label is set to %s", s.Label)
|
||||
}
|
||||
|
||||
s.FilesAdded = make(map[string]bool)
|
||||
|
||||
ui := state.Get("ui").(packer.Ui)
|
||||
|
@ -70,8 +77,8 @@ func (s *StepCreateFloppy) Run(ctx context.Context, state multistep.StateBag) mu
|
|||
log.Println("Formatting the block device with a FAT filesystem...")
|
||||
formatConfig := &fat.SuperFloppyConfig{
|
||||
FATType: fat.FAT12,
|
||||
Label: "packer",
|
||||
OEMName: "packer",
|
||||
Label: s.Label,
|
||||
OEMName: s.Label,
|
||||
}
|
||||
if err := fat.FormatSuperFloppy(device, formatConfig); err != nil {
|
||||
state.Put("error", fmt.Errorf("Error creating floppy: %s", err))
|
||||
|
|
|
@ -35,6 +35,24 @@ type comm struct {
|
|||
address string
|
||||
}
|
||||
|
||||
// TunnelDirection is the supported tunnel directions
|
||||
type TunnelDirection int
|
||||
|
||||
const (
|
||||
UnsetTunnel TunnelDirection = iota
|
||||
RemoteTunnel
|
||||
LocalTunnel
|
||||
)
|
||||
|
||||
// TunnelSpec represents a request to map a port on one side of the SSH connection to the other
|
||||
type TunnelSpec struct {
|
||||
Direction TunnelDirection
|
||||
ListenType string
|
||||
ListenAddr string
|
||||
ForwardType string
|
||||
ForwardAddr string
|
||||
}
|
||||
|
||||
// Config is the structure used to configure the SSH communicator.
|
||||
type Config struct {
|
||||
// The configuration of the Go SSH connection
|
||||
|
@ -64,6 +82,8 @@ type Config struct {
|
|||
|
||||
// Timeout is how long to wait for a read or write to succeed.
|
||||
Timeout time.Duration
|
||||
|
||||
Tunnels []TunnelSpec
|
||||
}
|
||||
|
||||
// Creates a new packer.Communicator implementation over SSH. This takes
|
||||
|
@ -344,10 +364,76 @@ func (c *comm) reconnect() (err error) {
|
|||
c.client = ssh.NewClient(sshConn, sshChan, req)
|
||||
}
|
||||
c.connectToAgent()
|
||||
err = c.connectTunnels(sshConn)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
func (c *comm) connectTunnels(sshConn ssh.Conn) (err error) {
|
||||
if c.client == nil {
|
||||
return
|
||||
}
|
||||
|
||||
if len(c.config.Tunnels) == 0 {
|
||||
// No Tunnels to configure
|
||||
return
|
||||
}
|
||||
|
||||
// Start remote forwards of ports to ourselves.
|
||||
log.Printf("[DEBUG] Tunnel configuration: %v", c.config.Tunnels)
|
||||
for _, v := range c.config.Tunnels {
|
||||
done := make(chan struct{})
|
||||
var listener net.Listener
|
||||
switch v.Direction {
|
||||
case RemoteTunnel:
|
||||
// This requests the sshd Host to bind a port and send traffic back to us
|
||||
listener, err = c.client.Listen(v.ListenType, v.ListenAddr)
|
||||
if err != nil {
|
||||
err = fmt.Errorf("Tunnel: Failed to bind remote ('%v'): %s", v, err)
|
||||
return
|
||||
}
|
||||
log.Printf("[INFO] Tunnel: Remote bound on %s forwarding to %s", v.ListenAddr, v.ForwardAddr)
|
||||
connectFunc := ConnectFunc(v.ForwardType, v.ForwardAddr)
|
||||
go ProxyServe(listener, done, connectFunc)
|
||||
// Wait for our sshConn to be shutdown
|
||||
// FIXME: Is there a better "on-shutdown" we can wait on?
|
||||
go shutdownProxyTunnel(sshConn, done, listener)
|
||||
case LocalTunnel:
|
||||
// This binds locally and sends traffic back to the sshd host
|
||||
listener, err = net.Listen(v.ListenType, v.ListenAddr)
|
||||
if err != nil {
|
||||
err = fmt.Errorf("Tunnel: Failed to bind local ('%v'): %s", v, err)
|
||||
return
|
||||
}
|
||||
log.Printf("[INFO] Tunnel: Local bound on %s forwarding to %s", v.ListenAddr, v.ForwardAddr)
|
||||
connectFunc := func() (net.Conn, error) {
|
||||
// This Dial occurs on the SSH server's side
|
||||
return c.client.Dial(v.ForwardType, v.ForwardAddr)
|
||||
}
|
||||
go ProxyServe(listener, done, connectFunc)
|
||||
// FIXME: Is there a better "on-shutdown" we can wait on?
|
||||
go shutdownProxyTunnel(sshConn, done, listener)
|
||||
default:
|
||||
err = fmt.Errorf("Tunnel: Unknown tunnel direction ('%v'): %v", v, v.Direction)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
// shutdownProxyTunnel waits for our sshConn to be shutdown and closes the listeners
|
||||
func shutdownProxyTunnel(sshConn ssh.Conn, done chan struct{}, listener net.Listener) {
|
||||
sshConn.Wait()
|
||||
log.Printf("[INFO] Tunnel: Shutting down listener %v", listener)
|
||||
done <- struct{}{}
|
||||
close(done)
|
||||
listener.Close()
|
||||
}
|
||||
|
||||
func (c *comm) connectToAgent() {
|
||||
if c.client == nil {
|
||||
return
|
||||
|
|
|
@ -0,0 +1,71 @@
|
|||
package ssh
|
||||
|
||||
import (
|
||||
"io"
|
||||
"log"
|
||||
"net"
|
||||
)
|
||||
|
||||
// ProxyServe starts Accepting connections
|
||||
func ProxyServe(l net.Listener, done <-chan struct{}, dialer func() (net.Conn, error)) {
|
||||
for {
|
||||
// Accept will return if either the underlying connection is closed or if a connection is made.
|
||||
// after returning, check to see if c.done can be received. If so, then Accept() returned because
|
||||
// the connection has been closed.
|
||||
client, err := l.Accept()
|
||||
select {
|
||||
case <-done:
|
||||
log.Printf("[WARN] Tunnel: received Done event: %v", err)
|
||||
return
|
||||
default:
|
||||
if err != nil {
|
||||
log.Printf("[ERROR] Tunnel: listen.Accept failed: %v", err)
|
||||
continue
|
||||
}
|
||||
log.Printf("[DEBUG] Tunnel: client '%s' accepted", client.RemoteAddr())
|
||||
// Proxy bytes from one side to the other
|
||||
go handleProxyClient(client, dialer)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// handleProxyClient will open a connection using the dialer, and ensure close events propagate to the brokers
|
||||
func handleProxyClient(clientConn net.Conn, dialer func() (net.Conn, error)) {
|
||||
//We have a client connected, open an upstream connection to the destination
|
||||
upstreamConn, err := dialer()
|
||||
if err != nil {
|
||||
log.Printf("[ERROR] Tunnel: failed to open connection to upstream: %v", err)
|
||||
clientConn.Close()
|
||||
return
|
||||
}
|
||||
|
||||
// channels to wait on the close event for each connection
|
||||
serverClosed := make(chan struct{}, 1)
|
||||
upstreamClosed := make(chan struct{}, 1)
|
||||
|
||||
go brokerData(clientConn, upstreamConn, upstreamClosed)
|
||||
go brokerData(upstreamConn, clientConn, serverClosed)
|
||||
|
||||
// Now we wait for the connections to close and notify the other side of the event
|
||||
select {
|
||||
case <-upstreamClosed:
|
||||
clientConn.Close()
|
||||
<-serverClosed
|
||||
case <-serverClosed:
|
||||
upstreamConn.Close()
|
||||
<-upstreamClosed
|
||||
}
|
||||
log.Printf("[DEBUG] Tunnel: client ('%s') proxy closed", clientConn.RemoteAddr())
|
||||
}
|
||||
|
||||
// brokerData is responsible for copying data src => dest. It will also close the src when there are no more bytes to transfer
|
||||
func brokerData(src net.Conn, dest net.Conn, srcClosed chan struct{}) {
|
||||
_, err := io.Copy(src, dest)
|
||||
if err != nil {
|
||||
log.Printf("[ERROR] Tunnel: Copy error: %s", err)
|
||||
}
|
||||
if err := src.Close(); err != nil {
|
||||
log.Printf("[ERROR] Tunnel: Close error: %s", err)
|
||||
}
|
||||
srcClosed <- struct{}{}
|
||||
}
|
4
go.mod
4
go.mod
|
@ -131,8 +131,8 @@ require (
|
|||
github.com/ulikunitz/xz v0.5.5
|
||||
github.com/vmware/govmomi v0.0.0-20170707011325-c2105a174311
|
||||
github.com/xanzy/go-cloudstack v0.0.0-20190526095453-42f262b63ed0
|
||||
github.com/yandex-cloud/go-genproto v0.0.0-20190401174212-1db0ef3dce9b
|
||||
github.com/yandex-cloud/go-sdk v0.0.0-20190402114215-3fc1d6947035
|
||||
github.com/yandex-cloud/go-genproto v0.0.0-20190802103534-6089d9ff8d82
|
||||
github.com/yandex-cloud/go-sdk v0.0.0-20190802103531-4ab1dac90bf7
|
||||
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5
|
||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859
|
||||
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45
|
||||
|
|
4
go.sum
4
go.sum
|
@ -402,8 +402,12 @@ github.com/xanzy/go-cloudstack v0.0.0-20190526095453-42f262b63ed0 h1:NJrcIkdzq0C
|
|||
github.com/xanzy/go-cloudstack v0.0.0-20190526095453-42f262b63ed0/go.mod h1:sBh287mCRwCz6zyXHMmw7sSZGPohVpnx+o+OY4M+i3A=
|
||||
github.com/yandex-cloud/go-genproto v0.0.0-20190401174212-1db0ef3dce9b h1:WcWw17zHjM1QoM5dPD2XUK9S0wSKlyohlCMeb1rwr0g=
|
||||
github.com/yandex-cloud/go-genproto v0.0.0-20190401174212-1db0ef3dce9b/go.mod h1:HEUYX/p8966tMUHHT+TsS0hF/Ca/NYwqprC5WXSDMfE=
|
||||
github.com/yandex-cloud/go-genproto v0.0.0-20190802103534-6089d9ff8d82 h1:HLQoCLW2021qJKLrGQbcdEikBJ3gfYF94JYqZuw6Qxg=
|
||||
github.com/yandex-cloud/go-genproto v0.0.0-20190802103534-6089d9ff8d82/go.mod h1:HEUYX/p8966tMUHHT+TsS0hF/Ca/NYwqprC5WXSDMfE=
|
||||
github.com/yandex-cloud/go-sdk v0.0.0-20190402114215-3fc1d6947035 h1:2ZLZeg6xp+kYYGR2iMWSZyTn6j8bphNguO3drw7S1l4=
|
||||
github.com/yandex-cloud/go-sdk v0.0.0-20190402114215-3fc1d6947035/go.mod h1:Eml0jFLU4VVHgIN8zPHMuNwZXVzUMILyO6lQZSfz854=
|
||||
github.com/yandex-cloud/go-sdk v0.0.0-20190802103531-4ab1dac90bf7 h1:rWXARBMLHylvASK6spamDC8zSL5v2voZop3M6SBul9Y=
|
||||
github.com/yandex-cloud/go-sdk v0.0.0-20190802103531-4ab1dac90bf7/go.mod h1:Eml0jFLU4VVHgIN8zPHMuNwZXVzUMILyO6lQZSfz854=
|
||||
go.opencensus.io v0.21.0 h1:mU6zScU4U1YAFPHEHYk+3JC4SY7JxgkqS10ZOSyksNg=
|
||||
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
|
||||
go.opencensus.io v0.22.0 h1:C9hSCOW830chIVkdja34wa6Ky+IzWllkUinR+BtRZd4=
|
||||
|
|
|
@ -151,6 +151,13 @@ type SSH struct {
|
|||
// Example: `5m`. Disabled by default.
|
||||
SSHReadWriteTimeout time.Duration `mapstructure:"ssh_read_write_timeout"`
|
||||
|
||||
// Tunneling
|
||||
|
||||
//
|
||||
SSHRemoteTunnels []string `mapstructure:"ssh_remote_tunnels"`
|
||||
//
|
||||
SSHLocalTunnels []string `mapstructure:"ssh_local_tunnels"`
|
||||
|
||||
// SSH Internals
|
||||
SSHPublicKey []byte
|
||||
SSHPrivateKey []byte
|
||||
|
@ -443,6 +450,22 @@ func (c *Config) prepareSSH(ctx *interpolate.Context) []error {
|
|||
errs = append(errs, errors.New("please specify either ssh_bastion_host or ssh_proxy_host, not both"))
|
||||
}
|
||||
|
||||
for _, v := range c.SSHLocalTunnels {
|
||||
_, err := helperssh.ParseTunnelArgument(v, packerssh.UnsetTunnel)
|
||||
if err != nil {
|
||||
errs = append(errs, fmt.Errorf(
|
||||
"ssh_local_tunnels ('%s') is invalid: %s", v, err))
|
||||
}
|
||||
}
|
||||
|
||||
for _, v := range c.SSHRemoteTunnels {
|
||||
_, err := helperssh.ParseTunnelArgument(v, packerssh.UnsetTunnel)
|
||||
if err != nil {
|
||||
errs = append(errs, fmt.Errorf(
|
||||
"ssh_remote_tunnels ('%s') is invalid: %s", v, err))
|
||||
}
|
||||
}
|
||||
|
||||
return errs
|
||||
}
|
||||
|
||||
|
|
|
@ -172,6 +172,25 @@ func (s *StepConnectSSH) waitForSSH(state multistep.StateBag, ctx context.Contex
|
|||
}
|
||||
nc.Close()
|
||||
|
||||
// Parse out all the requested Port Tunnels that will go over our SSH connection
|
||||
var tunnels []ssh.TunnelSpec
|
||||
for _, v := range s.Config.SSHLocalTunnels {
|
||||
t, err := helperssh.ParseTunnelArgument(v, ssh.LocalTunnel)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf(
|
||||
"Error parsing port forwarding: %s", err)
|
||||
}
|
||||
tunnels = append(tunnels, t)
|
||||
}
|
||||
for _, v := range s.Config.SSHRemoteTunnels {
|
||||
t, err := helperssh.ParseTunnelArgument(v, ssh.RemoteTunnel)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf(
|
||||
"Error parsing port forwarding: %s", err)
|
||||
}
|
||||
tunnels = append(tunnels, t)
|
||||
}
|
||||
|
||||
// Then we attempt to connect via SSH
|
||||
config := &ssh.Config{
|
||||
Connection: connFunc,
|
||||
|
@ -181,6 +200,7 @@ func (s *StepConnectSSH) waitForSSH(state multistep.StateBag, ctx context.Contex
|
|||
UseSftp: s.Config.SSHFileTransferMethod == "sftp",
|
||||
KeepAliveInterval: s.Config.SSHKeepAliveInterval,
|
||||
Timeout: s.Config.SSHReadWriteTimeout,
|
||||
Tunnels: tunnels,
|
||||
}
|
||||
|
||||
log.Printf("[INFO] Attempting SSH connection to %s...", address)
|
||||
|
|
|
@ -0,0 +1,72 @@
|
|||
package config
|
||||
|
||||
import (
|
||||
"strconv"
|
||||
)
|
||||
|
||||
type Trilean uint8
|
||||
|
||||
const (
|
||||
// This will assign unset to 0, which is the default value in interpolation
|
||||
TriUnset Trilean = iota
|
||||
TriTrue
|
||||
TriFalse
|
||||
)
|
||||
|
||||
func (t Trilean) ToString() string {
|
||||
if t == TriTrue {
|
||||
return "TriTrue"
|
||||
} else if t == TriFalse {
|
||||
return "TriFalse"
|
||||
}
|
||||
return "TriUnset"
|
||||
}
|
||||
|
||||
func (t Trilean) ToBoolPointer() *bool {
|
||||
if t == TriTrue {
|
||||
return boolPointer(true)
|
||||
} else if t == TriFalse {
|
||||
return boolPointer(false)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (t Trilean) True() bool {
|
||||
if t == TriTrue {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func (t Trilean) False() bool {
|
||||
if t == TriFalse {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func TrileanFromString(s string) (Trilean, error) {
|
||||
if s == "" {
|
||||
return TriUnset, nil
|
||||
}
|
||||
|
||||
b, err := strconv.ParseBool(s)
|
||||
if err != nil {
|
||||
return TriUnset, err
|
||||
} else if b == true {
|
||||
return TriTrue, nil
|
||||
} else {
|
||||
return TriFalse, nil
|
||||
}
|
||||
}
|
||||
|
||||
func TrileanFromBool(b bool) Trilean {
|
||||
if b {
|
||||
return TriTrue
|
||||
}
|
||||
return TriFalse
|
||||
}
|
||||
|
||||
func boolPointer(b bool) *bool {
|
||||
return &b
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
package config
|
||||
|
||||
import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestTrilianParsing(t *testing.T) {
|
||||
type testCase struct {
|
||||
Input string
|
||||
Output Trilean
|
||||
ErrExpected bool
|
||||
}
|
||||
testCases := []testCase{
|
||||
{"true", TriTrue, false}, {"True", TriTrue, false},
|
||||
{"false", TriFalse, false}, {"False", TriFalse, false},
|
||||
{"", TriUnset, false}, {"badvalue", TriUnset, true},
|
||||
{"FAlse", TriUnset, true}, {"TrUe", TriUnset, true},
|
||||
}
|
||||
for _, tc := range testCases {
|
||||
tril, err := TrileanFromString(tc.Input)
|
||||
if err != nil {
|
||||
if tc.ErrExpected == false {
|
||||
t.Fatalf("Didn't expect error: %v", tc)
|
||||
}
|
||||
}
|
||||
if tc.Output != tril {
|
||||
t.Fatalf("Didn't return proper trilean. %v", tc)
|
||||
}
|
||||
}
|
||||
}
|
|
@ -29,6 +29,7 @@ type DecodeOpts struct {
|
|||
|
||||
var DefaultDecodeHookFuncs = []mapstructure.DecodeHookFunc{
|
||||
uint8ToStringHook,
|
||||
stringToTrilean,
|
||||
mapstructure.StringToSliceHookFunc(","),
|
||||
mapstructure.StringToTimeDurationHookFunc(),
|
||||
}
|
||||
|
@ -154,3 +155,30 @@ func uint8ToStringHook(f reflect.Kind, t reflect.Kind, v interface{}) (interface
|
|||
|
||||
return v, nil
|
||||
}
|
||||
|
||||
func stringToTrilean(f reflect.Type, t reflect.Type, v interface{}) (interface{}, error) {
|
||||
// We have a custom data type, config, which we read from a string and
|
||||
// then cast to a *bool. Why? So that we can appropriately read "unset"
|
||||
// *bool values in order to intelligently default, even when the values are
|
||||
// being set by a template variable.
|
||||
|
||||
testTril, _ := TrileanFromString("")
|
||||
if t == reflect.TypeOf(testTril) {
|
||||
// From value is string
|
||||
if f == reflect.TypeOf("") {
|
||||
tril, err := TrileanFromString(v.(string))
|
||||
if err != nil {
|
||||
return v, fmt.Errorf("Error parsing bool from given var: %s", err)
|
||||
}
|
||||
return tril, nil
|
||||
} else {
|
||||
// From value is boolean
|
||||
if f == reflect.TypeOf(true) {
|
||||
tril := TrileanFromBool(v.(bool))
|
||||
return tril, nil
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
return v, nil
|
||||
}
|
||||
|
|
|
@ -13,6 +13,7 @@ func TestDecode(t *testing.T) {
|
|||
Name string
|
||||
Address string
|
||||
Time time.Duration
|
||||
Trilean Trilean
|
||||
}
|
||||
|
||||
cases := map[string]struct {
|
||||
|
@ -23,13 +24,27 @@ func TestDecode(t *testing.T) {
|
|||
"basic": {
|
||||
[]interface{}{
|
||||
map[string]interface{}{
|
||||
"name": "bar",
|
||||
"time": "5s",
|
||||
"name": "bar",
|
||||
"time": "5s",
|
||||
"trilean": "true",
|
||||
},
|
||||
},
|
||||
&Target{
|
||||
Name: "bar",
|
||||
Time: 5 * time.Second,
|
||||
Name: "bar",
|
||||
Time: 5 * time.Second,
|
||||
Trilean: TriTrue,
|
||||
},
|
||||
nil,
|
||||
},
|
||||
|
||||
"empty-string-trilean": {
|
||||
[]interface{}{
|
||||
map[string]interface{}{
|
||||
"trilean": "",
|
||||
},
|
||||
},
|
||||
&Target{
|
||||
Trilean: TriUnset,
|
||||
},
|
||||
nil,
|
||||
},
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
package ssh
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/hashicorp/packer/communicator/ssh"
|
||||
)
|
||||
|
||||
// ParseTunnelArgument parses an SSH tunneling argument compatible with the openssh client form.
|
||||
// Valid formats:
|
||||
// `port:host:hostport`
|
||||
// NYI `[bind_address:]port:host:hostport`
|
||||
func ParseTunnelArgument(forward string, direction ssh.TunnelDirection) (ssh.TunnelSpec, error) {
|
||||
parts := strings.SplitN(forward, ":", 2)
|
||||
if len(parts) != 2 {
|
||||
return ssh.TunnelSpec{}, fmt.Errorf("Error parsing tunnel '%s': %v", forward, parts)
|
||||
}
|
||||
listeningPort, forwardingAddr := parts[0], parts[1]
|
||||
|
||||
_, sPort, err := net.SplitHostPort(forwardingAddr)
|
||||
if err != nil {
|
||||
return ssh.TunnelSpec{}, fmt.Errorf("Error parsing forwarding, must be a tcp address: %s", err)
|
||||
}
|
||||
_, err = strconv.Atoi(sPort)
|
||||
if err != nil {
|
||||
return ssh.TunnelSpec{}, fmt.Errorf("Error parsing forwarding port, must be a valid port: %s", err)
|
||||
}
|
||||
_, err = strconv.Atoi(listeningPort)
|
||||
if err != nil {
|
||||
return ssh.TunnelSpec{}, fmt.Errorf("Error parsing listening port, must be a valid port: %s", err)
|
||||
}
|
||||
|
||||
return ssh.TunnelSpec{
|
||||
Direction: direction,
|
||||
ForwardAddr: forwardingAddr,
|
||||
ForwardType: "tcp",
|
||||
ListenAddr: fmt.Sprintf("localhost:%s", listeningPort),
|
||||
ListenType: "tcp",
|
||||
}, nil
|
||||
// So we parsed all that, and are just going to ignore it now. We would
|
||||
// have used the information to set the type here.
|
||||
}
|
|
@ -0,0 +1,78 @@
|
|||
package ssh
|
||||
|
||||
import (
|
||||
"github.com/hashicorp/packer/communicator/ssh"
|
||||
"testing"
|
||||
)
|
||||
|
||||
const (
|
||||
tunnel8080ToLocal = "8080:localhost:1234"
|
||||
tunnel8080ToRemote = "8080:example.com:80"
|
||||
bindRemoteAddress_NYI = "redis:6379:localhost:6379"
|
||||
)
|
||||
|
||||
func TestTCPToLocalTCP(t *testing.T) {
|
||||
tun, err := ParseTunnelArgument(tunnel8080ToLocal, ssh.UnsetTunnel)
|
||||
if err != nil {
|
||||
t.Fatal(err.Error())
|
||||
}
|
||||
expectedTun := ssh.TunnelSpec{
|
||||
Direction: ssh.UnsetTunnel,
|
||||
ForwardAddr: "localhost:1234",
|
||||
ForwardType: "tcp",
|
||||
ListenAddr: "localhost:8080",
|
||||
ListenType: "tcp",
|
||||
}
|
||||
if tun != expectedTun {
|
||||
t.Errorf("Parsed tunnel (%v), want %v", tun, expectedTun)
|
||||
}
|
||||
}
|
||||
|
||||
func TestTCPToRemoteTCP(t *testing.T) {
|
||||
tun, err := ParseTunnelArgument(tunnel8080ToRemote, ssh.UnsetTunnel)
|
||||
if err != nil {
|
||||
t.Fatal(err.Error())
|
||||
}
|
||||
expectedTun := ssh.TunnelSpec{
|
||||
Direction: ssh.UnsetTunnel,
|
||||
ForwardAddr: "example.com:80",
|
||||
ForwardType: "tcp",
|
||||
ListenAddr: "localhost:8080",
|
||||
ListenType: "tcp",
|
||||
}
|
||||
if tun != expectedTun {
|
||||
t.Errorf("Parsed tunnel (%v), want %v", tun, expectedTun)
|
||||
}
|
||||
}
|
||||
|
||||
func TestBindAddress_NYI(t *testing.T) {
|
||||
tun, err := ParseTunnelArgument(bindRemoteAddress_NYI, ssh.UnsetTunnel)
|
||||
if err == nil {
|
||||
t.Fatal(err.Error())
|
||||
}
|
||||
expectedTun := ssh.TunnelSpec{
|
||||
Direction: ssh.UnsetTunnel,
|
||||
ForwardAddr: "redis:6379",
|
||||
ForwardType: "tcp",
|
||||
ListenAddr: "localhost:6379",
|
||||
ListenType: "tcp",
|
||||
}
|
||||
if tun == expectedTun {
|
||||
t.Errorf("Parsed tunnel (%v), want %v", tun, expectedTun)
|
||||
}
|
||||
}
|
||||
|
||||
func TestInvalidTunnels(t *testing.T) {
|
||||
invalids := []string{
|
||||
"nope:8080", // insufficient parts
|
||||
"nope:localhost:8080", // listen port is not a number
|
||||
"8080:localhost:nope", // forwarding port is not a number
|
||||
"/unix/is/no/go:/path/to/nowhere", // unix socket is unsupported
|
||||
}
|
||||
for _, tunnelStr := range invalids {
|
||||
tun, err := ParseTunnelArgument(tunnelStr, ssh.UnsetTunnel)
|
||||
if err == nil {
|
||||
t.Errorf("Parsed tunnel %v, want error", tun)
|
||||
}
|
||||
}
|
||||
}
|
|
@ -398,10 +398,5 @@ func (c *Core) init() error {
|
|||
c.secrets = append(c.secrets, secret)
|
||||
}
|
||||
|
||||
// Interpolate the push configuration
|
||||
if _, err := interpolate.RenderInterface(&c.Template.Push, c.Context()); err != nil {
|
||||
return fmt.Errorf("Error interpolating 'push': %s", err)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -427,40 +427,6 @@ func TestCoreBuild_templatePath(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestCore_pushInterpolate(t *testing.T) {
|
||||
cases := []struct {
|
||||
File string
|
||||
Vars map[string]string
|
||||
Result template.Push
|
||||
}{
|
||||
{
|
||||
"push-vars.json",
|
||||
map[string]string{"foo": "bar"},
|
||||
template.Push{Name: "bar"},
|
||||
},
|
||||
}
|
||||
|
||||
for _, tc := range cases {
|
||||
tpl, err := template.ParseFile(fixtureDir(tc.File))
|
||||
if err != nil {
|
||||
t.Fatalf("err: %s\n\n%s", tc.File, err)
|
||||
}
|
||||
|
||||
core, err := NewCore(&CoreConfig{
|
||||
Template: tpl,
|
||||
Variables: tc.Vars,
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatalf("err: %s\n\n%s", tc.File, err)
|
||||
}
|
||||
|
||||
expected := core.Template.Push
|
||||
if !reflect.DeepEqual(expected, tc.Result) {
|
||||
t.Fatalf("err: %s\n\n%#v", tc.File, expected)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestCoreValidate(t *testing.T) {
|
||||
cases := []struct {
|
||||
File string
|
||||
|
|
|
@ -12,14 +12,15 @@ func testConn(t *testing.T) (net.Conn, net.Conn) {
|
|||
}
|
||||
|
||||
var serverConn net.Conn
|
||||
doneCh := make(chan struct{})
|
||||
errChan := make(chan error)
|
||||
go func() {
|
||||
defer close(doneCh)
|
||||
defer close(errChan)
|
||||
defer l.Close()
|
||||
var err error
|
||||
serverConn, err = l.Accept()
|
||||
if err != nil {
|
||||
t.Fatalf("err: %s", err)
|
||||
errChan <- err
|
||||
return
|
||||
}
|
||||
}()
|
||||
|
||||
|
@ -27,7 +28,11 @@ func testConn(t *testing.T) (net.Conn, net.Conn) {
|
|||
if err != nil {
|
||||
t.Fatalf("err: %s", err)
|
||||
}
|
||||
<-doneCh
|
||||
|
||||
err = <-errChan
|
||||
if err != nil {
|
||||
t.Fatalf("err: %s", err)
|
||||
}
|
||||
|
||||
return clientConn, serverConn
|
||||
}
|
||||
|
|
|
@ -60,18 +60,19 @@ func testYamux(t *testing.T) (client *yamux.Session, server *yamux.Session) {
|
|||
}
|
||||
|
||||
// Server side
|
||||
doneCh := make(chan struct{})
|
||||
errChan := make(chan error)
|
||||
go func() {
|
||||
defer close(doneCh)
|
||||
defer close(errChan)
|
||||
conn, err := l.Accept()
|
||||
l.Close()
|
||||
if err != nil {
|
||||
t.Fatalf("err: %s", err)
|
||||
errChan <- err
|
||||
return
|
||||
}
|
||||
|
||||
server, err = yamux.Server(conn, nil)
|
||||
if err != nil {
|
||||
t.Fatalf("err: %s", err)
|
||||
errChan <- err
|
||||
}
|
||||
}()
|
||||
|
||||
|
@ -86,7 +87,10 @@ func testYamux(t *testing.T) (client *yamux.Session, server *yamux.Session) {
|
|||
}
|
||||
|
||||
// Wait for the server
|
||||
<-doneCh
|
||||
err = <-errChan
|
||||
if err != nil {
|
||||
t.Fatalf("err: %s", err)
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
|
|
@ -273,11 +273,19 @@ func (p *PostProcessor) PostProcess(ctx context.Context, ui packer.Ui, artifact
|
|||
|
||||
ui.Message(fmt.Sprintf("Starting rename of AMI (%s)", createdami))
|
||||
|
||||
resp, err := ec2conn.CopyImage(&ec2.CopyImageInput{
|
||||
copyInput := &ec2.CopyImageInput{
|
||||
Name: &p.config.Name,
|
||||
SourceImageId: &createdami,
|
||||
SourceRegion: config.Region,
|
||||
})
|
||||
}
|
||||
if p.config.Encrypt {
|
||||
copyInput.Encrypted = aws.Bool(p.config.Encrypt)
|
||||
if p.config.KMSKey != "" {
|
||||
copyInput.KmsKeyId = &p.config.KMSKey
|
||||
}
|
||||
}
|
||||
|
||||
resp, err := ec2conn.CopyImage(copyInput)
|
||||
|
||||
if err != nil {
|
||||
return nil, false, false, fmt.Errorf("Error Copying AMI (%s): %s", createdami, err)
|
||||
|
|
|
@ -106,12 +106,10 @@ func (v *VagrantCloudClient) Delete(path string) (*http.Response, error) {
|
|||
scrubbedUrl := strings.Replace(reqUrl, v.AccessToken, "ACCESS_TOKEN", -1)
|
||||
log.Printf("Post-Processor Vagrant Cloud API DELETE: %s", scrubbedUrl)
|
||||
|
||||
req, err := http.NewRequest("DELETE", reqUrl, nil)
|
||||
req, err := v.newRequest("DELETE", reqUrl, nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
req.Header.Add("Content-Type", "application/json")
|
||||
req.Header.Add("Authorization", fmt.Sprintf("Bearer %s", v.AccessToken))
|
||||
resp, err := v.client.Do(req)
|
||||
|
||||
log.Printf("Post-Processor Vagrant Cloud API Response: \n\n%+v", resp)
|
||||
|
@ -196,6 +194,8 @@ func (v *VagrantCloudClient) newRequest(method, url string, body io.Reader) (*ht
|
|||
return nil, err
|
||||
}
|
||||
req.Header.Add("Content-Type", "application/json")
|
||||
req.Header.Add("Authorization", fmt.Sprintf("Bearer %s", v.AccessToken))
|
||||
if len(v.AccessToken) > 0 {
|
||||
req.Header.Add("Authorization", fmt.Sprintf("Bearer %s", v.AccessToken))
|
||||
}
|
||||
return req, err
|
||||
}
|
||||
|
|
|
@ -98,9 +98,8 @@ func (p *PostProcessor) Configure(raws ...interface{}) error {
|
|||
|
||||
// Required configuration
|
||||
templates := map[string]*string{
|
||||
"box_tag": &p.config.Tag,
|
||||
"version": &p.config.Version,
|
||||
"access_token": &p.config.AccessToken,
|
||||
"box_tag": &p.config.Tag,
|
||||
"version": &p.config.Version,
|
||||
}
|
||||
|
||||
for key, ptr := range templates {
|
||||
|
@ -110,6 +109,10 @@ func (p *PostProcessor) Configure(raws ...interface{}) error {
|
|||
}
|
||||
}
|
||||
|
||||
if p.config.VagrantCloudUrl == VAGRANT_CLOUD_URL && p.config.AccessToken == "" {
|
||||
errs = packer.MultiErrorAppend(errs, fmt.Errorf("access_token must be set if vagrant_cloud_url has not been overriden"))
|
||||
}
|
||||
|
||||
// Create the HTTP client
|
||||
p.client, err = VagrantCloudClient{}.New(p.config.VagrantCloudUrl, p.config.AccessToken, p.insecureSkipTLSVerify)
|
||||
if err != nil {
|
||||
|
|
|
@ -38,6 +38,14 @@ func testBadConfig() map[string]interface{} {
|
|||
}
|
||||
}
|
||||
|
||||
func testNoAccessTokenProvidedConfig() map[string]interface{} {
|
||||
return map[string]interface{}{
|
||||
"box_tag": "baz",
|
||||
"version_description": "bar",
|
||||
"version": "0.5",
|
||||
}
|
||||
}
|
||||
|
||||
func newSecureServer(token string, handler http.HandlerFunc) *httptest.Server {
|
||||
token = fmt.Sprintf("Bearer %s", token)
|
||||
return httptest.NewServer(http.HandlerFunc(func(rw http.ResponseWriter, req *http.Request) {
|
||||
|
@ -64,6 +72,18 @@ func newSelfSignedSslServer(token string, handler http.HandlerFunc) *httptest.Se
|
|||
}))
|
||||
}
|
||||
|
||||
func newNoAuthServer(handler http.HandlerFunc) *httptest.Server {
|
||||
return httptest.NewServer(http.HandlerFunc(func(rw http.ResponseWriter, req *http.Request) {
|
||||
if req.Header.Get("authorization") != "" {
|
||||
http.Error(rw, "Authorization header was provider", http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
if handler != nil {
|
||||
handler(rw, req)
|
||||
}
|
||||
}))
|
||||
}
|
||||
|
||||
func TestPostProcessor_Insecure_Ssl(t *testing.T) {
|
||||
var p PostProcessor
|
||||
server := newSelfSignedSslServer("foo", nil)
|
||||
|
@ -147,6 +167,29 @@ func TestPostProcessor_Configure_Bad(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestPostProcessor_Configure_checkAccessTokenIsRequiredByDefault(t *testing.T) {
|
||||
var p PostProcessor
|
||||
server := newSecureServer("foo", nil)
|
||||
defer server.Close()
|
||||
|
||||
config := testNoAccessTokenProvidedConfig()
|
||||
if err := p.Configure(config); err == nil {
|
||||
t.Fatalf("Expected access token to be required.")
|
||||
}
|
||||
}
|
||||
|
||||
func TestPostProcessor_Configure_checkAccessTokenIsNotRequiredForOverridenVagrantCloud(t *testing.T) {
|
||||
var p PostProcessor
|
||||
server := newNoAuthServer(nil)
|
||||
defer server.Close()
|
||||
|
||||
config := testNoAccessTokenProvidedConfig()
|
||||
config["vagrant_cloud_url"] = server.URL
|
||||
if err := p.Configure(config); err != nil {
|
||||
t.Fatalf("Expected blank access token to be allowed and authenticate to pass: %s", err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestPostProcessor_PostProcess_checkArtifactType(t *testing.T) {
|
||||
artifact := &packer.MockArtifact{
|
||||
BuilderIdValue: "invalid.builder",
|
||||
|
|
|
@ -242,17 +242,6 @@ func (r *rawTemplate) Template() (*Template, error) {
|
|||
result.Provisioners = append(result.Provisioners, &p)
|
||||
}
|
||||
|
||||
// Push
|
||||
if len(r.Push) > 0 {
|
||||
var p Push
|
||||
if err := r.decoder(&p, nil).Decode(r.Push); err != nil {
|
||||
errs = multierror.Append(errs, fmt.Errorf(
|
||||
"push: %s", err))
|
||||
}
|
||||
|
||||
result.Push = p
|
||||
}
|
||||
|
||||
// If we have errors, return those with a nil result
|
||||
if errs != nil {
|
||||
return nil, errs
|
||||
|
|
|
@ -358,15 +358,6 @@ func TestParse(t *testing.T) {
|
|||
false,
|
||||
},
|
||||
|
||||
{
|
||||
"parse-push.json",
|
||||
&Template{
|
||||
Push: Push{
|
||||
Name: "foo",
|
||||
},
|
||||
},
|
||||
false,
|
||||
},
|
||||
{
|
||||
"parse-comment.json",
|
||||
&Template{
|
||||
|
@ -480,9 +471,6 @@ func TestParse(t *testing.T) {
|
|||
},
|
||||
},
|
||||
},
|
||||
Push: Push{
|
||||
Name: "push test",
|
||||
},
|
||||
},
|
||||
false,
|
||||
},
|
||||
|
|
|
@ -25,7 +25,6 @@ type Template struct {
|
|||
Builders map[string]*Builder
|
||||
Provisioners []*Provisioner
|
||||
PostProcessors [][]*PostProcessor
|
||||
Push Push
|
||||
|
||||
// RawContents is just the raw data for this template
|
||||
RawContents []byte
|
||||
|
@ -66,15 +65,6 @@ func (t *Template) Raw() (*rawTemplate, error) {
|
|||
out.Variables[k] = v
|
||||
}
|
||||
|
||||
if t.Push.Name != "" {
|
||||
b, _ := json.Marshal(t.Push)
|
||||
|
||||
var m map[string]interface{}
|
||||
_ = json.Unmarshal(b, &m)
|
||||
|
||||
out.Push = m
|
||||
}
|
||||
|
||||
return &out, nil
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
{
|
||||
"push": {
|
||||
"name": "foo"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
#!/usr/bin/env bats
|
||||
#
|
||||
# This tests the ssh communicator using AWS builder. The teardown function will automatically
|
||||
# delete any AMIs with a tag of `packer-test` being equal to "true" so
|
||||
# be sure any test cases set this.
|
||||
|
||||
load test_helper
|
||||
verify_aws_cli
|
||||
fixtures communicator-ssh
|
||||
|
||||
setup() {
|
||||
cd $FIXTURE_ROOT
|
||||
}
|
||||
|
||||
teardown() {
|
||||
aws_ami_cleanup
|
||||
}
|
||||
|
||||
@test "shell provisioner: local port tunneling" {
|
||||
run packer build $FIXTURE_ROOT/local-tunnel.json
|
||||
[ "$status" -eq 0 ]
|
||||
[[ "$output" == *"Connection to localhost port 10022 [tcp/*] succeeded"* ]]
|
||||
}
|
||||
|
||||
@test "shell provisioner: remote port tunneling" {
|
||||
run packer build $FIXTURE_ROOT/remote-tunnel.json
|
||||
[ "$status" -eq 0 ]
|
||||
MY_LOCAL_IP=$(curl -s https://ifconfig.co/)
|
||||
[[ "$output" == *"$MY_LOCAL_IP"* ]]
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"builders": [{
|
||||
"type": "amazon-ebs",
|
||||
"ami_name": "packer-test {{timestamp}}",
|
||||
"instance_type": "m1.small",
|
||||
"region": "us-east-1",
|
||||
"ssh_username": "ubuntu",
|
||||
"ssh_local_tunnels": ["10022:localhost:22"],
|
||||
"source_ami": "ami-0568456c",
|
||||
"tags": {
|
||||
"packer-test": "true"
|
||||
}
|
||||
}],
|
||||
|
||||
"provisioners": [{
|
||||
"type": "shell-local",
|
||||
"inline": [
|
||||
"echo | nc -G 5 -w 5 -v localhost 10022 2>&1"
|
||||
]
|
||||
}]
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"builders": [{
|
||||
"type": "amazon-ebs",
|
||||
"ami_name": "packer-test {{timestamp}}",
|
||||
"instance_type": "t2.micro",
|
||||
"region": "us-east-1",
|
||||
"ssh_username": "ubuntu",
|
||||
"ssh_remote_tunnels": ["8443:ifconfig.co:443"],
|
||||
"source_ami": "ami-0111e8c43a763eb71",
|
||||
"tags": {
|
||||
"packer-test": "true"
|
||||
}
|
||||
}],
|
||||
"provisioners": [{
|
||||
"inline": [
|
||||
"curl -kvs --connect-to ifconfig.co:443:localhost:8443 https://ifconfig.co/"
|
||||
],
|
||||
"type": "shell"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,12 +1,14 @@
|
|||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// source: yandex/api/operation.proto
|
||||
|
||||
package api // import "github.com/yandex-cloud/go-genproto/yandex/api"
|
||||
package api
|
||||
|
||||
import proto "github.com/golang/protobuf/proto"
|
||||
import fmt "fmt"
|
||||
import math "math"
|
||||
import descriptor "github.com/golang/protobuf/protoc-gen-go/descriptor"
|
||||
import (
|
||||
fmt "fmt"
|
||||
proto "github.com/golang/protobuf/proto"
|
||||
descriptor "github.com/golang/protobuf/protoc-gen-go/descriptor"
|
||||
math "math"
|
||||
)
|
||||
|
||||
// Reference imports to suppress errors if they are not otherwise used.
|
||||
var _ = proto.Marshal
|
||||
|
@ -17,7 +19,7 @@ var _ = math.Inf
|
|||
// is compatible with the proto package it is being compiled against.
|
||||
// A compilation error at this line likely means your copy of the
|
||||
// proto package needs to be updated.
|
||||
const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
|
||||
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
|
||||
|
||||
// Operation is annotation for rpc that returns longrunning operation, describes
|
||||
// message types that will be returned in metadata [google.protobuf.Any], and
|
||||
|
@ -38,16 +40,17 @@ func (m *Operation) Reset() { *m = Operation{} }
|
|||
func (m *Operation) String() string { return proto.CompactTextString(m) }
|
||||
func (*Operation) ProtoMessage() {}
|
||||
func (*Operation) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_operation_743b45b46a739ce6, []int{0}
|
||||
return fileDescriptor_6381fcb5e6de7913, []int{0}
|
||||
}
|
||||
|
||||
func (m *Operation) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_Operation.Unmarshal(m, b)
|
||||
}
|
||||
func (m *Operation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_Operation.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *Operation) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_Operation.Merge(dst, src)
|
||||
func (m *Operation) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_Operation.Merge(m, src)
|
||||
}
|
||||
func (m *Operation) XXX_Size() int {
|
||||
return xxx_messageInfo_Operation.Size(m)
|
||||
|
@ -86,11 +89,9 @@ func init() {
|
|||
proto.RegisterExtension(E_Operation)
|
||||
}
|
||||
|
||||
func init() {
|
||||
proto.RegisterFile("yandex/api/operation.proto", fileDescriptor_operation_743b45b46a739ce6)
|
||||
}
|
||||
func init() { proto.RegisterFile("yandex/api/operation.proto", fileDescriptor_6381fcb5e6de7913) }
|
||||
|
||||
var fileDescriptor_operation_743b45b46a739ce6 = []byte{
|
||||
var fileDescriptor_6381fcb5e6de7913 = []byte{
|
||||
// 217 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x44, 0x90, 0x31, 0x4b, 0xc4, 0x40,
|
||||
0x10, 0x85, 0x89, 0xa0, 0x98, 0xb5, 0x0b, 0x08, 0x21, 0x85, 0x04, 0xab, 0x6b, 0x6e, 0x16, 0x4e,
|
||||
|
|
|
@ -1,12 +1,14 @@
|
|||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// source: yandex/cloud/access/access.proto
|
||||
|
||||
package access // import "github.com/yandex-cloud/go-genproto/yandex/cloud/access"
|
||||
package access
|
||||
|
||||
import proto "github.com/golang/protobuf/proto"
|
||||
import fmt "fmt"
|
||||
import math "math"
|
||||
import _ "github.com/yandex-cloud/go-genproto/yandex/cloud/validation"
|
||||
import (
|
||||
fmt "fmt"
|
||||
proto "github.com/golang/protobuf/proto"
|
||||
_ "github.com/yandex-cloud/go-genproto/yandex/cloud/validation"
|
||||
math "math"
|
||||
)
|
||||
|
||||
// Reference imports to suppress errors if they are not otherwise used.
|
||||
var _ = proto.Marshal
|
||||
|
@ -17,7 +19,7 @@ var _ = math.Inf
|
|||
// is compatible with the proto package it is being compiled against.
|
||||
// A compilation error at this line likely means your copy of the
|
||||
// proto package needs to be updated.
|
||||
const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
|
||||
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
|
||||
|
||||
type AccessBindingAction int32
|
||||
|
||||
|
@ -34,17 +36,19 @@ var AccessBindingAction_name = map[int32]string{
|
|||
1: "ADD",
|
||||
2: "REMOVE",
|
||||
}
|
||||
|
||||
var AccessBindingAction_value = map[string]int32{
|
||||
"ACCESS_BINDING_ACTION_UNSPECIFIED": 0,
|
||||
"ADD": 1,
|
||||
"REMOVE": 2,
|
||||
"ADD": 1,
|
||||
"REMOVE": 2,
|
||||
}
|
||||
|
||||
func (x AccessBindingAction) String() string {
|
||||
return proto.EnumName(AccessBindingAction_name, int32(x))
|
||||
}
|
||||
|
||||
func (AccessBindingAction) EnumDescriptor() ([]byte, []int) {
|
||||
return fileDescriptor_access_6c04a92fd5da6f4f, []int{0}
|
||||
return fileDescriptor_f72fa1116199e82e, []int{0}
|
||||
}
|
||||
|
||||
type Subject struct {
|
||||
|
@ -75,16 +79,17 @@ func (m *Subject) Reset() { *m = Subject{} }
|
|||
func (m *Subject) String() string { return proto.CompactTextString(m) }
|
||||
func (*Subject) ProtoMessage() {}
|
||||
func (*Subject) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_access_6c04a92fd5da6f4f, []int{0}
|
||||
return fileDescriptor_f72fa1116199e82e, []int{0}
|
||||
}
|
||||
|
||||
func (m *Subject) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_Subject.Unmarshal(m, b)
|
||||
}
|
||||
func (m *Subject) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_Subject.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *Subject) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_Subject.Merge(dst, src)
|
||||
func (m *Subject) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_Subject.Merge(m, src)
|
||||
}
|
||||
func (m *Subject) XXX_Size() int {
|
||||
return xxx_messageInfo_Subject.Size(m)
|
||||
|
@ -124,16 +129,17 @@ func (m *AccessBinding) Reset() { *m = AccessBinding{} }
|
|||
func (m *AccessBinding) String() string { return proto.CompactTextString(m) }
|
||||
func (*AccessBinding) ProtoMessage() {}
|
||||
func (*AccessBinding) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_access_6c04a92fd5da6f4f, []int{1}
|
||||
return fileDescriptor_f72fa1116199e82e, []int{1}
|
||||
}
|
||||
|
||||
func (m *AccessBinding) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_AccessBinding.Unmarshal(m, b)
|
||||
}
|
||||
func (m *AccessBinding) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_AccessBinding.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *AccessBinding) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_AccessBinding.Merge(dst, src)
|
||||
func (m *AccessBinding) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_AccessBinding.Merge(m, src)
|
||||
}
|
||||
func (m *AccessBinding) XXX_Size() int {
|
||||
return xxx_messageInfo_AccessBinding.Size(m)
|
||||
|
@ -183,16 +189,17 @@ func (m *ListAccessBindingsRequest) Reset() { *m = ListAccessBindingsReq
|
|||
func (m *ListAccessBindingsRequest) String() string { return proto.CompactTextString(m) }
|
||||
func (*ListAccessBindingsRequest) ProtoMessage() {}
|
||||
func (*ListAccessBindingsRequest) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_access_6c04a92fd5da6f4f, []int{2}
|
||||
return fileDescriptor_f72fa1116199e82e, []int{2}
|
||||
}
|
||||
|
||||
func (m *ListAccessBindingsRequest) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_ListAccessBindingsRequest.Unmarshal(m, b)
|
||||
}
|
||||
func (m *ListAccessBindingsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_ListAccessBindingsRequest.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *ListAccessBindingsRequest) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_ListAccessBindingsRequest.Merge(dst, src)
|
||||
func (m *ListAccessBindingsRequest) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_ListAccessBindingsRequest.Merge(m, src)
|
||||
}
|
||||
func (m *ListAccessBindingsRequest) XXX_Size() int {
|
||||
return xxx_messageInfo_ListAccessBindingsRequest.Size(m)
|
||||
|
@ -243,16 +250,17 @@ func (m *ListAccessBindingsResponse) Reset() { *m = ListAccessBindingsRe
|
|||
func (m *ListAccessBindingsResponse) String() string { return proto.CompactTextString(m) }
|
||||
func (*ListAccessBindingsResponse) ProtoMessage() {}
|
||||
func (*ListAccessBindingsResponse) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_access_6c04a92fd5da6f4f, []int{3}
|
||||
return fileDescriptor_f72fa1116199e82e, []int{3}
|
||||
}
|
||||
|
||||
func (m *ListAccessBindingsResponse) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_ListAccessBindingsResponse.Unmarshal(m, b)
|
||||
}
|
||||
func (m *ListAccessBindingsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_ListAccessBindingsResponse.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *ListAccessBindingsResponse) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_ListAccessBindingsResponse.Merge(dst, src)
|
||||
func (m *ListAccessBindingsResponse) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_ListAccessBindingsResponse.Merge(m, src)
|
||||
}
|
||||
func (m *ListAccessBindingsResponse) XXX_Size() int {
|
||||
return xxx_messageInfo_ListAccessBindingsResponse.Size(m)
|
||||
|
@ -293,16 +301,17 @@ func (m *SetAccessBindingsRequest) Reset() { *m = SetAccessBindingsReque
|
|||
func (m *SetAccessBindingsRequest) String() string { return proto.CompactTextString(m) }
|
||||
func (*SetAccessBindingsRequest) ProtoMessage() {}
|
||||
func (*SetAccessBindingsRequest) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_access_6c04a92fd5da6f4f, []int{4}
|
||||
return fileDescriptor_f72fa1116199e82e, []int{4}
|
||||
}
|
||||
|
||||
func (m *SetAccessBindingsRequest) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_SetAccessBindingsRequest.Unmarshal(m, b)
|
||||
}
|
||||
func (m *SetAccessBindingsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_SetAccessBindingsRequest.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *SetAccessBindingsRequest) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_SetAccessBindingsRequest.Merge(dst, src)
|
||||
func (m *SetAccessBindingsRequest) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_SetAccessBindingsRequest.Merge(m, src)
|
||||
}
|
||||
func (m *SetAccessBindingsRequest) XXX_Size() int {
|
||||
return xxx_messageInfo_SetAccessBindingsRequest.Size(m)
|
||||
|
@ -339,16 +348,17 @@ func (m *SetAccessBindingsMetadata) Reset() { *m = SetAccessBindingsMeta
|
|||
func (m *SetAccessBindingsMetadata) String() string { return proto.CompactTextString(m) }
|
||||
func (*SetAccessBindingsMetadata) ProtoMessage() {}
|
||||
func (*SetAccessBindingsMetadata) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_access_6c04a92fd5da6f4f, []int{5}
|
||||
return fileDescriptor_f72fa1116199e82e, []int{5}
|
||||
}
|
||||
|
||||
func (m *SetAccessBindingsMetadata) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_SetAccessBindingsMetadata.Unmarshal(m, b)
|
||||
}
|
||||
func (m *SetAccessBindingsMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_SetAccessBindingsMetadata.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *SetAccessBindingsMetadata) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_SetAccessBindingsMetadata.Merge(dst, src)
|
||||
func (m *SetAccessBindingsMetadata) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_SetAccessBindingsMetadata.Merge(m, src)
|
||||
}
|
||||
func (m *SetAccessBindingsMetadata) XXX_Size() int {
|
||||
return xxx_messageInfo_SetAccessBindingsMetadata.Size(m)
|
||||
|
@ -380,16 +390,17 @@ func (m *UpdateAccessBindingsRequest) Reset() { *m = UpdateAccessBinding
|
|||
func (m *UpdateAccessBindingsRequest) String() string { return proto.CompactTextString(m) }
|
||||
func (*UpdateAccessBindingsRequest) ProtoMessage() {}
|
||||
func (*UpdateAccessBindingsRequest) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_access_6c04a92fd5da6f4f, []int{6}
|
||||
return fileDescriptor_f72fa1116199e82e, []int{6}
|
||||
}
|
||||
|
||||
func (m *UpdateAccessBindingsRequest) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_UpdateAccessBindingsRequest.Unmarshal(m, b)
|
||||
}
|
||||
func (m *UpdateAccessBindingsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_UpdateAccessBindingsRequest.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *UpdateAccessBindingsRequest) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_UpdateAccessBindingsRequest.Merge(dst, src)
|
||||
func (m *UpdateAccessBindingsRequest) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_UpdateAccessBindingsRequest.Merge(m, src)
|
||||
}
|
||||
func (m *UpdateAccessBindingsRequest) XXX_Size() int {
|
||||
return xxx_messageInfo_UpdateAccessBindingsRequest.Size(m)
|
||||
|
@ -426,16 +437,17 @@ func (m *UpdateAccessBindingsMetadata) Reset() { *m = UpdateAccessBindin
|
|||
func (m *UpdateAccessBindingsMetadata) String() string { return proto.CompactTextString(m) }
|
||||
func (*UpdateAccessBindingsMetadata) ProtoMessage() {}
|
||||
func (*UpdateAccessBindingsMetadata) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_access_6c04a92fd5da6f4f, []int{7}
|
||||
return fileDescriptor_f72fa1116199e82e, []int{7}
|
||||
}
|
||||
|
||||
func (m *UpdateAccessBindingsMetadata) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_UpdateAccessBindingsMetadata.Unmarshal(m, b)
|
||||
}
|
||||
func (m *UpdateAccessBindingsMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_UpdateAccessBindingsMetadata.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *UpdateAccessBindingsMetadata) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_UpdateAccessBindingsMetadata.Merge(dst, src)
|
||||
func (m *UpdateAccessBindingsMetadata) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_UpdateAccessBindingsMetadata.Merge(m, src)
|
||||
}
|
||||
func (m *UpdateAccessBindingsMetadata) XXX_Size() int {
|
||||
return xxx_messageInfo_UpdateAccessBindingsMetadata.Size(m)
|
||||
|
@ -467,16 +479,17 @@ func (m *AccessBindingDelta) Reset() { *m = AccessBindingDelta{} }
|
|||
func (m *AccessBindingDelta) String() string { return proto.CompactTextString(m) }
|
||||
func (*AccessBindingDelta) ProtoMessage() {}
|
||||
func (*AccessBindingDelta) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_access_6c04a92fd5da6f4f, []int{8}
|
||||
return fileDescriptor_f72fa1116199e82e, []int{8}
|
||||
}
|
||||
|
||||
func (m *AccessBindingDelta) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_AccessBindingDelta.Unmarshal(m, b)
|
||||
}
|
||||
func (m *AccessBindingDelta) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_AccessBindingDelta.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *AccessBindingDelta) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_AccessBindingDelta.Merge(dst, src)
|
||||
func (m *AccessBindingDelta) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_AccessBindingDelta.Merge(m, src)
|
||||
}
|
||||
func (m *AccessBindingDelta) XXX_Size() int {
|
||||
return xxx_messageInfo_AccessBindingDelta.Size(m)
|
||||
|
@ -502,6 +515,7 @@ func (m *AccessBindingDelta) GetAccessBinding() *AccessBinding {
|
|||
}
|
||||
|
||||
func init() {
|
||||
proto.RegisterEnum("yandex.cloud.access.AccessBindingAction", AccessBindingAction_name, AccessBindingAction_value)
|
||||
proto.RegisterType((*Subject)(nil), "yandex.cloud.access.Subject")
|
||||
proto.RegisterType((*AccessBinding)(nil), "yandex.cloud.access.AccessBinding")
|
||||
proto.RegisterType((*ListAccessBindingsRequest)(nil), "yandex.cloud.access.ListAccessBindingsRequest")
|
||||
|
@ -511,14 +525,11 @@ func init() {
|
|||
proto.RegisterType((*UpdateAccessBindingsRequest)(nil), "yandex.cloud.access.UpdateAccessBindingsRequest")
|
||||
proto.RegisterType((*UpdateAccessBindingsMetadata)(nil), "yandex.cloud.access.UpdateAccessBindingsMetadata")
|
||||
proto.RegisterType((*AccessBindingDelta)(nil), "yandex.cloud.access.AccessBindingDelta")
|
||||
proto.RegisterEnum("yandex.cloud.access.AccessBindingAction", AccessBindingAction_name, AccessBindingAction_value)
|
||||
}
|
||||
|
||||
func init() {
|
||||
proto.RegisterFile("yandex/cloud/access/access.proto", fileDescriptor_access_6c04a92fd5da6f4f)
|
||||
}
|
||||
func init() { proto.RegisterFile("yandex/cloud/access/access.proto", fileDescriptor_f72fa1116199e82e) }
|
||||
|
||||
var fileDescriptor_access_6c04a92fd5da6f4f = []byte{
|
||||
var fileDescriptor_f72fa1116199e82e = []byte{
|
||||
// 579 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x94, 0xcf, 0x6e, 0xd3, 0x4c,
|
||||
0x14, 0xc5, 0x3f, 0x27, 0xfd, 0x92, 0xe6, 0x86, 0xa4, 0xd1, 0x44, 0x48, 0x6e, 0x29, 0x22, 0xb5,
|
||||
|
|
|
@ -1,12 +1,14 @@
|
|||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// source: yandex/cloud/compute/v1/disk.proto
|
||||
|
||||
package compute // import "github.com/yandex-cloud/go-genproto/yandex/cloud/compute/v1"
|
||||
package compute
|
||||
|
||||
import proto "github.com/golang/protobuf/proto"
|
||||
import fmt "fmt"
|
||||
import math "math"
|
||||
import timestamp "github.com/golang/protobuf/ptypes/timestamp"
|
||||
import (
|
||||
fmt "fmt"
|
||||
proto "github.com/golang/protobuf/proto"
|
||||
timestamp "github.com/golang/protobuf/ptypes/timestamp"
|
||||
math "math"
|
||||
)
|
||||
|
||||
// Reference imports to suppress errors if they are not otherwise used.
|
||||
var _ = proto.Marshal
|
||||
|
@ -17,7 +19,7 @@ var _ = math.Inf
|
|||
// is compatible with the proto package it is being compiled against.
|
||||
// A compilation error at this line likely means your copy of the
|
||||
// proto package needs to be updated.
|
||||
const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
|
||||
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
|
||||
|
||||
type Disk_Status int32
|
||||
|
||||
|
@ -40,6 +42,7 @@ var Disk_Status_name = map[int32]string{
|
|||
3: "ERROR",
|
||||
4: "DELETING",
|
||||
}
|
||||
|
||||
var Disk_Status_value = map[string]int32{
|
||||
"STATUS_UNSPECIFIED": 0,
|
||||
"CREATING": 1,
|
||||
|
@ -51,8 +54,9 @@ var Disk_Status_value = map[string]int32{
|
|||
func (x Disk_Status) String() string {
|
||||
return proto.EnumName(Disk_Status_name, int32(x))
|
||||
}
|
||||
|
||||
func (Disk_Status) EnumDescriptor() ([]byte, []int) {
|
||||
return fileDescriptor_disk_de2270285e4895a2, []int{0, 0}
|
||||
return fileDescriptor_6ed05fced9465d11, []int{0, 0}
|
||||
}
|
||||
|
||||
// A Disk resource. For more information, see [Disks](/docs/compute/concepts/disk).
|
||||
|
@ -100,16 +104,17 @@ func (m *Disk) Reset() { *m = Disk{} }
|
|||
func (m *Disk) String() string { return proto.CompactTextString(m) }
|
||||
func (*Disk) ProtoMessage() {}
|
||||
func (*Disk) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_disk_de2270285e4895a2, []int{0}
|
||||
return fileDescriptor_6ed05fced9465d11, []int{0}
|
||||
}
|
||||
|
||||
func (m *Disk) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_Disk.Unmarshal(m, b)
|
||||
}
|
||||
func (m *Disk) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_Disk.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *Disk) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_Disk.Merge(dst, src)
|
||||
func (m *Disk) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_Disk.Merge(m, src)
|
||||
}
|
||||
func (m *Disk) XXX_Size() int {
|
||||
return xxx_messageInfo_Disk.Size(m)
|
||||
|
@ -241,83 +246,23 @@ func (m *Disk) GetInstanceIds() []string {
|
|||
return nil
|
||||
}
|
||||
|
||||
// XXX_OneofFuncs is for the internal use of the proto package.
|
||||
func (*Disk) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
|
||||
return _Disk_OneofMarshaler, _Disk_OneofUnmarshaler, _Disk_OneofSizer, []interface{}{
|
||||
// XXX_OneofWrappers is for the internal use of the proto package.
|
||||
func (*Disk) XXX_OneofWrappers() []interface{} {
|
||||
return []interface{}{
|
||||
(*Disk_SourceImageId)(nil),
|
||||
(*Disk_SourceSnapshotId)(nil),
|
||||
}
|
||||
}
|
||||
|
||||
func _Disk_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
|
||||
m := msg.(*Disk)
|
||||
// source
|
||||
switch x := m.Source.(type) {
|
||||
case *Disk_SourceImageId:
|
||||
b.EncodeVarint(12<<3 | proto.WireBytes)
|
||||
b.EncodeStringBytes(x.SourceImageId)
|
||||
case *Disk_SourceSnapshotId:
|
||||
b.EncodeVarint(13<<3 | proto.WireBytes)
|
||||
b.EncodeStringBytes(x.SourceSnapshotId)
|
||||
case nil:
|
||||
default:
|
||||
return fmt.Errorf("Disk.Source has unexpected type %T", x)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func _Disk_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
|
||||
m := msg.(*Disk)
|
||||
switch tag {
|
||||
case 12: // source.source_image_id
|
||||
if wire != proto.WireBytes {
|
||||
return true, proto.ErrInternalBadWireType
|
||||
}
|
||||
x, err := b.DecodeStringBytes()
|
||||
m.Source = &Disk_SourceImageId{x}
|
||||
return true, err
|
||||
case 13: // source.source_snapshot_id
|
||||
if wire != proto.WireBytes {
|
||||
return true, proto.ErrInternalBadWireType
|
||||
}
|
||||
x, err := b.DecodeStringBytes()
|
||||
m.Source = &Disk_SourceSnapshotId{x}
|
||||
return true, err
|
||||
default:
|
||||
return false, nil
|
||||
}
|
||||
}
|
||||
|
||||
func _Disk_OneofSizer(msg proto.Message) (n int) {
|
||||
m := msg.(*Disk)
|
||||
// source
|
||||
switch x := m.Source.(type) {
|
||||
case *Disk_SourceImageId:
|
||||
n += 1 // tag and wire
|
||||
n += proto.SizeVarint(uint64(len(x.SourceImageId)))
|
||||
n += len(x.SourceImageId)
|
||||
case *Disk_SourceSnapshotId:
|
||||
n += 1 // tag and wire
|
||||
n += proto.SizeVarint(uint64(len(x.SourceSnapshotId)))
|
||||
n += len(x.SourceSnapshotId)
|
||||
case nil:
|
||||
default:
|
||||
panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
|
||||
}
|
||||
return n
|
||||
}
|
||||
|
||||
func init() {
|
||||
proto.RegisterEnum("yandex.cloud.compute.v1.Disk_Status", Disk_Status_name, Disk_Status_value)
|
||||
proto.RegisterType((*Disk)(nil), "yandex.cloud.compute.v1.Disk")
|
||||
proto.RegisterMapType((map[string]string)(nil), "yandex.cloud.compute.v1.Disk.LabelsEntry")
|
||||
proto.RegisterEnum("yandex.cloud.compute.v1.Disk_Status", Disk_Status_name, Disk_Status_value)
|
||||
}
|
||||
|
||||
func init() {
|
||||
proto.RegisterFile("yandex/cloud/compute/v1/disk.proto", fileDescriptor_disk_de2270285e4895a2)
|
||||
}
|
||||
func init() { proto.RegisterFile("yandex/cloud/compute/v1/disk.proto", fileDescriptor_6ed05fced9465d11) }
|
||||
|
||||
var fileDescriptor_disk_de2270285e4895a2 = []byte{
|
||||
var fileDescriptor_6ed05fced9465d11 = []byte{
|
||||
// 533 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x93, 0x41, 0x4f, 0xdb, 0x3e,
|
||||
0x18, 0xc6, 0x49, 0xd3, 0x86, 0xe6, 0x0d, 0xf0, 0x8f, 0xac, 0xbf, 0x46, 0xc4, 0x0e, 0x64, 0x68,
|
||||
|
|
341
vendor/github.com/yandex-cloud/go-genproto/yandex/cloud/compute/v1/disk_service.pb.go
generated
vendored
341
vendor/github.com/yandex-cloud/go-genproto/yandex/cloud/compute/v1/disk_service.pb.go
generated
vendored
|
@ -1,20 +1,21 @@
|
|||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// source: yandex/cloud/compute/v1/disk_service.proto
|
||||
|
||||
package compute // import "github.com/yandex-cloud/go-genproto/yandex/cloud/compute/v1"
|
||||
|
||||
import proto "github.com/golang/protobuf/proto"
|
||||
import fmt "fmt"
|
||||
import math "math"
|
||||
import _ "github.com/yandex-cloud/go-genproto/yandex/api"
|
||||
import operation "github.com/yandex-cloud/go-genproto/yandex/cloud/operation"
|
||||
import _ "github.com/yandex-cloud/go-genproto/yandex/cloud/validation"
|
||||
import _ "google.golang.org/genproto/googleapis/api/annotations"
|
||||
import field_mask "google.golang.org/genproto/protobuf/field_mask"
|
||||
package compute
|
||||
|
||||
import (
|
||||
context "golang.org/x/net/context"
|
||||
context "context"
|
||||
fmt "fmt"
|
||||
proto "github.com/golang/protobuf/proto"
|
||||
_ "github.com/yandex-cloud/go-genproto/yandex/api"
|
||||
operation "github.com/yandex-cloud/go-genproto/yandex/cloud/operation"
|
||||
_ "github.com/yandex-cloud/go-genproto/yandex/cloud/validation"
|
||||
_ "google.golang.org/genproto/googleapis/api/annotations"
|
||||
field_mask "google.golang.org/genproto/protobuf/field_mask"
|
||||
grpc "google.golang.org/grpc"
|
||||
codes "google.golang.org/grpc/codes"
|
||||
status "google.golang.org/grpc/status"
|
||||
math "math"
|
||||
)
|
||||
|
||||
// Reference imports to suppress errors if they are not otherwise used.
|
||||
|
@ -26,7 +27,7 @@ var _ = math.Inf
|
|||
// is compatible with the proto package it is being compiled against.
|
||||
// A compilation error at this line likely means your copy of the
|
||||
// proto package needs to be updated.
|
||||
const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
|
||||
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
|
||||
|
||||
type GetDiskRequest struct {
|
||||
// ID of the Disk resource to return.
|
||||
|
@ -41,16 +42,17 @@ func (m *GetDiskRequest) Reset() { *m = GetDiskRequest{} }
|
|||
func (m *GetDiskRequest) String() string { return proto.CompactTextString(m) }
|
||||
func (*GetDiskRequest) ProtoMessage() {}
|
||||
func (*GetDiskRequest) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_disk_service_314d5b4ba085ca45, []int{0}
|
||||
return fileDescriptor_7733692e1b0587d9, []int{0}
|
||||
}
|
||||
|
||||
func (m *GetDiskRequest) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GetDiskRequest.Unmarshal(m, b)
|
||||
}
|
||||
func (m *GetDiskRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_GetDiskRequest.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *GetDiskRequest) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_GetDiskRequest.Merge(dst, src)
|
||||
func (m *GetDiskRequest) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_GetDiskRequest.Merge(m, src)
|
||||
}
|
||||
func (m *GetDiskRequest) XXX_Size() int {
|
||||
return xxx_messageInfo_GetDiskRequest.Size(m)
|
||||
|
@ -95,16 +97,17 @@ func (m *ListDisksRequest) Reset() { *m = ListDisksRequest{} }
|
|||
func (m *ListDisksRequest) String() string { return proto.CompactTextString(m) }
|
||||
func (*ListDisksRequest) ProtoMessage() {}
|
||||
func (*ListDisksRequest) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_disk_service_314d5b4ba085ca45, []int{1}
|
||||
return fileDescriptor_7733692e1b0587d9, []int{1}
|
||||
}
|
||||
|
||||
func (m *ListDisksRequest) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_ListDisksRequest.Unmarshal(m, b)
|
||||
}
|
||||
func (m *ListDisksRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_ListDisksRequest.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *ListDisksRequest) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_ListDisksRequest.Merge(dst, src)
|
||||
func (m *ListDisksRequest) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_ListDisksRequest.Merge(m, src)
|
||||
}
|
||||
func (m *ListDisksRequest) XXX_Size() int {
|
||||
return xxx_messageInfo_ListDisksRequest.Size(m)
|
||||
|
@ -162,16 +165,17 @@ func (m *ListDisksResponse) Reset() { *m = ListDisksResponse{} }
|
|||
func (m *ListDisksResponse) String() string { return proto.CompactTextString(m) }
|
||||
func (*ListDisksResponse) ProtoMessage() {}
|
||||
func (*ListDisksResponse) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_disk_service_314d5b4ba085ca45, []int{2}
|
||||
return fileDescriptor_7733692e1b0587d9, []int{2}
|
||||
}
|
||||
|
||||
func (m *ListDisksResponse) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_ListDisksResponse.Unmarshal(m, b)
|
||||
}
|
||||
func (m *ListDisksResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_ListDisksResponse.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *ListDisksResponse) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_ListDisksResponse.Merge(dst, src)
|
||||
func (m *ListDisksResponse) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_ListDisksResponse.Merge(m, src)
|
||||
}
|
||||
func (m *ListDisksResponse) XXX_Size() int {
|
||||
return xxx_messageInfo_ListDisksResponse.Size(m)
|
||||
|
@ -229,16 +233,17 @@ func (m *CreateDiskRequest) Reset() { *m = CreateDiskRequest{} }
|
|||
func (m *CreateDiskRequest) String() string { return proto.CompactTextString(m) }
|
||||
func (*CreateDiskRequest) ProtoMessage() {}
|
||||
func (*CreateDiskRequest) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_disk_service_314d5b4ba085ca45, []int{3}
|
||||
return fileDescriptor_7733692e1b0587d9, []int{3}
|
||||
}
|
||||
|
||||
func (m *CreateDiskRequest) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_CreateDiskRequest.Unmarshal(m, b)
|
||||
}
|
||||
func (m *CreateDiskRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_CreateDiskRequest.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *CreateDiskRequest) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_CreateDiskRequest.Merge(dst, src)
|
||||
func (m *CreateDiskRequest) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_CreateDiskRequest.Merge(m, src)
|
||||
}
|
||||
func (m *CreateDiskRequest) XXX_Size() int {
|
||||
return xxx_messageInfo_CreateDiskRequest.Size(m)
|
||||
|
@ -335,72 +340,14 @@ func (m *CreateDiskRequest) GetSnapshotId() string {
|
|||
return ""
|
||||
}
|
||||
|
||||
// XXX_OneofFuncs is for the internal use of the proto package.
|
||||
func (*CreateDiskRequest) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
|
||||
return _CreateDiskRequest_OneofMarshaler, _CreateDiskRequest_OneofUnmarshaler, _CreateDiskRequest_OneofSizer, []interface{}{
|
||||
// XXX_OneofWrappers is for the internal use of the proto package.
|
||||
func (*CreateDiskRequest) XXX_OneofWrappers() []interface{} {
|
||||
return []interface{}{
|
||||
(*CreateDiskRequest_ImageId)(nil),
|
||||
(*CreateDiskRequest_SnapshotId)(nil),
|
||||
}
|
||||
}
|
||||
|
||||
func _CreateDiskRequest_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
|
||||
m := msg.(*CreateDiskRequest)
|
||||
// source
|
||||
switch x := m.Source.(type) {
|
||||
case *CreateDiskRequest_ImageId:
|
||||
b.EncodeVarint(8<<3 | proto.WireBytes)
|
||||
b.EncodeStringBytes(x.ImageId)
|
||||
case *CreateDiskRequest_SnapshotId:
|
||||
b.EncodeVarint(9<<3 | proto.WireBytes)
|
||||
b.EncodeStringBytes(x.SnapshotId)
|
||||
case nil:
|
||||
default:
|
||||
return fmt.Errorf("CreateDiskRequest.Source has unexpected type %T", x)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func _CreateDiskRequest_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
|
||||
m := msg.(*CreateDiskRequest)
|
||||
switch tag {
|
||||
case 8: // source.image_id
|
||||
if wire != proto.WireBytes {
|
||||
return true, proto.ErrInternalBadWireType
|
||||
}
|
||||
x, err := b.DecodeStringBytes()
|
||||
m.Source = &CreateDiskRequest_ImageId{x}
|
||||
return true, err
|
||||
case 9: // source.snapshot_id
|
||||
if wire != proto.WireBytes {
|
||||
return true, proto.ErrInternalBadWireType
|
||||
}
|
||||
x, err := b.DecodeStringBytes()
|
||||
m.Source = &CreateDiskRequest_SnapshotId{x}
|
||||
return true, err
|
||||
default:
|
||||
return false, nil
|
||||
}
|
||||
}
|
||||
|
||||
func _CreateDiskRequest_OneofSizer(msg proto.Message) (n int) {
|
||||
m := msg.(*CreateDiskRequest)
|
||||
// source
|
||||
switch x := m.Source.(type) {
|
||||
case *CreateDiskRequest_ImageId:
|
||||
n += 1 // tag and wire
|
||||
n += proto.SizeVarint(uint64(len(x.ImageId)))
|
||||
n += len(x.ImageId)
|
||||
case *CreateDiskRequest_SnapshotId:
|
||||
n += 1 // tag and wire
|
||||
n += proto.SizeVarint(uint64(len(x.SnapshotId)))
|
||||
n += len(x.SnapshotId)
|
||||
case nil:
|
||||
default:
|
||||
panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
|
||||
}
|
||||
return n
|
||||
}
|
||||
|
||||
type CreateDiskMetadata struct {
|
||||
// ID of the disk that is being created.
|
||||
DiskId string `protobuf:"bytes,1,opt,name=disk_id,json=diskId,proto3" json:"disk_id,omitempty"`
|
||||
|
@ -413,16 +360,17 @@ func (m *CreateDiskMetadata) Reset() { *m = CreateDiskMetadata{} }
|
|||
func (m *CreateDiskMetadata) String() string { return proto.CompactTextString(m) }
|
||||
func (*CreateDiskMetadata) ProtoMessage() {}
|
||||
func (*CreateDiskMetadata) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_disk_service_314d5b4ba085ca45, []int{4}
|
||||
return fileDescriptor_7733692e1b0587d9, []int{4}
|
||||
}
|
||||
|
||||
func (m *CreateDiskMetadata) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_CreateDiskMetadata.Unmarshal(m, b)
|
||||
}
|
||||
func (m *CreateDiskMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_CreateDiskMetadata.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *CreateDiskMetadata) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_CreateDiskMetadata.Merge(dst, src)
|
||||
func (m *CreateDiskMetadata) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_CreateDiskMetadata.Merge(m, src)
|
||||
}
|
||||
func (m *CreateDiskMetadata) XXX_Size() int {
|
||||
return xxx_messageInfo_CreateDiskMetadata.Size(m)
|
||||
|
@ -465,16 +413,17 @@ func (m *UpdateDiskRequest) Reset() { *m = UpdateDiskRequest{} }
|
|||
func (m *UpdateDiskRequest) String() string { return proto.CompactTextString(m) }
|
||||
func (*UpdateDiskRequest) ProtoMessage() {}
|
||||
func (*UpdateDiskRequest) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_disk_service_314d5b4ba085ca45, []int{5}
|
||||
return fileDescriptor_7733692e1b0587d9, []int{5}
|
||||
}
|
||||
|
||||
func (m *UpdateDiskRequest) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_UpdateDiskRequest.Unmarshal(m, b)
|
||||
}
|
||||
func (m *UpdateDiskRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_UpdateDiskRequest.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *UpdateDiskRequest) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_UpdateDiskRequest.Merge(dst, src)
|
||||
func (m *UpdateDiskRequest) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_UpdateDiskRequest.Merge(m, src)
|
||||
}
|
||||
func (m *UpdateDiskRequest) XXX_Size() int {
|
||||
return xxx_messageInfo_UpdateDiskRequest.Size(m)
|
||||
|
@ -539,16 +488,17 @@ func (m *UpdateDiskMetadata) Reset() { *m = UpdateDiskMetadata{} }
|
|||
func (m *UpdateDiskMetadata) String() string { return proto.CompactTextString(m) }
|
||||
func (*UpdateDiskMetadata) ProtoMessage() {}
|
||||
func (*UpdateDiskMetadata) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_disk_service_314d5b4ba085ca45, []int{6}
|
||||
return fileDescriptor_7733692e1b0587d9, []int{6}
|
||||
}
|
||||
|
||||
func (m *UpdateDiskMetadata) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_UpdateDiskMetadata.Unmarshal(m, b)
|
||||
}
|
||||
func (m *UpdateDiskMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_UpdateDiskMetadata.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *UpdateDiskMetadata) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_UpdateDiskMetadata.Merge(dst, src)
|
||||
func (m *UpdateDiskMetadata) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_UpdateDiskMetadata.Merge(m, src)
|
||||
}
|
||||
func (m *UpdateDiskMetadata) XXX_Size() int {
|
||||
return xxx_messageInfo_UpdateDiskMetadata.Size(m)
|
||||
|
@ -579,16 +529,17 @@ func (m *DeleteDiskRequest) Reset() { *m = DeleteDiskRequest{} }
|
|||
func (m *DeleteDiskRequest) String() string { return proto.CompactTextString(m) }
|
||||
func (*DeleteDiskRequest) ProtoMessage() {}
|
||||
func (*DeleteDiskRequest) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_disk_service_314d5b4ba085ca45, []int{7}
|
||||
return fileDescriptor_7733692e1b0587d9, []int{7}
|
||||
}
|
||||
|
||||
func (m *DeleteDiskRequest) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_DeleteDiskRequest.Unmarshal(m, b)
|
||||
}
|
||||
func (m *DeleteDiskRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_DeleteDiskRequest.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *DeleteDiskRequest) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_DeleteDiskRequest.Merge(dst, src)
|
||||
func (m *DeleteDiskRequest) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_DeleteDiskRequest.Merge(m, src)
|
||||
}
|
||||
func (m *DeleteDiskRequest) XXX_Size() int {
|
||||
return xxx_messageInfo_DeleteDiskRequest.Size(m)
|
||||
|
@ -618,16 +569,17 @@ func (m *DeleteDiskMetadata) Reset() { *m = DeleteDiskMetadata{} }
|
|||
func (m *DeleteDiskMetadata) String() string { return proto.CompactTextString(m) }
|
||||
func (*DeleteDiskMetadata) ProtoMessage() {}
|
||||
func (*DeleteDiskMetadata) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_disk_service_314d5b4ba085ca45, []int{8}
|
||||
return fileDescriptor_7733692e1b0587d9, []int{8}
|
||||
}
|
||||
|
||||
func (m *DeleteDiskMetadata) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_DeleteDiskMetadata.Unmarshal(m, b)
|
||||
}
|
||||
func (m *DeleteDiskMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_DeleteDiskMetadata.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *DeleteDiskMetadata) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_DeleteDiskMetadata.Merge(dst, src)
|
||||
func (m *DeleteDiskMetadata) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_DeleteDiskMetadata.Merge(m, src)
|
||||
}
|
||||
func (m *DeleteDiskMetadata) XXX_Size() int {
|
||||
return xxx_messageInfo_DeleteDiskMetadata.Size(m)
|
||||
|
@ -664,16 +616,17 @@ func (m *ListDiskOperationsRequest) Reset() { *m = ListDiskOperationsReq
|
|||
func (m *ListDiskOperationsRequest) String() string { return proto.CompactTextString(m) }
|
||||
func (*ListDiskOperationsRequest) ProtoMessage() {}
|
||||
func (*ListDiskOperationsRequest) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_disk_service_314d5b4ba085ca45, []int{9}
|
||||
return fileDescriptor_7733692e1b0587d9, []int{9}
|
||||
}
|
||||
|
||||
func (m *ListDiskOperationsRequest) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_ListDiskOperationsRequest.Unmarshal(m, b)
|
||||
}
|
||||
func (m *ListDiskOperationsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_ListDiskOperationsRequest.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *ListDiskOperationsRequest) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_ListDiskOperationsRequest.Merge(dst, src)
|
||||
func (m *ListDiskOperationsRequest) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_ListDiskOperationsRequest.Merge(m, src)
|
||||
}
|
||||
func (m *ListDiskOperationsRequest) XXX_Size() int {
|
||||
return xxx_messageInfo_ListDiskOperationsRequest.Size(m)
|
||||
|
@ -722,16 +675,17 @@ func (m *ListDiskOperationsResponse) Reset() { *m = ListDiskOperationsRe
|
|||
func (m *ListDiskOperationsResponse) String() string { return proto.CompactTextString(m) }
|
||||
func (*ListDiskOperationsResponse) ProtoMessage() {}
|
||||
func (*ListDiskOperationsResponse) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_disk_service_314d5b4ba085ca45, []int{10}
|
||||
return fileDescriptor_7733692e1b0587d9, []int{10}
|
||||
}
|
||||
|
||||
func (m *ListDiskOperationsResponse) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_ListDiskOperationsResponse.Unmarshal(m, b)
|
||||
}
|
||||
func (m *ListDiskOperationsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_ListDiskOperationsResponse.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *ListDiskOperationsResponse) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_ListDiskOperationsResponse.Merge(dst, src)
|
||||
func (m *ListDiskOperationsResponse) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_ListDiskOperationsResponse.Merge(m, src)
|
||||
}
|
||||
func (m *ListDiskOperationsResponse) XXX_Size() int {
|
||||
return xxx_messageInfo_ListDiskOperationsResponse.Size(m)
|
||||
|
@ -772,6 +726,82 @@ func init() {
|
|||
proto.RegisterType((*ListDiskOperationsResponse)(nil), "yandex.cloud.compute.v1.ListDiskOperationsResponse")
|
||||
}
|
||||
|
||||
func init() {
|
||||
proto.RegisterFile("yandex/cloud/compute/v1/disk_service.proto", fileDescriptor_7733692e1b0587d9)
|
||||
}
|
||||
|
||||
var fileDescriptor_7733692e1b0587d9 = []byte{
|
||||
// 1084 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x56, 0xcf, 0x73, 0xdb, 0x44,
|
||||
0x14, 0x46, 0xb1, 0xa2, 0xd8, 0xcf, 0x50, 0x92, 0x85, 0x52, 0x47, 0x90, 0x99, 0x44, 0x4c, 0xd3,
|
||||
0xd4, 0x45, 0x92, 0x65, 0x3b, 0xa6, 0x49, 0xdb, 0x61, 0x70, 0x13, 0x8a, 0x67, 0xda, 0x81, 0x51,
|
||||
0xe1, 0x42, 0xa6, 0x93, 0x51, 0xac, 0x8d, 0xab, 0xb1, 0x2c, 0x09, 0xad, 0xec, 0x89, 0x5d, 0x7a,
|
||||
0xe9, 0x85, 0x99, 0x70, 0xe0, 0xd0, 0xe1, 0xc8, 0x1f, 0xc0, 0x70, 0xcb, 0xf0, 0x3f, 0x38, 0xc3,
|
||||
0xb1, 0x1c, 0xf8, 0x07, 0x38, 0x70, 0xee, 0xb1, 0x27, 0x66, 0x57, 0xf2, 0xef, 0x9f, 0xa1, 0x70,
|
||||
0x93, 0xf4, 0xbe, 0xb7, 0xfa, 0xf6, 0xdb, 0xef, 0xbd, 0xb7, 0x90, 0x6e, 0x1a, 0x8e, 0x89, 0x4f,
|
||||
0xd4, 0xb2, 0xed, 0xd6, 0x4d, 0xb5, 0xec, 0xd6, 0xbc, 0x7a, 0x80, 0xd5, 0x86, 0xa6, 0x9a, 0x16,
|
||||
0xa9, 0x1e, 0x12, 0xec, 0x37, 0xac, 0x32, 0x56, 0x3c, 0xdf, 0x0d, 0x5c, 0x74, 0x25, 0xc4, 0x2a,
|
||||
0x0c, 0xab, 0x44, 0x58, 0xa5, 0xa1, 0x89, 0x1f, 0x54, 0x5c, 0xb7, 0x62, 0x63, 0xd5, 0xf0, 0x2c,
|
||||
0xd5, 0x70, 0x1c, 0x37, 0x30, 0x02, 0xcb, 0x75, 0x48, 0x98, 0x26, 0xae, 0x47, 0x51, 0xf6, 0x76,
|
||||
0x54, 0x3f, 0x56, 0x8f, 0x2d, 0x6c, 0x9b, 0x87, 0x35, 0x83, 0x54, 0x23, 0x84, 0x18, 0x91, 0xa0,
|
||||
0xf9, 0xae, 0x87, 0x7d, 0x96, 0x1e, 0xc5, 0xa4, 0x69, 0x04, 0x23, 0xcc, 0xe6, 0x00, 0xa6, 0xbb,
|
||||
0xc2, 0xc8, 0x5a, 0x6b, 0x03, 0xb8, 0x86, 0x61, 0x5b, 0x66, 0x5f, 0x58, 0xfa, 0x18, 0x2e, 0xdd,
|
||||
0xc3, 0xc1, 0x9e, 0x45, 0xaa, 0x3a, 0xfe, 0xb6, 0x8e, 0x49, 0x80, 0xae, 0xc2, 0x12, 0xd3, 0xc1,
|
||||
0x32, 0x53, 0xdc, 0x3a, 0xb7, 0x95, 0x28, 0xbe, 0xf9, 0x77, 0x5b, 0xe3, 0x4e, 0xcf, 0x35, 0xfe,
|
||||
0xf6, 0x9d, 0xed, 0x8c, 0x2e, 0xd0, 0x60, 0xc9, 0x94, 0x7e, 0xe3, 0x60, 0xf9, 0xbe, 0x45, 0x58,
|
||||
0x2a, 0xe9, 0xe4, 0x5e, 0x87, 0xc4, 0xb1, 0x6b, 0x9b, 0xd8, 0x9f, 0x94, 0x1d, 0x0f, 0xc3, 0x25,
|
||||
0x13, 0x5d, 0x83, 0x84, 0x67, 0x54, 0xf0, 0x21, 0xb1, 0x5a, 0x38, 0xb5, 0xb0, 0xce, 0x6d, 0xc5,
|
||||
0x8a, 0xf0, 0xaa, 0xad, 0x09, 0xb7, 0xef, 0x68, 0x99, 0x4c, 0x46, 0x8f, 0xd3, 0xe0, 0x43, 0xab,
|
||||
0x85, 0xd1, 0x16, 0x00, 0x03, 0x06, 0x6e, 0x15, 0x3b, 0xa9, 0x18, 0x5b, 0x34, 0x71, 0x7a, 0xae,
|
||||
0x2d, 0x32, 0xa4, 0xce, 0x56, 0xf9, 0x8a, 0xc6, 0x90, 0x04, 0xc2, 0xb1, 0x65, 0x07, 0xd8, 0x4f,
|
||||
0xf1, 0x0c, 0x05, 0xa7, 0xe7, 0xdd, 0xf5, 0xa2, 0x88, 0xe4, 0xc1, 0x4a, 0x1f, 0x6b, 0xe2, 0xb9,
|
||||
0x0e, 0xc1, 0x28, 0x07, 0x8b, 0x74, 0x57, 0x24, 0xc5, 0xad, 0xc7, 0xb6, 0x92, 0xd9, 0x35, 0x65,
|
||||
0xc2, 0xa1, 0x2b, 0x4c, 0xa7, 0x10, 0x8b, 0x36, 0xe1, 0x6d, 0x07, 0x9f, 0x04, 0x87, 0x7d, 0xe4,
|
||||
0xe8, 0x36, 0x12, 0xfa, 0x5b, 0xf4, 0xf3, 0x97, 0x1d, 0x56, 0xd2, 0xef, 0x3c, 0xac, 0xdc, 0xf5,
|
||||
0xb1, 0x11, 0xe0, 0x7e, 0x95, 0x2f, 0xa0, 0xd4, 0x36, 0xf0, 0x8e, 0x51, 0x0b, 0x45, 0x4a, 0x14,
|
||||
0x37, 0x5e, 0xb6, 0xb5, 0xb5, 0xef, 0x0e, 0x0c, 0xb9, 0xf5, 0xe8, 0x40, 0x36, 0xe4, 0x56, 0x46,
|
||||
0xde, 0x79, 0xf4, 0x44, 0xfb, 0xa8, 0xa0, 0x3d, 0x3d, 0x88, 0xde, 0x74, 0x06, 0x47, 0x37, 0x20,
|
||||
0x69, 0x62, 0x52, 0xf6, 0x2d, 0x8f, 0x1e, 0xf7, 0xa0, 0x70, 0xd9, 0xed, 0x82, 0xde, 0x1f, 0x45,
|
||||
0x3f, 0x72, 0x20, 0xd8, 0xc6, 0x11, 0xb6, 0x49, 0x8a, 0x67, 0x1a, 0x14, 0x26, 0x6a, 0x30, 0xb2,
|
||||
0x17, 0xe5, 0x3e, 0x4b, 0xdc, 0x77, 0x02, 0xbf, 0x59, 0xfc, 0xe4, 0x65, 0x5b, 0x4b, 0x1e, 0xc8,
|
||||
0x87, 0x19, 0x79, 0x87, 0x52, 0x4c, 0x3f, 0x63, 0xfb, 0x29, 0xe4, 0xc3, 0x7d, 0x15, 0x72, 0x67,
|
||||
0xe7, 0x9a, 0x20, 0xf2, 0x9a, 0xcc, 0x9e, 0x10, 0x5a, 0x8e, 0x36, 0xd2, 0xc5, 0xeb, 0x11, 0x0d,
|
||||
0xb4, 0x01, 0x4b, 0x41, 0xd3, 0xc3, 0x54, 0x9e, 0x45, 0x46, 0x3d, 0xde, 0xb3, 0x20, 0x0d, 0x94,
|
||||
0x4c, 0xea, 0xd4, 0x96, 0xeb, 0x30, 0x88, 0x30, 0xce, 0xa9, 0x34, 0x58, 0x32, 0x91, 0x06, 0x3c,
|
||||
0x33, 0xd9, 0x12, 0x33, 0xd9, 0x1a, 0xc5, 0xbc, 0x6a, 0x6b, 0x97, 0xf3, 0xda, 0x4e, 0x3e, 0x97,
|
||||
0xc9, 0xcb, 0xf9, 0xdc, 0xce, 0xcd, 0x4c, 0xbe, 0xb0, 0xad, 0x69, 0x5a, 0x26, 0xaf, 0x33, 0x28,
|
||||
0xba, 0x0a, 0x71, 0xab, 0x46, 0xcf, 0xd5, 0x32, 0x53, 0xf1, 0xc1, 0xbf, 0x7f, 0xfe, 0x86, 0xbe,
|
||||
0xc4, 0x62, 0x25, 0x93, 0x4a, 0x4c, 0x1c, 0xc3, 0x23, 0x8f, 0xdd, 0x80, 0x22, 0x13, 0x23, 0x48,
|
||||
0xe8, 0x84, 0x4b, 0xa6, 0xb8, 0x03, 0xc9, 0x3e, 0xa1, 0xd0, 0x32, 0xc4, 0xaa, 0xb8, 0x19, 0x1e,
|
||||
0xbd, 0x4e, 0x1f, 0xd1, 0xbb, 0xb0, 0xd8, 0x30, 0xec, 0x7a, 0x74, 0xd0, 0x7a, 0xf8, 0xb2, 0xbb,
|
||||
0x70, 0x93, 0x2b, 0xc6, 0x41, 0x20, 0x6e, 0xdd, 0x2f, 0x63, 0x49, 0x06, 0xd4, 0xd3, 0xff, 0x01,
|
||||
0x0e, 0x0c, 0xd3, 0x08, 0x0c, 0x74, 0x65, 0xa8, 0x64, 0xbb, 0x45, 0xfa, 0x67, 0x0c, 0x56, 0xbe,
|
||||
0xf6, 0xcc, 0x21, 0xef, 0xcd, 0x57, 0xe1, 0xe8, 0x16, 0x24, 0xeb, 0x2c, 0x97, 0xb5, 0x2d, 0xc6,
|
||||
0x2a, 0x99, 0x15, 0x95, 0xb0, 0xb3, 0x29, 0x9d, 0xce, 0xa6, 0x7c, 0x46, 0x3b, 0xdb, 0x03, 0x83,
|
||||
0x54, 0x75, 0x08, 0xe1, 0xf4, 0xb9, 0x6b, 0xda, 0xd8, 0x6b, 0x99, 0x96, 0x9f, 0xd7, 0xb4, 0x8b,
|
||||
0x33, 0x4c, 0x3b, 0x22, 0xc2, 0xff, 0x63, 0x5a, 0x39, 0xb2, 0x9a, 0xc0, 0xac, 0xb6, 0x3a, 0xc3,
|
||||
0x66, 0xaf, 0x61, 0x09, 0x6a, 0x84, 0xde, 0x9e, 0x66, 0x1b, 0x61, 0x17, 0x56, 0xf6, 0xb0, 0x8d,
|
||||
0xff, 0x8d, 0x0f, 0xe8, 0xaf, 0x7a, 0xb9, 0xb3, 0x7f, 0xf5, 0x13, 0x07, 0xab, 0x9d, 0x16, 0xfb,
|
||||
0x45, 0x67, 0x18, 0x91, 0x0b, 0x7a, 0xef, 0xbf, 0x9f, 0x0e, 0xd2, 0xf7, 0x1c, 0x88, 0xe3, 0x78,
|
||||
0x45, 0x33, 0xe0, 0x53, 0x80, 0xee, 0xe8, 0xec, 0x0c, 0x82, 0x8d, 0x41, 0x3f, 0xf5, 0x46, 0x6b,
|
||||
0x37, 0x5f, 0xef, 0x4b, 0x9a, 0x77, 0x22, 0x64, 0x7f, 0x58, 0x82, 0x24, 0x65, 0xf1, 0x30, 0xbc,
|
||||
0x69, 0x20, 0x1f, 0x62, 0xf7, 0x70, 0x80, 0xae, 0x4d, 0x74, 0xef, 0xe0, 0x84, 0x16, 0xa7, 0xcf,
|
||||
0x27, 0xe9, 0xc3, 0x67, 0x7f, 0xfc, 0xf5, 0x7c, 0x61, 0x0d, 0xbd, 0x3f, 0x7c, 0x73, 0x20, 0xea,
|
||||
0x93, 0x48, 0xfb, 0xa7, 0xe8, 0x04, 0x78, 0x2a, 0x06, 0xba, 0x3e, 0x71, 0xad, 0xe1, 0xe1, 0x2e,
|
||||
0xa6, 0xe7, 0x81, 0x86, 0x6a, 0x4a, 0xab, 0x8c, 0xc3, 0x3b, 0x68, 0x65, 0x84, 0x03, 0x7a, 0xce,
|
||||
0x81, 0x10, 0xf6, 0x30, 0x94, 0x9e, 0x7f, 0xc8, 0x88, 0xb3, 0xcf, 0x42, 0xda, 0x3d, 0x7b, 0x91,
|
||||
0x16, 0xc7, 0x36, 0x48, 0x9e, 0xbe, 0x31, 0x4a, 0xef, 0x49, 0xa3, 0x94, 0x76, 0xb9, 0x34, 0xfa,
|
||||
0x99, 0x03, 0x21, 0x2c, 0xa8, 0x29, 0xac, 0x46, 0xba, 0xc8, 0x3c, 0xac, 0xf6, 0x42, 0x56, 0x63,
|
||||
0xaa, 0xb5, 0xc7, 0x6a, 0x3d, 0x3b, 0xed, 0xb0, 0x28, 0xbf, 0x5f, 0x39, 0x10, 0xc2, 0x2a, 0x9c,
|
||||
0xc2, 0x6f, 0xa4, 0xc4, 0xe7, 0xe1, 0xa7, 0x9f, 0xbd, 0x48, 0xdf, 0x18, 0x5b, 0xe2, 0x97, 0x87,
|
||||
0x5b, 0xfd, 0x7e, 0xcd, 0x0b, 0x9a, 0xa1, 0xbb, 0xd2, 0x53, 0xdd, 0xf5, 0x0b, 0x07, 0x97, 0xa8,
|
||||
0x29, 0x7a, 0x75, 0x86, 0xb2, 0x33, 0xdd, 0x33, 0xd2, 0x2c, 0xc4, 0xdc, 0x85, 0x72, 0x22, 0xeb,
|
||||
0x29, 0x8c, 0xe0, 0x16, 0xda, 0x9c, 0x42, 0xb0, 0x77, 0x4b, 0x26, 0xc5, 0xfd, 0x6f, 0xee, 0x56,
|
||||
0xac, 0xe0, 0x71, 0xfd, 0x88, 0xae, 0xaf, 0x86, 0x3f, 0x94, 0xc3, 0xdb, 0x72, 0xc5, 0x95, 0x2b,
|
||||
0xd8, 0x61, 0xdb, 0x57, 0x27, 0x5c, 0xc9, 0x6f, 0x45, 0x8f, 0x47, 0x02, 0x83, 0xe5, 0xfe, 0x09,
|
||||
0x00, 0x00, 0xff, 0xff, 0x64, 0xb4, 0x34, 0x53, 0x5d, 0x0c, 0x00, 0x00,
|
||||
}
|
||||
|
||||
// Reference imports to suppress errors if they are not otherwise used.
|
||||
var _ context.Context
|
||||
var _ grpc.ClientConn
|
||||
|
@ -896,6 +926,29 @@ type DiskServiceServer interface {
|
|||
ListOperations(context.Context, *ListDiskOperationsRequest) (*ListDiskOperationsResponse, error)
|
||||
}
|
||||
|
||||
// UnimplementedDiskServiceServer can be embedded to have forward compatible implementations.
|
||||
type UnimplementedDiskServiceServer struct {
|
||||
}
|
||||
|
||||
func (*UnimplementedDiskServiceServer) Get(ctx context.Context, req *GetDiskRequest) (*Disk, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method Get not implemented")
|
||||
}
|
||||
func (*UnimplementedDiskServiceServer) List(ctx context.Context, req *ListDisksRequest) (*ListDisksResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method List not implemented")
|
||||
}
|
||||
func (*UnimplementedDiskServiceServer) Create(ctx context.Context, req *CreateDiskRequest) (*operation.Operation, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method Create not implemented")
|
||||
}
|
||||
func (*UnimplementedDiskServiceServer) Update(ctx context.Context, req *UpdateDiskRequest) (*operation.Operation, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method Update not implemented")
|
||||
}
|
||||
func (*UnimplementedDiskServiceServer) Delete(ctx context.Context, req *DeleteDiskRequest) (*operation.Operation, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method Delete not implemented")
|
||||
}
|
||||
func (*UnimplementedDiskServiceServer) ListOperations(ctx context.Context, req *ListDiskOperationsRequest) (*ListDiskOperationsResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method ListOperations not implemented")
|
||||
}
|
||||
|
||||
func RegisterDiskServiceServer(s *grpc.Server, srv DiskServiceServer) {
|
||||
s.RegisterService(&_DiskService_serviceDesc, srv)
|
||||
}
|
||||
|
@ -1040,79 +1093,3 @@ var _DiskService_serviceDesc = grpc.ServiceDesc{
|
|||
Streams: []grpc.StreamDesc{},
|
||||
Metadata: "yandex/cloud/compute/v1/disk_service.proto",
|
||||
}
|
||||
|
||||
func init() {
|
||||
proto.RegisterFile("yandex/cloud/compute/v1/disk_service.proto", fileDescriptor_disk_service_314d5b4ba085ca45)
|
||||
}
|
||||
|
||||
var fileDescriptor_disk_service_314d5b4ba085ca45 = []byte{
|
||||
// 1084 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x56, 0xcf, 0x73, 0xdb, 0x44,
|
||||
0x14, 0x46, 0xb1, 0xa2, 0xd8, 0xcf, 0x50, 0x92, 0x85, 0x52, 0x47, 0x90, 0x99, 0x44, 0x4c, 0xd3,
|
||||
0xd4, 0x45, 0x92, 0x65, 0x3b, 0xa6, 0x49, 0xdb, 0x61, 0x70, 0x13, 0x8a, 0x67, 0xda, 0x81, 0x51,
|
||||
0xe1, 0x42, 0xa6, 0x93, 0x51, 0xac, 0x8d, 0xab, 0xb1, 0x2c, 0x09, 0xad, 0xec, 0x89, 0x5d, 0x7a,
|
||||
0xe9, 0x85, 0x99, 0x70, 0xe0, 0xd0, 0xe1, 0xc8, 0x1f, 0xc0, 0x70, 0xcb, 0xf0, 0x3f, 0x38, 0xc3,
|
||||
0xb1, 0x1c, 0xf8, 0x07, 0x38, 0x70, 0xee, 0xb1, 0x27, 0x66, 0x57, 0xf2, 0xef, 0x9f, 0xa1, 0x70,
|
||||
0x93, 0xf4, 0xbe, 0xb7, 0xfa, 0xf6, 0xdb, 0xef, 0xbd, 0xb7, 0x90, 0x6e, 0x1a, 0x8e, 0x89, 0x4f,
|
||||
0xd4, 0xb2, 0xed, 0xd6, 0x4d, 0xb5, 0xec, 0xd6, 0xbc, 0x7a, 0x80, 0xd5, 0x86, 0xa6, 0x9a, 0x16,
|
||||
0xa9, 0x1e, 0x12, 0xec, 0x37, 0xac, 0x32, 0x56, 0x3c, 0xdf, 0x0d, 0x5c, 0x74, 0x25, 0xc4, 0x2a,
|
||||
0x0c, 0xab, 0x44, 0x58, 0xa5, 0xa1, 0x89, 0x1f, 0x54, 0x5c, 0xb7, 0x62, 0x63, 0xd5, 0xf0, 0x2c,
|
||||
0xd5, 0x70, 0x1c, 0x37, 0x30, 0x02, 0xcb, 0x75, 0x48, 0x98, 0x26, 0xae, 0x47, 0x51, 0xf6, 0x76,
|
||||
0x54, 0x3f, 0x56, 0x8f, 0x2d, 0x6c, 0x9b, 0x87, 0x35, 0x83, 0x54, 0x23, 0x84, 0x18, 0x91, 0xa0,
|
||||
0xf9, 0xae, 0x87, 0x7d, 0x96, 0x1e, 0xc5, 0xa4, 0x69, 0x04, 0x23, 0xcc, 0xe6, 0x00, 0xa6, 0xbb,
|
||||
0xc2, 0xc8, 0x5a, 0x6b, 0x03, 0xb8, 0x86, 0x61, 0x5b, 0x66, 0x5f, 0x58, 0xfa, 0x18, 0x2e, 0xdd,
|
||||
0xc3, 0xc1, 0x9e, 0x45, 0xaa, 0x3a, 0xfe, 0xb6, 0x8e, 0x49, 0x80, 0xae, 0xc2, 0x12, 0xd3, 0xc1,
|
||||
0x32, 0x53, 0xdc, 0x3a, 0xb7, 0x95, 0x28, 0xbe, 0xf9, 0x77, 0x5b, 0xe3, 0x4e, 0xcf, 0x35, 0xfe,
|
||||
0xf6, 0x9d, 0xed, 0x8c, 0x2e, 0xd0, 0x60, 0xc9, 0x94, 0x7e, 0xe3, 0x60, 0xf9, 0xbe, 0x45, 0x58,
|
||||
0x2a, 0xe9, 0xe4, 0x5e, 0x87, 0xc4, 0xb1, 0x6b, 0x9b, 0xd8, 0x9f, 0x94, 0x1d, 0x0f, 0xc3, 0x25,
|
||||
0x13, 0x5d, 0x83, 0x84, 0x67, 0x54, 0xf0, 0x21, 0xb1, 0x5a, 0x38, 0xb5, 0xb0, 0xce, 0x6d, 0xc5,
|
||||
0x8a, 0xf0, 0xaa, 0xad, 0x09, 0xb7, 0xef, 0x68, 0x99, 0x4c, 0x46, 0x8f, 0xd3, 0xe0, 0x43, 0xab,
|
||||
0x85, 0xd1, 0x16, 0x00, 0x03, 0x06, 0x6e, 0x15, 0x3b, 0xa9, 0x18, 0x5b, 0x34, 0x71, 0x7a, 0xae,
|
||||
0x2d, 0x32, 0xa4, 0xce, 0x56, 0xf9, 0x8a, 0xc6, 0x90, 0x04, 0xc2, 0xb1, 0x65, 0x07, 0xd8, 0x4f,
|
||||
0xf1, 0x0c, 0x05, 0xa7, 0xe7, 0xdd, 0xf5, 0xa2, 0x88, 0xe4, 0xc1, 0x4a, 0x1f, 0x6b, 0xe2, 0xb9,
|
||||
0x0e, 0xc1, 0x28, 0x07, 0x8b, 0x74, 0x57, 0x24, 0xc5, 0xad, 0xc7, 0xb6, 0x92, 0xd9, 0x35, 0x65,
|
||||
0xc2, 0xa1, 0x2b, 0x4c, 0xa7, 0x10, 0x8b, 0x36, 0xe1, 0x6d, 0x07, 0x9f, 0x04, 0x87, 0x7d, 0xe4,
|
||||
0xe8, 0x36, 0x12, 0xfa, 0x5b, 0xf4, 0xf3, 0x97, 0x1d, 0x56, 0xd2, 0xef, 0x3c, 0xac, 0xdc, 0xf5,
|
||||
0xb1, 0x11, 0xe0, 0x7e, 0x95, 0x2f, 0xa0, 0xd4, 0x36, 0xf0, 0x8e, 0x51, 0x0b, 0x45, 0x4a, 0x14,
|
||||
0x37, 0x5e, 0xb6, 0xb5, 0xb5, 0xef, 0x0e, 0x0c, 0xb9, 0xf5, 0xe8, 0x40, 0x36, 0xe4, 0x56, 0x46,
|
||||
0xde, 0x79, 0xf4, 0x44, 0xfb, 0xa8, 0xa0, 0x3d, 0x3d, 0x88, 0xde, 0x74, 0x06, 0x47, 0x37, 0x20,
|
||||
0x69, 0x62, 0x52, 0xf6, 0x2d, 0x8f, 0x1e, 0xf7, 0xa0, 0x70, 0xd9, 0xed, 0x82, 0xde, 0x1f, 0x45,
|
||||
0x3f, 0x72, 0x20, 0xd8, 0xc6, 0x11, 0xb6, 0x49, 0x8a, 0x67, 0x1a, 0x14, 0x26, 0x6a, 0x30, 0xb2,
|
||||
0x17, 0xe5, 0x3e, 0x4b, 0xdc, 0x77, 0x02, 0xbf, 0x59, 0xfc, 0xe4, 0x65, 0x5b, 0x4b, 0x1e, 0xc8,
|
||||
0x87, 0x19, 0x79, 0x87, 0x52, 0x4c, 0x3f, 0x63, 0xfb, 0x29, 0xe4, 0xc3, 0x7d, 0x15, 0x72, 0x67,
|
||||
0xe7, 0x9a, 0x20, 0xf2, 0x9a, 0xcc, 0x9e, 0x10, 0x5a, 0x8e, 0x36, 0xd2, 0xc5, 0xeb, 0x11, 0x0d,
|
||||
0xb4, 0x01, 0x4b, 0x41, 0xd3, 0xc3, 0x54, 0x9e, 0x45, 0x46, 0x3d, 0xde, 0xb3, 0x20, 0x0d, 0x94,
|
||||
0x4c, 0xea, 0xd4, 0x96, 0xeb, 0x30, 0x88, 0x30, 0xce, 0xa9, 0x34, 0x58, 0x32, 0x91, 0x06, 0x3c,
|
||||
0x33, 0xd9, 0x12, 0x33, 0xd9, 0x1a, 0xc5, 0xbc, 0x6a, 0x6b, 0x97, 0xf3, 0xda, 0x4e, 0x3e, 0x97,
|
||||
0xc9, 0xcb, 0xf9, 0xdc, 0xce, 0xcd, 0x4c, 0xbe, 0xb0, 0xad, 0x69, 0x5a, 0x26, 0xaf, 0x33, 0x28,
|
||||
0xba, 0x0a, 0x71, 0xab, 0x46, 0xcf, 0xd5, 0x32, 0x53, 0xf1, 0xc1, 0xbf, 0x7f, 0xfe, 0x86, 0xbe,
|
||||
0xc4, 0x62, 0x25, 0x93, 0x4a, 0x4c, 0x1c, 0xc3, 0x23, 0x8f, 0xdd, 0x80, 0x22, 0x13, 0x23, 0x48,
|
||||
0xe8, 0x84, 0x4b, 0xa6, 0xb8, 0x03, 0xc9, 0x3e, 0xa1, 0xd0, 0x32, 0xc4, 0xaa, 0xb8, 0x19, 0x1e,
|
||||
0xbd, 0x4e, 0x1f, 0xd1, 0xbb, 0xb0, 0xd8, 0x30, 0xec, 0x7a, 0x74, 0xd0, 0x7a, 0xf8, 0xb2, 0xbb,
|
||||
0x70, 0x93, 0x2b, 0xc6, 0x41, 0x20, 0x6e, 0xdd, 0x2f, 0x63, 0x49, 0x06, 0xd4, 0xd3, 0xff, 0x01,
|
||||
0x0e, 0x0c, 0xd3, 0x08, 0x0c, 0x74, 0x65, 0xa8, 0x64, 0xbb, 0x45, 0xfa, 0x67, 0x0c, 0x56, 0xbe,
|
||||
0xf6, 0xcc, 0x21, 0xef, 0xcd, 0x57, 0xe1, 0xe8, 0x16, 0x24, 0xeb, 0x2c, 0x97, 0xb5, 0x2d, 0xc6,
|
||||
0x2a, 0x99, 0x15, 0x95, 0xb0, 0xb3, 0x29, 0x9d, 0xce, 0xa6, 0x7c, 0x46, 0x3b, 0xdb, 0x03, 0x83,
|
||||
0x54, 0x75, 0x08, 0xe1, 0xf4, 0xb9, 0x6b, 0xda, 0xd8, 0x6b, 0x99, 0x96, 0x9f, 0xd7, 0xb4, 0x8b,
|
||||
0x33, 0x4c, 0x3b, 0x22, 0xc2, 0xff, 0x63, 0x5a, 0x39, 0xb2, 0x9a, 0xc0, 0xac, 0xb6, 0x3a, 0xc3,
|
||||
0x66, 0xaf, 0x61, 0x09, 0x6a, 0x84, 0xde, 0x9e, 0x66, 0x1b, 0x61, 0x17, 0x56, 0xf6, 0xb0, 0x8d,
|
||||
0xff, 0x8d, 0x0f, 0xe8, 0xaf, 0x7a, 0xb9, 0xb3, 0x7f, 0xf5, 0x13, 0x07, 0xab, 0x9d, 0x16, 0xfb,
|
||||
0x45, 0x67, 0x18, 0x91, 0x0b, 0x7a, 0xef, 0xbf, 0x9f, 0x0e, 0xd2, 0xf7, 0x1c, 0x88, 0xe3, 0x78,
|
||||
0x45, 0x33, 0xe0, 0x53, 0x80, 0xee, 0xe8, 0xec, 0x0c, 0x82, 0x8d, 0x41, 0x3f, 0xf5, 0x46, 0x6b,
|
||||
0x37, 0x5f, 0xef, 0x4b, 0x9a, 0x77, 0x22, 0x64, 0x7f, 0x58, 0x82, 0x24, 0x65, 0xf1, 0x30, 0xbc,
|
||||
0x69, 0x20, 0x1f, 0x62, 0xf7, 0x70, 0x80, 0xae, 0x4d, 0x74, 0xef, 0xe0, 0x84, 0x16, 0xa7, 0xcf,
|
||||
0x27, 0xe9, 0xc3, 0x67, 0x7f, 0xfc, 0xf5, 0x7c, 0x61, 0x0d, 0xbd, 0x3f, 0x7c, 0x73, 0x20, 0xea,
|
||||
0x93, 0x48, 0xfb, 0xa7, 0xe8, 0x04, 0x78, 0x2a, 0x06, 0xba, 0x3e, 0x71, 0xad, 0xe1, 0xe1, 0x2e,
|
||||
0xa6, 0xe7, 0x81, 0x86, 0x6a, 0x4a, 0xab, 0x8c, 0xc3, 0x3b, 0x68, 0x65, 0x84, 0x03, 0x7a, 0xce,
|
||||
0x81, 0x10, 0xf6, 0x30, 0x94, 0x9e, 0x7f, 0xc8, 0x88, 0xb3, 0xcf, 0x42, 0xda, 0x3d, 0x7b, 0x91,
|
||||
0x16, 0xc7, 0x36, 0x48, 0x9e, 0xbe, 0x31, 0x4a, 0xef, 0x49, 0xa3, 0x94, 0x76, 0xb9, 0x34, 0xfa,
|
||||
0x99, 0x03, 0x21, 0x2c, 0xa8, 0x29, 0xac, 0x46, 0xba, 0xc8, 0x3c, 0xac, 0xf6, 0x42, 0x56, 0x63,
|
||||
0xaa, 0xb5, 0xc7, 0x6a, 0x3d, 0x3b, 0xed, 0xb0, 0x28, 0xbf, 0x5f, 0x39, 0x10, 0xc2, 0x2a, 0x9c,
|
||||
0xc2, 0x6f, 0xa4, 0xc4, 0xe7, 0xe1, 0xa7, 0x9f, 0xbd, 0x48, 0xdf, 0x18, 0x5b, 0xe2, 0x97, 0x87,
|
||||
0x5b, 0xfd, 0x7e, 0xcd, 0x0b, 0x9a, 0xa1, 0xbb, 0xd2, 0x53, 0xdd, 0xf5, 0x0b, 0x07, 0x97, 0xa8,
|
||||
0x29, 0x7a, 0x75, 0x86, 0xb2, 0x33, 0xdd, 0x33, 0xd2, 0x2c, 0xc4, 0xdc, 0x85, 0x72, 0x22, 0xeb,
|
||||
0x29, 0x8c, 0xe0, 0x16, 0xda, 0x9c, 0x42, 0xb0, 0x77, 0x4b, 0x26, 0xc5, 0xfd, 0x6f, 0xee, 0x56,
|
||||
0xac, 0xe0, 0x71, 0xfd, 0x88, 0xae, 0xaf, 0x86, 0x3f, 0x94, 0xc3, 0xdb, 0x72, 0xc5, 0x95, 0x2b,
|
||||
0xd8, 0x61, 0xdb, 0x57, 0x27, 0x5c, 0xc9, 0x6f, 0x45, 0x8f, 0x47, 0x02, 0x83, 0xe5, 0xfe, 0x09,
|
||||
0x00, 0x00, 0xff, 0xff, 0x64, 0xb4, 0x34, 0x53, 0x5d, 0x0c, 0x00, 0x00,
|
||||
}
|
||||
|
|
23
vendor/github.com/yandex-cloud/go-genproto/yandex/cloud/compute/v1/disk_type.pb.go
generated
vendored
23
vendor/github.com/yandex-cloud/go-genproto/yandex/cloud/compute/v1/disk_type.pb.go
generated
vendored
|
@ -1,11 +1,13 @@
|
|||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// source: yandex/cloud/compute/v1/disk_type.proto
|
||||
|
||||
package compute // import "github.com/yandex-cloud/go-genproto/yandex/cloud/compute/v1"
|
||||
package compute
|
||||
|
||||
import proto "github.com/golang/protobuf/proto"
|
||||
import fmt "fmt"
|
||||
import math "math"
|
||||
import (
|
||||
fmt "fmt"
|
||||
proto "github.com/golang/protobuf/proto"
|
||||
math "math"
|
||||
)
|
||||
|
||||
// Reference imports to suppress errors if they are not otherwise used.
|
||||
var _ = proto.Marshal
|
||||
|
@ -16,7 +18,7 @@ var _ = math.Inf
|
|||
// is compatible with the proto package it is being compiled against.
|
||||
// A compilation error at this line likely means your copy of the
|
||||
// proto package needs to be updated.
|
||||
const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
|
||||
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
|
||||
|
||||
type DiskType struct {
|
||||
// ID of the disk type.
|
||||
|
@ -34,16 +36,17 @@ func (m *DiskType) Reset() { *m = DiskType{} }
|
|||
func (m *DiskType) String() string { return proto.CompactTextString(m) }
|
||||
func (*DiskType) ProtoMessage() {}
|
||||
func (*DiskType) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_disk_type_5be272c1e4d4338f, []int{0}
|
||||
return fileDescriptor_1766b4de885b3ba4, []int{0}
|
||||
}
|
||||
|
||||
func (m *DiskType) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_DiskType.Unmarshal(m, b)
|
||||
}
|
||||
func (m *DiskType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_DiskType.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *DiskType) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_DiskType.Merge(dst, src)
|
||||
func (m *DiskType) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_DiskType.Merge(m, src)
|
||||
}
|
||||
func (m *DiskType) XXX_Size() int {
|
||||
return xxx_messageInfo_DiskType.Size(m)
|
||||
|
@ -80,10 +83,10 @@ func init() {
|
|||
}
|
||||
|
||||
func init() {
|
||||
proto.RegisterFile("yandex/cloud/compute/v1/disk_type.proto", fileDescriptor_disk_type_5be272c1e4d4338f)
|
||||
proto.RegisterFile("yandex/cloud/compute/v1/disk_type.proto", fileDescriptor_1766b4de885b3ba4)
|
||||
}
|
||||
|
||||
var fileDescriptor_disk_type_5be272c1e4d4338f = []byte{
|
||||
var fileDescriptor_1766b4de885b3ba4 = []byte{
|
||||
// 190 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x52, 0xaf, 0x4c, 0xcc, 0x4b,
|
||||
0x49, 0xad, 0xd0, 0x4f, 0xce, 0xc9, 0x2f, 0x4d, 0xd1, 0x4f, 0xce, 0xcf, 0x2d, 0x28, 0x2d, 0x49,
|
||||
|
|
121
vendor/github.com/yandex-cloud/go-genproto/yandex/cloud/compute/v1/disk_type_service.pb.go
generated
vendored
121
vendor/github.com/yandex-cloud/go-genproto/yandex/cloud/compute/v1/disk_type_service.pb.go
generated
vendored
|
@ -1,17 +1,18 @@
|
|||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// source: yandex/cloud/compute/v1/disk_type_service.proto
|
||||
|
||||
package compute // import "github.com/yandex-cloud/go-genproto/yandex/cloud/compute/v1"
|
||||
|
||||
import proto "github.com/golang/protobuf/proto"
|
||||
import fmt "fmt"
|
||||
import math "math"
|
||||
import _ "github.com/yandex-cloud/go-genproto/yandex/cloud/validation"
|
||||
import _ "google.golang.org/genproto/googleapis/api/annotations"
|
||||
package compute
|
||||
|
||||
import (
|
||||
context "golang.org/x/net/context"
|
||||
context "context"
|
||||
fmt "fmt"
|
||||
proto "github.com/golang/protobuf/proto"
|
||||
_ "github.com/yandex-cloud/go-genproto/yandex/cloud/validation"
|
||||
_ "google.golang.org/genproto/googleapis/api/annotations"
|
||||
grpc "google.golang.org/grpc"
|
||||
codes "google.golang.org/grpc/codes"
|
||||
status "google.golang.org/grpc/status"
|
||||
math "math"
|
||||
)
|
||||
|
||||
// Reference imports to suppress errors if they are not otherwise used.
|
||||
|
@ -23,7 +24,7 @@ var _ = math.Inf
|
|||
// is compatible with the proto package it is being compiled against.
|
||||
// A compilation error at this line likely means your copy of the
|
||||
// proto package needs to be updated.
|
||||
const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
|
||||
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
|
||||
|
||||
type GetDiskTypeRequest struct {
|
||||
// ID of the disk type to return information about.
|
||||
|
@ -38,16 +39,17 @@ func (m *GetDiskTypeRequest) Reset() { *m = GetDiskTypeRequest{} }
|
|||
func (m *GetDiskTypeRequest) String() string { return proto.CompactTextString(m) }
|
||||
func (*GetDiskTypeRequest) ProtoMessage() {}
|
||||
func (*GetDiskTypeRequest) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_disk_type_service_42656155dbce67c7, []int{0}
|
||||
return fileDescriptor_0433b2f525f69d83, []int{0}
|
||||
}
|
||||
|
||||
func (m *GetDiskTypeRequest) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GetDiskTypeRequest.Unmarshal(m, b)
|
||||
}
|
||||
func (m *GetDiskTypeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_GetDiskTypeRequest.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *GetDiskTypeRequest) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_GetDiskTypeRequest.Merge(dst, src)
|
||||
func (m *GetDiskTypeRequest) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_GetDiskTypeRequest.Merge(m, src)
|
||||
}
|
||||
func (m *GetDiskTypeRequest) XXX_Size() int {
|
||||
return xxx_messageInfo_GetDiskTypeRequest.Size(m)
|
||||
|
@ -83,16 +85,17 @@ func (m *ListDiskTypesRequest) Reset() { *m = ListDiskTypesRequest{} }
|
|||
func (m *ListDiskTypesRequest) String() string { return proto.CompactTextString(m) }
|
||||
func (*ListDiskTypesRequest) ProtoMessage() {}
|
||||
func (*ListDiskTypesRequest) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_disk_type_service_42656155dbce67c7, []int{1}
|
||||
return fileDescriptor_0433b2f525f69d83, []int{1}
|
||||
}
|
||||
|
||||
func (m *ListDiskTypesRequest) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_ListDiskTypesRequest.Unmarshal(m, b)
|
||||
}
|
||||
func (m *ListDiskTypesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_ListDiskTypesRequest.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *ListDiskTypesRequest) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_ListDiskTypesRequest.Merge(dst, src)
|
||||
func (m *ListDiskTypesRequest) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_ListDiskTypesRequest.Merge(m, src)
|
||||
}
|
||||
func (m *ListDiskTypesRequest) XXX_Size() int {
|
||||
return xxx_messageInfo_ListDiskTypesRequest.Size(m)
|
||||
|
@ -136,16 +139,17 @@ func (m *ListDiskTypesResponse) Reset() { *m = ListDiskTypesResponse{} }
|
|||
func (m *ListDiskTypesResponse) String() string { return proto.CompactTextString(m) }
|
||||
func (*ListDiskTypesResponse) ProtoMessage() {}
|
||||
func (*ListDiskTypesResponse) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_disk_type_service_42656155dbce67c7, []int{2}
|
||||
return fileDescriptor_0433b2f525f69d83, []int{2}
|
||||
}
|
||||
|
||||
func (m *ListDiskTypesResponse) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_ListDiskTypesResponse.Unmarshal(m, b)
|
||||
}
|
||||
func (m *ListDiskTypesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_ListDiskTypesResponse.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *ListDiskTypesResponse) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_ListDiskTypesResponse.Merge(dst, src)
|
||||
func (m *ListDiskTypesResponse) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_ListDiskTypesResponse.Merge(m, src)
|
||||
}
|
||||
func (m *ListDiskTypesResponse) XXX_Size() int {
|
||||
return xxx_messageInfo_ListDiskTypesResponse.Size(m)
|
||||
|
@ -176,6 +180,41 @@ func init() {
|
|||
proto.RegisterType((*ListDiskTypesResponse)(nil), "yandex.cloud.compute.v1.ListDiskTypesResponse")
|
||||
}
|
||||
|
||||
func init() {
|
||||
proto.RegisterFile("yandex/cloud/compute/v1/disk_type_service.proto", fileDescriptor_0433b2f525f69d83)
|
||||
}
|
||||
|
||||
var fileDescriptor_0433b2f525f69d83 = []byte{
|
||||
// 427 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x93, 0xcf, 0xaa, 0xd3, 0x40,
|
||||
0x14, 0xc6, 0x49, 0x7b, 0xbd, 0x98, 0xa3, 0x72, 0x61, 0xf0, 0x72, 0x4b, 0xf0, 0xc2, 0x35, 0x48,
|
||||
0x5b, 0xd0, 0x66, 0x9a, 0xba, 0xb4, 0x82, 0x54, 0xa5, 0x08, 0x2e, 0x24, 0xed, 0xca, 0x4d, 0x48,
|
||||
0x9b, 0x43, 0x1c, 0x5a, 0x67, 0x62, 0x67, 0x12, 0xda, 0x8a, 0x0b, 0xff, 0xac, 0xdc, 0xba, 0xf7,
|
||||
0x75, 0xea, 0xde, 0x57, 0x70, 0xe1, 0x33, 0xb8, 0x92, 0x4c, 0x92, 0xaa, 0xb5, 0xa1, 0x77, 0x17,
|
||||
0x72, 0xbe, 0xef, 0x9c, 0xdf, 0x9c, 0x6f, 0x06, 0xe8, 0x2a, 0xe0, 0x21, 0x2e, 0xe9, 0x74, 0x2e,
|
||||
0x92, 0x90, 0x4e, 0xc5, 0xeb, 0x38, 0x51, 0x48, 0x53, 0x97, 0x86, 0x4c, 0xce, 0x7c, 0xb5, 0x8a,
|
||||
0xd1, 0x97, 0xb8, 0x48, 0xd9, 0x14, 0x9d, 0x78, 0x21, 0x94, 0x20, 0x67, 0xb9, 0xc1, 0xd1, 0x06,
|
||||
0xa7, 0x30, 0x38, 0xa9, 0x6b, 0xdd, 0x8a, 0x84, 0x88, 0xe6, 0x48, 0x83, 0x98, 0xd1, 0x80, 0x73,
|
||||
0xa1, 0x02, 0xc5, 0x04, 0x97, 0xb9, 0xcd, 0x6a, 0x1d, 0x9c, 0x53, 0x08, 0xcf, 0xff, 0x11, 0xa6,
|
||||
0xc1, 0x9c, 0x85, 0xba, 0x51, 0x5e, 0xb6, 0xfb, 0x40, 0x86, 0xa8, 0x9e, 0x30, 0x39, 0x1b, 0xaf,
|
||||
0x62, 0xf4, 0xf0, 0x4d, 0x82, 0x52, 0x91, 0x26, 0x5c, 0xff, 0xc3, 0xcb, 0xc2, 0x86, 0x71, 0x61,
|
||||
0xb4, 0xcd, 0xc1, 0xd1, 0xcf, 0x8d, 0x6b, 0x78, 0x10, 0x16, 0xe2, 0x67, 0xa1, 0xcd, 0xe0, 0xe6,
|
||||
0x73, 0x26, 0xb7, 0x76, 0x59, 0xfa, 0x5b, 0x60, 0xc6, 0x41, 0x84, 0xbe, 0x64, 0x6b, 0xd4, 0xe6,
|
||||
0xfa, 0x00, 0x7e, 0x6d, 0xdc, 0xe3, 0xfe, 0x43, 0xb7, 0xdb, 0xed, 0x7a, 0x57, 0xb3, 0xe2, 0x88,
|
||||
0xad, 0x91, 0xb4, 0x01, 0xb4, 0x50, 0x89, 0x19, 0xf2, 0x46, 0x4d, 0x8f, 0x31, 0x3f, 0x7f, 0x73,
|
||||
0xaf, 0x68, 0xa5, 0xa7, 0xbb, 0x8c, 0xb3, 0x9a, 0xfd, 0xde, 0x80, 0xd3, 0x9d, 0x59, 0x32, 0x16,
|
||||
0x5c, 0x22, 0x79, 0x04, 0xb0, 0x85, 0x95, 0x0d, 0xe3, 0xa2, 0xde, 0xbe, 0xd6, 0xbb, 0xed, 0x54,
|
||||
0xac, 0xd5, 0xd9, 0x1e, 0xd5, 0x2c, 0xcf, 0x21, 0x49, 0x13, 0x4e, 0x38, 0x2e, 0x95, 0xbf, 0x8b,
|
||||
0xe2, 0xdd, 0xc8, 0x7e, 0xbf, 0x28, 0x19, 0x7a, 0x5f, 0x6b, 0x70, 0x52, 0xfa, 0x47, 0x79, 0x8a,
|
||||
0xe4, 0xa3, 0x01, 0xf5, 0x21, 0x2a, 0x72, 0xb7, 0x72, 0xe2, 0xff, 0xfb, 0xb5, 0x0e, 0xe3, 0xd9,
|
||||
0xf7, 0x3e, 0x7c, 0xff, 0xf1, 0xa5, 0xd6, 0x24, 0x77, 0x76, 0xc3, 0xd5, 0xc8, 0xf4, 0xed, 0xdf,
|
||||
0xf9, 0xbc, 0x23, 0x9f, 0x0c, 0x38, 0xca, 0xb6, 0x43, 0x3a, 0x95, 0x9d, 0xf7, 0x05, 0x65, 0x39,
|
||||
0x97, 0x95, 0xe7, 0xbb, 0xb6, 0xcf, 0x35, 0xd5, 0x19, 0x39, 0xdd, 0x4b, 0x35, 0x78, 0xfa, 0xf2,
|
||||
0x71, 0xc4, 0xd4, 0xab, 0x64, 0x92, 0x75, 0x2a, 0x9e, 0x42, 0x27, 0xbf, 0x79, 0x91, 0xe8, 0x44,
|
||||
0xc8, 0xf5, 0xa5, 0xab, 0x7a, 0x23, 0x0f, 0x8a, 0xcf, 0xc9, 0xb1, 0x96, 0xdd, 0xff, 0x1d, 0x00,
|
||||
0x00, 0xff, 0xff, 0xf1, 0x82, 0x37, 0x5b, 0x4d, 0x03, 0x00, 0x00,
|
||||
}
|
||||
|
||||
// Reference imports to suppress errors if they are not otherwise used.
|
||||
var _ context.Context
|
||||
var _ grpc.ClientConn
|
||||
|
@ -232,6 +271,17 @@ type DiskTypeServiceServer interface {
|
|||
List(context.Context, *ListDiskTypesRequest) (*ListDiskTypesResponse, error)
|
||||
}
|
||||
|
||||
// UnimplementedDiskTypeServiceServer can be embedded to have forward compatible implementations.
|
||||
type UnimplementedDiskTypeServiceServer struct {
|
||||
}
|
||||
|
||||
func (*UnimplementedDiskTypeServiceServer) Get(ctx context.Context, req *GetDiskTypeRequest) (*DiskType, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method Get not implemented")
|
||||
}
|
||||
func (*UnimplementedDiskTypeServiceServer) List(ctx context.Context, req *ListDiskTypesRequest) (*ListDiskTypesResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method List not implemented")
|
||||
}
|
||||
|
||||
func RegisterDiskTypeServiceServer(s *grpc.Server, srv DiskTypeServiceServer) {
|
||||
s.RegisterService(&_DiskTypeService_serviceDesc, srv)
|
||||
}
|
||||
|
@ -288,38 +338,3 @@ var _DiskTypeService_serviceDesc = grpc.ServiceDesc{
|
|||
Streams: []grpc.StreamDesc{},
|
||||
Metadata: "yandex/cloud/compute/v1/disk_type_service.proto",
|
||||
}
|
||||
|
||||
func init() {
|
||||
proto.RegisterFile("yandex/cloud/compute/v1/disk_type_service.proto", fileDescriptor_disk_type_service_42656155dbce67c7)
|
||||
}
|
||||
|
||||
var fileDescriptor_disk_type_service_42656155dbce67c7 = []byte{
|
||||
// 427 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x93, 0xcf, 0xaa, 0xd3, 0x40,
|
||||
0x14, 0xc6, 0x49, 0x7b, 0xbd, 0x98, 0xa3, 0x72, 0x61, 0xf0, 0x72, 0x4b, 0xf0, 0xc2, 0x35, 0x48,
|
||||
0x5b, 0xd0, 0x66, 0x9a, 0xba, 0xb4, 0x82, 0x54, 0xa5, 0x08, 0x2e, 0x24, 0xed, 0xca, 0x4d, 0x48,
|
||||
0x9b, 0x43, 0x1c, 0x5a, 0x67, 0x62, 0x67, 0x12, 0xda, 0x8a, 0x0b, 0xff, 0xac, 0xdc, 0xba, 0xf7,
|
||||
0x75, 0xea, 0xde, 0x57, 0x70, 0xe1, 0x33, 0xb8, 0x92, 0x4c, 0x92, 0xaa, 0xb5, 0xa1, 0x77, 0x17,
|
||||
0x72, 0xbe, 0xef, 0x9c, 0xdf, 0x9c, 0x6f, 0x06, 0xe8, 0x2a, 0xe0, 0x21, 0x2e, 0xe9, 0x74, 0x2e,
|
||||
0x92, 0x90, 0x4e, 0xc5, 0xeb, 0x38, 0x51, 0x48, 0x53, 0x97, 0x86, 0x4c, 0xce, 0x7c, 0xb5, 0x8a,
|
||||
0xd1, 0x97, 0xb8, 0x48, 0xd9, 0x14, 0x9d, 0x78, 0x21, 0x94, 0x20, 0x67, 0xb9, 0xc1, 0xd1, 0x06,
|
||||
0xa7, 0x30, 0x38, 0xa9, 0x6b, 0xdd, 0x8a, 0x84, 0x88, 0xe6, 0x48, 0x83, 0x98, 0xd1, 0x80, 0x73,
|
||||
0xa1, 0x02, 0xc5, 0x04, 0x97, 0xb9, 0xcd, 0x6a, 0x1d, 0x9c, 0x53, 0x08, 0xcf, 0xff, 0x11, 0xa6,
|
||||
0xc1, 0x9c, 0x85, 0xba, 0x51, 0x5e, 0xb6, 0xfb, 0x40, 0x86, 0xa8, 0x9e, 0x30, 0x39, 0x1b, 0xaf,
|
||||
0x62, 0xf4, 0xf0, 0x4d, 0x82, 0x52, 0x91, 0x26, 0x5c, 0xff, 0xc3, 0xcb, 0xc2, 0x86, 0x71, 0x61,
|
||||
0xb4, 0xcd, 0xc1, 0xd1, 0xcf, 0x8d, 0x6b, 0x78, 0x10, 0x16, 0xe2, 0x67, 0xa1, 0xcd, 0xe0, 0xe6,
|
||||
0x73, 0x26, 0xb7, 0x76, 0x59, 0xfa, 0x5b, 0x60, 0xc6, 0x41, 0x84, 0xbe, 0x64, 0x6b, 0xd4, 0xe6,
|
||||
0xfa, 0x00, 0x7e, 0x6d, 0xdc, 0xe3, 0xfe, 0x43, 0xb7, 0xdb, 0xed, 0x7a, 0x57, 0xb3, 0xe2, 0x88,
|
||||
0xad, 0x91, 0xb4, 0x01, 0xb4, 0x50, 0x89, 0x19, 0xf2, 0x46, 0x4d, 0x8f, 0x31, 0x3f, 0x7f, 0x73,
|
||||
0xaf, 0x68, 0xa5, 0xa7, 0xbb, 0x8c, 0xb3, 0x9a, 0xfd, 0xde, 0x80, 0xd3, 0x9d, 0x59, 0x32, 0x16,
|
||||
0x5c, 0x22, 0x79, 0x04, 0xb0, 0x85, 0x95, 0x0d, 0xe3, 0xa2, 0xde, 0xbe, 0xd6, 0xbb, 0xed, 0x54,
|
||||
0xac, 0xd5, 0xd9, 0x1e, 0xd5, 0x2c, 0xcf, 0x21, 0x49, 0x13, 0x4e, 0x38, 0x2e, 0x95, 0xbf, 0x8b,
|
||||
0xe2, 0xdd, 0xc8, 0x7e, 0xbf, 0x28, 0x19, 0x7a, 0x5f, 0x6b, 0x70, 0x52, 0xfa, 0x47, 0x79, 0x8a,
|
||||
0xe4, 0xa3, 0x01, 0xf5, 0x21, 0x2a, 0x72, 0xb7, 0x72, 0xe2, 0xff, 0xfb, 0xb5, 0x0e, 0xe3, 0xd9,
|
||||
0xf7, 0x3e, 0x7c, 0xff, 0xf1, 0xa5, 0xd6, 0x24, 0x77, 0x76, 0xc3, 0xd5, 0xc8, 0xf4, 0xed, 0xdf,
|
||||
0xf9, 0xbc, 0x23, 0x9f, 0x0c, 0x38, 0xca, 0xb6, 0x43, 0x3a, 0x95, 0x9d, 0xf7, 0x05, 0x65, 0x39,
|
||||
0x97, 0x95, 0xe7, 0xbb, 0xb6, 0xcf, 0x35, 0xd5, 0x19, 0x39, 0xdd, 0x4b, 0x35, 0x78, 0xfa, 0xf2,
|
||||
0x71, 0xc4, 0xd4, 0xab, 0x64, 0x92, 0x75, 0x2a, 0x9e, 0x42, 0x27, 0xbf, 0x79, 0x91, 0xe8, 0x44,
|
||||
0xc8, 0xf5, 0xa5, 0xab, 0x7a, 0x23, 0x0f, 0x8a, 0xcf, 0xc9, 0xb1, 0x96, 0xdd, 0xff, 0x1d, 0x00,
|
||||
0x00, 0xff, 0xff, 0xf1, 0x82, 0x37, 0x5b, 0x4d, 0x03, 0x00, 0x00,
|
||||
}
|
||||
|
|
44
vendor/github.com/yandex-cloud/go-genproto/yandex/cloud/compute/v1/image.pb.go
generated
vendored
44
vendor/github.com/yandex-cloud/go-genproto/yandex/cloud/compute/v1/image.pb.go
generated
vendored
|
@ -1,12 +1,14 @@
|
|||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// source: yandex/cloud/compute/v1/image.proto
|
||||
|
||||
package compute // import "github.com/yandex-cloud/go-genproto/yandex/cloud/compute/v1"
|
||||
package compute
|
||||
|
||||
import proto "github.com/golang/protobuf/proto"
|
||||
import fmt "fmt"
|
||||
import math "math"
|
||||
import timestamp "github.com/golang/protobuf/ptypes/timestamp"
|
||||
import (
|
||||
fmt "fmt"
|
||||
proto "github.com/golang/protobuf/proto"
|
||||
timestamp "github.com/golang/protobuf/ptypes/timestamp"
|
||||
math "math"
|
||||
)
|
||||
|
||||
// Reference imports to suppress errors if they are not otherwise used.
|
||||
var _ = proto.Marshal
|
||||
|
@ -17,7 +19,7 @@ var _ = math.Inf
|
|||
// is compatible with the proto package it is being compiled against.
|
||||
// A compilation error at this line likely means your copy of the
|
||||
// proto package needs to be updated.
|
||||
const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
|
||||
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
|
||||
|
||||
type Image_Status int32
|
||||
|
||||
|
@ -40,6 +42,7 @@ var Image_Status_name = map[int32]string{
|
|||
3: "ERROR",
|
||||
4: "DELETING",
|
||||
}
|
||||
|
||||
var Image_Status_value = map[string]int32{
|
||||
"STATUS_UNSPECIFIED": 0,
|
||||
"CREATING": 1,
|
||||
|
@ -51,8 +54,9 @@ var Image_Status_value = map[string]int32{
|
|||
func (x Image_Status) String() string {
|
||||
return proto.EnumName(Image_Status_name, int32(x))
|
||||
}
|
||||
|
||||
func (Image_Status) EnumDescriptor() ([]byte, []int) {
|
||||
return fileDescriptor_image_50f442d51c07b7d7, []int{0, 0}
|
||||
return fileDescriptor_c226a196eae12730, []int{0, 0}
|
||||
}
|
||||
|
||||
type Os_Type int32
|
||||
|
@ -70,6 +74,7 @@ var Os_Type_name = map[int32]string{
|
|||
1: "LINUX",
|
||||
2: "WINDOWS",
|
||||
}
|
||||
|
||||
var Os_Type_value = map[string]int32{
|
||||
"TYPE_UNSPECIFIED": 0,
|
||||
"LINUX": 1,
|
||||
|
@ -79,8 +84,9 @@ var Os_Type_value = map[string]int32{
|
|||
func (x Os_Type) String() string {
|
||||
return proto.EnumName(Os_Type_name, int32(x))
|
||||
}
|
||||
|
||||
func (Os_Type) EnumDescriptor() ([]byte, []int) {
|
||||
return fileDescriptor_image_50f442d51c07b7d7, []int{1, 0}
|
||||
return fileDescriptor_c226a196eae12730, []int{1, 0}
|
||||
}
|
||||
|
||||
// An Image resource.
|
||||
|
@ -128,16 +134,17 @@ func (m *Image) Reset() { *m = Image{} }
|
|||
func (m *Image) String() string { return proto.CompactTextString(m) }
|
||||
func (*Image) ProtoMessage() {}
|
||||
func (*Image) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_image_50f442d51c07b7d7, []int{0}
|
||||
return fileDescriptor_c226a196eae12730, []int{0}
|
||||
}
|
||||
|
||||
func (m *Image) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_Image.Unmarshal(m, b)
|
||||
}
|
||||
func (m *Image) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_Image.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *Image) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_Image.Merge(dst, src)
|
||||
func (m *Image) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_Image.Merge(m, src)
|
||||
}
|
||||
func (m *Image) XXX_Size() int {
|
||||
return xxx_messageInfo_Image.Size(m)
|
||||
|
@ -244,16 +251,17 @@ func (m *Os) Reset() { *m = Os{} }
|
|||
func (m *Os) String() string { return proto.CompactTextString(m) }
|
||||
func (*Os) ProtoMessage() {}
|
||||
func (*Os) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_image_50f442d51c07b7d7, []int{1}
|
||||
return fileDescriptor_c226a196eae12730, []int{1}
|
||||
}
|
||||
|
||||
func (m *Os) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_Os.Unmarshal(m, b)
|
||||
}
|
||||
func (m *Os) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_Os.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *Os) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_Os.Merge(dst, src)
|
||||
func (m *Os) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_Os.Merge(m, src)
|
||||
}
|
||||
func (m *Os) XXX_Size() int {
|
||||
return xxx_messageInfo_Os.Size(m)
|
||||
|
@ -272,18 +280,18 @@ func (m *Os) GetType() Os_Type {
|
|||
}
|
||||
|
||||
func init() {
|
||||
proto.RegisterEnum("yandex.cloud.compute.v1.Image_Status", Image_Status_name, Image_Status_value)
|
||||
proto.RegisterEnum("yandex.cloud.compute.v1.Os_Type", Os_Type_name, Os_Type_value)
|
||||
proto.RegisterType((*Image)(nil), "yandex.cloud.compute.v1.Image")
|
||||
proto.RegisterMapType((map[string]string)(nil), "yandex.cloud.compute.v1.Image.LabelsEntry")
|
||||
proto.RegisterType((*Os)(nil), "yandex.cloud.compute.v1.Os")
|
||||
proto.RegisterEnum("yandex.cloud.compute.v1.Image_Status", Image_Status_name, Image_Status_value)
|
||||
proto.RegisterEnum("yandex.cloud.compute.v1.Os_Type", Os_Type_name, Os_Type_value)
|
||||
}
|
||||
|
||||
func init() {
|
||||
proto.RegisterFile("yandex/cloud/compute/v1/image.proto", fileDescriptor_image_50f442d51c07b7d7)
|
||||
proto.RegisterFile("yandex/cloud/compute/v1/image.proto", fileDescriptor_c226a196eae12730)
|
||||
}
|
||||
|
||||
var fileDescriptor_image_50f442d51c07b7d7 = []byte{
|
||||
var fileDescriptor_c226a196eae12730 = []byte{
|
||||
// 555 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x93, 0xdf, 0x6b, 0x9c, 0x40,
|
||||
0x10, 0xc7, 0xab, 0xf7, 0x23, 0x71, 0x4c, 0x83, 0x2c, 0x21, 0x95, 0xe4, 0x21, 0xf6, 0x4a, 0xe1,
|
||||
|
|
395
vendor/github.com/yandex-cloud/go-genproto/yandex/cloud/compute/v1/image_service.pb.go
generated
vendored
395
vendor/github.com/yandex-cloud/go-genproto/yandex/cloud/compute/v1/image_service.pb.go
generated
vendored
|
@ -1,20 +1,21 @@
|
|||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// source: yandex/cloud/compute/v1/image_service.proto
|
||||
|
||||
package compute // import "github.com/yandex-cloud/go-genproto/yandex/cloud/compute/v1"
|
||||
|
||||
import proto "github.com/golang/protobuf/proto"
|
||||
import fmt "fmt"
|
||||
import math "math"
|
||||
import _ "github.com/yandex-cloud/go-genproto/yandex/api"
|
||||
import operation "github.com/yandex-cloud/go-genproto/yandex/cloud/operation"
|
||||
import _ "github.com/yandex-cloud/go-genproto/yandex/cloud/validation"
|
||||
import _ "google.golang.org/genproto/googleapis/api/annotations"
|
||||
import field_mask "google.golang.org/genproto/protobuf/field_mask"
|
||||
package compute
|
||||
|
||||
import (
|
||||
context "golang.org/x/net/context"
|
||||
context "context"
|
||||
fmt "fmt"
|
||||
proto "github.com/golang/protobuf/proto"
|
||||
_ "github.com/yandex-cloud/go-genproto/yandex/api"
|
||||
operation "github.com/yandex-cloud/go-genproto/yandex/cloud/operation"
|
||||
_ "github.com/yandex-cloud/go-genproto/yandex/cloud/validation"
|
||||
_ "google.golang.org/genproto/googleapis/api/annotations"
|
||||
field_mask "google.golang.org/genproto/protobuf/field_mask"
|
||||
grpc "google.golang.org/grpc"
|
||||
codes "google.golang.org/grpc/codes"
|
||||
status "google.golang.org/grpc/status"
|
||||
math "math"
|
||||
)
|
||||
|
||||
// Reference imports to suppress errors if they are not otherwise used.
|
||||
|
@ -26,7 +27,7 @@ var _ = math.Inf
|
|||
// is compatible with the proto package it is being compiled against.
|
||||
// A compilation error at this line likely means your copy of the
|
||||
// proto package needs to be updated.
|
||||
const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
|
||||
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
|
||||
|
||||
type GetImageRequest struct {
|
||||
// ID of the Image resource to return.
|
||||
|
@ -41,16 +42,17 @@ func (m *GetImageRequest) Reset() { *m = GetImageRequest{} }
|
|||
func (m *GetImageRequest) String() string { return proto.CompactTextString(m) }
|
||||
func (*GetImageRequest) ProtoMessage() {}
|
||||
func (*GetImageRequest) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_image_service_bc437c5b9fae1fa8, []int{0}
|
||||
return fileDescriptor_9ecf47590268c610, []int{0}
|
||||
}
|
||||
|
||||
func (m *GetImageRequest) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GetImageRequest.Unmarshal(m, b)
|
||||
}
|
||||
func (m *GetImageRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_GetImageRequest.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *GetImageRequest) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_GetImageRequest.Merge(dst, src)
|
||||
func (m *GetImageRequest) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_GetImageRequest.Merge(m, src)
|
||||
}
|
||||
func (m *GetImageRequest) XXX_Size() int {
|
||||
return xxx_messageInfo_GetImageRequest.Size(m)
|
||||
|
@ -83,16 +85,17 @@ func (m *GetImageLatestByFamilyRequest) Reset() { *m = GetImageLatestByF
|
|||
func (m *GetImageLatestByFamilyRequest) String() string { return proto.CompactTextString(m) }
|
||||
func (*GetImageLatestByFamilyRequest) ProtoMessage() {}
|
||||
func (*GetImageLatestByFamilyRequest) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_image_service_bc437c5b9fae1fa8, []int{1}
|
||||
return fileDescriptor_9ecf47590268c610, []int{1}
|
||||
}
|
||||
|
||||
func (m *GetImageLatestByFamilyRequest) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_GetImageLatestByFamilyRequest.Unmarshal(m, b)
|
||||
}
|
||||
func (m *GetImageLatestByFamilyRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_GetImageLatestByFamilyRequest.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *GetImageLatestByFamilyRequest) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_GetImageLatestByFamilyRequest.Merge(dst, src)
|
||||
func (m *GetImageLatestByFamilyRequest) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_GetImageLatestByFamilyRequest.Merge(m, src)
|
||||
}
|
||||
func (m *GetImageLatestByFamilyRequest) XXX_Size() int {
|
||||
return xxx_messageInfo_GetImageLatestByFamilyRequest.Size(m)
|
||||
|
@ -144,16 +147,17 @@ func (m *ListImagesRequest) Reset() { *m = ListImagesRequest{} }
|
|||
func (m *ListImagesRequest) String() string { return proto.CompactTextString(m) }
|
||||
func (*ListImagesRequest) ProtoMessage() {}
|
||||
func (*ListImagesRequest) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_image_service_bc437c5b9fae1fa8, []int{2}
|
||||
return fileDescriptor_9ecf47590268c610, []int{2}
|
||||
}
|
||||
|
||||
func (m *ListImagesRequest) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_ListImagesRequest.Unmarshal(m, b)
|
||||
}
|
||||
func (m *ListImagesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_ListImagesRequest.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *ListImagesRequest) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_ListImagesRequest.Merge(dst, src)
|
||||
func (m *ListImagesRequest) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_ListImagesRequest.Merge(m, src)
|
||||
}
|
||||
func (m *ListImagesRequest) XXX_Size() int {
|
||||
return xxx_messageInfo_ListImagesRequest.Size(m)
|
||||
|
@ -211,16 +215,17 @@ func (m *ListImagesResponse) Reset() { *m = ListImagesResponse{} }
|
|||
func (m *ListImagesResponse) String() string { return proto.CompactTextString(m) }
|
||||
func (*ListImagesResponse) ProtoMessage() {}
|
||||
func (*ListImagesResponse) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_image_service_bc437c5b9fae1fa8, []int{3}
|
||||
return fileDescriptor_9ecf47590268c610, []int{3}
|
||||
}
|
||||
|
||||
func (m *ListImagesResponse) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_ListImagesResponse.Unmarshal(m, b)
|
||||
}
|
||||
func (m *ListImagesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_ListImagesResponse.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *ListImagesResponse) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_ListImagesResponse.Merge(dst, src)
|
||||
func (m *ListImagesResponse) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_ListImagesResponse.Merge(m, src)
|
||||
}
|
||||
func (m *ListImagesResponse) XXX_Size() int {
|
||||
return xxx_messageInfo_ListImagesResponse.Size(m)
|
||||
|
@ -287,16 +292,17 @@ func (m *CreateImageRequest) Reset() { *m = CreateImageRequest{} }
|
|||
func (m *CreateImageRequest) String() string { return proto.CompactTextString(m) }
|
||||
func (*CreateImageRequest) ProtoMessage() {}
|
||||
func (*CreateImageRequest) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_image_service_bc437c5b9fae1fa8, []int{4}
|
||||
return fileDescriptor_9ecf47590268c610, []int{4}
|
||||
}
|
||||
|
||||
func (m *CreateImageRequest) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_CreateImageRequest.Unmarshal(m, b)
|
||||
}
|
||||
func (m *CreateImageRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_CreateImageRequest.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *CreateImageRequest) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_CreateImageRequest.Merge(dst, src)
|
||||
func (m *CreateImageRequest) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_CreateImageRequest.Merge(m, src)
|
||||
}
|
||||
func (m *CreateImageRequest) XXX_Size() int {
|
||||
return xxx_messageInfo_CreateImageRequest.Size(m)
|
||||
|
@ -426,9 +432,9 @@ func (m *CreateImageRequest) GetOs() *Os {
|
|||
return nil
|
||||
}
|
||||
|
||||
// XXX_OneofFuncs is for the internal use of the proto package.
|
||||
func (*CreateImageRequest) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
|
||||
return _CreateImageRequest_OneofMarshaler, _CreateImageRequest_OneofUnmarshaler, _CreateImageRequest_OneofSizer, []interface{}{
|
||||
// XXX_OneofWrappers is for the internal use of the proto package.
|
||||
func (*CreateImageRequest) XXX_OneofWrappers() []interface{} {
|
||||
return []interface{}{
|
||||
(*CreateImageRequest_ImageId)(nil),
|
||||
(*CreateImageRequest_DiskId)(nil),
|
||||
(*CreateImageRequest_SnapshotId)(nil),
|
||||
|
@ -436,92 +442,6 @@ func (*CreateImageRequest) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Bu
|
|||
}
|
||||
}
|
||||
|
||||
func _CreateImageRequest_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
|
||||
m := msg.(*CreateImageRequest)
|
||||
// source
|
||||
switch x := m.Source.(type) {
|
||||
case *CreateImageRequest_ImageId:
|
||||
b.EncodeVarint(8<<3 | proto.WireBytes)
|
||||
b.EncodeStringBytes(x.ImageId)
|
||||
case *CreateImageRequest_DiskId:
|
||||
b.EncodeVarint(9<<3 | proto.WireBytes)
|
||||
b.EncodeStringBytes(x.DiskId)
|
||||
case *CreateImageRequest_SnapshotId:
|
||||
b.EncodeVarint(10<<3 | proto.WireBytes)
|
||||
b.EncodeStringBytes(x.SnapshotId)
|
||||
case *CreateImageRequest_Uri:
|
||||
b.EncodeVarint(11<<3 | proto.WireBytes)
|
||||
b.EncodeStringBytes(x.Uri)
|
||||
case nil:
|
||||
default:
|
||||
return fmt.Errorf("CreateImageRequest.Source has unexpected type %T", x)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func _CreateImageRequest_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
|
||||
m := msg.(*CreateImageRequest)
|
||||
switch tag {
|
||||
case 8: // source.image_id
|
||||
if wire != proto.WireBytes {
|
||||
return true, proto.ErrInternalBadWireType
|
||||
}
|
||||
x, err := b.DecodeStringBytes()
|
||||
m.Source = &CreateImageRequest_ImageId{x}
|
||||
return true, err
|
||||
case 9: // source.disk_id
|
||||
if wire != proto.WireBytes {
|
||||
return true, proto.ErrInternalBadWireType
|
||||
}
|
||||
x, err := b.DecodeStringBytes()
|
||||
m.Source = &CreateImageRequest_DiskId{x}
|
||||
return true, err
|
||||
case 10: // source.snapshot_id
|
||||
if wire != proto.WireBytes {
|
||||
return true, proto.ErrInternalBadWireType
|
||||
}
|
||||
x, err := b.DecodeStringBytes()
|
||||
m.Source = &CreateImageRequest_SnapshotId{x}
|
||||
return true, err
|
||||
case 11: // source.uri
|
||||
if wire != proto.WireBytes {
|
||||
return true, proto.ErrInternalBadWireType
|
||||
}
|
||||
x, err := b.DecodeStringBytes()
|
||||
m.Source = &CreateImageRequest_Uri{x}
|
||||
return true, err
|
||||
default:
|
||||
return false, nil
|
||||
}
|
||||
}
|
||||
|
||||
func _CreateImageRequest_OneofSizer(msg proto.Message) (n int) {
|
||||
m := msg.(*CreateImageRequest)
|
||||
// source
|
||||
switch x := m.Source.(type) {
|
||||
case *CreateImageRequest_ImageId:
|
||||
n += 1 // tag and wire
|
||||
n += proto.SizeVarint(uint64(len(x.ImageId)))
|
||||
n += len(x.ImageId)
|
||||
case *CreateImageRequest_DiskId:
|
||||
n += 1 // tag and wire
|
||||
n += proto.SizeVarint(uint64(len(x.DiskId)))
|
||||
n += len(x.DiskId)
|
||||
case *CreateImageRequest_SnapshotId:
|
||||
n += 1 // tag and wire
|
||||
n += proto.SizeVarint(uint64(len(x.SnapshotId)))
|
||||
n += len(x.SnapshotId)
|
||||
case *CreateImageRequest_Uri:
|
||||
n += 1 // tag and wire
|
||||
n += proto.SizeVarint(uint64(len(x.Uri)))
|
||||
n += len(x.Uri)
|
||||
case nil:
|
||||
default:
|
||||
panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
|
||||
}
|
||||
return n
|
||||
}
|
||||
|
||||
type CreateImageMetadata struct {
|
||||
// ID of the image that is being created.
|
||||
ImageId string `protobuf:"bytes,1,opt,name=image_id,json=imageId,proto3" json:"image_id,omitempty"`
|
||||
|
@ -534,16 +454,17 @@ func (m *CreateImageMetadata) Reset() { *m = CreateImageMetadata{} }
|
|||
func (m *CreateImageMetadata) String() string { return proto.CompactTextString(m) }
|
||||
func (*CreateImageMetadata) ProtoMessage() {}
|
||||
func (*CreateImageMetadata) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_image_service_bc437c5b9fae1fa8, []int{5}
|
||||
return fileDescriptor_9ecf47590268c610, []int{5}
|
||||
}
|
||||
|
||||
func (m *CreateImageMetadata) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_CreateImageMetadata.Unmarshal(m, b)
|
||||
}
|
||||
func (m *CreateImageMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_CreateImageMetadata.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *CreateImageMetadata) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_CreateImageMetadata.Merge(dst, src)
|
||||
func (m *CreateImageMetadata) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_CreateImageMetadata.Merge(m, src)
|
||||
}
|
||||
func (m *CreateImageMetadata) XXX_Size() int {
|
||||
return xxx_messageInfo_CreateImageMetadata.Size(m)
|
||||
|
@ -587,16 +508,17 @@ func (m *UpdateImageRequest) Reset() { *m = UpdateImageRequest{} }
|
|||
func (m *UpdateImageRequest) String() string { return proto.CompactTextString(m) }
|
||||
func (*UpdateImageRequest) ProtoMessage() {}
|
||||
func (*UpdateImageRequest) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_image_service_bc437c5b9fae1fa8, []int{6}
|
||||
return fileDescriptor_9ecf47590268c610, []int{6}
|
||||
}
|
||||
|
||||
func (m *UpdateImageRequest) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_UpdateImageRequest.Unmarshal(m, b)
|
||||
}
|
||||
func (m *UpdateImageRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_UpdateImageRequest.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *UpdateImageRequest) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_UpdateImageRequest.Merge(dst, src)
|
||||
func (m *UpdateImageRequest) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_UpdateImageRequest.Merge(m, src)
|
||||
}
|
||||
func (m *UpdateImageRequest) XXX_Size() int {
|
||||
return xxx_messageInfo_UpdateImageRequest.Size(m)
|
||||
|
@ -661,16 +583,17 @@ func (m *UpdateImageMetadata) Reset() { *m = UpdateImageMetadata{} }
|
|||
func (m *UpdateImageMetadata) String() string { return proto.CompactTextString(m) }
|
||||
func (*UpdateImageMetadata) ProtoMessage() {}
|
||||
func (*UpdateImageMetadata) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_image_service_bc437c5b9fae1fa8, []int{7}
|
||||
return fileDescriptor_9ecf47590268c610, []int{7}
|
||||
}
|
||||
|
||||
func (m *UpdateImageMetadata) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_UpdateImageMetadata.Unmarshal(m, b)
|
||||
}
|
||||
func (m *UpdateImageMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_UpdateImageMetadata.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *UpdateImageMetadata) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_UpdateImageMetadata.Merge(dst, src)
|
||||
func (m *UpdateImageMetadata) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_UpdateImageMetadata.Merge(m, src)
|
||||
}
|
||||
func (m *UpdateImageMetadata) XXX_Size() int {
|
||||
return xxx_messageInfo_UpdateImageMetadata.Size(m)
|
||||
|
@ -701,16 +624,17 @@ func (m *DeleteImageRequest) Reset() { *m = DeleteImageRequest{} }
|
|||
func (m *DeleteImageRequest) String() string { return proto.CompactTextString(m) }
|
||||
func (*DeleteImageRequest) ProtoMessage() {}
|
||||
func (*DeleteImageRequest) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_image_service_bc437c5b9fae1fa8, []int{8}
|
||||
return fileDescriptor_9ecf47590268c610, []int{8}
|
||||
}
|
||||
|
||||
func (m *DeleteImageRequest) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_DeleteImageRequest.Unmarshal(m, b)
|
||||
}
|
||||
func (m *DeleteImageRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_DeleteImageRequest.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *DeleteImageRequest) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_DeleteImageRequest.Merge(dst, src)
|
||||
func (m *DeleteImageRequest) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_DeleteImageRequest.Merge(m, src)
|
||||
}
|
||||
func (m *DeleteImageRequest) XXX_Size() int {
|
||||
return xxx_messageInfo_DeleteImageRequest.Size(m)
|
||||
|
@ -740,16 +664,17 @@ func (m *DeleteImageMetadata) Reset() { *m = DeleteImageMetadata{} }
|
|||
func (m *DeleteImageMetadata) String() string { return proto.CompactTextString(m) }
|
||||
func (*DeleteImageMetadata) ProtoMessage() {}
|
||||
func (*DeleteImageMetadata) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_image_service_bc437c5b9fae1fa8, []int{9}
|
||||
return fileDescriptor_9ecf47590268c610, []int{9}
|
||||
}
|
||||
|
||||
func (m *DeleteImageMetadata) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_DeleteImageMetadata.Unmarshal(m, b)
|
||||
}
|
||||
func (m *DeleteImageMetadata) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_DeleteImageMetadata.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *DeleteImageMetadata) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_DeleteImageMetadata.Merge(dst, src)
|
||||
func (m *DeleteImageMetadata) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_DeleteImageMetadata.Merge(m, src)
|
||||
}
|
||||
func (m *DeleteImageMetadata) XXX_Size() int {
|
||||
return xxx_messageInfo_DeleteImageMetadata.Size(m)
|
||||
|
@ -786,16 +711,17 @@ func (m *ListImageOperationsRequest) Reset() { *m = ListImageOperationsR
|
|||
func (m *ListImageOperationsRequest) String() string { return proto.CompactTextString(m) }
|
||||
func (*ListImageOperationsRequest) ProtoMessage() {}
|
||||
func (*ListImageOperationsRequest) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_image_service_bc437c5b9fae1fa8, []int{10}
|
||||
return fileDescriptor_9ecf47590268c610, []int{10}
|
||||
}
|
||||
|
||||
func (m *ListImageOperationsRequest) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_ListImageOperationsRequest.Unmarshal(m, b)
|
||||
}
|
||||
func (m *ListImageOperationsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_ListImageOperationsRequest.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *ListImageOperationsRequest) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_ListImageOperationsRequest.Merge(dst, src)
|
||||
func (m *ListImageOperationsRequest) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_ListImageOperationsRequest.Merge(m, src)
|
||||
}
|
||||
func (m *ListImageOperationsRequest) XXX_Size() int {
|
||||
return xxx_messageInfo_ListImageOperationsRequest.Size(m)
|
||||
|
@ -844,16 +770,17 @@ func (m *ListImageOperationsResponse) Reset() { *m = ListImageOperations
|
|||
func (m *ListImageOperationsResponse) String() string { return proto.CompactTextString(m) }
|
||||
func (*ListImageOperationsResponse) ProtoMessage() {}
|
||||
func (*ListImageOperationsResponse) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_image_service_bc437c5b9fae1fa8, []int{11}
|
||||
return fileDescriptor_9ecf47590268c610, []int{11}
|
||||
}
|
||||
|
||||
func (m *ListImageOperationsResponse) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_ListImageOperationsResponse.Unmarshal(m, b)
|
||||
}
|
||||
func (m *ListImageOperationsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_ListImageOperationsResponse.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *ListImageOperationsResponse) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_ListImageOperationsResponse.Merge(dst, src)
|
||||
func (m *ListImageOperationsResponse) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_ListImageOperationsResponse.Merge(m, src)
|
||||
}
|
||||
func (m *ListImageOperationsResponse) XXX_Size() int {
|
||||
return xxx_messageInfo_ListImageOperationsResponse.Size(m)
|
||||
|
@ -895,6 +822,90 @@ func init() {
|
|||
proto.RegisterType((*ListImageOperationsResponse)(nil), "yandex.cloud.compute.v1.ListImageOperationsResponse")
|
||||
}
|
||||
|
||||
func init() {
|
||||
proto.RegisterFile("yandex/cloud/compute/v1/image_service.proto", fileDescriptor_9ecf47590268c610)
|
||||
}
|
||||
|
||||
var fileDescriptor_9ecf47590268c610 = []byte{
|
||||
// 1209 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x57, 0xbf, 0x6f, 0xdb, 0xd6,
|
||||
0x13, 0x0f, 0x2d, 0x89, 0x96, 0x4e, 0xce, 0xaf, 0xf7, 0x4d, 0x10, 0x85, 0x89, 0xbf, 0xb5, 0x69,
|
||||
0x24, 0x91, 0xe5, 0x48, 0x22, 0x65, 0x59, 0x8d, 0x9c, 0x18, 0x45, 0x95, 0x38, 0xb6, 0x00, 0x07,
|
||||
0x29, 0x98, 0x66, 0xa9, 0x11, 0x08, 0xb4, 0xf8, 0xac, 0x10, 0xa2, 0x48, 0x96, 0x8f, 0x12, 0x22,
|
||||
0xbb, 0x59, 0x02, 0x14, 0x28, 0x3c, 0x15, 0x28, 0xd0, 0x76, 0xee, 0x5e, 0x14, 0x30, 0xd0, 0xb1,
|
||||
0x40, 0x3b, 0xd9, 0x73, 0xfa, 0x0f, 0x74, 0xe8, 0x50, 0xa0, 0x5b, 0xc6, 0x4c, 0x05, 0x1f, 0x29,
|
||||
0x99, 0x32, 0xf5, 0x33, 0x69, 0x37, 0x52, 0xf7, 0xb9, 0x7b, 0x1f, 0xde, 0x7d, 0xee, 0xee, 0x09,
|
||||
0x96, 0xda, 0xb2, 0xae, 0xe0, 0x17, 0xd9, 0xaa, 0x66, 0x34, 0x95, 0x6c, 0xd5, 0x68, 0x98, 0x4d,
|
||||
0x1b, 0x67, 0x5b, 0x62, 0x56, 0x6d, 0xc8, 0x35, 0x5c, 0x21, 0xd8, 0x6a, 0xa9, 0x55, 0x9c, 0x31,
|
||||
0x2d, 0xc3, 0x36, 0xd0, 0x15, 0x17, 0x9c, 0xa1, 0xe0, 0x8c, 0x07, 0xce, 0xb4, 0x44, 0xee, 0x7a,
|
||||
0xcd, 0x30, 0x6a, 0x1a, 0xce, 0xca, 0xa6, 0x9a, 0x95, 0x75, 0xdd, 0xb0, 0x65, 0x5b, 0x35, 0x74,
|
||||
0xe2, 0xba, 0x71, 0x73, 0x9e, 0x95, 0xbe, 0xed, 0x34, 0x77, 0xb3, 0xbb, 0x2a, 0xd6, 0x94, 0x4a,
|
||||
0x43, 0x26, 0x75, 0x0f, 0xc1, 0x79, 0x2c, 0x1c, 0x7f, 0xc3, 0xc4, 0x16, 0x75, 0xf7, 0x6c, 0x0b,
|
||||
0x43, 0x19, 0x7a, 0xa0, 0x9b, 0x3d, 0xa0, 0x6e, 0x88, 0x40, 0xb0, 0xd9, 0x1e, 0x5c, 0x4b, 0xd6,
|
||||
0x54, 0xc5, 0x67, 0xe6, 0x57, 0xe1, 0xfc, 0x06, 0xb6, 0xcb, 0x4e, 0x60, 0x09, 0x7f, 0xde, 0xc4,
|
||||
0xc4, 0x46, 0xb7, 0x20, 0xea, 0xa6, 0x42, 0x55, 0x12, 0xcc, 0x1c, 0x93, 0x8c, 0x95, 0x66, 0xfe,
|
||||
0x3a, 0x12, 0x99, 0x83, 0x63, 0x31, 0x7c, 0x6f, 0x6d, 0x45, 0x90, 0xa6, 0xa9, 0xb5, 0xac, 0xf0,
|
||||
0x5f, 0x32, 0x30, 0xdb, 0x71, 0xde, 0x92, 0x6d, 0x4c, 0xec, 0x52, 0xfb, 0xa1, 0xdc, 0x50, 0xb5,
|
||||
0x76, 0x27, 0xd4, 0x22, 0xc4, 0x76, 0x0d, 0x4d, 0xc1, 0xd6, 0xa0, 0x58, 0x51, 0xd7, 0x5c, 0x56,
|
||||
0x50, 0x11, 0xd8, 0x5d, 0xea, 0x9b, 0x98, 0xa2, 0xb8, 0xf9, 0x37, 0x47, 0xe2, 0xec, 0x17, 0xdb,
|
||||
0x72, 0x7a, 0xef, 0xd9, 0x76, 0x5a, 0x4e, 0xef, 0x09, 0xe9, 0xe2, 0xb3, 0x7d, 0xf1, 0x76, 0x41,
|
||||
0x7c, 0xb9, 0xed, 0xbd, 0x49, 0x9e, 0x03, 0xff, 0x33, 0x03, 0x17, 0xb7, 0x54, 0xe2, 0x12, 0x21,
|
||||
0xef, 0x70, 0xf6, 0x2d, 0x88, 0x99, 0xb4, 0xf6, 0xea, 0x1e, 0xa6, 0xc7, 0x87, 0x4a, 0xf0, 0xf6,
|
||||
0x48, 0x64, 0xef, 0xad, 0x89, 0x82, 0x20, 0x48, 0x51, 0xc7, 0xf8, 0x44, 0xdd, 0xc3, 0x28, 0x09,
|
||||
0x40, 0x81, 0xb6, 0x51, 0xc7, 0x7a, 0x22, 0x44, 0x83, 0xc6, 0x0e, 0x8e, 0xc5, 0x08, 0x45, 0x4a,
|
||||
0x34, 0xca, 0xa7, 0x8e, 0x0d, 0xf1, 0xc0, 0xee, 0xaa, 0x9a, 0x8d, 0xad, 0x44, 0x98, 0xa2, 0xe0,
|
||||
0xe0, 0xb8, 0x1b, 0xcf, 0xb3, 0xf0, 0x36, 0x20, 0x3f, 0x6d, 0x62, 0x1a, 0x3a, 0xc1, 0xa8, 0x00,
|
||||
0x2c, 0x4d, 0x30, 0x49, 0x30, 0x73, 0xa1, 0x64, 0x3c, 0xf7, 0xff, 0xcc, 0x00, 0x0d, 0x66, 0xdc,
|
||||
0xaa, 0x79, 0x68, 0x74, 0x13, 0xce, 0xeb, 0xf8, 0x85, 0x5d, 0xf1, 0x11, 0xa4, 0x99, 0x94, 0xce,
|
||||
0x3a, 0x3f, 0x7f, 0xd2, 0x61, 0xc6, 0xff, 0x11, 0x01, 0x74, 0xdf, 0xc2, 0xb2, 0x8d, 0x7b, 0xaa,
|
||||
0x3e, 0x41, 0xba, 0x56, 0x20, 0xac, 0xcb, 0x0d, 0x3c, 0x7e, 0xa1, 0x28, 0x1c, 0x2d, 0x41, 0x5c,
|
||||
0xc1, 0xa4, 0x6a, 0xa9, 0xa6, 0xa3, 0xbf, 0xde, 0xec, 0xe5, 0x56, 0x0a, 0x92, 0xdf, 0x8a, 0xbe,
|
||||
0x66, 0x80, 0xd5, 0xe4, 0x1d, 0xac, 0x91, 0x44, 0x98, 0xa6, 0xe1, 0xc3, 0x81, 0x69, 0x08, 0x7e,
|
||||
0x4c, 0x66, 0x8b, 0x7a, 0xae, 0xeb, 0xb6, 0xd5, 0x2e, 0x7d, 0xf4, 0xe6, 0x48, 0x8c, 0x6f, 0xa7,
|
||||
0x2b, 0x42, 0xba, 0xe8, 0x70, 0x4c, 0xbd, 0xa2, 0x1f, 0x54, 0xc8, 0xbb, 0x1f, 0x56, 0x58, 0x3e,
|
||||
0x3c, 0x16, 0x59, 0x2e, 0x2c, 0xa6, 0xe9, 0x13, 0x42, 0x17, 0xbc, 0x2f, 0xe9, 0xe2, 0x25, 0x8f,
|
||||
0x87, 0x4f, 0xa1, 0x91, 0x09, 0x15, 0x8a, 0xd6, 0xe0, 0x6c, 0x43, 0xd5, 0x2b, 0x8a, 0x4a, 0xea,
|
||||
0xae, 0xc8, 0x58, 0x2a, 0xb2, 0xab, 0x6f, 0x8f, 0xc4, 0xcb, 0x79, 0xb1, 0x98, 0x5f, 0x16, 0xf2,
|
||||
0xe9, 0xfc, 0x72, 0xf1, 0x8e, 0x90, 0x2f, 0xac, 0x88, 0xa2, 0x28, 0xe4, 0xa5, 0x78, 0x43, 0xd5,
|
||||
0x1f, 0xa8, 0xa4, 0x4e, 0x65, 0xb7, 0x08, 0x71, 0xd3, 0x32, 0x94, 0x66, 0xd5, 0xae, 0xa8, 0x0a,
|
||||
0x49, 0x4c, 0xcf, 0x85, 0x92, 0xb1, 0x52, 0xb4, 0x5b, 0x19, 0xf0, 0x8c, 0x65, 0x85, 0xa0, 0x1b,
|
||||
0xbe, 0xe6, 0x8d, 0x52, 0x9a, 0x5d, 0xdc, 0xe6, 0x99, 0x6e, 0xeb, 0xa2, 0x05, 0x98, 0xa6, 0x64,
|
||||
0x54, 0x25, 0x11, 0x0b, 0xa0, 0x58, 0xc7, 0x54, 0x56, 0x9c, 0x82, 0x11, 0x5d, 0x36, 0xc9, 0x73,
|
||||
0xc3, 0x39, 0x37, 0x01, 0x01, 0x20, 0x74, 0xcc, 0x65, 0x05, 0x21, 0x08, 0x35, 0x2d, 0x35, 0x11,
|
||||
0x77, 0x40, 0x9b, 0x67, 0x24, 0xe7, 0x05, 0x2d, 0xc1, 0x94, 0x41, 0x12, 0x33, 0x73, 0x4c, 0x32,
|
||||
0x9e, 0xbb, 0x36, 0xb0, 0x7e, 0x8f, 0x89, 0x34, 0x65, 0x10, 0xae, 0x08, 0x71, 0x5f, 0xd9, 0xd0,
|
||||
0x05, 0x08, 0xd5, 0x71, 0xdb, 0x55, 0xa2, 0xe4, 0x3c, 0xa2, 0x4b, 0x10, 0x69, 0xc9, 0x5a, 0xd3,
|
||||
0xd3, 0x9d, 0xe4, 0xbe, 0xac, 0x4e, 0xdd, 0x61, 0x4a, 0xe7, 0x80, 0x25, 0x46, 0xd3, 0xaa, 0x62,
|
||||
0x14, 0xfe, 0xf5, 0x37, 0x91, 0xe1, 0x05, 0xf8, 0x9f, 0x4f, 0x14, 0x8f, 0xb0, 0x2d, 0x2b, 0xb2,
|
||||
0x2d, 0xa3, 0xab, 0xa7, 0x07, 0xdb, 0xc9, 0x28, 0xfb, 0x3b, 0x04, 0xe8, 0xa9, 0xa9, 0x9c, 0x6e,
|
||||
0x8a, 0x71, 0x47, 0x21, 0xba, 0x0b, 0xf1, 0x26, 0x75, 0xa7, 0x33, 0x9e, 0x32, 0x8c, 0xe7, 0xb8,
|
||||
0x8c, 0xbb, 0x06, 0x32, 0x9d, 0x35, 0x90, 0x79, 0xe8, 0xac, 0x81, 0x47, 0x32, 0xa9, 0x4b, 0xe0,
|
||||
0xc2, 0x9d, 0xe7, 0x6e, 0x3f, 0x85, 0xde, 0xab, 0x9f, 0xc2, 0x43, 0xfb, 0x29, 0xa0, 0xc0, 0xc8,
|
||||
0x44, 0x0a, 0xf4, 0xb5, 0x23, 0x3b, 0xa2, 0x1d, 0x83, 0x69, 0xfc, 0x4f, 0xda, 0xf1, 0x3d, 0xf4,
|
||||
0xe2, 0xe8, 0xc3, 0xc7, 0x72, 0x1c, 0x7d, 0xac, 0x01, 0x7a, 0x80, 0x35, 0xfc, 0x8e, 0xf2, 0x70,
|
||||
0x0e, 0xf4, 0xb9, 0x8f, 0x73, 0xe0, 0xf7, 0x0c, 0x70, 0xdd, 0xe5, 0xf0, 0xb8, 0xb3, 0xd3, 0xc9,
|
||||
0xc4, 0xc2, 0xfc, 0xf7, 0x57, 0x1b, 0xff, 0x15, 0x03, 0xd7, 0xfa, 0x52, 0xf3, 0x16, 0xd8, 0xc7,
|
||||
0x00, 0xdd, 0x4b, 0x48, 0x67, 0x89, 0xcd, 0xf7, 0xca, 0xe5, 0xe4, 0x92, 0xd2, 0xf5, 0x97, 0x7c,
|
||||
0x4e, 0xe3, 0xee, 0xb2, 0xdc, 0x2f, 0x51, 0x98, 0xa1, 0x34, 0x9e, 0xb8, 0xb7, 0x36, 0xd4, 0x82,
|
||||
0xd0, 0x06, 0xb6, 0x51, 0x72, 0xa0, 0x3a, 0x4f, 0x5d, 0x76, 0xb8, 0x11, 0xdb, 0x95, 0xbf, 0xf1,
|
||||
0xea, 0xf7, 0x3f, 0xbf, 0x99, 0xfa, 0x00, 0xcd, 0x06, 0xee, 0x61, 0x24, 0xbb, 0xdf, 0x29, 0xc1,
|
||||
0x4b, 0xf4, 0x2d, 0x03, 0x17, 0x37, 0xb0, 0xdd, 0x7b, 0x0b, 0x42, 0x85, 0x91, 0x34, 0xfa, 0x5e,
|
||||
0x9b, 0x46, 0x92, 0x5a, 0xa4, 0xa4, 0x16, 0xd0, 0x7c, 0x90, 0xd4, 0xaa, 0xd6, 0x4b, 0x61, 0x1f,
|
||||
0xc2, 0x4e, 0xad, 0x50, 0x6a, 0x60, 0xc8, 0xc0, 0xcd, 0x89, 0x5b, 0x1a, 0x0b, 0xeb, 0x56, 0x9b,
|
||||
0xe7, 0x28, 0x97, 0x4b, 0x08, 0x05, 0xb9, 0xa0, 0xef, 0x18, 0x60, 0xdd, 0x41, 0x8c, 0x96, 0x26,
|
||||
0x58, 0xdf, 0xdc, 0x68, 0xb5, 0xf0, 0x6b, 0x87, 0xaf, 0x53, 0xd7, 0xfb, 0x8f, 0xf9, 0x08, 0x7d,
|
||||
0xa5, 0xb4, 0xae, 0xf0, 0x7d, 0x68, 0xad, 0x32, 0x29, 0xf4, 0x03, 0x03, 0xac, 0x3b, 0x02, 0x86,
|
||||
0x30, 0x0b, 0x4e, 0xb2, 0x71, 0x98, 0x6d, 0xba, 0xcc, 0xfa, 0x0d, 0x18, 0x1f, 0x33, 0x3e, 0x37,
|
||||
0x5c, 0x51, 0x0e, 0xc9, 0x9f, 0x18, 0x60, 0xdd, 0xb1, 0x31, 0x84, 0x64, 0x70, 0x2c, 0x8d, 0x43,
|
||||
0xf2, 0xe9, 0xe1, 0xeb, 0xd4, 0xed, 0xfe, 0x43, 0xe9, 0xf2, 0xe9, 0xa5, 0xb5, 0xde, 0x30, 0xed,
|
||||
0xb6, 0xdb, 0x06, 0xa9, 0x11, 0x6d, 0xf0, 0x23, 0x03, 0xe7, 0x1c, 0x8d, 0x9c, 0x4c, 0x05, 0xb4,
|
||||
0x3c, 0x5a, 0x4c, 0x81, 0xf1, 0xc6, 0xe5, 0x27, 0x73, 0xf2, 0xa4, 0x28, 0x50, 0x92, 0x29, 0x94,
|
||||
0x1c, 0x4a, 0xf2, 0xe4, 0x1f, 0x12, 0x29, 0xad, 0x7f, 0x76, 0xbf, 0xa6, 0xda, 0xcf, 0x9b, 0x3b,
|
||||
0xce, 0x11, 0x59, 0xf7, 0xcc, 0xb4, 0xfb, 0x4f, 0xa9, 0x66, 0xa4, 0x6b, 0x58, 0xa7, 0x49, 0xc8,
|
||||
0x0e, 0xf8, 0x3f, 0x76, 0xd7, 0x7b, 0xdc, 0x61, 0x29, 0x6c, 0xf9, 0x9f, 0x00, 0x00, 0x00, 0xff,
|
||||
0xff, 0xad, 0x67, 0x8e, 0x3a, 0x5b, 0x0e, 0x00, 0x00,
|
||||
}
|
||||
|
||||
// Reference imports to suppress errors if they are not otherwise used.
|
||||
var _ context.Context
|
||||
var _ grpc.ClientConn
|
||||
|
@ -1026,6 +1037,32 @@ type ImageServiceServer interface {
|
|||
ListOperations(context.Context, *ListImageOperationsRequest) (*ListImageOperationsResponse, error)
|
||||
}
|
||||
|
||||
// UnimplementedImageServiceServer can be embedded to have forward compatible implementations.
|
||||
type UnimplementedImageServiceServer struct {
|
||||
}
|
||||
|
||||
func (*UnimplementedImageServiceServer) Get(ctx context.Context, req *GetImageRequest) (*Image, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method Get not implemented")
|
||||
}
|
||||
func (*UnimplementedImageServiceServer) GetLatestByFamily(ctx context.Context, req *GetImageLatestByFamilyRequest) (*Image, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method GetLatestByFamily not implemented")
|
||||
}
|
||||
func (*UnimplementedImageServiceServer) List(ctx context.Context, req *ListImagesRequest) (*ListImagesResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method List not implemented")
|
||||
}
|
||||
func (*UnimplementedImageServiceServer) Create(ctx context.Context, req *CreateImageRequest) (*operation.Operation, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method Create not implemented")
|
||||
}
|
||||
func (*UnimplementedImageServiceServer) Update(ctx context.Context, req *UpdateImageRequest) (*operation.Operation, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method Update not implemented")
|
||||
}
|
||||
func (*UnimplementedImageServiceServer) Delete(ctx context.Context, req *DeleteImageRequest) (*operation.Operation, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method Delete not implemented")
|
||||
}
|
||||
func (*UnimplementedImageServiceServer) ListOperations(ctx context.Context, req *ListImageOperationsRequest) (*ListImageOperationsResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method ListOperations not implemented")
|
||||
}
|
||||
|
||||
func RegisterImageServiceServer(s *grpc.Server, srv ImageServiceServer) {
|
||||
s.RegisterService(&_ImageService_serviceDesc, srv)
|
||||
}
|
||||
|
@ -1192,87 +1229,3 @@ var _ImageService_serviceDesc = grpc.ServiceDesc{
|
|||
Streams: []grpc.StreamDesc{},
|
||||
Metadata: "yandex/cloud/compute/v1/image_service.proto",
|
||||
}
|
||||
|
||||
func init() {
|
||||
proto.RegisterFile("yandex/cloud/compute/v1/image_service.proto", fileDescriptor_image_service_bc437c5b9fae1fa8)
|
||||
}
|
||||
|
||||
var fileDescriptor_image_service_bc437c5b9fae1fa8 = []byte{
|
||||
// 1209 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x57, 0xbf, 0x6f, 0xdb, 0xd6,
|
||||
0x13, 0x0f, 0x2d, 0x89, 0x96, 0x4e, 0xce, 0xaf, 0xf7, 0x4d, 0x10, 0x85, 0x89, 0xbf, 0xb5, 0x69,
|
||||
0x24, 0x91, 0xe5, 0x48, 0x22, 0x65, 0x59, 0x8d, 0x9c, 0x18, 0x45, 0x95, 0x38, 0xb6, 0x00, 0x07,
|
||||
0x29, 0x98, 0x66, 0xa9, 0x11, 0x08, 0xb4, 0xf8, 0xac, 0x10, 0xa2, 0x48, 0x96, 0x8f, 0x12, 0x22,
|
||||
0xbb, 0x59, 0x02, 0x14, 0x28, 0x3c, 0x15, 0x28, 0xd0, 0x76, 0xee, 0x5e, 0x14, 0x30, 0xd0, 0xb1,
|
||||
0x40, 0x3b, 0xd9, 0x73, 0xfa, 0x0f, 0x74, 0xe8, 0x50, 0xa0, 0x5b, 0xc6, 0x4c, 0x05, 0x1f, 0x29,
|
||||
0x99, 0x32, 0xf5, 0x33, 0x69, 0x37, 0x52, 0xf7, 0xb9, 0x7b, 0x1f, 0xde, 0x7d, 0xee, 0xee, 0x09,
|
||||
0x96, 0xda, 0xb2, 0xae, 0xe0, 0x17, 0xd9, 0xaa, 0x66, 0x34, 0x95, 0x6c, 0xd5, 0x68, 0x98, 0x4d,
|
||||
0x1b, 0x67, 0x5b, 0x62, 0x56, 0x6d, 0xc8, 0x35, 0x5c, 0x21, 0xd8, 0x6a, 0xa9, 0x55, 0x9c, 0x31,
|
||||
0x2d, 0xc3, 0x36, 0xd0, 0x15, 0x17, 0x9c, 0xa1, 0xe0, 0x8c, 0x07, 0xce, 0xb4, 0x44, 0xee, 0x7a,
|
||||
0xcd, 0x30, 0x6a, 0x1a, 0xce, 0xca, 0xa6, 0x9a, 0x95, 0x75, 0xdd, 0xb0, 0x65, 0x5b, 0x35, 0x74,
|
||||
0xe2, 0xba, 0x71, 0x73, 0x9e, 0x95, 0xbe, 0xed, 0x34, 0x77, 0xb3, 0xbb, 0x2a, 0xd6, 0x94, 0x4a,
|
||||
0x43, 0x26, 0x75, 0x0f, 0xc1, 0x79, 0x2c, 0x1c, 0x7f, 0xc3, 0xc4, 0x16, 0x75, 0xf7, 0x6c, 0x0b,
|
||||
0x43, 0x19, 0x7a, 0xa0, 0x9b, 0x3d, 0xa0, 0x6e, 0x88, 0x40, 0xb0, 0xd9, 0x1e, 0x5c, 0x4b, 0xd6,
|
||||
0x54, 0xc5, 0x67, 0xe6, 0x57, 0xe1, 0xfc, 0x06, 0xb6, 0xcb, 0x4e, 0x60, 0x09, 0x7f, 0xde, 0xc4,
|
||||
0xc4, 0x46, 0xb7, 0x20, 0xea, 0xa6, 0x42, 0x55, 0x12, 0xcc, 0x1c, 0x93, 0x8c, 0x95, 0x66, 0xfe,
|
||||
0x3a, 0x12, 0x99, 0x83, 0x63, 0x31, 0x7c, 0x6f, 0x6d, 0x45, 0x90, 0xa6, 0xa9, 0xb5, 0xac, 0xf0,
|
||||
0x5f, 0x32, 0x30, 0xdb, 0x71, 0xde, 0x92, 0x6d, 0x4c, 0xec, 0x52, 0xfb, 0xa1, 0xdc, 0x50, 0xb5,
|
||||
0x76, 0x27, 0xd4, 0x22, 0xc4, 0x76, 0x0d, 0x4d, 0xc1, 0xd6, 0xa0, 0x58, 0x51, 0xd7, 0x5c, 0x56,
|
||||
0x50, 0x11, 0xd8, 0x5d, 0xea, 0x9b, 0x98, 0xa2, 0xb8, 0xf9, 0x37, 0x47, 0xe2, 0xec, 0x17, 0xdb,
|
||||
0x72, 0x7a, 0xef, 0xd9, 0x76, 0x5a, 0x4e, 0xef, 0x09, 0xe9, 0xe2, 0xb3, 0x7d, 0xf1, 0x76, 0x41,
|
||||
0x7c, 0xb9, 0xed, 0xbd, 0x49, 0x9e, 0x03, 0xff, 0x33, 0x03, 0x17, 0xb7, 0x54, 0xe2, 0x12, 0x21,
|
||||
0xef, 0x70, 0xf6, 0x2d, 0x88, 0x99, 0xb4, 0xf6, 0xea, 0x1e, 0xa6, 0xc7, 0x87, 0x4a, 0xf0, 0xf6,
|
||||
0x48, 0x64, 0xef, 0xad, 0x89, 0x82, 0x20, 0x48, 0x51, 0xc7, 0xf8, 0x44, 0xdd, 0xc3, 0x28, 0x09,
|
||||
0x40, 0x81, 0xb6, 0x51, 0xc7, 0x7a, 0x22, 0x44, 0x83, 0xc6, 0x0e, 0x8e, 0xc5, 0x08, 0x45, 0x4a,
|
||||
0x34, 0xca, 0xa7, 0x8e, 0x0d, 0xf1, 0xc0, 0xee, 0xaa, 0x9a, 0x8d, 0xad, 0x44, 0x98, 0xa2, 0xe0,
|
||||
0xe0, 0xb8, 0x1b, 0xcf, 0xb3, 0xf0, 0x36, 0x20, 0x3f, 0x6d, 0x62, 0x1a, 0x3a, 0xc1, 0xa8, 0x00,
|
||||
0x2c, 0x4d, 0x30, 0x49, 0x30, 0x73, 0xa1, 0x64, 0x3c, 0xf7, 0xff, 0xcc, 0x00, 0x0d, 0x66, 0xdc,
|
||||
0xaa, 0x79, 0x68, 0x74, 0x13, 0xce, 0xeb, 0xf8, 0x85, 0x5d, 0xf1, 0x11, 0xa4, 0x99, 0x94, 0xce,
|
||||
0x3a, 0x3f, 0x7f, 0xd2, 0x61, 0xc6, 0xff, 0x11, 0x01, 0x74, 0xdf, 0xc2, 0xb2, 0x8d, 0x7b, 0xaa,
|
||||
0x3e, 0x41, 0xba, 0x56, 0x20, 0xac, 0xcb, 0x0d, 0x3c, 0x7e, 0xa1, 0x28, 0x1c, 0x2d, 0x41, 0x5c,
|
||||
0xc1, 0xa4, 0x6a, 0xa9, 0xa6, 0xa3, 0xbf, 0xde, 0xec, 0xe5, 0x56, 0x0a, 0x92, 0xdf, 0x8a, 0xbe,
|
||||
0x66, 0x80, 0xd5, 0xe4, 0x1d, 0xac, 0x91, 0x44, 0x98, 0xa6, 0xe1, 0xc3, 0x81, 0x69, 0x08, 0x7e,
|
||||
0x4c, 0x66, 0x8b, 0x7a, 0xae, 0xeb, 0xb6, 0xd5, 0x2e, 0x7d, 0xf4, 0xe6, 0x48, 0x8c, 0x6f, 0xa7,
|
||||
0x2b, 0x42, 0xba, 0xe8, 0x70, 0x4c, 0xbd, 0xa2, 0x1f, 0x54, 0xc8, 0xbb, 0x1f, 0x56, 0x58, 0x3e,
|
||||
0x3c, 0x16, 0x59, 0x2e, 0x2c, 0xa6, 0xe9, 0x13, 0x42, 0x17, 0xbc, 0x2f, 0xe9, 0xe2, 0x25, 0x8f,
|
||||
0x87, 0x4f, 0xa1, 0x91, 0x09, 0x15, 0x8a, 0xd6, 0xe0, 0x6c, 0x43, 0xd5, 0x2b, 0x8a, 0x4a, 0xea,
|
||||
0xae, 0xc8, 0x58, 0x2a, 0xb2, 0xab, 0x6f, 0x8f, 0xc4, 0xcb, 0x79, 0xb1, 0x98, 0x5f, 0x16, 0xf2,
|
||||
0xe9, 0xfc, 0x72, 0xf1, 0x8e, 0x90, 0x2f, 0xac, 0x88, 0xa2, 0x28, 0xe4, 0xa5, 0x78, 0x43, 0xd5,
|
||||
0x1f, 0xa8, 0xa4, 0x4e, 0x65, 0xb7, 0x08, 0x71, 0xd3, 0x32, 0x94, 0x66, 0xd5, 0xae, 0xa8, 0x0a,
|
||||
0x49, 0x4c, 0xcf, 0x85, 0x92, 0xb1, 0x52, 0xb4, 0x5b, 0x19, 0xf0, 0x8c, 0x65, 0x85, 0xa0, 0x1b,
|
||||
0xbe, 0xe6, 0x8d, 0x52, 0x9a, 0x5d, 0xdc, 0xe6, 0x99, 0x6e, 0xeb, 0xa2, 0x05, 0x98, 0xa6, 0x64,
|
||||
0x54, 0x25, 0x11, 0x0b, 0xa0, 0x58, 0xc7, 0x54, 0x56, 0x9c, 0x82, 0x11, 0x5d, 0x36, 0xc9, 0x73,
|
||||
0xc3, 0x39, 0x37, 0x01, 0x01, 0x20, 0x74, 0xcc, 0x65, 0x05, 0x21, 0x08, 0x35, 0x2d, 0x35, 0x11,
|
||||
0x77, 0x40, 0x9b, 0x67, 0x24, 0xe7, 0x05, 0x2d, 0xc1, 0x94, 0x41, 0x12, 0x33, 0x73, 0x4c, 0x32,
|
||||
0x9e, 0xbb, 0x36, 0xb0, 0x7e, 0x8f, 0x89, 0x34, 0x65, 0x10, 0xae, 0x08, 0x71, 0x5f, 0xd9, 0xd0,
|
||||
0x05, 0x08, 0xd5, 0x71, 0xdb, 0x55, 0xa2, 0xe4, 0x3c, 0xa2, 0x4b, 0x10, 0x69, 0xc9, 0x5a, 0xd3,
|
||||
0xd3, 0x9d, 0xe4, 0xbe, 0xac, 0x4e, 0xdd, 0x61, 0x4a, 0xe7, 0x80, 0x25, 0x46, 0xd3, 0xaa, 0x62,
|
||||
0x14, 0xfe, 0xf5, 0x37, 0x91, 0xe1, 0x05, 0xf8, 0x9f, 0x4f, 0x14, 0x8f, 0xb0, 0x2d, 0x2b, 0xb2,
|
||||
0x2d, 0xa3, 0xab, 0xa7, 0x07, 0xdb, 0xc9, 0x28, 0xfb, 0x3b, 0x04, 0xe8, 0xa9, 0xa9, 0x9c, 0x6e,
|
||||
0x8a, 0x71, 0x47, 0x21, 0xba, 0x0b, 0xf1, 0x26, 0x75, 0xa7, 0x33, 0x9e, 0x32, 0x8c, 0xe7, 0xb8,
|
||||
0x8c, 0xbb, 0x06, 0x32, 0x9d, 0x35, 0x90, 0x79, 0xe8, 0xac, 0x81, 0x47, 0x32, 0xa9, 0x4b, 0xe0,
|
||||
0xc2, 0x9d, 0xe7, 0x6e, 0x3f, 0x85, 0xde, 0xab, 0x9f, 0xc2, 0x43, 0xfb, 0x29, 0xa0, 0xc0, 0xc8,
|
||||
0x44, 0x0a, 0xf4, 0xb5, 0x23, 0x3b, 0xa2, 0x1d, 0x83, 0x69, 0xfc, 0x4f, 0xda, 0xf1, 0x3d, 0xf4,
|
||||
0xe2, 0xe8, 0xc3, 0xc7, 0x72, 0x1c, 0x7d, 0xac, 0x01, 0x7a, 0x80, 0x35, 0xfc, 0x8e, 0xf2, 0x70,
|
||||
0x0e, 0xf4, 0xb9, 0x8f, 0x73, 0xe0, 0xf7, 0x0c, 0x70, 0xdd, 0xe5, 0xf0, 0xb8, 0xb3, 0xd3, 0xc9,
|
||||
0xc4, 0xc2, 0xfc, 0xf7, 0x57, 0x1b, 0xff, 0x15, 0x03, 0xd7, 0xfa, 0x52, 0xf3, 0x16, 0xd8, 0xc7,
|
||||
0x00, 0xdd, 0x4b, 0x48, 0x67, 0x89, 0xcd, 0xf7, 0xca, 0xe5, 0xe4, 0x92, 0xd2, 0xf5, 0x97, 0x7c,
|
||||
0x4e, 0xe3, 0xee, 0xb2, 0xdc, 0x2f, 0x51, 0x98, 0xa1, 0x34, 0x9e, 0xb8, 0xb7, 0x36, 0xd4, 0x82,
|
||||
0xd0, 0x06, 0xb6, 0x51, 0x72, 0xa0, 0x3a, 0x4f, 0x5d, 0x76, 0xb8, 0x11, 0xdb, 0x95, 0xbf, 0xf1,
|
||||
0xea, 0xf7, 0x3f, 0xbf, 0x99, 0xfa, 0x00, 0xcd, 0x06, 0xee, 0x61, 0x24, 0xbb, 0xdf, 0x29, 0xc1,
|
||||
0x4b, 0xf4, 0x2d, 0x03, 0x17, 0x37, 0xb0, 0xdd, 0x7b, 0x0b, 0x42, 0x85, 0x91, 0x34, 0xfa, 0x5e,
|
||||
0x9b, 0x46, 0x92, 0x5a, 0xa4, 0xa4, 0x16, 0xd0, 0x7c, 0x90, 0xd4, 0xaa, 0xd6, 0x4b, 0x61, 0x1f,
|
||||
0xc2, 0x4e, 0xad, 0x50, 0x6a, 0x60, 0xc8, 0xc0, 0xcd, 0x89, 0x5b, 0x1a, 0x0b, 0xeb, 0x56, 0x9b,
|
||||
0xe7, 0x28, 0x97, 0x4b, 0x08, 0x05, 0xb9, 0xa0, 0xef, 0x18, 0x60, 0xdd, 0x41, 0x8c, 0x96, 0x26,
|
||||
0x58, 0xdf, 0xdc, 0x68, 0xb5, 0xf0, 0x6b, 0x87, 0xaf, 0x53, 0xd7, 0xfb, 0x8f, 0xf9, 0x08, 0x7d,
|
||||
0xa5, 0xb4, 0xae, 0xf0, 0x7d, 0x68, 0xad, 0x32, 0x29, 0xf4, 0x03, 0x03, 0xac, 0x3b, 0x02, 0x86,
|
||||
0x30, 0x0b, 0x4e, 0xb2, 0x71, 0x98, 0x6d, 0xba, 0xcc, 0xfa, 0x0d, 0x18, 0x1f, 0x33, 0x3e, 0x37,
|
||||
0x5c, 0x51, 0x0e, 0xc9, 0x9f, 0x18, 0x60, 0xdd, 0xb1, 0x31, 0x84, 0x64, 0x70, 0x2c, 0x8d, 0x43,
|
||||
0xf2, 0xe9, 0xe1, 0xeb, 0xd4, 0xed, 0xfe, 0x43, 0xe9, 0xf2, 0xe9, 0xa5, 0xb5, 0xde, 0x30, 0xed,
|
||||
0xb6, 0xdb, 0x06, 0xa9, 0x11, 0x6d, 0xf0, 0x23, 0x03, 0xe7, 0x1c, 0x8d, 0x9c, 0x4c, 0x05, 0xb4,
|
||||
0x3c, 0x5a, 0x4c, 0x81, 0xf1, 0xc6, 0xe5, 0x27, 0x73, 0xf2, 0xa4, 0x28, 0x50, 0x92, 0x29, 0x94,
|
||||
0x1c, 0x4a, 0xf2, 0xe4, 0x1f, 0x12, 0x29, 0xad, 0x7f, 0x76, 0xbf, 0xa6, 0xda, 0xcf, 0x9b, 0x3b,
|
||||
0xce, 0x11, 0x59, 0xf7, 0xcc, 0xb4, 0xfb, 0x4f, 0xa9, 0x66, 0xa4, 0x6b, 0x58, 0xa7, 0x49, 0xc8,
|
||||
0x0e, 0xf8, 0x3f, 0x76, 0xd7, 0x7b, 0xdc, 0x61, 0x29, 0x6c, 0xf9, 0x9f, 0x00, 0x00, 0x00, 0xff,
|
||||
0xff, 0xad, 0x67, 0x8e, 0x3a, 0x5b, 0x0e, 0x00, 0x00,
|
||||
}
|
||||
|
|
251
vendor/github.com/yandex-cloud/go-genproto/yandex/cloud/compute/v1/instance.pb.go
generated
vendored
251
vendor/github.com/yandex-cloud/go-genproto/yandex/cloud/compute/v1/instance.pb.go
generated
vendored
|
@ -1,12 +1,14 @@
|
|||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// source: yandex/cloud/compute/v1/instance.proto
|
||||
|
||||
package compute // import "github.com/yandex-cloud/go-genproto/yandex/cloud/compute/v1"
|
||||
package compute
|
||||
|
||||
import proto "github.com/golang/protobuf/proto"
|
||||
import fmt "fmt"
|
||||
import math "math"
|
||||
import timestamp "github.com/golang/protobuf/ptypes/timestamp"
|
||||
import (
|
||||
fmt "fmt"
|
||||
proto "github.com/golang/protobuf/proto"
|
||||
timestamp "github.com/golang/protobuf/ptypes/timestamp"
|
||||
math "math"
|
||||
)
|
||||
|
||||
// Reference imports to suppress errors if they are not otherwise used.
|
||||
var _ = proto.Marshal
|
||||
|
@ -17,7 +19,7 @@ var _ = math.Inf
|
|||
// is compatible with the proto package it is being compiled against.
|
||||
// A compilation error at this line likely means your copy of the
|
||||
// proto package needs to be updated.
|
||||
const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
|
||||
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
|
||||
|
||||
type IpVersion int32
|
||||
|
||||
|
@ -34,17 +36,19 @@ var IpVersion_name = map[int32]string{
|
|||
1: "IPV4",
|
||||
2: "IPV6",
|
||||
}
|
||||
|
||||
var IpVersion_value = map[string]int32{
|
||||
"IP_VERSION_UNSPECIFIED": 0,
|
||||
"IPV4": 1,
|
||||
"IPV6": 2,
|
||||
"IPV4": 1,
|
||||
"IPV6": 2,
|
||||
}
|
||||
|
||||
func (x IpVersion) String() string {
|
||||
return proto.EnumName(IpVersion_name, int32(x))
|
||||
}
|
||||
|
||||
func (IpVersion) EnumDescriptor() ([]byte, []int) {
|
||||
return fileDescriptor_instance_da800a4f3ac3c9a8, []int{0}
|
||||
return fileDescriptor_212f781fc401ff8e, []int{0}
|
||||
}
|
||||
|
||||
type Instance_Status int32
|
||||
|
@ -86,6 +90,7 @@ var Instance_Status_name = map[int32]string{
|
|||
9: "CRASHED",
|
||||
10: "DELETING",
|
||||
}
|
||||
|
||||
var Instance_Status_value = map[string]int32{
|
||||
"STATUS_UNSPECIFIED": 0,
|
||||
"PROVISIONING": 1,
|
||||
|
@ -103,8 +108,9 @@ var Instance_Status_value = map[string]int32{
|
|||
func (x Instance_Status) String() string {
|
||||
return proto.EnumName(Instance_Status_name, int32(x))
|
||||
}
|
||||
|
||||
func (Instance_Status) EnumDescriptor() ([]byte, []int) {
|
||||
return fileDescriptor_instance_da800a4f3ac3c9a8, []int{0, 0}
|
||||
return fileDescriptor_212f781fc401ff8e, []int{0, 0}
|
||||
}
|
||||
|
||||
type AttachedDisk_Mode int32
|
||||
|
@ -122,6 +128,7 @@ var AttachedDisk_Mode_name = map[int32]string{
|
|||
1: "READ_ONLY",
|
||||
2: "READ_WRITE",
|
||||
}
|
||||
|
||||
var AttachedDisk_Mode_value = map[string]int32{
|
||||
"MODE_UNSPECIFIED": 0,
|
||||
"READ_ONLY": 1,
|
||||
|
@ -131,8 +138,9 @@ var AttachedDisk_Mode_value = map[string]int32{
|
|||
func (x AttachedDisk_Mode) String() string {
|
||||
return proto.EnumName(AttachedDisk_Mode_name, int32(x))
|
||||
}
|
||||
|
||||
func (AttachedDisk_Mode) EnumDescriptor() ([]byte, []int) {
|
||||
return fileDescriptor_instance_da800a4f3ac3c9a8, []int{2, 0}
|
||||
return fileDescriptor_212f781fc401ff8e, []int{2, 0}
|
||||
}
|
||||
|
||||
// An Instance resource. For more information, see [Instances](/docs/compute/concepts/vm).
|
||||
|
@ -172,27 +180,30 @@ type Instance struct {
|
|||
// If the hostname were not specified when the instance was created, FQDN would be `<id>.auto.internal`.
|
||||
Fqdn string `protobuf:"bytes,16,opt,name=fqdn,proto3" json:"fqdn,omitempty"`
|
||||
// Scheduling policy configuration.
|
||||
SchedulingPolicy *SchedulingPolicy `protobuf:"bytes,17,opt,name=scheduling_policy,json=schedulingPolicy,proto3" json:"scheduling_policy,omitempty"`
|
||||
ServiceAccountId string `protobuf:"bytes,18,opt,name=service_account_id,json=serviceAccountId,proto3" json:"service_account_id,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
SchedulingPolicy *SchedulingPolicy `protobuf:"bytes,17,opt,name=scheduling_policy,json=schedulingPolicy,proto3" json:"scheduling_policy,omitempty"`
|
||||
// ID of the service account to use for [authentication inside the instance](/docs/compute/operations/vm-connect/auth-inside-vm).
|
||||
// To get the service account ID, use a [yandex.cloud.iam.v1.ServiceAccountService.List] request.
|
||||
ServiceAccountId string `protobuf:"bytes,18,opt,name=service_account_id,json=serviceAccountId,proto3" json:"service_account_id,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
}
|
||||
|
||||
func (m *Instance) Reset() { *m = Instance{} }
|
||||
func (m *Instance) String() string { return proto.CompactTextString(m) }
|
||||
func (*Instance) ProtoMessage() {}
|
||||
func (*Instance) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_instance_da800a4f3ac3c9a8, []int{0}
|
||||
return fileDescriptor_212f781fc401ff8e, []int{0}
|
||||
}
|
||||
|
||||
func (m *Instance) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_Instance.Unmarshal(m, b)
|
||||
}
|
||||
func (m *Instance) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_Instance.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *Instance) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_Instance.Merge(dst, src)
|
||||
func (m *Instance) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_Instance.Merge(m, src)
|
||||
}
|
||||
func (m *Instance) XXX_Size() int {
|
||||
return xxx_messageInfo_Instance.Size(m)
|
||||
|
@ -329,7 +340,9 @@ type Resources struct {
|
|||
Cores int64 `protobuf:"varint,2,opt,name=cores,proto3" json:"cores,omitempty"`
|
||||
// Baseline level of CPU performance with the ability to burst performance above that baseline level.
|
||||
// This field sets baseline performance for each core.
|
||||
CoreFraction int64 `protobuf:"varint,3,opt,name=core_fraction,json=coreFraction,proto3" json:"core_fraction,omitempty"`
|
||||
CoreFraction int64 `protobuf:"varint,3,opt,name=core_fraction,json=coreFraction,proto3" json:"core_fraction,omitempty"`
|
||||
// The number of GPUs available to the instance.
|
||||
Gpus int64 `protobuf:"varint,4,opt,name=gpus,proto3" json:"gpus,omitempty"`
|
||||
XXX_NoUnkeyedLiteral struct{} `json:"-"`
|
||||
XXX_unrecognized []byte `json:"-"`
|
||||
XXX_sizecache int32 `json:"-"`
|
||||
|
@ -339,16 +352,17 @@ func (m *Resources) Reset() { *m = Resources{} }
|
|||
func (m *Resources) String() string { return proto.CompactTextString(m) }
|
||||
func (*Resources) ProtoMessage() {}
|
||||
func (*Resources) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_instance_da800a4f3ac3c9a8, []int{1}
|
||||
return fileDescriptor_212f781fc401ff8e, []int{1}
|
||||
}
|
||||
|
||||
func (m *Resources) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_Resources.Unmarshal(m, b)
|
||||
}
|
||||
func (m *Resources) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_Resources.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *Resources) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_Resources.Merge(dst, src)
|
||||
func (m *Resources) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_Resources.Merge(m, src)
|
||||
}
|
||||
func (m *Resources) XXX_Size() int {
|
||||
return xxx_messageInfo_Resources.Size(m)
|
||||
|
@ -380,6 +394,13 @@ func (m *Resources) GetCoreFraction() int64 {
|
|||
return 0
|
||||
}
|
||||
|
||||
func (m *Resources) GetGpus() int64 {
|
||||
if m != nil {
|
||||
return m.Gpus
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
type AttachedDisk struct {
|
||||
// Access mode to the Disk resource.
|
||||
Mode AttachedDisk_Mode `protobuf:"varint,1,opt,name=mode,proto3,enum=yandex.cloud.compute.v1.AttachedDisk_Mode" json:"mode,omitempty"`
|
||||
|
@ -401,16 +422,17 @@ func (m *AttachedDisk) Reset() { *m = AttachedDisk{} }
|
|||
func (m *AttachedDisk) String() string { return proto.CompactTextString(m) }
|
||||
func (*AttachedDisk) ProtoMessage() {}
|
||||
func (*AttachedDisk) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_instance_da800a4f3ac3c9a8, []int{2}
|
||||
return fileDescriptor_212f781fc401ff8e, []int{2}
|
||||
}
|
||||
|
||||
func (m *AttachedDisk) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_AttachedDisk.Unmarshal(m, b)
|
||||
}
|
||||
func (m *AttachedDisk) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_AttachedDisk.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *AttachedDisk) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_AttachedDisk.Merge(dst, src)
|
||||
func (m *AttachedDisk) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_AttachedDisk.Merge(m, src)
|
||||
}
|
||||
func (m *AttachedDisk) XXX_Size() int {
|
||||
return xxx_messageInfo_AttachedDisk.Size(m)
|
||||
|
@ -470,16 +492,17 @@ func (m *NetworkInterface) Reset() { *m = NetworkInterface{} }
|
|||
func (m *NetworkInterface) String() string { return proto.CompactTextString(m) }
|
||||
func (*NetworkInterface) ProtoMessage() {}
|
||||
func (*NetworkInterface) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_instance_da800a4f3ac3c9a8, []int{3}
|
||||
return fileDescriptor_212f781fc401ff8e, []int{3}
|
||||
}
|
||||
|
||||
func (m *NetworkInterface) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_NetworkInterface.Unmarshal(m, b)
|
||||
}
|
||||
func (m *NetworkInterface) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_NetworkInterface.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *NetworkInterface) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_NetworkInterface.Merge(dst, src)
|
||||
func (m *NetworkInterface) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_NetworkInterface.Merge(m, src)
|
||||
}
|
||||
func (m *NetworkInterface) XXX_Size() int {
|
||||
return xxx_messageInfo_NetworkInterface.Size(m)
|
||||
|
@ -539,16 +562,17 @@ func (m *PrimaryAddress) Reset() { *m = PrimaryAddress{} }
|
|||
func (m *PrimaryAddress) String() string { return proto.CompactTextString(m) }
|
||||
func (*PrimaryAddress) ProtoMessage() {}
|
||||
func (*PrimaryAddress) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_instance_da800a4f3ac3c9a8, []int{4}
|
||||
return fileDescriptor_212f781fc401ff8e, []int{4}
|
||||
}
|
||||
|
||||
func (m *PrimaryAddress) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_PrimaryAddress.Unmarshal(m, b)
|
||||
}
|
||||
func (m *PrimaryAddress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_PrimaryAddress.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *PrimaryAddress) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_PrimaryAddress.Merge(dst, src)
|
||||
func (m *PrimaryAddress) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_PrimaryAddress.Merge(m, src)
|
||||
}
|
||||
func (m *PrimaryAddress) XXX_Size() int {
|
||||
return xxx_messageInfo_PrimaryAddress.Size(m)
|
||||
|
@ -587,16 +611,17 @@ func (m *OneToOneNat) Reset() { *m = OneToOneNat{} }
|
|||
func (m *OneToOneNat) String() string { return proto.CompactTextString(m) }
|
||||
func (*OneToOneNat) ProtoMessage() {}
|
||||
func (*OneToOneNat) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_instance_da800a4f3ac3c9a8, []int{5}
|
||||
return fileDescriptor_212f781fc401ff8e, []int{5}
|
||||
}
|
||||
|
||||
func (m *OneToOneNat) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_OneToOneNat.Unmarshal(m, b)
|
||||
}
|
||||
func (m *OneToOneNat) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_OneToOneNat.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *OneToOneNat) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_OneToOneNat.Merge(dst, src)
|
||||
func (m *OneToOneNat) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_OneToOneNat.Merge(m, src)
|
||||
}
|
||||
func (m *OneToOneNat) XXX_Size() int {
|
||||
return xxx_messageInfo_OneToOneNat.Size(m)
|
||||
|
@ -633,16 +658,17 @@ func (m *SchedulingPolicy) Reset() { *m = SchedulingPolicy{} }
|
|||
func (m *SchedulingPolicy) String() string { return proto.CompactTextString(m) }
|
||||
func (*SchedulingPolicy) ProtoMessage() {}
|
||||
func (*SchedulingPolicy) Descriptor() ([]byte, []int) {
|
||||
return fileDescriptor_instance_da800a4f3ac3c9a8, []int{6}
|
||||
return fileDescriptor_212f781fc401ff8e, []int{6}
|
||||
}
|
||||
|
||||
func (m *SchedulingPolicy) XXX_Unmarshal(b []byte) error {
|
||||
return xxx_messageInfo_SchedulingPolicy.Unmarshal(m, b)
|
||||
}
|
||||
func (m *SchedulingPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
|
||||
return xxx_messageInfo_SchedulingPolicy.Marshal(b, m, deterministic)
|
||||
}
|
||||
func (dst *SchedulingPolicy) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_SchedulingPolicy.Merge(dst, src)
|
||||
func (m *SchedulingPolicy) XXX_Merge(src proto.Message) {
|
||||
xxx_messageInfo_SchedulingPolicy.Merge(m, src)
|
||||
}
|
||||
func (m *SchedulingPolicy) XXX_Size() int {
|
||||
return xxx_messageInfo_SchedulingPolicy.Size(m)
|
||||
|
@ -661,6 +687,9 @@ func (m *SchedulingPolicy) GetPreemptible() bool {
|
|||
}
|
||||
|
||||
func init() {
|
||||
proto.RegisterEnum("yandex.cloud.compute.v1.IpVersion", IpVersion_name, IpVersion_value)
|
||||
proto.RegisterEnum("yandex.cloud.compute.v1.Instance_Status", Instance_Status_name, Instance_Status_value)
|
||||
proto.RegisterEnum("yandex.cloud.compute.v1.AttachedDisk_Mode", AttachedDisk_Mode_name, AttachedDisk_Mode_value)
|
||||
proto.RegisterType((*Instance)(nil), "yandex.cloud.compute.v1.Instance")
|
||||
proto.RegisterMapType((map[string]string)(nil), "yandex.cloud.compute.v1.Instance.LabelsEntry")
|
||||
proto.RegisterMapType((map[string]string)(nil), "yandex.cloud.compute.v1.Instance.MetadataEntry")
|
||||
|
@ -670,83 +699,81 @@ func init() {
|
|||
proto.RegisterType((*PrimaryAddress)(nil), "yandex.cloud.compute.v1.PrimaryAddress")
|
||||
proto.RegisterType((*OneToOneNat)(nil), "yandex.cloud.compute.v1.OneToOneNat")
|
||||
proto.RegisterType((*SchedulingPolicy)(nil), "yandex.cloud.compute.v1.SchedulingPolicy")
|
||||
proto.RegisterEnum("yandex.cloud.compute.v1.IpVersion", IpVersion_name, IpVersion_value)
|
||||
proto.RegisterEnum("yandex.cloud.compute.v1.Instance_Status", Instance_Status_name, Instance_Status_value)
|
||||
proto.RegisterEnum("yandex.cloud.compute.v1.AttachedDisk_Mode", AttachedDisk_Mode_name, AttachedDisk_Mode_value)
|
||||
}
|
||||
|
||||
func init() {
|
||||
proto.RegisterFile("yandex/cloud/compute/v1/instance.proto", fileDescriptor_instance_da800a4f3ac3c9a8)
|
||||
proto.RegisterFile("yandex/cloud/compute/v1/instance.proto", fileDescriptor_212f781fc401ff8e)
|
||||
}
|
||||
|
||||
var fileDescriptor_instance_da800a4f3ac3c9a8 = []byte{
|
||||
// 1081 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0xeb, 0x6e, 0xe2, 0xc6,
|
||||
0x17, 0xff, 0x73, 0x09, 0xc1, 0x87, 0x84, 0xbf, 0x33, 0x5a, 0x65, 0xad, 0xf4, 0x43, 0x22, 0x7a,
|
||||
0x4b, 0x57, 0x0d, 0x68, 0xd3, 0x28, 0xea, 0x36, 0x52, 0xb5, 0x6c, 0xf0, 0xb6, 0x56, 0x13, 0x40,
|
||||
0x03, 0xa1, 0x97, 0x0f, 0xb5, 0x06, 0xcf, 0xc0, 0xba, 0xc1, 0x1e, 0xd7, 0x33, 0xa6, 0x4d, 0x9f,
|
||||
0xa3, 0x2f, 0x51, 0xa9, 0xcf, 0xd5, 0xe7, 0xa8, 0x66, 0xc6, 0x66, 0x59, 0x24, 0xba, 0xdb, 0x7e,
|
||||
0xe2, 0x5c, 0x7f, 0x67, 0xce, 0xe1, 0x37, 0x67, 0x0c, 0x1f, 0x3d, 0x90, 0x98, 0xb2, 0x5f, 0x3b,
|
||||
0xc1, 0x82, 0x67, 0xb4, 0x13, 0xf0, 0x28, 0xc9, 0x24, 0xeb, 0x2c, 0x9f, 0x76, 0xc2, 0x58, 0x48,
|
||||
0x12, 0x07, 0xac, 0x9d, 0xa4, 0x5c, 0x72, 0xf4, 0xd8, 0xc4, 0xb5, 0x75, 0x5c, 0x3b, 0x8f, 0x6b,
|
||||
0x2f, 0x9f, 0x1e, 0x1d, 0xcf, 0x39, 0x9f, 0x2f, 0x58, 0x47, 0x87, 0x4d, 0xb3, 0x59, 0x47, 0x86,
|
||||
0x11, 0x13, 0x92, 0x44, 0x89, 0xc9, 0x6c, 0xfd, 0x61, 0x41, 0xdd, 0xcb, 0xc1, 0x50, 0x13, 0xca,
|
||||
0x21, 0x75, 0x4a, 0x27, 0xa5, 0x53, 0x0b, 0x97, 0x43, 0x8a, 0xde, 0x03, 0x6b, 0xc6, 0x17, 0x94,
|
||||
0xa5, 0x7e, 0x48, 0x9d, 0xb2, 0x36, 0xd7, 0x8d, 0xc1, 0xa3, 0xe8, 0x19, 0x40, 0x90, 0x32, 0x22,
|
||||
0x19, 0xf5, 0x89, 0x74, 0x2a, 0x27, 0xa5, 0xd3, 0xc6, 0xf9, 0x51, 0xdb, 0xd4, 0x6b, 0x17, 0xf5,
|
||||
0xda, 0xe3, 0xa2, 0x1e, 0xb6, 0xf2, 0xe8, 0xae, 0x44, 0x08, 0xaa, 0x31, 0x89, 0x98, 0x53, 0xd5,
|
||||
0x90, 0x5a, 0x46, 0x27, 0xd0, 0xa0, 0x4c, 0x04, 0x69, 0x98, 0xc8, 0x90, 0xc7, 0xce, 0x8e, 0x76,
|
||||
0xad, 0x9b, 0x90, 0x0b, 0xb5, 0x05, 0x99, 0xb2, 0x85, 0x70, 0x6a, 0x27, 0x95, 0xd3, 0xc6, 0xf9,
|
||||
0x59, 0x7b, 0x4b, 0xd7, 0xed, 0xa2, 0xa1, 0xf6, 0x8d, 0x8e, 0x77, 0x63, 0x99, 0x3e, 0xe0, 0x3c,
|
||||
0x19, 0x3d, 0x86, 0xdd, 0xdf, 0x78, 0xcc, 0x54, 0x4b, 0xbb, 0xba, 0x48, 0x4d, 0xa9, 0x1e, 0x45,
|
||||
0xc7, 0xd0, 0x48, 0x16, 0x44, 0xce, 0x78, 0x1a, 0x29, 0x67, 0x5d, 0x3b, 0xa1, 0x30, 0x79, 0x14,
|
||||
0x3d, 0x07, 0x2b, 0x65, 0x82, 0x67, 0x69, 0xc0, 0x84, 0x63, 0xe9, 0x86, 0x5b, 0x5b, 0xcf, 0x80,
|
||||
0x8b, 0x48, 0xfc, 0x3a, 0x09, 0x3d, 0x87, 0x9a, 0x90, 0x44, 0x66, 0xc2, 0x81, 0x93, 0xd2, 0x69,
|
||||
0xf3, 0xfc, 0xf4, 0xed, 0x2d, 0x8c, 0x74, 0x3c, 0xce, 0xf3, 0xd0, 0x37, 0x50, 0x8f, 0x98, 0x24,
|
||||
0x94, 0x48, 0xe2, 0x34, 0xf4, 0x18, 0x3a, 0x6f, 0xc7, 0xb8, 0xcd, 0x33, 0xcc, 0x20, 0x56, 0x00,
|
||||
0xe8, 0x05, 0x58, 0x53, 0xce, 0xa5, 0x4f, 0x43, 0x71, 0xef, 0xec, 0xe9, 0x86, 0x3e, 0xdc, 0x8a,
|
||||
0xd6, 0x95, 0x92, 0x04, 0xaf, 0x18, 0xed, 0x85, 0xe2, 0x1e, 0xd7, 0x55, 0x9e, 0x92, 0x50, 0x1f,
|
||||
0xfe, 0x2f, 0x58, 0xc0, 0x63, 0x4a, 0xd2, 0x07, 0x0d, 0x24, 0x9c, 0x7d, 0x7d, 0xae, 0x77, 0x44,
|
||||
0x6a, 0xae, 0xb2, 0x95, 0x2a, 0xd0, 0x77, 0x80, 0x62, 0x26, 0x7f, 0xe1, 0xe9, 0xbd, 0x1f, 0xc6,
|
||||
0x92, 0xa5, 0x33, 0xa2, 0xa6, 0xdd, 0xd4, 0x90, 0x9f, 0x6c, 0x85, 0xec, 0x9b, 0x14, 0xaf, 0xc8,
|
||||
0xc0, 0x07, 0xf1, 0x86, 0x45, 0x28, 0xd6, 0xcd, 0x7e, 0xa6, 0xb1, 0x63, 0x1b, 0xd6, 0x29, 0x19,
|
||||
0x4d, 0xe0, 0x40, 0xa8, 0xa3, 0x64, 0x8b, 0x30, 0x9e, 0xfb, 0x09, 0x5f, 0x84, 0xc1, 0x83, 0x73,
|
||||
0xa0, 0x27, 0xb1, 0xbd, 0xd8, 0x68, 0x95, 0x31, 0xd4, 0x09, 0xd8, 0x16, 0x1b, 0x16, 0xf4, 0x29,
|
||||
0x20, 0xc1, 0xd2, 0x65, 0x18, 0x30, 0x9f, 0x04, 0x01, 0xcf, 0x62, 0xa9, 0x28, 0x85, 0x74, 0x65,
|
||||
0x3b, 0xf7, 0x74, 0x8d, 0xc3, 0xa3, 0x47, 0xcf, 0xa0, 0xb1, 0xc6, 0x54, 0x64, 0x43, 0xe5, 0x9e,
|
||||
0x3d, 0xe4, 0xf7, 0x50, 0x89, 0xe8, 0x11, 0xec, 0x2c, 0xc9, 0x22, 0x63, 0xf9, 0x25, 0x34, 0xca,
|
||||
0x17, 0xe5, 0xcf, 0x4b, 0x47, 0x57, 0xb0, 0xff, 0xc6, 0xbf, 0xfb, 0x6f, 0x92, 0x5b, 0x7f, 0x96,
|
||||
0xa0, 0x66, 0xf8, 0x85, 0x0e, 0x01, 0x8d, 0xc6, 0xdd, 0xf1, 0xdd, 0xc8, 0xbf, 0xeb, 0x8f, 0x86,
|
||||
0xee, 0xb5, 0xf7, 0xd2, 0x73, 0x7b, 0xf6, 0xff, 0x90, 0x0d, 0x7b, 0x43, 0x3c, 0x98, 0x78, 0x23,
|
||||
0x6f, 0xd0, 0xf7, 0xfa, 0x5f, 0xd9, 0x25, 0xd4, 0x80, 0x5d, 0x7c, 0xd7, 0xd7, 0x4a, 0x19, 0xed,
|
||||
0x41, 0x7d, 0x34, 0x1e, 0x0c, 0x87, 0x4a, 0xab, 0x28, 0x97, 0xd6, 0xdc, 0x9e, 0x5d, 0x35, 0xae,
|
||||
0x2e, 0x1e, 0x2b, 0xd7, 0x0e, 0x6a, 0x02, 0x60, 0x77, 0xa5, 0xd7, 0x94, 0xf7, 0x6e, 0xd8, 0xeb,
|
||||
0x6a, 0x6d, 0x17, 0x59, 0xb0, 0xe3, 0x62, 0x3c, 0xc0, 0x76, 0x5d, 0x61, 0x5c, 0xe3, 0xee, 0xe8,
|
||||
0x6b, 0xb7, 0x67, 0x5b, 0x2a, 0xaa, 0xe7, 0xde, 0xb8, 0x3a, 0x0a, 0x5a, 0x3f, 0x82, 0xb5, 0xba,
|
||||
0x55, 0xe8, 0x10, 0x6a, 0x11, 0x8b, 0x78, 0x6a, 0x5a, 0xad, 0xe0, 0x5c, 0x53, 0xdd, 0x06, 0x3c,
|
||||
0x65, 0x42, 0x77, 0x5b, 0xc1, 0x46, 0x41, 0xef, 0xc3, 0xbe, 0x12, 0xfc, 0x59, 0x4a, 0x02, 0xbd,
|
||||
0x5f, 0x2a, 0xda, 0xbb, 0xa7, 0x8c, 0x2f, 0x73, 0x5b, 0xeb, 0xaf, 0x12, 0xec, 0xad, 0x73, 0x13,
|
||||
0x7d, 0x09, 0xd5, 0x88, 0x53, 0xa6, 0x2b, 0x34, 0xcf, 0x9f, 0xbc, 0x13, 0xa1, 0xdb, 0xb7, 0x9c,
|
||||
0x32, 0xac, 0xf3, 0xd4, 0x46, 0xa1, 0x4c, 0x93, 0x40, 0xaf, 0x3b, 0x33, 0x7f, 0x30, 0xa6, 0xbe,
|
||||
0x5a, 0x7a, 0xc7, 0xd0, 0x20, 0x99, 0xe4, 0x3e, 0x65, 0x0b, 0x26, 0x99, 0x3e, 0x54, 0x1d, 0x83,
|
||||
0x32, 0xf5, 0xb4, 0x45, 0x2d, 0x2b, 0x75, 0xa7, 0x14, 0x79, 0xcc, 0xb2, 0xac, 0x29, 0xd5, 0xa3,
|
||||
0xad, 0x2b, 0xa8, 0xaa, 0x42, 0xe8, 0x11, 0xd8, 0xb7, 0x83, 0x9e, 0xbb, 0xf1, 0xaf, 0xed, 0x83,
|
||||
0x85, 0xdd, 0x6e, 0xcf, 0x1f, 0xf4, 0x6f, 0xbe, 0xb7, 0x4b, 0x66, 0xf8, 0xdd, 0x9e, 0xff, 0x2d,
|
||||
0xf6, 0xc6, 0xae, 0x5d, 0x6e, 0xfd, 0x5e, 0x06, 0x7b, 0xf3, 0xc6, 0xa8, 0xc1, 0x85, 0xaa, 0xbd,
|
||||
0x9c, 0x3a, 0x46, 0x51, 0x27, 0x8c, 0x48, 0xe0, 0x13, 0x4a, 0x53, 0x26, 0x44, 0xd1, 0x42, 0x44,
|
||||
0x82, 0xae, 0xb1, 0xa8, 0x37, 0x42, 0x64, 0xd3, 0x98, 0x69, 0x82, 0x57, 0xcc, 0x1b, 0x61, 0x0c,
|
||||
0x1e, 0x45, 0x77, 0x80, 0x92, 0x34, 0x8c, 0xd4, 0x6a, 0x58, 0x5e, 0xac, 0x40, 0xaa, 0xfa, 0x7e,
|
||||
0x7d, 0xbc, 0x75, 0x9c, 0x43, 0x93, 0x92, 0x57, 0xc0, 0x76, 0x0e, 0x31, 0xb9, 0x28, 0x6a, 0xae,
|
||||
0xc3, 0x5e, 0xae, 0x60, 0x77, 0xfe, 0x23, 0xec, 0x65, 0x6e, 0x69, 0x65, 0xd0, 0x7c, 0x33, 0x06,
|
||||
0x39, 0xb0, 0x5b, 0xa0, 0x9b, 0xa9, 0x14, 0x2a, 0xf2, 0xa0, 0xa9, 0x1e, 0x11, 0xc9, 0x7d, 0xf5,
|
||||
0x13, 0x13, 0xa9, 0x47, 0xd3, 0x38, 0xff, 0x60, 0x6b, 0xf9, 0x41, 0xcc, 0xc6, 0x7c, 0x10, 0xb3,
|
||||
0x3e, 0x91, 0xb8, 0xc1, 0x5f, 0x2b, 0xad, 0x9f, 0xa0, 0xb1, 0xe6, 0xfb, 0x87, 0x9a, 0x5d, 0x80,
|
||||
0x30, 0xf1, 0x97, 0x2c, 0x15, 0x8a, 0xc1, 0x65, 0x4d, 0xca, 0xed, 0x0f, 0x90, 0x97, 0x4c, 0x4c,
|
||||
0x24, 0xb6, 0xc2, 0x42, 0x6c, 0x5d, 0x80, 0xbd, 0xb9, 0xbd, 0xd4, 0xcb, 0x9b, 0xa4, 0x8c, 0x45,
|
||||
0x89, 0x0c, 0xa7, 0x0b, 0x43, 0xf6, 0x3a, 0x5e, 0x37, 0x3d, 0xb9, 0x02, 0x6b, 0x85, 0x86, 0x8e,
|
||||
0xe0, 0xd0, 0x1b, 0xfa, 0x13, 0x17, 0xab, 0x95, 0xb0, 0xc1, 0xbb, 0x3a, 0x54, 0xbd, 0xe1, 0xe4,
|
||||
0xc2, 0x2e, 0xe5, 0xd2, 0xa5, 0x5d, 0x7e, 0xe1, 0xfe, 0x70, 0x3d, 0x0f, 0xe5, 0xab, 0x6c, 0xaa,
|
||||
0x0e, 0xd7, 0x31, 0xa7, 0x3d, 0x33, 0x1f, 0x34, 0x73, 0x7e, 0x36, 0x67, 0xb1, 0xfe, 0x56, 0xe8,
|
||||
0x6c, 0xf9, 0xd2, 0xb9, 0xca, 0xc5, 0x69, 0x4d, 0x87, 0x7d, 0xf6, 0x77, 0x00, 0x00, 0x00, 0xff,
|
||||
0xff, 0x84, 0xeb, 0xeb, 0x65, 0x13, 0x09, 0x00, 0x00,
|
||||
var fileDescriptor_212f781fc401ff8e = []byte{
|
||||
// 1089 bytes of a gzipped FileDescriptorProto
|
||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0xeb, 0x6e, 0xe3, 0x44,
|
||||
0x14, 0x26, 0x97, 0xa6, 0xf1, 0x49, 0x1b, 0xdc, 0xd1, 0xaa, 0x6b, 0x95, 0x1f, 0xad, 0xc2, 0xad,
|
||||
0xac, 0x68, 0xa2, 0x2d, 0x55, 0xc5, 0x52, 0x09, 0x6d, 0xb6, 0xf1, 0x82, 0x45, 0x9b, 0x44, 0x93,
|
||||
0x34, 0x5c, 0xfe, 0x58, 0x13, 0xcf, 0x24, 0x6b, 0x1a, 0x7b, 0x8c, 0x67, 0x1c, 0x28, 0xcf, 0xc1,
|
||||
0x4b, 0x20, 0xf1, 0x5c, 0x3c, 0x07, 0x9a, 0x19, 0x3b, 0x9b, 0x8d, 0x14, 0x76, 0xe1, 0x57, 0xce,
|
||||
0xf5, 0x3b, 0x73, 0x8e, 0xbf, 0x39, 0x13, 0xf8, 0xe4, 0x81, 0xc4, 0x94, 0xfd, 0xd6, 0x09, 0x16,
|
||||
0x3c, 0xa3, 0x9d, 0x80, 0x47, 0x49, 0x26, 0x59, 0x67, 0xf9, 0xb4, 0x13, 0xc6, 0x42, 0x92, 0x38,
|
||||
0x60, 0xed, 0x24, 0xe5, 0x92, 0xa3, 0xc7, 0x26, 0xae, 0xad, 0xe3, 0xda, 0x79, 0x5c, 0x7b, 0xf9,
|
||||
0xf4, 0xe8, 0x78, 0xce, 0xf9, 0x7c, 0xc1, 0x3a, 0x3a, 0x6c, 0x9a, 0xcd, 0x3a, 0x32, 0x8c, 0x98,
|
||||
0x90, 0x24, 0x4a, 0x4c, 0x66, 0xeb, 0x4f, 0x0b, 0xea, 0x5e, 0x0e, 0x86, 0x9a, 0x50, 0x0e, 0xa9,
|
||||
0x53, 0x3a, 0x29, 0x9d, 0x5a, 0xb8, 0x1c, 0x52, 0xf4, 0x01, 0x58, 0x33, 0xbe, 0xa0, 0x2c, 0xf5,
|
||||
0x43, 0xea, 0x94, 0xb5, 0xb9, 0x6e, 0x0c, 0x1e, 0x45, 0xcf, 0x00, 0x82, 0x94, 0x11, 0xc9, 0xa8,
|
||||
0x4f, 0xa4, 0x53, 0x39, 0x29, 0x9d, 0x36, 0xce, 0x8f, 0xda, 0xa6, 0x5e, 0xbb, 0xa8, 0xd7, 0x1e,
|
||||
0x17, 0xf5, 0xb0, 0x95, 0x47, 0x77, 0x25, 0x42, 0x50, 0x8d, 0x49, 0xc4, 0x9c, 0xaa, 0x86, 0xd4,
|
||||
0x32, 0x3a, 0x81, 0x06, 0x65, 0x22, 0x48, 0xc3, 0x44, 0x86, 0x3c, 0x76, 0x76, 0xb4, 0x6b, 0xdd,
|
||||
0x84, 0x5c, 0xa8, 0x2d, 0xc8, 0x94, 0x2d, 0x84, 0x53, 0x3b, 0xa9, 0x9c, 0x36, 0xce, 0xcf, 0xda,
|
||||
0x5b, 0xba, 0x6e, 0x17, 0x0d, 0xb5, 0x6f, 0x74, 0xbc, 0x1b, 0xcb, 0xf4, 0x01, 0xe7, 0xc9, 0xe8,
|
||||
0x31, 0xec, 0xfe, 0xce, 0x63, 0xa6, 0x5a, 0xda, 0xd5, 0x45, 0x6a, 0x4a, 0xf5, 0x28, 0x3a, 0x86,
|
||||
0x46, 0xb2, 0x20, 0x72, 0xc6, 0xd3, 0x48, 0x39, 0xeb, 0xda, 0x09, 0x85, 0xc9, 0xa3, 0xe8, 0x39,
|
||||
0x58, 0x29, 0x13, 0x3c, 0x4b, 0x03, 0x26, 0x1c, 0x4b, 0x37, 0xdc, 0xda, 0x7a, 0x06, 0x5c, 0x44,
|
||||
0xe2, 0xd7, 0x49, 0xe8, 0x39, 0xd4, 0x84, 0x24, 0x32, 0x13, 0x0e, 0x9c, 0x94, 0x4e, 0x9b, 0xe7,
|
||||
0xa7, 0x6f, 0x6f, 0x61, 0xa4, 0xe3, 0x71, 0x9e, 0x87, 0xbe, 0x83, 0x7a, 0xc4, 0x24, 0xa1, 0x44,
|
||||
0x12, 0xa7, 0xa1, 0xc7, 0xd0, 0x79, 0x3b, 0xc6, 0x6d, 0x9e, 0x61, 0x06, 0xb1, 0x02, 0x40, 0x2f,
|
||||
0xc0, 0x9a, 0x72, 0x2e, 0x7d, 0x1a, 0x8a, 0x7b, 0x67, 0x4f, 0x37, 0xf4, 0xf1, 0x56, 0xb4, 0xae,
|
||||
0x94, 0x24, 0x78, 0xc5, 0x68, 0x2f, 0x14, 0xf7, 0xb8, 0xae, 0xf2, 0x94, 0x84, 0xfa, 0xf0, 0xbe,
|
||||
0x60, 0x01, 0x8f, 0x29, 0x49, 0x1f, 0x34, 0x90, 0x70, 0xf6, 0xf5, 0xb9, 0xde, 0x11, 0xa9, 0xb9,
|
||||
0xca, 0x56, 0xaa, 0x40, 0x3f, 0x00, 0x8a, 0x99, 0xfc, 0x95, 0xa7, 0xf7, 0x7e, 0x18, 0x4b, 0x96,
|
||||
0xce, 0x88, 0x9a, 0x76, 0x53, 0x43, 0x7e, 0xb6, 0x15, 0xb2, 0x6f, 0x52, 0xbc, 0x22, 0x03, 0x1f,
|
||||
0xc4, 0x1b, 0x16, 0xa1, 0x58, 0x37, 0xfb, 0x85, 0xc6, 0x8e, 0x6d, 0x58, 0xa7, 0x64, 0x34, 0x81,
|
||||
0x03, 0xa1, 0x8e, 0x92, 0x2d, 0xc2, 0x78, 0xee, 0x27, 0x7c, 0x11, 0x06, 0x0f, 0xce, 0x81, 0x9e,
|
||||
0xc4, 0xf6, 0x62, 0xa3, 0x55, 0xc6, 0x50, 0x27, 0x60, 0x5b, 0x6c, 0x58, 0xd0, 0xe7, 0x80, 0x04,
|
||||
0x4b, 0x97, 0x61, 0xc0, 0x7c, 0x12, 0x04, 0x3c, 0x8b, 0xa5, 0xa2, 0x14, 0xd2, 0x95, 0xed, 0xdc,
|
||||
0xd3, 0x35, 0x0e, 0x8f, 0x1e, 0x3d, 0x83, 0xc6, 0x1a, 0x53, 0x91, 0x0d, 0x95, 0x7b, 0xf6, 0x90,
|
||||
0xdf, 0x43, 0x25, 0xa2, 0x47, 0xb0, 0xb3, 0x24, 0x8b, 0x8c, 0xe5, 0x97, 0xd0, 0x28, 0x5f, 0x95,
|
||||
0xbf, 0x2c, 0x1d, 0x5d, 0xc1, 0xfe, 0x1b, 0x5f, 0xf7, 0xbf, 0x24, 0xb7, 0xfe, 0x2a, 0x41, 0xcd,
|
||||
0xf0, 0x0b, 0x1d, 0x02, 0x1a, 0x8d, 0xbb, 0xe3, 0xbb, 0x91, 0x7f, 0xd7, 0x1f, 0x0d, 0xdd, 0x6b,
|
||||
0xef, 0xa5, 0xe7, 0xf6, 0xec, 0xf7, 0x90, 0x0d, 0x7b, 0x43, 0x3c, 0x98, 0x78, 0x23, 0x6f, 0xd0,
|
||||
0xf7, 0xfa, 0xdf, 0xd8, 0x25, 0xd4, 0x80, 0x5d, 0x7c, 0xd7, 0xd7, 0x4a, 0x19, 0xed, 0x41, 0x7d,
|
||||
0x34, 0x1e, 0x0c, 0x87, 0x4a, 0xab, 0x28, 0x97, 0xd6, 0xdc, 0x9e, 0x5d, 0x35, 0xae, 0x2e, 0x1e,
|
||||
0x2b, 0xd7, 0x0e, 0x6a, 0x02, 0x60, 0x77, 0xa5, 0xd7, 0x94, 0xf7, 0x6e, 0xd8, 0xeb, 0x6a, 0x6d,
|
||||
0x17, 0x59, 0xb0, 0xe3, 0x62, 0x3c, 0xc0, 0x76, 0x5d, 0x61, 0x5c, 0xe3, 0xee, 0xe8, 0x5b, 0xb7,
|
||||
0x67, 0x5b, 0x2a, 0xaa, 0xe7, 0xde, 0xb8, 0x3a, 0x0a, 0x5a, 0x29, 0x58, 0xab, 0x5b, 0x85, 0x0e,
|
||||
0xa1, 0x16, 0xb1, 0x88, 0xa7, 0xa6, 0xd5, 0x0a, 0xce, 0x35, 0xd5, 0x6d, 0xc0, 0x53, 0x26, 0x74,
|
||||
0xb7, 0x15, 0x6c, 0x14, 0xf4, 0x21, 0xec, 0x2b, 0xc1, 0x9f, 0xa5, 0x24, 0xd0, 0xfb, 0xa5, 0xa2,
|
||||
0xbd, 0x7b, 0xca, 0xf8, 0x32, 0xb7, 0x29, 0x82, 0xcc, 0x93, 0x4c, 0xe8, 0xb5, 0x54, 0xc1, 0x5a,
|
||||
0x6e, 0xfd, 0x5d, 0x82, 0xbd, 0x75, 0xbe, 0xa2, 0xaf, 0xa1, 0x1a, 0x71, 0xca, 0x74, 0xd5, 0xe6,
|
||||
0xf9, 0x93, 0x77, 0x22, 0x79, 0xfb, 0x96, 0x53, 0x86, 0x75, 0x9e, 0xda, 0x32, 0x94, 0x69, 0x62,
|
||||
0xe8, 0x15, 0x68, 0xbe, 0x09, 0x18, 0x53, 0x5f, 0x2d, 0xc2, 0x63, 0x68, 0x90, 0x4c, 0x72, 0x9f,
|
||||
0xb2, 0x05, 0x93, 0x4c, 0x1f, 0xb4, 0x8e, 0x41, 0x99, 0x7a, 0xda, 0xa2, 0x16, 0x98, 0xba, 0x67,
|
||||
0x8a, 0x50, 0x66, 0x81, 0xd6, 0x94, 0xea, 0xd1, 0xd6, 0x15, 0x54, 0x55, 0x21, 0xf4, 0x08, 0xec,
|
||||
0xdb, 0x41, 0xcf, 0xdd, 0xf8, 0x92, 0xfb, 0x60, 0x61, 0xb7, 0xdb, 0xf3, 0x07, 0xfd, 0x9b, 0x1f,
|
||||
0xed, 0x92, 0xf9, 0x20, 0xdd, 0x9e, 0xff, 0x3d, 0xf6, 0xc6, 0xae, 0x5d, 0x6e, 0xfd, 0x51, 0x06,
|
||||
0x7b, 0xf3, 0x16, 0xa9, 0x61, 0x86, 0xaa, 0xbd, 0x9c, 0x4e, 0x46, 0x51, 0x27, 0x8c, 0x48, 0xe0,
|
||||
0x13, 0x4a, 0x53, 0x26, 0x44, 0xd1, 0x42, 0x44, 0x82, 0xae, 0xb1, 0xa8, 0x77, 0x43, 0x64, 0xd3,
|
||||
0x98, 0x69, 0xd2, 0x57, 0xcc, 0xbb, 0x61, 0x0c, 0x1e, 0x45, 0x77, 0x80, 0x92, 0x34, 0x8c, 0xd4,
|
||||
0xba, 0x58, 0x5e, 0xac, 0x40, 0xaa, 0xfa, 0xce, 0x7d, 0xba, 0x75, 0x9c, 0x43, 0x93, 0x92, 0x57,
|
||||
0xc0, 0x76, 0x0e, 0x31, 0xb9, 0x28, 0x6a, 0xae, 0xc3, 0x5e, 0xae, 0x60, 0x77, 0xfe, 0x27, 0xec,
|
||||
0x65, 0x6e, 0x69, 0x65, 0xd0, 0x7c, 0x33, 0x06, 0x39, 0xb0, 0x5b, 0xa0, 0x9b, 0xa9, 0x14, 0x2a,
|
||||
0xf2, 0xa0, 0xa9, 0x1e, 0x16, 0xc9, 0x7d, 0xf5, 0x13, 0x13, 0xa9, 0x47, 0xd3, 0x38, 0xff, 0x68,
|
||||
0x6b, 0xf9, 0x41, 0xcc, 0xc6, 0x7c, 0x10, 0xb3, 0x3e, 0x91, 0xb8, 0xc1, 0x5f, 0x2b, 0xad, 0x9f,
|
||||
0xa1, 0xb1, 0xe6, 0xfb, 0x97, 0x9a, 0x5d, 0x80, 0x30, 0xf1, 0x97, 0x2c, 0x15, 0x8a, 0xd5, 0x65,
|
||||
0x4d, 0xca, 0xed, 0x8f, 0x92, 0x97, 0x4c, 0x4c, 0x24, 0xb6, 0xc2, 0x42, 0x6c, 0x5d, 0x80, 0xbd,
|
||||
0xb9, 0xd1, 0xd4, 0x6b, 0x9c, 0xa4, 0x8c, 0x45, 0x89, 0x0c, 0xa7, 0x0b, 0x43, 0xf6, 0x3a, 0x5e,
|
||||
0x37, 0x3d, 0xb9, 0x02, 0x6b, 0x85, 0x86, 0x8e, 0xe0, 0xd0, 0x1b, 0xfa, 0x13, 0x17, 0xab, 0x35,
|
||||
0xb1, 0xc1, 0xbb, 0x3a, 0x54, 0xbd, 0xe1, 0xe4, 0xc2, 0x2e, 0xe5, 0xd2, 0xa5, 0x5d, 0x7e, 0xe1,
|
||||
0xfe, 0x74, 0x3d, 0x0f, 0xe5, 0xab, 0x6c, 0xaa, 0x0e, 0xd7, 0x31, 0xa7, 0x3d, 0x33, 0x7f, 0x72,
|
||||
0xe6, 0xfc, 0x6c, 0xce, 0x62, 0xfd, 0xff, 0xa1, 0xb3, 0xe5, 0xdf, 0xcf, 0x55, 0x2e, 0x4e, 0x6b,
|
||||
0x3a, 0xec, 0x8b, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x58, 0x39, 0xd8, 0x4c, 0x27, 0x09, 0x00,
|
||||
0x00,
|
||||
}
|
||||
|
|
881
vendor/github.com/yandex-cloud/go-genproto/yandex/cloud/compute/v1/instance_service.pb.go
generated
vendored
881
vendor/github.com/yandex-cloud/go-genproto/yandex/cloud/compute/v1/instance_service.pb.go
generated
vendored
File diff suppressed because it is too large
Load Diff
2296
vendor/github.com/yandex-cloud/go-genproto/yandex/cloud/compute/v1/instancegroup/instance_group.pb.go
generated
vendored
Normal file
2296
vendor/github.com/yandex-cloud/go-genproto/yandex/cloud/compute/v1/instancegroup/instance_group.pb.go
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1770
vendor/github.com/yandex-cloud/go-genproto/yandex/cloud/compute/v1/instancegroup/instance_group_service.pb.go
generated
vendored
Normal file
1770
vendor/github.com/yandex-cloud/go-genproto/yandex/cloud/compute/v1/instancegroup/instance_group_service.pb.go
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue