Skip to content

Instantly share code, notes, and snippets.

@joelrebel
Created March 5, 2024 07:48
Show Gist options
  • Save joelrebel/3c0f3c91799c35b695885eaa3c4b234f to your computer and use it in GitHub Desktop.
Save joelrebel/3c0f3c91799c35b695885eaa3c4b234f to your computer and use it in GitHub Desktop.
diff --git a/cmd/add-versioned-attributes-fleetdb/main.go b/cmd/add-versioned-attributes-fleetdb/main.go
index cdf284d..1feaac7 100644
--- a/cmd/add-versioned-attributes-fleetdb/main.go
+++ b/cmd/add-versioned-attributes-fleetdb/main.go
@@ -10,6 +10,7 @@ import (
"time"
"github.com/coreos/go-oidc"
+ "github.com/davecgh/go-spew/spew"
"github.com/google/uuid"
"github.com/hashicorp/go-retryablehttp"
rctypes "github.com/metal-toolbox/rivets/serverservice"
@@ -45,6 +46,22 @@ func init() {
}
}
+func noauthHSSClient(ctx context.Context) (*serverservice.Client, error) {
+ // init retryable http client
+ retryableClient := retryablehttp.NewClient()
+ retryableClient.RetryMax = 0
+
+ // requests taking longer than timeout value should be canceled.
+ client := retryableClient.StandardClient()
+ client.Timeout = 2 * time.Second
+
+ return serverservice.NewClientWithToken(
+ "dummy",
+ "http://localhost:8000",
+ client,
+ )
+}
+
func newServerServiceClient(ctx context.Context, target string) (*serverservice.Client, error) {
// init retryable http client
retryableClient := retryablehttp.NewClient()
@@ -59,7 +76,7 @@ func newServerServiceClient(ctx context.Context, target string) (*serverservice.
return nil, err
}
- token := "xxxxxxxxx"
+ token := os.Getenv("TOKEN")
// setup oauth configuration
oauthConfig := clientcredentials.Config{
ClientID: "alloy-deprovision-client",
@@ -88,7 +105,8 @@ func newServerServiceClient(ctx context.Context, target string) (*serverservice.
func main() {
fmt.Printf("Connecting to FleetDB")
- fleetDBClient, err := newServerServiceClient(context.Background(), "https://fleetdb.equinixmetal.net")
+ // fleetDBClient, err := newServerServiceClient(context.Background(), "https://fleetdb.equinixmetal.net")
+ fleetDBClient, err := noauthHSSClient(context.Background())
if err != nil {
panic(err)
}
@@ -114,7 +132,7 @@ func main() {
return fmt.Sprintf("%v-%v-%v-%v", sc.Name, sc.Vendor, sc.Model, sc.Serial)
}
- file, err := os.Open("./test.csv")
+ file, err := os.Open("./server_id.csv")
if err != nil {
fmt.Println("Error opening file:", err)
return
@@ -127,15 +145,15 @@ func main() {
fmt.Println()
fmt.Printf("start processing server %v\n", serverID)
- server, _, err := serverServiceClient.Get(context.Background(), serverID)
+ _, _, err := serverServiceClient.Get(context.Background(), serverID)
if err != nil {
panic(fmt.Sprintf("Error Get server %v from HSS: %v", serverID, err))
}
// Test migrating db13 first.
- if server.FacilityCode != "dc13" {
- continue
- }
+ //if server.FacilityCode != "dc13" {
+ // continue
+ //}
hssServerComponents, _, err := serverServiceClient.GetComponents(context.Background(), serverID, nil)
if err != nil {
@@ -198,7 +216,7 @@ func main() {
fmt.Println("Has ServerComponent in FleetDB. Only need to add VersionAttributes:")
for serverComponent, verAttrs := range appendVersionedAttributesToExistingServerComponent {
- component := hssComponentKeyMap[serverComponent]
+ hComponent := hssComponentKeyMap[serverComponent]
for _, verAttr := range verAttrs {
fmt.Printf("Adding %v to component %v\n", verAttr.Namespace, serverComponent)
data := &rctypes.FirmwareVersionedAttribute{}
@@ -206,13 +224,19 @@ func main() {
if err != nil {
panic(err)
}
- data.UUID = &component.UUID
+
dataToCreate, err := json.Marshal(data)
if err != nil {
panic(err)
}
verAttr.Data = dataToCreate
- _, err = fleetDBClient.CreateVersionedAttributes(context.Background(), serverID, verAttr)
+
+ update := serverservice.ServerComponent{
+ UUID: hComponent.UUID,
+ VersionedAttributes: verAttrs,
+ }
+
+ _, err = fleetDBClient.UpdateComponents(context.Background(), serverID, []serverservice.ServerComponent{update})
if err != nil {
panic(err)
}
@@ -231,7 +255,6 @@ func main() {
if err != nil {
panic(err)
}
- data.UUID = &component.UUID
dataToCreate, err := json.Marshal(data)
if err != nil {
panic(err)
@@ -246,6 +269,7 @@ func main() {
component.ComponentTypeID = FleetDBComponentTypesID[component.ComponentTypeSlug]
fmt.Printf("Creating component = %v\n", serverComponent)
+ spew.Dump(component)
_, err := fleetDBClient.CreateComponents(context.Background(), serverID, []serverservice.ServerComponent{component})
if err != nil {
panic(err)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment