github.com/vmware/govmomi@v0.37.2/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  }