github.com/vmware/govmomi@v0.51.0/simulator/dataset.go (about)

     1  // © Broadcom. All Rights Reserved.
     2  // The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries.
     3  // SPDX-License-Identifier: Apache-2.0
     4  
     5  package simulator
     6  
     7  import (
     8  	"github.com/vmware/govmomi/vapi/vm/dataset"
     9  )
    10  
    11  type DataSet struct {
    12  	*dataset.Info
    13  	ID      string
    14  	Entries map[string]string
    15  }
    16  
    17  func copyDataSetsForVmClone(src map[string]*DataSet) map[string]*DataSet {
    18  	copy := make(map[string]*DataSet, len(src))
    19  	for k, v := range src {
    20  		if v.OmitFromSnapshotAndClone {
    21  			continue
    22  		}
    23  		copy[k] = copyDataSet(v)
    24  	}
    25  	return copy
    26  }
    27  
    28  func copyDataSet(src *DataSet) *DataSet {
    29  	if src == nil {
    30  		return nil
    31  	}
    32  	copy := &DataSet{
    33  		Info: &dataset.Info{
    34  			Name:                     src.Name,
    35  			Description:              src.Description,
    36  			Host:                     src.Host,
    37  			Guest:                    src.Guest,
    38  			Used:                     src.Used,
    39  			OmitFromSnapshotAndClone: src.OmitFromSnapshotAndClone,
    40  		},
    41  		ID:      src.ID,
    42  		Entries: copyEntries(src.Entries),
    43  	}
    44  	return copy
    45  }
    46  
    47  func copyEntries(src map[string]string) map[string]string {
    48  	copy := make(map[string]string, len(src))
    49  	for k, v := range src {
    50  		copy[k] = v
    51  	}
    52  	return copy
    53  }