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