Skip to content
This repository has been archived by the owner on Jul 24, 2021. It is now read-only.

Commit

Permalink
Merge pull request #48 from joyent/ether/3.0-hwp
Browse files Browse the repository at this point in the history
adjust expected output for GET /hardware_product
  • Loading branch information
karenetheridge authored Jun 19, 2020
2 parents 0eb0186 + 4e9caba commit ff08d7d
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 35 deletions.
8 changes: 3 additions & 5 deletions fixtures/conch-v3/hardware.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -225,7 +225,7 @@ interactions:
url: http://10.51.54.42:5000/hardware_product
method: GET
response:
body: '[{"alias":"VGyZdhHTSlKEevcIXLFdqLBqV","bios_firmware":"WyWzHYIRLAEpwgatcUwjipqkh","cpu_num":0,"cpu_type":"XddLqzjJkILoECmoUYhruLOeT","created":"2020-01-26T19:04:27.394823Z","dimms_num":0,"generation_name":null,"hardware_vendor_id":"26df0913-5614-4fec-beb7-3514df2a9356","hba_firmware":null,"id":"6542884c-3515-49fe-9ebd-7da5da10e024","legacy_product_name":null,"name":"vVrberRcPGVlljXeonTdwsovX","nics_num":0,"nvme_ssd_num":0,"nvme_ssd_size":null,"nvme_ssd_slots":null,"prefix":null,"psu_total":0,"purpose":"BwdoYKPEhePiedtBHebHTdNnG","rack_unit_size":2,"raid_lun_num":0,"ram_total":0,"sas_hdd_num":0,"sas_hdd_size":null,"sas_hdd_slots":null,"sas_ssd_num":0,"sas_ssd_size":null,"sas_ssd_slots":null,"sata_hdd_num":0,"sata_hdd_size":null,"sata_hdd_slots":null,"sata_ssd_num":0,"sata_ssd_size":null,"sata_ssd_slots":null,"sku":"aPHUOTzVZjFLgMpaBtWWZiXKw","specification":null,"updated":"2020-01-26T19:04:27.394823Z","usb_num":0,"validation_plan_id":"a30ab8b2-8a9e-4e51-8bb0-92862abd8b54"}]'
body: '[{"alias":"VGyZdhHTSlKEevcIXLFdqLBqV","created":"2020-01-26T19:04:27.394823Z","generation_name":null,"id":"6542884c-3515-49fe-9ebd-7da5da10e024","name":"vVrberRcPGVlljXeonTdwsovX","sku":"aPHUOTzVZjFLgMpaBtWWZiXKw","updated":"2020-01-26T19:04:27.394823Z"}]'
headers:
Cache-Control:
- no-cache
Expand Down Expand Up @@ -438,8 +438,7 @@ interactions:
url: http://10.51.54.42:5000/hardware_product/9ad55ceb-2eb7-4125-a492-3c595277b3e3
method: GET
response:
body: '{"alias":"ujOmocHFAUuWZILajRAzVkeuO","bios_firmware":"RcgHsdxbvsvNXWQMpuLchiLgH","cpu_num":0,"cpu_type":"FEkEUQAJTUIwzzxxHsXjxWJqN","created":"2020-01-26T19:04:27.567389Z","dimms_num":0,"generation_name":null,"hardware_vendor_id":"26df0913-5614-4fec-beb7-3514df2a9356","hba_firmware":null,"id":"9ad55ceb-2eb7-4125-a492-3c595277b3e3","legacy_product_name":null,"name":"Testy
McTesterson","nics_num":0,"nvme_ssd_num":0,"nvme_ssd_size":null,"nvme_ssd_slots":null,"prefix":null,"psu_total":0,"purpose":"FCYNIyfxlJtZmSIluDaoPNwRD","rack_unit_size":2,"raid_lun_num":0,"ram_total":0,"sas_hdd_num":0,"sas_hdd_size":null,"sas_hdd_slots":null,"sas_ssd_num":0,"sas_ssd_size":null,"sas_ssd_slots":null,"sata_hdd_num":0,"sata_hdd_size":null,"sata_hdd_slots":null,"sata_ssd_num":0,"sata_ssd_size":null,"sata_ssd_slots":null,"sku":"test-sku-001","specification":null,"updated":"2020-01-26T19:04:27.567389Z","usb_num":0,"validation_plan_id":"a30ab8b2-8a9e-4e51-8bb0-92862abd8b54"}'
body: '{"alias":"ujOmocHFAUuWZILajRAzVkeuO","created":"2020-01-26T19:04:27.567389Z","generation_name":null,"id":"9ad55ceb-2eb7-4125-a492-3c595277b3e3","name":"Testy McTesterson","sku":"test-sku-001","updated":"2020-01-26T19:04:27.567389Z"}'
headers:
Cache-Control:
- no-cache
Expand Down Expand Up @@ -471,8 +470,7 @@ interactions:
url: http://10.51.54.42:5000/hardware_product
method: GET
response:
body: '[{"alias":"ujOmocHFAUuWZILajRAzVkeuO","bios_firmware":"RcgHsdxbvsvNXWQMpuLchiLgH","cpu_num":0,"cpu_type":"FEkEUQAJTUIwzzxxHsXjxWJqN","created":"2020-01-26T19:04:27.567389Z","dimms_num":0,"generation_name":null,"hardware_vendor_id":"26df0913-5614-4fec-beb7-3514df2a9356","hba_firmware":null,"id":"9ad55ceb-2eb7-4125-a492-3c595277b3e3","legacy_product_name":null,"name":"Testy
McTesterson","nics_num":0,"nvme_ssd_num":0,"nvme_ssd_size":null,"nvme_ssd_slots":null,"prefix":null,"psu_total":0,"purpose":"FCYNIyfxlJtZmSIluDaoPNwRD","rack_unit_size":2,"raid_lun_num":0,"ram_total":0,"sas_hdd_num":0,"sas_hdd_size":null,"sas_hdd_slots":null,"sas_ssd_num":0,"sas_ssd_size":null,"sas_ssd_slots":null,"sata_hdd_num":0,"sata_hdd_size":null,"sata_hdd_slots":null,"sata_ssd_num":0,"sata_ssd_size":null,"sata_ssd_slots":null,"sku":"test-sku-001","specification":null,"updated":"2020-01-26T19:04:27.567389Z","usb_num":0,"validation_plan_id":"a30ab8b2-8a9e-4e51-8bb0-92862abd8b54"}]'
body: '[{"alias":"ujOmocHFAUuWZILajRAzVkeuO","created":"2020-01-26T19:04:27.567389Z","generation_name":null,"id":"9ad55ceb-2eb7-4125-a492-3c595277b3e3","name":"Testy McTesterson","sku":"test-sku-001","updated":"2020-01-26T19:04:27.567389Z"}]'
headers:
Cache-Control:
- no-cache
Expand Down
4 changes: 2 additions & 2 deletions fixtures/conch-v3/racks.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -386,7 +386,7 @@ interactions:
url: http://10.51.54.42:5000/hardware_product/4d97ab05-0d97-47aa-862d-82bb2ee0468a
method: GET
response:
body: '{"alias":"HrZIMrVpcWqZgaUulBthQcOag","bios_firmware":"MnUVOnKQRdqBIceuwfwrWEjhW","cpu_num":0,"cpu_type":"VnLtfCOjaztZvISSPHEiVKiQZ","created":"2020-01-26T19:04:28.181783Z","dimms_num":0,"generation_name":null,"hardware_vendor_id":"3d28519c-66c8-4342-8220-4e1cae887e2d","hba_firmware":null,"id":"4d97ab05-0d97-47aa-862d-82bb2ee0468a","legacy_product_name":null,"name":"oYVmnkaHmHTuHKrcEesRozYeT","nics_num":0,"nvme_ssd_num":0,"nvme_ssd_size":null,"nvme_ssd_slots":null,"prefix":null,"psu_total":0,"purpose":"znqMcuZEZIkFJlfstVGYwPpkq","rack_unit_size":1,"raid_lun_num":0,"ram_total":0,"sas_hdd_num":0,"sas_hdd_size":null,"sas_hdd_slots":null,"sas_ssd_num":0,"sas_ssd_size":null,"sas_ssd_slots":null,"sata_hdd_num":0,"sata_hdd_size":null,"sata_hdd_slots":null,"sata_ssd_num":0,"sata_ssd_size":null,"sata_ssd_slots":null,"sku":"qDwDpLdrLFrPEqjOOUrmyGirY","specification":null,"updated":"2020-01-26T19:04:28.181783Z","usb_num":0,"validation_plan_id":"a30ab8b2-8a9e-4e51-8bb0-92862abd8b54"}'
body: '{"alias":"HrZIMrVpcWqZgaUulBthQcOag","created":"2020-01-26T19:04:28.181783Z","generation_name":null,"id":"4d97ab05-0d97-47aa-862d-82bb2ee0468a","name":"oYVmnkaHmHTuHKrcEesRozYeT","sku":"qDwDpLdrLFrPEqjOOUrmyGirY","updated":"2020-01-26T19:04:28.181783Z"}'
headers:
Cache-Control:
- no-cache
Expand Down Expand Up @@ -453,7 +453,7 @@ interactions:
url: http://10.51.54.42:5000/hardware_product/cd87e849-5520-4601-86ef-5998ae6cde12
method: GET
response:
body: '{"alias":"kzdrzOFbSzwABLXZJgiRbeCyZ","bios_firmware":"YBMTTKmRmcMJdeudbCHnLdWTA","cpu_num":0,"cpu_type":"IjGVEsUTFgtcqCgykUYFkzSlh","created":"2020-01-26T19:04:28.239898Z","dimms_num":0,"generation_name":null,"hardware_vendor_id":"3d28519c-66c8-4342-8220-4e1cae887e2d","hba_firmware":null,"id":"cd87e849-5520-4601-86ef-5998ae6cde12","legacy_product_name":null,"name":"dpVmuHtPowtbsWxgeQGGhDxzq","nics_num":0,"nvme_ssd_num":0,"nvme_ssd_size":null,"nvme_ssd_slots":null,"prefix":null,"psu_total":0,"purpose":"aqjoVIMEkFxHTVJUbjbuQOjnq","rack_unit_size":1,"raid_lun_num":0,"ram_total":0,"sas_hdd_num":0,"sas_hdd_size":null,"sas_hdd_slots":null,"sas_ssd_num":0,"sas_ssd_size":null,"sas_ssd_slots":null,"sata_hdd_num":0,"sata_hdd_size":null,"sata_hdd_slots":null,"sata_ssd_num":0,"sata_ssd_size":null,"sata_ssd_slots":null,"sku":"kCKOViIEFgkEhdhcQFxItjUmb","specification":null,"updated":"2020-01-26T19:04:28.239898Z","usb_num":0,"validation_plan_id":"a30ab8b2-8a9e-4e51-8bb0-92862abd8b54"}'
body: '{"alias":"kzdrzOFbSzwABLXZJgiRbeCyZ","created":"2020-01-26T19:04:28.239898Z","generation_name":null,"id":"cd87e849-5520-4601-86ef-5998ae6cde12","name":"dpVmuHtPowtbsWxgeQGGhDxzq","sku":"kCKOViIEFgkEhdhcQFxItjUmb","updated":"2020-01-26T19:04:28.239898Z"}'
headers:
Cache-Control:
- no-cache
Expand Down
38 changes: 15 additions & 23 deletions hardware.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,9 @@ func (c *Conch) Hardware() *Hardware {
return &Hardware{c}
}

