github.com/gophercloud/gophercloud@v1.11.0/openstack/compute/v2/flavors/doc.go (about) 1 /* 2 Package flavors provides information and interaction with the flavor API 3 in the OpenStack Compute service. 4 5 A flavor is an available hardware configuration for a server. Each flavor 6 has a unique combination of disk space, memory capacity and priority for CPU 7 time. 8 9 Example to List Flavors 10 11 listOpts := flavors.ListOpts{ 12 AccessType: flavors.PublicAccess, 13 } 14 15 allPages, err := flavors.ListDetail(computeClient, listOpts).AllPages() 16 if err != nil { 17 panic(err) 18 } 19 20 allFlavors, err := flavors.ExtractFlavors(allPages) 21 if err != nil { 22 panic(err) 23 } 24 25 for _, flavor := range allFlavors { 26 fmt.Printf("%+v\n", flavor) 27 } 28 29 Example to Create a Flavor 30 31 createOpts := flavors.CreateOpts{ 32 ID: "1", 33 Name: "m1.tiny", 34 Disk: gophercloud.IntToPointer(1), 35 RAM: 512, 36 VCPUs: 1, 37 RxTxFactor: 1.0, 38 } 39 40 flavor, err := flavors.Create(computeClient, createOpts).Extract() 41 if err != nil { 42 panic(err) 43 } 44 45 Example to Update a Flavor 46 47 flavorID := "e91758d6-a54a-4778-ad72-0c73a1cb695b" 48 49 updateOpts := flavors.UpdateOpts{ 50 Description: "This is a good description" 51 } 52 53 flavor, err := flavors.Update(computeClient, flavorID, updateOpts).Extract() 54 if err != nil { 55 panic(err) 56 } 57 58 Example to List Flavor Access 59 60 flavorID := "e91758d6-a54a-4778-ad72-0c73a1cb695b" 61 62 allPages, err := flavors.ListAccesses(computeClient, flavorID).AllPages() 63 if err != nil { 64 panic(err) 65 } 66 67 allAccesses, err := flavors.ExtractAccesses(allPages) 68 if err != nil { 69 panic(err) 70 } 71 72 for _, access := range allAccesses { 73 fmt.Printf("%+v", access) 74 } 75 76 Example to Grant Access to a Flavor 77 78 flavorID := "e91758d6-a54a-4778-ad72-0c73a1cb695b" 79 80 accessOpts := flavors.AddAccessOpts{ 81 Tenant: "15153a0979884b59b0592248ef947921", 82 } 83 84 accessList, err := flavors.AddAccess(computeClient, flavor.ID, accessOpts).Extract() 85 if err != nil { 86 panic(err) 87 } 88 89 Example to Remove/Revoke Access to a Flavor 90 91 flavorID := "e91758d6-a54a-4778-ad72-0c73a1cb695b" 92 93 accessOpts := flavors.RemoveAccessOpts{ 94 Tenant: "15153a0979884b59b0592248ef947921", 95 } 96 97 accessList, err := flavors.RemoveAccess(computeClient, flavor.ID, accessOpts).Extract() 98 if err != nil { 99 panic(err) 100 } 101 102 Example to Create Extra Specs for a Flavor 103 104 flavorID := "e91758d6-a54a-4778-ad72-0c73a1cb695b" 105 106 createOpts := flavors.ExtraSpecsOpts{ 107 "hw:cpu_policy": "CPU-POLICY", 108 "hw:cpu_thread_policy": "CPU-THREAD-POLICY", 109 } 110 createdExtraSpecs, err := flavors.CreateExtraSpecs(computeClient, flavorID, createOpts).Extract() 111 if err != nil { 112 panic(err) 113 } 114 115 fmt.Printf("%+v", createdExtraSpecs) 116 117 Example to Get Extra Specs for a Flavor 118 119 flavorID := "e91758d6-a54a-4778-ad72-0c73a1cb695b" 120 121 extraSpecs, err := flavors.ListExtraSpecs(computeClient, flavorID).Extract() 122 if err != nil { 123 panic(err) 124 } 125 126 fmt.Printf("%+v", extraSpecs) 127 128 Example to Update Extra Specs for a Flavor 129 130 flavorID := "e91758d6-a54a-4778-ad72-0c73a1cb695b" 131 132 updateOpts := flavors.ExtraSpecsOpts{ 133 "hw:cpu_thread_policy": "CPU-THREAD-POLICY-UPDATED", 134 } 135 updatedExtraSpec, err := flavors.UpdateExtraSpec(computeClient, flavorID, updateOpts).Extract() 136 if err != nil { 137 panic(err) 138 } 139 140 fmt.Printf("%+v", updatedExtraSpec) 141 142 Example to Delete an Extra Spec for a Flavor 143 144 flavorID := "e91758d6-a54a-4778-ad72-0c73a1cb695b" 145 err := flavors.DeleteExtraSpec(computeClient, flavorID, "hw:cpu_thread_policy").ExtractErr() 146 if err != nil { 147 panic(err) 148 } 149 */ 150 package flavors