Skip to content

Commit 291efaf

Browse files
- Augmented mocked registry.
1 parent d2bcc99 commit 291efaf

File tree

5 files changed

+38
-3
lines changed

5 files changed

+38
-3
lines changed

.vscode/launch.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,7 @@
177177
"delete from aws.cloud_control.resources where region = 'ap-southeast-1' and data__TypeName = 'AWS::Logs::LogGroup' and data__Identifier = 'LogGroupResourceExampleThird' ;",
178178
"insert into google.storage.buckets( project, data__name) select 'testing-project', 'silly-bucket' returning projectNumber;",
179179
"insert /*+ AWAIT */ into google.compute.networks(project, data__name, data__autoCreateSubnetworks) select 'mutable-project', 'auto-test-01', false returning creationTimestamp, name;",
180+
"registry pull google 'v0.1.2'; show resources in google.storage; registry pull google 'v0.1.1-alpha01'; show resources in google.storage; registry pull google 'v0.1.0'; show resources in google.storage;",
180181
],
181182
"default": "show providers;"
182183
},
@@ -195,7 +196,8 @@
195196
"{ \"url\": \"https://cdn.statically.io/gh/stackql/stackql-provider-registry/main/providers\", \"localDocRoot\": \"${workspaceFolder}/test/registry\" }",
196197
"{ \"url\": \"https://cdn.statically.io/gh/stackql/stackql-provider-registry/dev/providers\" }",
197198
"{ \"url\": \"https://registry-dev.stackql.app/providers\" }",
198-
"{ \"url\": \"https://registry.stackql.app/providers\" }"
199+
"{ \"url\": \"https://registry.stackql.app/providers\" }",
200+
"{\"url\": \"http://localhost:1094/gh/stackql/stackql-provider-registry/main/providers\", \"verifyConfig\": {\"nopVerify\": true}}",
199201
],
200202
"default": "{ \"url\": \"file://${workspaceFolder}/test/registry\", \"localDocRoot\": \"${workspaceFolder}/test/registry\", \"verifyConfig\": { \"nopVerify\": true } }"
201203
},

internal/stackql/handler/handler.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ type HandlerContext interface { //nolint:revive // don't mind stuttering this on
4848
GetAuthContext(providerName string) (*dto.AuthCtx, error)
4949
GetDBMSInternalRouter() dbmsinternal.Router
5050
GetProvider(providerName string) (provider.IProvider, error)
51+
DeleteProvider(providerName string) error
5152
GetSupportedProviders(extended bool) (map[string]map[string]interface{}, error)
5253
LogHTTPResponseMap(target interface{})
5354
//
@@ -286,6 +287,23 @@ func (hc *standardHandlerContext) GetASTFormatter() sqlparser.NodeFormatter {
286287
return hc.formatter
287288
}
288289

290+
func (hc *standardHandlerContext) DeleteProvider(providerName string) error {
291+
hc.providersMapMutex.Lock()
292+
defer hc.providersMapMutex.Unlock()
293+
if providerName == "googleapis.com" {
294+
providerName = "google"
295+
}
296+
if providerName == "" {
297+
return fmt.Errorf("provider name cannot be empty")
298+
}
299+
_, ok := hc.providers[providerName]
300+
if len(hc.providers) == 0 || !ok {
301+
return fmt.Errorf("provider '%s' not found", providerName)
302+
}
303+
delete(hc.providers, providerName)
304+
return nil
305+
}
306+
289307
func (hc *standardHandlerContext) GetProvider(providerName string) (provider.IProvider, error) {
290308
var err error
291309
if providerName == "" {

internal/stackql/planbuilder/plan_builder.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -752,6 +752,8 @@ func (pgb *standardPlanGraphBuilder) handleRegistryPull(
752752
if err = reg.ClearProviderCache(providerID); err != nil {
753753
return internaldto.NewErroneousExecutorOutput(err)
754754
}
755+
handlerCtx := pbi.GetHandlerCtx()
756+
_ = handlerCtx.DeleteProvider(providerID)
755757
// Pull and persist the requested version
756758
if err = reg.PullAndPersistProviderArchive(node.ProviderId, providerVersion); err != nil {
757759
return internaldto.NewErroneousExecutorOutput(err)

test/python/stackql_test_tooling/flask/registry/expectations.json

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,5 +37,18 @@
3737
"status": 200,
3838
"file": "google-v0.1.1-alpha01.tgz"
3939
}
40+
},
41+
{
42+
"httpRequest": {
43+
"method": "GET",
44+
"path": "/gh/stackql/stackql-provider-registry/main/providers/dist/googleapis.com/v0.1.0.tgz"
45+
},
46+
"httpResponse": {
47+
"headers": {
48+
"Content-Type": "application/gzip"
49+
},
50+
"status": 200,
51+
"file": "google-v0.1.0.tgz"
52+
}
4053
}
4154
]

test/robot/functional/stackql_mocked_from_cmd_line.robot

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2742,8 +2742,8 @@ Registry Pull Overwrite Works in Both Directions
27422742
... ${inputStr}
27432743
... ${stdOutStr}
27442744
... ${stdErrStr}
2745-
stdout=${CURDIR}/tmp/Registry-Pull-Override-Works-in-Both-Directions.tmp
2746-
stderr=${CURDIR}/tmp/Registry-Pull-Override-Works-in-Both-Directions-stderr.tmp
2745+
... stdout=${CURDIR}/tmp/Registry-Pull-Override-Works-in-Both-Directions.tmp
2746+
... stderr=${CURDIR}/tmp/Registry-Pull-Override-Works-in-Both-Directions-stderr.tmp
27472747

27482748
Registry Pull Google Provider Implicit Latest Version
27492749
Should Stackql Exec Inline Contain Both Streams

0 commit comments

Comments
 (0)