type HardwareProducts []HardwareProduct
type HardwareProductSummaries []HardwareProductSummary

func (hps HardwareProducts) String() string {
func (hps HardwareProductSummaries) String() string {
if API.JsonOnly {
return API.AsJSON(hps)
}
Expand All @@ -46,36 +46,18 @@ func (hps HardwareProducts) String() string {
"SKU",
"Name",
"Alias",
"Purpose",
"BIOS",
"CPU Type",
"Vendor",
"Validation Plan",
"GenerationName",
"Created",
"Updated",
})

for _, hp := range hps {
/*var vendor string
if (hp.HardwareVendorID != uuid.UUID{}) {
vendor = hp.HardwareVendor().Name
}
var vp string
if (hp.ValidationPlanID != uuid.UUID{}) {
vp = hp.ValidationPlan().Name
}
*/
table.Append([]string{
CutUUID(hp.ID.String()),
hp.SKU,
hp.Name,
hp.Alias,
hp.Purpose,
hp.BiosFirmware,
hp.CpuType,
hp.HardwareVendorID.String(),
hp.ValidationPlanID.String(),
hp.GenerationName,
hp.Created.String(),
hp.Updated.String(),
})
Expand All @@ -92,6 +74,16 @@ func (hp HardwareProduct) ValidationPlan() ValidationPlan {
return API.Validations().GetPlan(hp.ValidationPlanID)
}

type HardwareProductSummary struct {
ID uuid.UUID `json:"id" faker:"uuid"`
Name string `json:"name"`
Alias string `json:"alias"`
GenerationName string `json:"generation_name,omitempty"`
SKU string `json:"sku"`
Created time.Time `json:"created" faker:"-"`
Updated time.Time `json:"updated" faker:"-"`
}

type HardwareProduct struct {
ID uuid.UUID `json:"id" faker:"uuid"`
Name string `json:"name"`
Expand Down Expand Up @@ -161,7 +153,7 @@ func (hp HardwareProduct) String() string {
return buf.String()
}

func (h *Hardware) GetAllProducts() (hps HardwareProducts) {
func (h *Hardware) GetAllProducts() (hps HardwareProductSummaries) {
res := h.Do(h.Sling().New().Get("/hardware_product"))
if ok := res.Parse(&hps); !ok {
panic(res)
Expand Down
21 changes: 16 additions & 5 deletions hardware_integration_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ func TestHarwareProductIntegration(t *testing.T) {

t.Run("API", func(t *testing.T) {
var testHardwareProduct HardwareProduct
var testHardwareProductSummary HardwareProductSummary

t.Run("create", func(t *testing.T) {
defer errorHandler()
Expand All @@ -38,13 +39,23 @@ func TestHarwareProductIntegration(t *testing.T) {
mock.BiosFirmware,
mock.CpuType,
)

testHardwareProductSummary = HardwareProductSummary{
ID: testHardwareProduct.ID,
Name: testHardwareProduct.Name,
Alias: testHardwareProduct.Alias,
GenerationName: testHardwareProduct.GenerationName,
SKU: testHardwareProduct.SKU,
Created: testHardwareProduct.Created,
Updated: testHardwareProduct.Updated,
}

assert.NotNil(t, testHardwareProduct.ID)
})

t.Run("get all products", func(t *testing.T) {
got := API.Hardware().GetAllProducts()
assert.Equal(t, HardwareProducts{testHardwareProduct}, got)

assert.Equal(t, HardwareProductSummaries{testHardwareProductSummary}, got)
})

t.Run("get product by name", func(t *testing.T) {
Expand All @@ -57,7 +68,7 @@ func TestHarwareProductIntegration(t *testing.T) {
defer errorHandler()
API.Hardware().Delete(testHardwareProduct.ID)
got := API.Hardware().GetAllProducts()
assert.Equal(t, HardwareProducts{}, got)
assert.Equal(t, HardwareProductSummaries{}, got)
})
})

Expand Down Expand Up @@ -90,7 +101,7 @@ func TestHarwareProductIntegration(t *testing.T) {
{
"products ls",
[]string{"kosh", "hardware", "products", "ls"},
"| ID | SKU | NAME | ALIAS | PURPOSE | BIOS | CPU TYPE | VENDOR | VALIDATION PLAN | CREATED | UPDATED |\n|----------|--------------|-------------------|---------------------------|---------------------------|---------------------------|---------------------------|--------------------------------------|--------------------------------------|--------------------------------------|--------------------------------------|\n| 9ad55ceb | test-sku-001 | Testy McTesterson | ujOmocHFAUuWZILajRAzVkeuO | FCYNIyfxlJtZmSIluDaoPNwRD | RcgHsdxbvsvNXWQMpuLchiLgH | FEkEUQAJTUIwzzxxHsXjxWJqN | 26df0913-5614-4fec-beb7-3514df2a9356 | a30ab8b2-8a9e-4e51-8bb0-92862abd8b54 | 2020-01-26 19:04:27.567389 +0000 UTC | 2020-01-26 19:04:27.567389 +0000 UTC |\n\n",
"| ID | SKU | NAME | ALIAS | GENERATIONNAME | CREATED | UPDATED |\n|----------|--------------|-------------------|---------------------------|----------------|--------------------------------------|--------------------------------------|\n| 9ad55ceb | test-sku-001 | Testy McTesterson | ujOmocHFAUuWZILajRAzVkeuO | | 2020-01-26 19:04:27.567389 +0000 UTC | 2020-01-26 19:04:27.567389 +0000 UTC |\n\n",
},
{
"product SKU get",
Expand All @@ -100,7 +111,7 @@ func TestHarwareProductIntegration(t *testing.T) {
{
"product SKU delete",
[]string{"kosh", "hardware", "product", mock.SKU, "rm"},
HardwareProducts{}.String() + "\n",
HardwareProductSummaries{}.String() + "\n",
},
}

Expand Down

0 comments on commit ff08d7d

Please sign in to comment.