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 }