You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: clusterList.go
    path of file: ./repos/yoke/yokeadm/commands
    
    the code of the file until where you have to start completion: package commands

import (
	"fmt"
	"net/rpc"
	"os"
	"regexp"
	"time"

	"github.com/spf13/cobra"
)

// Status represents the Status of a node in the cluser
type Status struct {
	CRole     string    // the nodes 'role' in the cluster (primary, secondary, monitor)
	DataDir   string    // directory of the postgres database
	DBRole    string    // the 'role' of the running pgsql instance inside the node (master, slave)
	Ip        string    // advertise_ip
	PGPort    int       //
	State     string    // the current state of the node
	UpdatedAt time.Time // the last time the node state was updated
}

//
var clusterListCmd = &cobra.Command{
	Use:   "list",
	Short: "Returns status information for all nodes in the cluster",
	Long:  ``,

	Run: clusterList,
}

// clusterList displays select information about all of the nodes in a cluster
func clusterList(ccmd *cobra.Command, args []string) 
    
func clusterList(ccmd *cobra.Command, args []string) {

	// create an RPC client that will connect to the designated node
	client, err := rpc.Dial("tcp", fmt.Sprintf("%s:%s", fHost, fPort))
	if err != nil {
		fmt.Println("[cli.ClusterList.run] Failed to dial!", err)
		os.Exit(1)
	}
	defer client.Close()

	// issue a request to the designated node for the status of the cluster
	var members = &[]Status{}
	if err := client.Call("Status.RPCCluster", "", members); err != nil {
		fmt.Println("[cli.ClusterList.run] Failed to call!", err)
		os.Exit(1)
	}

	//
	fmt.Println(`
Cluster Role |   Cluster IP    |     State     |    Status    |  Postgres Role  |  Postgres Port  |      Last Updated
---------------------------------------------------------------------------------------------------------------------------`)
	for _, member := range *members {

		state := "--"
		status := "running"

		//
		if subMatch := regexp.MustCompile(`^\((.*)\)(.*)$`).FindStringSubmatch(member.State); subMatch != nil {
			state = subMatch[1]
			status = subMatch[2]
		}

		//
		fmt.Printf("%-12s | %-15s | %-13s | %-12s | %-15s | %-15d | %-25s\n", member.CRole, member.Ip, state, status, member.DBRole, member.PGPort, member.UpdatedAt.Format("01.02.06 (15:04:05) MST"))
	}

	fmt.Println("")
}