github.com/IBM-Cloud/bluemix-go@v0.0.0-20240423071914-9e96525baef4/examples/functions/main.go (about)

     1  package main
     2  
     3  import (
     4  	"flag"
     5  	"log"
     6  	"os"
     7  
     8  	"github.com/IBM-Cloud/bluemix-go"
     9  	"github.com/IBM-Cloud/bluemix-go/api/functions"
    10  	"github.com/IBM-Cloud/bluemix-go/session"
    11  	"github.com/IBM-Cloud/bluemix-go/trace"
    12  )
    13  
    14  func main() {
    15  
    16  	c := new(bluemix.Config)
    17  	var namespaceName string
    18  	flag.StringVar(&namespaceName, "namespace", "", "Namespace ID")
    19  	var resourceGroupID string
    20  	flag.StringVar(&resourceGroupID, "resourceGroupID", "", "resourceGroupID for namespace")
    21  
    22  	flag.Parse()
    23  
    24  	if namespaceName == "" || resourceGroupID == "" {
    25  		flag.Usage()
    26  		os.Exit(1)
    27  	}
    28  
    29  	trace.Logger = trace.NewLogger("true")
    30  	sess, err := session.New(c)
    31  	if err != nil {
    32  		log.Fatal(err)
    33  	}
    34  
    35  	nsCFClient, err := functions.NewCF(sess)
    36  	if err != nil {
    37  		log.Fatal(err)
    38  	}
    39  	nsCFAPI := nsCFClient.Namespaces()
    40  
    41  	log.Println(">>>>>>>>>  List CF namespaces")
    42  	cfList, err := nsCFAPI.GetCloudFoundaryNamespaces()
    43  	if err != nil {
    44  		log.Fatal(err)
    45  	}
    46  
    47  	log.Println(cfList)
    48  
    49  	nsClient, err := functions.New(sess)
    50  	if err != nil {
    51  		log.Fatal(err)
    52  	}
    53  	nsAPI := nsClient.Namespaces()
    54  
    55  	log.Println(">>>>>>>>>  Namespace create")
    56  	resourcePlanID := "functions-base-plan"
    57  	namespaceOpts := functions.CreateNamespaceOptions{
    58  		Name:            &namespaceName,
    59  		ResourceGroupID: &resourceGroupID,
    60  		ResourcePlanID:  &resourcePlanID,
    61  	}
    62  	namespaceResponse, err := nsAPI.CreateNamespace(namespaceOpts)
    63  	if err != nil {
    64  		log.Fatal(err)
    65  	}
    66  
    67  	log.Println(">>>>>>>>>  List namespaces")
    68  	_, err = nsAPI.GetNamespaces()
    69  	if err != nil {
    70  		log.Fatal(err)
    71  	}
    72  
    73  	log.Println(">>>>>>>>>  Get namespace by ID")
    74  	getNamespaceOpts := functions.GetNamespaceOptions{
    75  		ID: namespaceResponse.ID,
    76  	}
    77  	_, err = nsAPI.GetNamespace(getNamespaceOpts)
    78  	if err != nil {
    79  		log.Fatal(err)
    80  	}
    81  
    82  	log.Println(">>>>>>>>>  Update namespace by ID")
    83  	updateName := "namespace-update-01"
    84  	updateNamespaceOpts := functions.UpdateNamespaceOptions{
    85  		ID:   namespaceResponse.ID,
    86  		Name: &updateName,
    87  	}
    88  	_, err = nsAPI.UpdateNamespace(updateNamespaceOpts)
    89  	if err != nil {
    90  		log.Fatal(err)
    91  	}
    92  
    93  	log.Println(">>>>>>>>>  Delete Namespace")
    94  	_, err = nsAPI.DeleteNamespace(*namespaceResponse.ID)
    95  	if err != nil {
    96  		log.Fatal(err)
    97  	}
    98  
    99  }