github.com/vmware/govmomi@v0.37.1/pbm/simulator/profiles.go (about) 1 /* 2 Copyright (c) 2018 VMware, Inc. All Rights Reserved. 3 4 Licensed under the Apache License, Version 2.0 (the "License"); 5 you may not use this file except in compliance with the License. 6 You may obtain a copy of the License at 7 8 http://www.apache.org/licenses/LICENSE-2.0 9 10 Unless required by applicable law or agreed to in writing, software 11 distributed under the License is distributed on an "AS IS" BASIS, 12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 See the License for the specific language governing permissions and 14 limitations under the License. 15 */ 16 17 package simulator 18 19 import ( 20 "time" 21 22 "github.com/vmware/govmomi/pbm/types" 23 vim "github.com/vmware/govmomi/vim25/types" 24 ) 25 26 // profiles is a captured from vCenter 6.7's default set of PBM profiles. 27 var profiles = []types.BasePbmProfile{ 28 &types.PbmCapabilityProfile{ 29 PbmProfile: types.PbmProfile{ 30 ProfileId: types.PbmProfileId{ 31 UniqueId: "aa6d5a82-1c88-45da-85d3-3d74b91a5bad", 32 }, 33 Name: "vSAN Default Storage Policy", 34 Description: "Storage policy used as default for vSAN datastores", 35 CreationTime: time.Now(), 36 CreatedBy: "Temporary user handle", 37 LastUpdatedTime: time.Now(), 38 LastUpdatedBy: "Temporary user handle", 39 }, 40 ProfileCategory: "REQUIREMENT", 41 ResourceType: types.PbmProfileResourceType{ 42 ResourceType: "STORAGE", 43 }, 44 Constraints: &types.PbmCapabilitySubProfileConstraints{ 45 PbmCapabilityConstraints: types.PbmCapabilityConstraints{}, 46 SubProfiles: []types.PbmCapabilitySubProfile{ 47 { 48 Name: "VSAN sub-profile", 49 Capability: []types.PbmCapabilityInstance{ 50 { 51 Id: types.PbmCapabilityMetadataUniqueId{ 52 Namespace: "VSAN", 53 Id: "hostFailuresToTolerate", 54 }, 55 Constraint: []types.PbmCapabilityConstraintInstance{ 56 { 57 PropertyInstance: []types.PbmCapabilityPropertyInstance{ 58 { 59 Id: "hostFailuresToTolerate", 60 Operator: "", 61 Value: int32(1), 62 }, 63 }, 64 }, 65 }, 66 }, 67 { 68 Id: types.PbmCapabilityMetadataUniqueId{ 69 Namespace: "VSAN", 70 Id: "stripeWidth", 71 }, 72 Constraint: []types.PbmCapabilityConstraintInstance{ 73 { 74 PropertyInstance: []types.PbmCapabilityPropertyInstance{ 75 { 76 Id: "stripeWidth", 77 Operator: "", 78 Value: int32(1), 79 }, 80 }, 81 }, 82 }, 83 }, 84 { 85 Id: types.PbmCapabilityMetadataUniqueId{ 86 Namespace: "VSAN", 87 Id: "forceProvisioning", 88 }, 89 Constraint: []types.PbmCapabilityConstraintInstance{ 90 { 91 PropertyInstance: []types.PbmCapabilityPropertyInstance{ 92 { 93 Id: "forceProvisioning", 94 Operator: "", 95 Value: bool(false), 96 }, 97 }, 98 }, 99 }, 100 }, 101 { 102 Id: types.PbmCapabilityMetadataUniqueId{ 103 Namespace: "VSAN", 104 Id: "proportionalCapacity", 105 }, 106 Constraint: []types.PbmCapabilityConstraintInstance{ 107 { 108 PropertyInstance: []types.PbmCapabilityPropertyInstance{ 109 { 110 Id: "proportionalCapacity", 111 Operator: "", 112 Value: int32(0), 113 }, 114 }, 115 }, 116 }, 117 }, 118 { 119 Id: types.PbmCapabilityMetadataUniqueId{ 120 Namespace: "VSAN", 121 Id: "cacheReservation", 122 }, 123 Constraint: []types.PbmCapabilityConstraintInstance{ 124 { 125 PropertyInstance: []types.PbmCapabilityPropertyInstance{ 126 { 127 Id: "cacheReservation", 128 Operator: "", 129 Value: int32(0), 130 }, 131 }, 132 }, 133 }, 134 }, 135 }, 136 ForceProvision: (*bool)(nil), 137 }, 138 }, 139 }, 140 GenerationId: 0, 141 IsDefault: false, 142 SystemCreatedProfileType: "VsanDefaultProfile", 143 LineOfService: "", 144 }, 145 &types.PbmCapabilityProfile{ 146 PbmProfile: types.PbmProfile{ 147 ProfileId: types.PbmProfileId{ 148 UniqueId: "f4e5bade-15a2-4805-bf8e-52318c4ce443", 149 }, 150 Name: "VVol No Requirements Policy", 151 Description: "Allow the datastore to determine the best placement strategy for storage objects", 152 CreationTime: time.Now(), 153 CreatedBy: "Temporary user handle", 154 LastUpdatedTime: time.Now(), 155 LastUpdatedBy: "Temporary user handle", 156 }, 157 ProfileCategory: "REQUIREMENT", 158 ResourceType: types.PbmProfileResourceType{ 159 ResourceType: "STORAGE", 160 }, 161 Constraints: &types.PbmCapabilityConstraints{}, 162 GenerationId: 0, 163 IsDefault: false, 164 SystemCreatedProfileType: "VVolDefaultProfile", 165 LineOfService: "", 166 }, 167 &types.PbmCapabilityProfile{ 168 PbmProfile: types.PbmProfile{ 169 ProfileId: types.PbmProfileId{ 170 UniqueId: "4d5f673c-536f-11e6-beb8-9e71128cae77", 171 }, 172 Name: "VM Encryption Policy", 173 Description: "Sample storage policy for VMware's VM and virtual disk encryption", 174 CreationTime: time.Now(), 175 CreatedBy: "Temporary user handle", 176 LastUpdatedTime: time.Now(), 177 LastUpdatedBy: "Temporary user handle", 178 }, 179 ProfileCategory: "REQUIREMENT", 180 ResourceType: types.PbmProfileResourceType{ 181 ResourceType: "STORAGE", 182 }, 183 Constraints: &types.PbmCapabilitySubProfileConstraints{ 184 PbmCapabilityConstraints: types.PbmCapabilityConstraints{}, 185 SubProfiles: []types.PbmCapabilitySubProfile{ 186 { 187 Name: "sp-1", 188 Capability: []types.PbmCapabilityInstance{ 189 { 190 Id: types.PbmCapabilityMetadataUniqueId{ 191 Namespace: "com.vmware.storageprofile.dataservice", 192 Id: "ad5a249d-cbc2-43af-9366-694d7664fa52", 193 }, 194 Constraint: []types.PbmCapabilityConstraintInstance{ 195 { 196 PropertyInstance: []types.PbmCapabilityPropertyInstance{ 197 { 198 Id: "ad5a249d-cbc2-43af-9366-694d7664fa52", 199 Operator: "", 200 Value: "ad5a249d-cbc2-43af-9366-694d7664fa52", 201 }, 202 }, 203 }, 204 }, 205 }, 206 }, 207 ForceProvision: vim.NewBool(false), 208 }, 209 }, 210 }, 211 GenerationId: 0, 212 IsDefault: false, 213 SystemCreatedProfileType: "", 214 LineOfService: "", 215 }, 216 &types.PbmCapabilityProfile{ 217 PbmProfile: types.PbmProfile{ 218 ProfileId: types.PbmProfileId{ 219 UniqueId: "c268da1b-b343-49f7-a468-b1deeb7078e0", 220 }, 221 Name: "Host-local PMem Default Storage Policy", 222 Description: "Storage policy used as default for Host-local PMem datastores", 223 CreationTime: time.Now(), 224 CreatedBy: "Temporary user handle", 225 LastUpdatedTime: time.Now(), 226 LastUpdatedBy: "Temporary user handle", 227 }, 228 ProfileCategory: "REQUIREMENT", 229 ResourceType: types.PbmProfileResourceType{ 230 ResourceType: "STORAGE", 231 }, 232 Constraints: &types.PbmCapabilitySubProfileConstraints{ 233 PbmCapabilityConstraints: types.PbmCapabilityConstraints{}, 234 SubProfiles: []types.PbmCapabilitySubProfile{ 235 { 236 Name: "PMem sub-profile", 237 Capability: []types.PbmCapabilityInstance{ 238 { 239 Id: types.PbmCapabilityMetadataUniqueId{ 240 Namespace: "PMem", 241 Id: "PMemType", 242 }, 243 Constraint: []types.PbmCapabilityConstraintInstance{ 244 { 245 PropertyInstance: []types.PbmCapabilityPropertyInstance{ 246 { 247 Id: "PMemType", 248 Operator: "", 249 Value: "LocalPMem", 250 }, 251 }, 252 }, 253 }, 254 }, 255 }, 256 ForceProvision: (*bool)(nil), 257 }, 258 }, 259 }, 260 GenerationId: 0, 261 IsDefault: false, 262 SystemCreatedProfileType: "PmemDefaultProfile", 263 LineOfService: "", 264 }, 265 }