Skip to content

Commit 9458e88

Browse files
committed
added the intial changes
Signed-off-by: vviveksharma <visharma@progress.com>
1 parent fd7de86 commit 9458e88

7 files changed

Lines changed: 90 additions & 191 deletions

File tree

clients/omnitruck/dynamo_services_test.go

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -560,6 +560,41 @@ func TestProductMetadata(t *testing.T) {
560560
wantErr: false,
561561
metadata_err: nil,
562562
},
563+
{
564+
name: "success for chef-ice windows",
565+
metadata: &models.MetaData{
566+
Architecture: "x86_64",
567+
FileName: "chef-ice-x86_64-windows.zip",
568+
Platform: "windows",
569+
PlatformVersion: "",
570+
SHA1: "",
571+
PackageManager: "zip",
572+
SHA256: "1234",
573+
},
574+
args: args{
575+
p: &RequestParams{
576+
Channel: "stable",
577+
Product: "chef-ice",
578+
Version: "",
579+
Platform: "windows",
580+
PlatformVersion: "",
581+
PackageManager: "zip",
582+
Architecture: "x86_64",
583+
Eol: "",
584+
LicenseId: "",
585+
},
586+
},
587+
version: "1.6.862",
588+
version_err: nil,
589+
want: PackageMetadata{
590+
Sha1: "",
591+
Sha256: "1234",
592+
Url: "",
593+
Version: "1.6.862",
594+
},
595+
wantErr: false,
596+
metadata_err: nil,
597+
},
563598
{
564599
name: "failure for chef-ice",
565600
metadata: &models.MetaData{},

config/config.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ type ServiceConfig struct {
1111
PackageManagersTable string `json:"packageManagersTable"`
1212
PackageDetailsCurrentTable string `json:"packageDetailsCurrentTable"`
1313
PackageDetailsStableTable string `json:"packageDetailsStableTable"`
14-
SupportInfra19 bool `json:"supportInfra19"`
1514
}
1615

1716
type ReplicatedConfig struct {

internal/api/handler/handler_test.go

Lines changed: 55 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ func testInjector(
4545
do.ProvideNamedValue[config.ServiceConfig](reqInjector, "config", config.ServiceConfig{
4646
LicenseServiceUrl: "http://licenseservice",
4747
OmnitruckUrl: "https://omnitruck.chef.io",
48-
SupportInfra19: true,
4948
})
5049

5150
do.ProvideNamedValue[omnitruck.IRequestValidator](reqInjector, "validator", &omnitruck.MockRequestValidator{
@@ -582,7 +581,7 @@ func TestProductMetadataHandler(t *testing.T) {
582581
versions_err: nil,
583582
},
584583
{
585-
name: "chef-ice success",
584+
name: "chef-ice success (linux)",
586585
serverMode: constants.Trial,
587586
requestPath: "/stable/chef-ice/metadata?p=linux&m=amd64&pm=deb&eol=false&v=latest",
588587
expectedStatus: fiber.StatusOK,
@@ -601,6 +600,26 @@ func TestProductMetadataHandler(t *testing.T) {
601600
versions: []string{"latest"},
602601
versions_err: nil,
603602
},
603+
{
604+
name: "chef-ice success (windows)",
605+
serverMode: constants.Trial,
606+
requestPath: "/stable/chef-ice/metadata?p=windows&m=amd64&pm=deb&eol=false&v=latest",
607+
expectedStatus: fiber.StatusOK,
608+
expectedResponse: `{"sha1":"", "sha256":"abcd", "url":"http://example.com/stable/chef-ice/download?eol=false&m=amd64&p=windows&pm=deb&v=latest", "version":"latest"}`,
609+
metadata: models.MetaData{
610+
Architecture: "amd64",
611+
Platform: "windows",
612+
PackageManager: "deb",
613+
SHA1: "",
614+
SHA256: "abcd",
615+
FileName: "",
616+
},
617+
err: nil,
618+
version: "latest",
619+
version_err: nil,
620+
versions: []string{"latest"},
621+
versions_err: nil,
622+
},
604623
{
605624
name: "chef-ice failure for opensource server",
606625
serverMode: constants.Opensource,
@@ -628,7 +647,7 @@ func TestProductMetadataHandler(t *testing.T) {
628647
versions_err: nil,
629648
},
630649
{
631-
name: "migrate-ice success",
650+
name: "migrate-ice success (linux)",
632651
serverMode: constants.Trial,
633652
requestPath: "/stable/migrate-ice/metadata?p=linux&m=amd64&pm=deb&eol=false&v=latest",
634653
expectedStatus: fiber.StatusOK,
@@ -647,6 +666,26 @@ func TestProductMetadataHandler(t *testing.T) {
647666
versions: []string{"latest"},
648667
versions_err: nil,
649668
},
669+
{
670+
name: "migrate-ice success (windows)",
671+
serverMode: constants.Trial,
672+
requestPath: "/stable/migrate-ice/metadata?p=windows&m=amd64&pm=zip&eol=false&v=latest",
673+
expectedStatus: fiber.StatusOK,
674+
expectedResponse: `{"sha1":"", "sha256":"abcd", "url":"http://example.com/stable/migrate-ice/download?eol=false&m=amd64&p=windows&pm=zip&v=latest", "version":"latest"}`,
675+
metadata: models.MetaData{
676+
Architecture: "amd64",
677+
Platform: "windows",
678+
PackageManager: "deb",
679+
SHA1: "",
680+
SHA256: "abcd",
681+
FileName: "",
682+
},
683+
err: nil,
684+
version: "latest",
685+
version_err: nil,
686+
versions: []string{"latest"},
687+
versions_err: nil,
688+
},
650689
{
651690
name: "migrate-ice failure for opensource server",
652691
serverMode: constants.Opensource,
@@ -1213,6 +1252,19 @@ func TestFileNameHandler(t *testing.T) {
12131252
versions: []string{"latest"},
12141253
versions_err: nil,
12151254
},
1255+
{
1256+
name: "migrate-ice fileName success windows",
1257+
serverMode: constants.Commercial,
1258+
requestPath: "/current/migrate-ice/fileName?p=windows&pv=11&m=x86_64&pm=zip&v=latest",
1259+
expectedStatus: http.StatusOK,
1260+
expectedResponse: `{"fileName":"migrate-ice_.1.0.25-test_Windows_x86_64.zip"}`,
1261+
metadata: models.MetaData{FileName: "migrate-ice_.1.0.25-test_Windows_x86_64.zip"},
1262+
metadata_err: nil,
1263+
version: "latest",
1264+
version_err: nil,
1265+
versions: []string{"latest"},
1266+
versions_err: nil,
1267+
},
12161268
}
12171269

12181270
for _, test := range tests {

internal/services/services.go

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -99,17 +99,6 @@ func (svc *DownloadService) Products(params *omnitruck.RequestParams) (data omni
9999
request = svc.Omnitruck().Products(params, &data)
100100

101101
data = svc.DynamoServices(svc.databaseService).Products(data, params.Eol)
102-
// This a temporary fix to hide CHEF_INFRA_CLIENT_ENTERPRISE_PRODUCT when infra19Enabled is false
103-
if !svc.config.SupportInfra19 {
104-
// Remove CHEF_INFRA_CLIENT_ENTERPRISE_PRODUCT from the data array
105-
var filtered omnitruck.ItemList
106-
for _, item := range data {
107-
if item != constants.CHEF_INFRA_CLIENT_ENTERPRISE_PRODUCT && item != constants.MIGRATE_ICE {
108-
filtered = append(filtered, item)
109-
}
110-
}
111-
data = filtered
112-
}
113102
getServerStrategy := strategy.SelectModeStrategy(svc.mode)
114103
eol := params.Eol == "true"
115104
data = getServerStrategy.FilterProducts(data, eol)
@@ -250,12 +239,6 @@ func (svc *DownloadService) RelatedProducts(params *omnitruck.RequestParams) (da
250239
}
251240
}
252241

253-
if !svc.config.SupportInfra19 && relatedProducts != nil && relatedProducts.Products != nil {
254-
// This a temporary fix to hide CHEF_INFRA_CLIENT_ENTERPRISE_PRODUCT when supportInfra19 is false
255-
delete(relatedProducts.Products, constants.CHEF_INFRA_CLIENT_ENTERPRISE_PRODUCT)
256-
delete(relatedProducts.Products, constants.MIGRATE_ICE)
257-
}
258-
259242
response := map[string]interface{}{
260243
"relatedProducts": relatedProducts.Products,
261244
}

internal/services/services_test.go

Lines changed: 0 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ func buildInjector(templateRenderer template.TemplateRenderer, omnitruckURL stri
3939
do.ProvideNamedValue[config.ServiceConfig](injector, "config", config.ServiceConfig{
4040
LicenseServiceUrl: "http://license-service",
4141
OmnitruckUrl: omnitruckURL,
42-
SupportInfra19: true,
4342
})
4443
return injector
4544
}
@@ -363,7 +362,6 @@ func TestDownloadService_Platforms(t *testing.T) {
363362
do.ProvideNamedValue[constants.ApiType](injector, "mode", constants.Commercial)
364363
do.ProvideNamedValue[config.ServiceConfig](injector, "config", config.ServiceConfig{
365364
OmnitruckUrl: ts.URL,
366-
SupportInfra19: true,
367365
})
368366

369367
locals := map[string]interface{}{"license_id": "123"}
@@ -825,88 +823,6 @@ func TestDownloadService_RelatedProducts(t *testing.T) {
825823
}
826824
}
827825

828-
func TestDownloadService_RelatedProducts_SupportInfra19(t *testing.T) {
829-
t.Parallel()
830-
831-
logEntry := logrus.NewEntry(logrus.New())
832-
locals := map[string]interface{}{"base_url": "http://example.com"}
833-
834-
tests := []struct {
835-
name string
836-
supportInfra19 bool
837-
expectedProducts []string
838-
unexpectedProducts []string
839-
}{
840-
{
841-
name: "SupportInfra19 true - includes infra products",
842-
supportInfra19: true,
843-
expectedProducts: []string{"chef", "chef-ice", "migrate-ice"},
844-
unexpectedProducts: []string{},
845-
},
846-
{
847-
name: "SupportInfra19 false - excludes infra products",
848-
supportInfra19: false,
849-
expectedProducts: []string{"chef"},
850-
unexpectedProducts: []string{"chef-ice", "migrate-ice"},
851-
},
852-
}
853-
854-
for _, tt := range tests {
855-
tt := tt
856-
t.Run(tt.name, func(t *testing.T) {
857-
t.Parallel()
858-
859-
injector := do.New()
860-
do.ProvideNamedValue[dboperations.IDbOperations](injector, "dbService", &dboperations.MockIDbOperations{
861-
GetRelatedProductsfunc: func(partitionValue string) (*models.RelatedProducts, error) {
862-
return &models.RelatedProducts{
863-
Bom: "test-bom",
864-
Products: map[string]string{
865-
"chef": "Chef Infra Client",
866-
"chef-ice": "Chef Infra Client Enterprise",
867-
"migrate-ice": "Migrate ICE",
868-
"automate": "Chef Automate",
869-
},
870-
}, nil
871-
},
872-
})
873-
do.ProvideNamedValue[template.TemplateRenderer](injector, "templateRenderer", &template.MockTemplateRenderer{})
874-
do.ProvideNamedValue[replicated.IReplicated](injector, "replicated", &replicated.MockReplicated{})
875-
do.ProvideNamedValue[clients.ILicense](injector, "licenseClient", &clients.MockLicense{})
876-
do.ProvideNamedValue[constants.ApiType](injector, "mode", constants.Commercial)
877-
do.ProvideNamedValue[config.ServiceConfig](injector, "config", config.ServiceConfig{
878-
SupportInfra19: tt.supportInfra19,
879-
})
880-
881-
svc, err := NewDownloadService(injector, logEntry, locals)
882-
require.NoError(t, err)
883-
884-
params := &omnitruck.RequestParams{
885-
BOM: "test-bom",
886-
}
887-
888-
data, req := svc.RelatedProducts(params)
889-
890-
assert.True(t, req.Ok, "expected ok true")
891-
assert.Equal(t, fiber.StatusOK, req.Code)
892-
assert.NotNil(t, data)
893-
894-
products, ok := data["relatedProducts"].(map[string]string)
895-
assert.True(t, ok, "expected relatedProducts to be map[string]string")
896-
897-
// Check expected products are present
898-
for _, product := range tt.expectedProducts {
899-
assert.Contains(t, products, product, "expected product %s to be present", product)
900-
}
901-
902-
// Check unexpected products are not present
903-
for _, product := range tt.unexpectedProducts {
904-
assert.NotContains(t, products, product, "expected product %s to be excluded", product)
905-
}
906-
})
907-
}
908-
}
909-
910826
func TestDownloadService_GetFileName_InvalidProduct(t *testing.T) {
911827
t.Parallel()
912828

internal/strategy/product_strategy.go

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,6 @@ func SelectProductStrategy(product string, channel string, deps *ProductStrategy
5454
Locals: deps.Locals,
5555
}
5656
case constants.CHEF_INFRA_CLIENT_ENTERPRISE_PRODUCT, constants.MIGRATE_ICE:
57-
if !deps.Config.SupportInfra19 {
58-
return &DefaultProductStrategy{OmnitruckService: deps.OmnitruckService}
59-
}
6057
if channel == constants.CURRENT_CHANNEL {
6158
deps.DynamoService.SetDbInfo(deps.Config.PackageDetailsCurrentTable, reflect.TypeOf(models.PackageDetails{}))
6259
} else {

internal/strategy/product_strategy_test.go

Lines changed: 0 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ func TestSelectProductStrategy(t *testing.T) {
3333
PackageDetailsCurrentTable: "mock_current_table",
3434
PackageDetailsStableTable: "mock_stable_table",
3535
AWSConfig: config.AWSConfig{},
36-
SupportInfra19: true,
3736
},
3837
}
3938

@@ -115,85 +114,3 @@ func TestSelectProductStrategy(t *testing.T) {
115114
}
116115
}
117116

118-
func TestSelectProductStrategy_SupportInfra19(t *testing.T) {
119-
mockDynamo := &omnitruck.MockDynamoServices{}
120-
mockPlatform := &omnitruck.PlatformServices{}
121-
mockOmnitruck := &omnitruck.Omnitruck{}
122-
mockLog := log.NewEntry(log.New())
123-
124-
tests := []struct {
125-
name string
126-
product string
127-
channel string
128-
supportInfra19 bool
129-
expectedType reflect.Type
130-
expectDbInfo bool
131-
}{
132-
{
133-
name: "infra product with SupportInfra19=true should return InfraProductStrategy",
134-
product: constants.CHEF_INFRA_CLIENT_ENTERPRISE_PRODUCT,
135-
channel: constants.CURRENT_CHANNEL,
136-
supportInfra19: true,
137-
expectedType: reflect.TypeOf(&strategy.InfraProductStrategy{}),
138-
expectDbInfo: true,
139-
},
140-
{
141-
name: "infra product with SupportInfra19=false should return DefaultProductStrategy",
142-
product: constants.CHEF_INFRA_CLIENT_ENTERPRISE_PRODUCT,
143-
channel: constants.CURRENT_CHANNEL,
144-
supportInfra19: false,
145-
expectedType: reflect.TypeOf(&strategy.DefaultProductStrategy{}),
146-
expectDbInfo: false,
147-
},
148-
{
149-
name: "migrate ice with SupportInfra19=true should return InfraProductStrategy",
150-
product: constants.MIGRATE_ICE,
151-
channel: constants.STABLE_CHANNEL,
152-
supportInfra19: true,
153-
expectedType: reflect.TypeOf(&strategy.InfraProductStrategy{}),
154-
expectDbInfo: true,
155-
},
156-
{
157-
name: "migrate ice with SupportInfra19=false should return DefaultProductStrategy",
158-
product: constants.MIGRATE_ICE,
159-
channel: constants.STABLE_CHANNEL,
160-
supportInfra19: false,
161-
expectedType: reflect.TypeOf(&strategy.DefaultProductStrategy{}),
162-
expectDbInfo: false,
163-
},
164-
}
165-
166-
for _, tt := range tests {
167-
t.Run(tt.name, func(t *testing.T) {
168-
// Reset mock for each test
169-
mockDynamo.SetDbInfoCalledWith = nil
170-
171-
deps := &strategy.ProductStrategyDeps{
172-
DynamoService: mockDynamo,
173-
PlatformService: mockPlatform,
174-
OmnitruckService: mockOmnitruck,
175-
Log: mockLog,
176-
Replicated: nil,
177-
LicenseClient: nil,
178-
LicenseServiceUrl: "http://mock-license",
179-
Mode: constants.Opensource,
180-
Config: config.ServiceConfig{
181-
MetadataDetailsTable: "mock_metadata_table",
182-
PackageDetailsCurrentTable: "mock_current_table",
183-
PackageDetailsStableTable: "mock_stable_table",
184-
AWSConfig: config.AWSConfig{},
185-
SupportInfra19: tt.supportInfra19,
186-
},
187-
}
188-
189-
strat := strategy.SelectProductStrategy(tt.product, tt.channel, deps)
190-
assert.Equal(t, tt.expectedType, reflect.TypeOf(strat))
191-
192-
if tt.expectDbInfo {
193-
assert.NotEmpty(t, mockDynamo.SetDbInfoCalledWith, "expected SetDbInfo to be called when SupportInfra19=true")
194-
} else {
195-
assert.Empty(t, mockDynamo.SetDbInfoCalledWith, "expected SetDbInfo NOT to be called when SupportInfra19=false")
196-
}
197-
})
198-
}
199-
}

0 commit comments

Comments
 (0)