mirror of
https://github.com/opencloud-eu/opencloud.git
synced 2026-01-07 21:50:41 -05:00
Compare commits
1 Commits
replaceCII
...
test/test-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b2e5fd9a78 |
303
.woodpecker.star
303
.woodpecker.star
@@ -15,16 +15,16 @@ OPEN_SEARCH = "opensearchproject/opensearch:2"
|
|||||||
INBUCKET_INBUCKET = "inbucket/inbucket"
|
INBUCKET_INBUCKET = "inbucket/inbucket"
|
||||||
MINIO_MC = "minio/mc:RELEASE.2021-10-07T04-19-58Z"
|
MINIO_MC = "minio/mc:RELEASE.2021-10-07T04-19-58Z"
|
||||||
OC_CI_ALPINE = "owncloudci/alpine:latest"
|
OC_CI_ALPINE = "owncloudci/alpine:latest"
|
||||||
OC_CI_BAZEL_BUILDIFIER = "scharfvi/bazel-buildifier:latest"
|
OC_CI_BAZEL_BUILDIFIER = "owncloudci/bazel-buildifier:latest"
|
||||||
OC_CI_CLAMAVD = "scharfvi/clamav:latest"
|
OC_CI_CLAMAVD = "owncloudci/clamavd"
|
||||||
OC_CI_DRONE_ANSIBLE = "owncloudci/drone-ansible:latest"
|
OC_CI_DRONE_ANSIBLE = "owncloudci/drone-ansible:latest"
|
||||||
OC_CI_GOLANG = "quay.io/opencloudeu/golang-ci:1.25"
|
OC_CI_GOLANG = "registry.heinlein.group/opencloud/golang-ci:1.25"
|
||||||
OC_CI_NODEJS = "scharfvi/nodeci:24"
|
OC_CI_NODEJS = "owncloudci/nodejs:%s"
|
||||||
OC_CI_NODEJS_ALPINE = "scharfvi/nodeci-alpine:24"
|
OC_CI_PHP = "owncloudci/php:%s"
|
||||||
OC_CI_PHP = "scharfvi/php-alpine-ci:%s"
|
OC_CI_WAIT_FOR = "owncloudci/wait-for:latest"
|
||||||
OC_CI_WAIT_FOR = "scharfvi/wait-for:latest"
|
|
||||||
OC_CS3_API_VALIDATOR = "opencloudeu/cs3api-validator:latest"
|
OC_CS3_API_VALIDATOR = "opencloudeu/cs3api-validator:latest"
|
||||||
OC_LITMUS = "owncloudci/litmus:latest"
|
OC_LITMUS = "owncloudci/litmus:latest"
|
||||||
|
OC_UBUNTU = "owncloud/ubuntu:20.04"
|
||||||
ONLYOFFICE_DOCUMENT_SERVER = "onlyoffice/documentserver:7.5.1"
|
ONLYOFFICE_DOCUMENT_SERVER = "onlyoffice/documentserver:7.5.1"
|
||||||
PLUGINS_DOCKER_BUILDX = "woodpeckerci/plugin-docker-buildx:latest"
|
PLUGINS_DOCKER_BUILDX = "woodpeckerci/plugin-docker-buildx:latest"
|
||||||
PLUGINS_NOTATION = "registry.heinlein.group/opencloud/notation-wp-plugin:latest"
|
PLUGINS_NOTATION = "registry.heinlein.group/opencloud/notation-wp-plugin:latest"
|
||||||
@@ -37,7 +37,8 @@ REDIS = "redis:6-alpine"
|
|||||||
READY_RELEASE_GO = "woodpeckerci/plugin-ready-release-go:latest"
|
READY_RELEASE_GO = "woodpeckerci/plugin-ready-release-go:latest"
|
||||||
OPENLDAP = "bitnamilegacy/openldap:2.6"
|
OPENLDAP = "bitnamilegacy/openldap:2.6"
|
||||||
|
|
||||||
DEFAULT_PHP_VERSION = "8.4"
|
DEFAULT_PHP_VERSION = "8.2"
|
||||||
|
DEFAULT_NODEJS_VERSION = "20"
|
||||||
|
|
||||||
CACHE_S3_SERVER = "https://s3.ci.opencloud.eu"
|
CACHE_S3_SERVER = "https://s3.ci.opencloud.eu"
|
||||||
|
|
||||||
@@ -453,16 +454,7 @@ CI_HTTP_PROXY_ENV = {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
def prefixStepCommands(pipeline, commands = [], skip_steps = []):
|
|
||||||
default_skip_steps = ["evaluate-previous-run"]
|
|
||||||
skip_steps = default_skip_steps + skip_steps
|
|
||||||
for step in pipeline["steps"]:
|
|
||||||
if "commands" in step.keys() and step["name"] not in skip_steps:
|
|
||||||
step["commands"] = commands + step["commands"]
|
|
||||||
|
|
||||||
def pipelineDependsOn(pipeline, dependant_pipelines):
|
def pipelineDependsOn(pipeline, dependant_pipelines):
|
||||||
if type(pipeline) == "list":
|
|
||||||
pipeline = pipeline[0]
|
|
||||||
if "depends_on" in pipeline.keys():
|
if "depends_on" in pipeline.keys():
|
||||||
pipeline["depends_on"] = pipeline["depends_on"] + getPipelineNames(dependant_pipelines)
|
pipeline["depends_on"] = pipeline["depends_on"] + getPipelineNames(dependant_pipelines)
|
||||||
else:
|
else:
|
||||||
@@ -505,7 +497,7 @@ def main(ctx):
|
|||||||
|
|
||||||
is_release_pr = (ctx.build.event == "pull_request" and ctx.build.sender == "openclouders" and "🎉 release" in ctx.build.title.lower())
|
is_release_pr = (ctx.build.event == "pull_request" and ctx.build.sender == "openclouders" and "🎉 release" in ctx.build.title.lower())
|
||||||
if is_release_pr:
|
if is_release_pr:
|
||||||
return licenseCheck(ctx)
|
return [licenseCheck(ctx)]
|
||||||
|
|
||||||
build_release_helpers = \
|
build_release_helpers = \
|
||||||
readyReleaseGo()
|
readyReleaseGo()
|
||||||
@@ -521,10 +513,10 @@ def main(ctx):
|
|||||||
codestyle(ctx) + \
|
codestyle(ctx) + \
|
||||||
checkGherkinLint(ctx) + \
|
checkGherkinLint(ctx) + \
|
||||||
checkTestSuitesInExpectedFailures(ctx) + \
|
checkTestSuitesInExpectedFailures(ctx) + \
|
||||||
pipelinesDependsOn(buildWebCache(ctx), savePipelineNumber(ctx)) + \
|
buildWebCache(ctx) + \
|
||||||
pipelinesDependsOn(cacheBrowsers(ctx), savePipelineNumber(ctx)) + \
|
cacheBrowsers(ctx) + \
|
||||||
getGoBinForTesting(ctx) + \
|
getGoBinForTesting(ctx) + \
|
||||||
pipelinesDependsOn(buildOpencloudBinaryForTesting(ctx), savePipelineNumber(ctx)) + \
|
buildOpencloudBinaryForTesting(ctx) + \
|
||||||
checkStarlark(ctx) + \
|
checkStarlark(ctx) + \
|
||||||
build_release_helpers + \
|
build_release_helpers + \
|
||||||
testOpencloudAndUploadResults(ctx) + \
|
testOpencloudAndUploadResults(ctx) + \
|
||||||
@@ -569,56 +561,14 @@ def main(ctx):
|
|||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
test_pipelines.append(
|
|
||||||
pipelineDependsOn(
|
|
||||||
purgePipelineInfoCache(),
|
|
||||||
testPipelines(ctx),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
|
|
||||||
pipelines = test_pipelines + build_release_pipelines + notifyMatrix(ctx)
|
pipelines = test_pipelines + build_release_pipelines + notifyMatrix(ctx)
|
||||||
|
|
||||||
pipelineSanityChecks(pipelines)
|
pipelineSanityChecks(pipelines)
|
||||||
return savePipelineNumber(ctx) + pipelines
|
return pipelines
|
||||||
|
|
||||||
def savePipelineNumber(ctx):
|
|
||||||
base_url = "https://raw.githubusercontent.com/%s" % repo_slug
|
|
||||||
script_link = "%s/%s/tests/config/woodpecker/upload_pipeline_info.sh" % (base_url, ctx.build.commit)
|
|
||||||
return [{
|
|
||||||
"name": "save-pipeline-info",
|
|
||||||
"skip_clone": True,
|
|
||||||
"steps": [{
|
|
||||||
"name": "upload-info",
|
|
||||||
"image": MINIO_MC,
|
|
||||||
"environment": MINIO_MC_ENV,
|
|
||||||
"commands": [
|
|
||||||
"curl -s -o upload_pipeline_info.sh %s" % script_link,
|
|
||||||
"bash -x upload_pipeline_info.sh",
|
|
||||||
],
|
|
||||||
}],
|
|
||||||
"when": [
|
|
||||||
{
|
|
||||||
"event": ["push", "manual"],
|
|
||||||
"branch": ["main", "stable-*"],
|
|
||||||
},
|
|
||||||
event["tag"],
|
|
||||||
event["cron"],
|
|
||||||
event["pull_request"],
|
|
||||||
],
|
|
||||||
}]
|
|
||||||
|
|
||||||
def evaluateWorkflowStep():
|
|
||||||
return [{
|
|
||||||
"name": "evaluate-previous-run",
|
|
||||||
"image": OC_CI_NODEJS_ALPINE,
|
|
||||||
"commands": [
|
|
||||||
"node tests/config/woodpecker/evaluate_pipeline.js",
|
|
||||||
],
|
|
||||||
}]
|
|
||||||
|
|
||||||
def cachePipeline(ctx, name, steps):
|
def cachePipeline(ctx, name, steps):
|
||||||
return {
|
return {
|
||||||
"name": "cache-%s" % name,
|
"name": "build-%s-cache" % name,
|
||||||
"steps": steps,
|
"steps": steps,
|
||||||
"when": [
|
"when": [
|
||||||
{
|
{
|
||||||
@@ -642,7 +592,7 @@ def buildWebCache(ctx):
|
|||||||
]
|
]
|
||||||
|
|
||||||
def testOpencloudAndUploadResults(ctx):
|
def testOpencloudAndUploadResults(ctx):
|
||||||
unit_pipeline = testOpencloud(ctx)
|
pipeline = testOpencloud(ctx)
|
||||||
|
|
||||||
######################################################################
|
######################################################################
|
||||||
# The triggers have been disabled for now, since the govulncheck can #
|
# The triggers have been disabled for now, since the govulncheck can #
|
||||||
@@ -652,8 +602,8 @@ def testOpencloudAndUploadResults(ctx):
|
|||||||
######################################################################
|
######################################################################
|
||||||
|
|
||||||
#security_scan = scanOpencloud(ctx)
|
#security_scan = scanOpencloud(ctx)
|
||||||
#return [security_scan] + unit_pipeline + [scan_result_upload]
|
#return [security_scan, pipeline, scan_result_upload]
|
||||||
return unit_pipeline
|
return [pipeline]
|
||||||
|
|
||||||
def testPipelines(ctx):
|
def testPipelines(ctx):
|
||||||
pipelines = []
|
pipelines = []
|
||||||
@@ -666,10 +616,10 @@ def testPipelines(ctx):
|
|||||||
storage = "decomposed"
|
storage = "decomposed"
|
||||||
|
|
||||||
if "skip" not in config["cs3ApiTests"] or not config["cs3ApiTests"]["skip"]:
|
if "skip" not in config["cs3ApiTests"] or not config["cs3ApiTests"]["skip"]:
|
||||||
pipelines += cs3ApiTests(ctx, storage, "default")
|
pipelines.append(cs3ApiTests(ctx, storage, "default"))
|
||||||
if "skip" not in config["wopiValidatorTests"] or not config["wopiValidatorTests"]["skip"]:
|
if "skip" not in config["wopiValidatorTests"] or not config["wopiValidatorTests"]["skip"]:
|
||||||
pipelines += wopiValidatorTests(ctx, storage, "builtin", "default")
|
pipelines.append(wopiValidatorTests(ctx, storage, "builtin", "default"))
|
||||||
pipelines += wopiValidatorTests(ctx, storage, "cs3", "default")
|
pipelines.append(wopiValidatorTests(ctx, storage, "cs3", "default"))
|
||||||
|
|
||||||
pipelines += localApiTestPipeline(ctx)
|
pipelines += localApiTestPipeline(ctx)
|
||||||
pipelines += coreApiTestPipeline(ctx)
|
pipelines += coreApiTestPipeline(ctx)
|
||||||
@@ -677,7 +627,7 @@ def testPipelines(ctx):
|
|||||||
pipelines += multiServiceE2ePipeline(ctx)
|
pipelines += multiServiceE2ePipeline(ctx)
|
||||||
|
|
||||||
if ("skip" not in config["k6LoadTests"] or not config["k6LoadTests"]["skip"]) and ("k6-test" in ctx.build.title.lower() or ctx.build.event == "cron"):
|
if ("skip" not in config["k6LoadTests"] or not config["k6LoadTests"]["skip"]) and ("k6-test" in ctx.build.title.lower() or ctx.build.event == "cron"):
|
||||||
pipelines += pipelineDependsOn(k6LoadTests(ctx), savePipelineNumber(ctx))
|
pipelines += k6LoadTests(ctx)
|
||||||
|
|
||||||
return pipelines
|
return pipelines
|
||||||
|
|
||||||
@@ -727,7 +677,7 @@ def cacheGoBin():
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "archive-go-bin",
|
"name": "archive-go-bin",
|
||||||
"image": OC_CI_NODEJS,
|
"image": OC_UBUNTU,
|
||||||
"commands": [
|
"commands": [
|
||||||
". ./.env",
|
". ./.env",
|
||||||
"if $BIN_CACHE_FOUND; then exit 0; fi",
|
"if $BIN_CACHE_FOUND; then exit 0; fi",
|
||||||
@@ -765,7 +715,7 @@ def restoreGoBinCache():
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "extract-go-bin-cache",
|
"name": "extract-go-bin-cache",
|
||||||
"image": OC_CI_NODEJS,
|
"image": OC_UBUNTU,
|
||||||
"commands": [
|
"commands": [
|
||||||
"tar -xvmf %s -C /" % dirs["gobinTarPath"],
|
"tar -xvmf %s -C /" % dirs["gobinTarPath"],
|
||||||
],
|
],
|
||||||
@@ -773,7 +723,7 @@ def restoreGoBinCache():
|
|||||||
]
|
]
|
||||||
|
|
||||||
def testOpencloud(ctx):
|
def testOpencloud(ctx):
|
||||||
steps = evaluateWorkflowStep() + restoreGoBinCache() + makeGoGenerate("") + [
|
steps = restoreGoBinCache() + makeGoGenerate("") + [
|
||||||
{
|
{
|
||||||
"name": "golangci-lint",
|
"name": "golangci-lint",
|
||||||
"image": OC_CI_GOLANG,
|
"image": OC_CI_GOLANG,
|
||||||
@@ -839,8 +789,8 @@ def testOpencloud(ctx):
|
|||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
pipeline = {
|
return {
|
||||||
"name": "test-lint-unit",
|
"name": "linting_and_unitTests",
|
||||||
"steps": steps,
|
"steps": steps,
|
||||||
"when": [
|
"when": [
|
||||||
event["base"],
|
event["base"],
|
||||||
@@ -856,12 +806,6 @@ def testOpencloud(ctx):
|
|||||||
"workspace": workspace,
|
"workspace": workspace,
|
||||||
}
|
}
|
||||||
|
|
||||||
prefixStepCommands(pipeline, [
|
|
||||||
". ./.woodpecker.env",
|
|
||||||
'[ "$SKIP_WORKFLOW" = "true" ] && exit 0',
|
|
||||||
])
|
|
||||||
return [pipeline]
|
|
||||||
|
|
||||||
def scanOpencloud(ctx):
|
def scanOpencloud(ctx):
|
||||||
steps = restoreGoBinCache() + makeGoGenerate("") + [
|
steps = restoreGoBinCache() + makeGoGenerate("") + [
|
||||||
{
|
{
|
||||||
@@ -893,7 +837,7 @@ def scanOpencloud(ctx):
|
|||||||
|
|
||||||
def buildOpencloudBinaryForTesting(ctx):
|
def buildOpencloudBinaryForTesting(ctx):
|
||||||
return [{
|
return [{
|
||||||
"name": "build-opencloud-for-testing",
|
"name": "build_opencloud_binary_for_testing",
|
||||||
"steps": makeNodeGenerate("") +
|
"steps": makeNodeGenerate("") +
|
||||||
makeGoGenerate("") +
|
makeGoGenerate("") +
|
||||||
build() +
|
build() +
|
||||||
@@ -965,7 +909,7 @@ def checkGherkinLint(ctx):
|
|||||||
"steps": [
|
"steps": [
|
||||||
{
|
{
|
||||||
"name": "lint-feature-files",
|
"name": "lint-feature-files",
|
||||||
"image": OC_CI_NODEJS_ALPINE,
|
"image": OC_CI_NODEJS % DEFAULT_NODEJS_VERSION,
|
||||||
"commands": [
|
"commands": [
|
||||||
"npm install -g @gherlint/gherlint@1.1.0",
|
"npm install -g @gherlint/gherlint@1.1.0",
|
||||||
"make test-gherkin-lint",
|
"make test-gherkin-lint",
|
||||||
@@ -1058,10 +1002,9 @@ def codestyle(ctx):
|
|||||||
return pipelines
|
return pipelines
|
||||||
|
|
||||||
def cs3ApiTests(ctx, storage, accounts_hash_difficulty = 4):
|
def cs3ApiTests(ctx, storage, accounts_hash_difficulty = 4):
|
||||||
pipeline = {
|
return {
|
||||||
"name": "test-cs3-API-%s" % storage,
|
"name": "cs3ApiTests-%s" % storage,
|
||||||
"steps": evaluateWorkflowStep() +
|
"steps": restoreBuildArtifactCache(ctx, dirs["opencloudBinArtifact"], dirs["opencloudBinPath"]) +
|
||||||
restoreBuildArtifactCache(ctx, dirs["opencloudBinArtifact"], dirs["opencloudBinPath"]) +
|
|
||||||
opencloudServer(storage, accounts_hash_difficulty, deploy_type = "cs3api_validator") +
|
opencloudServer(storage, accounts_hash_difficulty, deploy_type = "cs3api_validator") +
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
@@ -1087,11 +1030,6 @@ def cs3ApiTests(ctx, storage, accounts_hash_difficulty = 4):
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
prefixStepCommands(pipeline, [
|
|
||||||
". ./.woodpecker.env",
|
|
||||||
'[ "$SKIP_WORKFLOW" = "true" ] && exit 0',
|
|
||||||
])
|
|
||||||
return [pipeline]
|
|
||||||
|
|
||||||
def wopiValidatorTests(ctx, storage, wopiServerType, accounts_hash_difficulty = 4):
|
def wopiValidatorTests(ctx, storage, wopiServerType, accounts_hash_difficulty = 4):
|
||||||
testgroups = [
|
testgroups = [
|
||||||
@@ -1165,11 +1103,10 @@ def wopiValidatorTests(ctx, storage, wopiServerType, accounts_hash_difficulty =
|
|||||||
],
|
],
|
||||||
})
|
})
|
||||||
|
|
||||||
pipeline = {
|
return {
|
||||||
"name": "test-wopi-validator-%s-%s" % (wopiServerType, storage),
|
"name": "wopiValidatorTests-%s-%s" % (wopiServerType, storage),
|
||||||
"services": fakeOffice(),
|
"services": fakeOffice(),
|
||||||
"steps": evaluateWorkflowStep() +
|
"steps": restoreBuildArtifactCache(ctx, dirs["opencloudBinArtifact"], dirs["opencloudBinPath"]) +
|
||||||
restoreBuildArtifactCache(ctx, dirs["opencloudBinArtifact"], dirs["opencloudBinPath"]) +
|
|
||||||
waitForServices("fake-office", ["fakeoffice:8080"]) +
|
waitForServices("fake-office", ["fakeoffice:8080"]) +
|
||||||
opencloudServer(storage, accounts_hash_difficulty, deploy_type = "wopi_validator", extra_server_environment = extra_server_environment) +
|
opencloudServer(storage, accounts_hash_difficulty, deploy_type = "wopi_validator", extra_server_environment = extra_server_environment) +
|
||||||
wopiServer +
|
wopiServer +
|
||||||
@@ -1207,11 +1144,6 @@ def wopiValidatorTests(ctx, storage, wopiServerType, accounts_hash_difficulty =
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
prefixStepCommands(pipeline, [
|
|
||||||
". ./.woodpecker.env",
|
|
||||||
'[ "$SKIP_WORKFLOW" = "true" ] && exit 0',
|
|
||||||
])
|
|
||||||
return [pipeline]
|
|
||||||
|
|
||||||
def localApiTestPipeline(ctx):
|
def localApiTestPipeline(ctx):
|
||||||
pipelines = []
|
pipelines = []
|
||||||
@@ -1256,9 +1188,9 @@ def localApiTestPipeline(ctx):
|
|||||||
for storage in params["storages"]:
|
for storage in params["storages"]:
|
||||||
for run_with_remote_php in params["withRemotePhp"]:
|
for run_with_remote_php in params["withRemotePhp"]:
|
||||||
for run_with_watch_fs_enabled in params["enableWatchFs"]:
|
for run_with_watch_fs_enabled in params["enableWatchFs"]:
|
||||||
pipeline_name = "test-API"
|
pipeline_name = "API"
|
||||||
if name.startswith("cli"):
|
if name.startswith("cli"):
|
||||||
pipeline_name = "test-CLI"
|
pipeline_name = "CLI"
|
||||||
pipeline_name += "-%s" % name
|
pipeline_name += "-%s" % name
|
||||||
if not run_with_remote_php:
|
if not run_with_remote_php:
|
||||||
pipeline_name += "-withoutRemotePhp"
|
pipeline_name += "-withoutRemotePhp"
|
||||||
@@ -1268,7 +1200,7 @@ def localApiTestPipeline(ctx):
|
|||||||
|
|
||||||
pipeline = {
|
pipeline = {
|
||||||
"name": pipeline_name,
|
"name": pipeline_name,
|
||||||
"steps": evaluateWorkflowStep() + restoreBuildArtifactCache(ctx, dirs["opencloudBinArtifact"], dirs["opencloudBinPath"]) +
|
"steps": restoreBuildArtifactCache(ctx, dirs["opencloudBinArtifact"], dirs["opencloudBinPath"]) +
|
||||||
(tikaService() if params["tikaNeeded"] else []) +
|
(tikaService() if params["tikaNeeded"] else []) +
|
||||||
(waitForServices("online-offices", ["collabora:9980", "onlyoffice:443", "fakeoffice:8080"]) if params["collaborationServiceNeeded"] else []) +
|
(waitForServices("online-offices", ["collabora:9980", "onlyoffice:443", "fakeoffice:8080"]) if params["collaborationServiceNeeded"] else []) +
|
||||||
(waitForClamavService() if params["antivirusNeeded"] else []) +
|
(waitForClamavService() if params["antivirusNeeded"] else []) +
|
||||||
@@ -1303,10 +1235,6 @@ def localApiTestPipeline(ctx):
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
prefixStepCommands(pipeline, [
|
|
||||||
". ./.woodpecker.env",
|
|
||||||
'[ "$SKIP_WORKFLOW" = "true" ] && exit 0',
|
|
||||||
])
|
|
||||||
pipelines.append(pipeline)
|
pipelines.append(pipeline)
|
||||||
return pipelines
|
return pipelines
|
||||||
|
|
||||||
@@ -1391,7 +1319,7 @@ def coreApiTestPipeline(ctx):
|
|||||||
for run_with_remote_php in params["withRemotePhp"]:
|
for run_with_remote_php in params["withRemotePhp"]:
|
||||||
for run_with_watch_fs_enabled in params["enableWatchFs"]:
|
for run_with_watch_fs_enabled in params["enableWatchFs"]:
|
||||||
if not debugPartsEnabled or (debugPartsEnabled and runPart in debugParts):
|
if not debugPartsEnabled or (debugPartsEnabled and runPart in debugParts):
|
||||||
pipeline_name = "test-Core-API-%s" % runPart
|
pipeline_name = "Core-API-%s" % runPart
|
||||||
if not run_with_remote_php:
|
if not run_with_remote_php:
|
||||||
pipeline_name += "-withoutRemotePhp"
|
pipeline_name += "-withoutRemotePhp"
|
||||||
pipeline_name += "-%s" % storage
|
pipeline_name += "-%s" % storage
|
||||||
@@ -1400,8 +1328,7 @@ def coreApiTestPipeline(ctx):
|
|||||||
|
|
||||||
pipeline = {
|
pipeline = {
|
||||||
"name": pipeline_name,
|
"name": pipeline_name,
|
||||||
"steps": evaluateWorkflowStep() +
|
"steps": restoreBuildArtifactCache(ctx, dirs["opencloudBinArtifact"], dirs["opencloudBinPath"]) +
|
||||||
restoreBuildArtifactCache(ctx, dirs["opencloudBinArtifact"], dirs["opencloudBinPath"]) +
|
|
||||||
opencloudServer(
|
opencloudServer(
|
||||||
storage,
|
storage,
|
||||||
params["accounts_hash_difficulty"],
|
params["accounts_hash_difficulty"],
|
||||||
@@ -1428,15 +1355,11 @@ def coreApiTestPipeline(ctx):
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
prefixStepCommands(pipeline, [
|
|
||||||
". ./.woodpecker.env",
|
|
||||||
'[ "$SKIP_WORKFLOW" = "true" ] && exit 0',
|
|
||||||
])
|
|
||||||
pipelines.append(pipeline)
|
pipelines.append(pipeline)
|
||||||
return pipelines
|
return pipelines
|
||||||
|
|
||||||
def coreApiTest(part_number = 1, number_of_parts = 1, with_remote_php = False, storage = "posix"):
|
def coreApiTest(part_number = 1, number_of_parts = 1, with_remote_php = False, storage = "posix"):
|
||||||
filter_tags = "~@skipOnOpencloud-%s-Storage" % storage
|
filterTags = "~@skipOnOpencloud-%s-Storage" % storage
|
||||||
test_dir = "%s/tests/acceptance" % dirs["base"]
|
test_dir = "%s/tests/acceptance" % dirs["base"]
|
||||||
expected_failures_file = "%s/expected-failures-API-on-%s-storage.md" % (test_dir, storage)
|
expected_failures_file = "%s/expected-failures-API-on-%s-storage.md" % (test_dir, storage)
|
||||||
|
|
||||||
@@ -1448,7 +1371,7 @@ def coreApiTest(part_number = 1, number_of_parts = 1, with_remote_php = False, s
|
|||||||
"OC_REVA_DATA_ROOT": "%s" % (dirs["opencloudRevaDataRoot"] if storage == "owncloud" else ""),
|
"OC_REVA_DATA_ROOT": "%s" % (dirs["opencloudRevaDataRoot"] if storage == "owncloud" else ""),
|
||||||
"SEND_SCENARIO_LINE_REFERENCES": True,
|
"SEND_SCENARIO_LINE_REFERENCES": True,
|
||||||
"STORAGE_DRIVER": storage,
|
"STORAGE_DRIVER": storage,
|
||||||
"BEHAT_FILTER_TAGS": filter_tags,
|
"BEHAT_FILTER_TAGS": filterTags,
|
||||||
"DIVIDE_INTO_NUM_PARTS": number_of_parts,
|
"DIVIDE_INTO_NUM_PARTS": number_of_parts,
|
||||||
"RUN_PART": part_number,
|
"RUN_PART": part_number,
|
||||||
"ACCEPTANCE_TEST_TYPE": "core-api",
|
"ACCEPTANCE_TEST_TYPE": "core-api",
|
||||||
@@ -1536,7 +1459,6 @@ def e2eTestPipeline(ctx):
|
|||||||
for storage in params["storages"]:
|
for storage in params["storages"]:
|
||||||
for watch_fs_enabled in params["enableWatchFs"]:
|
for watch_fs_enabled in params["enableWatchFs"]:
|
||||||
steps_before = \
|
steps_before = \
|
||||||
evaluateWorkflowStep() + \
|
|
||||||
restoreBuildArtifactCache(ctx, dirs["opencloudBinArtifact"], dirs["opencloudBin"]) + \
|
restoreBuildArtifactCache(ctx, dirs["opencloudBinArtifact"], dirs["opencloudBin"]) + \
|
||||||
restoreWebCache() + \
|
restoreWebCache() + \
|
||||||
restoreWebPnpmCache() + \
|
restoreWebPnpmCache() + \
|
||||||
@@ -1551,7 +1473,7 @@ def e2eTestPipeline(ctx):
|
|||||||
|
|
||||||
step_e2e = {
|
step_e2e = {
|
||||||
"name": "e2e-tests",
|
"name": "e2e-tests",
|
||||||
"image": OC_CI_NODEJS,
|
"image": OC_CI_NODEJS % DEFAULT_NODEJS_VERSION,
|
||||||
"environment": {
|
"environment": {
|
||||||
"OC_BASE_URL": OC_DOMAIN,
|
"OC_BASE_URL": OC_DOMAIN,
|
||||||
"HEADLESS": True,
|
"HEADLESS": True,
|
||||||
@@ -1578,30 +1500,20 @@ def e2eTestPipeline(ctx):
|
|||||||
"cd %s/tests/e2e" % dirs["web"],
|
"cd %s/tests/e2e" % dirs["web"],
|
||||||
"bash run-e2e.sh %s --run-part %d" % (e2e_args, run_part),
|
"bash run-e2e.sh %s --run-part %d" % (e2e_args, run_part),
|
||||||
]
|
]
|
||||||
pipeline = {
|
pipelines.append({
|
||||||
"name": "test-e2e-%s-%s-%s%s" % (name, run_part, storage, "-watchfs" if watch_fs_enabled else ""),
|
"name": "e2e-tests-%s-%s-%s%s" % (name, run_part, storage, "-watchfs" if watch_fs_enabled else ""),
|
||||||
"steps": steps_before + [run_e2e] + steps_after,
|
"steps": steps_before + [run_e2e] + steps_after,
|
||||||
"depends_on": getPipelineNames(buildOpencloudBinaryForTesting(ctx) + buildWebCache(ctx)),
|
"depends_on": getPipelineNames(buildOpencloudBinaryForTesting(ctx) + buildWebCache(ctx)),
|
||||||
"when": e2e_trigger,
|
"when": e2e_trigger,
|
||||||
}
|
})
|
||||||
prefixStepCommands(pipeline, [
|
|
||||||
". ./.woodpecker.env",
|
|
||||||
'[ "$SKIP_WORKFLOW" = "true" ] && exit 0',
|
|
||||||
])
|
|
||||||
pipelines.append(pipeline)
|
|
||||||
else:
|
else:
|
||||||
step_e2e["commands"].append("bash run-e2e.sh %s" % e2e_args)
|
step_e2e["commands"].append("bash run-e2e.sh %s" % e2e_args)
|
||||||
pipeline = {
|
pipelines.append({
|
||||||
"name": "test-e2e-%s-%s%s" % (name, storage, "-watchfs" if watch_fs_enabled else ""),
|
"name": "e2e-tests-%s-%s%s" % (name, storage, "-watchfs" if watch_fs_enabled else ""),
|
||||||
"steps": steps_before + [step_e2e] + steps_after,
|
"steps": steps_before + [step_e2e] + steps_after,
|
||||||
"depends_on": getPipelineNames(buildOpencloudBinaryForTesting(ctx) + buildWebCache(ctx)),
|
"depends_on": getPipelineNames(buildOpencloudBinaryForTesting(ctx) + buildWebCache(ctx)),
|
||||||
"when": e2e_trigger,
|
"when": e2e_trigger,
|
||||||
}
|
})
|
||||||
prefixStepCommands(pipeline, [
|
|
||||||
". ./.woodpecker.env",
|
|
||||||
'[ "$SKIP_WORKFLOW" = "true" ] && exit 0',
|
|
||||||
])
|
|
||||||
pipelines.append(pipeline)
|
|
||||||
return pipelines
|
return pipelines
|
||||||
|
|
||||||
def multiServiceE2ePipeline(ctx):
|
def multiServiceE2ePipeline(ctx):
|
||||||
@@ -1716,7 +1628,6 @@ def multiServiceE2ePipeline(ctx):
|
|||||||
extra_server_environment["STORAGE_USERS_POSIX_WATCH_FS"] = True
|
extra_server_environment["STORAGE_USERS_POSIX_WATCH_FS"] = True
|
||||||
|
|
||||||
steps = \
|
steps = \
|
||||||
evaluateWorkflowStep() + \
|
|
||||||
restoreBuildArtifactCache(ctx, dirs["opencloudBinArtifact"], dirs["opencloudBin"]) + \
|
restoreBuildArtifactCache(ctx, dirs["opencloudBinArtifact"], dirs["opencloudBin"]) + \
|
||||||
restoreWebCache() + \
|
restoreWebCache() + \
|
||||||
restoreWebPnpmCache() + \
|
restoreWebPnpmCache() + \
|
||||||
@@ -1726,7 +1637,7 @@ def multiServiceE2ePipeline(ctx):
|
|||||||
storage_users_services + \
|
storage_users_services + \
|
||||||
[{
|
[{
|
||||||
"name": "e2e-tests",
|
"name": "e2e-tests",
|
||||||
"image": OC_CI_NODEJS,
|
"image": OC_CI_NODEJS % DEFAULT_NODEJS_VERSION,
|
||||||
"environment": {
|
"environment": {
|
||||||
"OC_BASE_URL": OC_DOMAIN,
|
"OC_BASE_URL": OC_DOMAIN,
|
||||||
"HEADLESS": True,
|
"HEADLESS": True,
|
||||||
@@ -1742,17 +1653,12 @@ def multiServiceE2ePipeline(ctx):
|
|||||||
}] + \
|
}] + \
|
||||||
uploadTracingResult(ctx)
|
uploadTracingResult(ctx)
|
||||||
|
|
||||||
pipeline = {
|
pipelines.append({
|
||||||
"name": "e2e-tests-multi-service%s" % ("-watchfs" if watch_fs_enabled else ""),
|
"name": "e2e-tests-multi-service%s" % ("-watchfs" if watch_fs_enabled else ""),
|
||||||
"steps": steps,
|
"steps": steps,
|
||||||
"depends_on": getPipelineNames(buildOpencloudBinaryForTesting(ctx) + buildWebCache(ctx)),
|
"depends_on": getPipelineNames(buildOpencloudBinaryForTesting(ctx) + buildWebCache(ctx)),
|
||||||
"when": e2e_trigger,
|
"when": e2e_trigger,
|
||||||
}
|
})
|
||||||
prefixStepCommands(pipeline, [
|
|
||||||
". ./.woodpecker.env",
|
|
||||||
'[ "$SKIP_WORKFLOW" = "true" ] && exit 0',
|
|
||||||
])
|
|
||||||
pipelines.append(pipeline)
|
|
||||||
return pipelines
|
return pipelines
|
||||||
|
|
||||||
def uploadTracingResult(ctx):
|
def uploadTracingResult(ctx):
|
||||||
@@ -2053,19 +1959,19 @@ def binaryRelease(ctx, arch, depends_on = []):
|
|||||||
}
|
}
|
||||||
|
|
||||||
def licenseCheck(ctx):
|
def licenseCheck(ctx):
|
||||||
return [{
|
return {
|
||||||
"name": "check-licenses",
|
"name": "check-licenses",
|
||||||
"steps": restoreGoBinCache() + [
|
"steps": restoreGoBinCache() + [
|
||||||
{
|
{
|
||||||
"name": "node-check-licenses",
|
"name": "node-check-licenses",
|
||||||
"image": OC_CI_NODEJS_ALPINE,
|
"image": OC_CI_NODEJS % DEFAULT_NODEJS_VERSION,
|
||||||
"commands": [
|
"commands": [
|
||||||
"make ci-node-check-licenses",
|
"make ci-node-check-licenses",
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "node-save-licenses",
|
"name": "node-save-licenses",
|
||||||
"image": OC_CI_NODEJS_ALPINE,
|
"image": OC_CI_NODEJS % DEFAULT_NODEJS_VERSION,
|
||||||
"commands": [
|
"commands": [
|
||||||
"make ci-node-save-licenses",
|
"make ci-node-save-licenses",
|
||||||
],
|
],
|
||||||
@@ -2117,7 +2023,7 @@ def licenseCheck(ctx):
|
|||||||
event["tag"],
|
event["tag"],
|
||||||
],
|
],
|
||||||
"workspace": workspace,
|
"workspace": workspace,
|
||||||
}]
|
}
|
||||||
|
|
||||||
def readyReleaseGo():
|
def readyReleaseGo():
|
||||||
return [{
|
return [{
|
||||||
@@ -2185,7 +2091,7 @@ def makeNodeGenerate(module):
|
|||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
"name": "generate nodejs",
|
"name": "generate nodejs",
|
||||||
"image": OC_CI_NODEJS,
|
"image": OC_CI_NODEJS % DEFAULT_NODEJS_VERSION,
|
||||||
"environment": {
|
"environment": {
|
||||||
"CHROMEDRIVER_SKIP_DOWNLOAD": True, # install fails on arm and chromedriver is a test only dependency
|
"CHROMEDRIVER_SKIP_DOWNLOAD": True, # install fails on arm and chromedriver is a test only dependency
|
||||||
},
|
},
|
||||||
@@ -2379,9 +2285,9 @@ def opencloudServer(storage = "decomposed", accounts_hash_difficulty = 4, depend
|
|||||||
"%s/bin/ocwrapper serve --bin %s --url %s --admin-username admin --admin-password admin" % (dirs["ocWrapper"], dirs["opencloudBin"], environment["OC_URL"]),
|
"%s/bin/ocwrapper serve --bin %s --url %s --admin-username admin --admin-password admin" % (dirs["ocWrapper"], dirs["opencloudBin"], environment["OC_URL"]),
|
||||||
]
|
]
|
||||||
else:
|
else:
|
||||||
server_commands.append(
|
server_commands += [
|
||||||
"%s server" % dirs["opencloudBin"],
|
"%s server" % dirs["opencloudBin"],
|
||||||
)
|
]
|
||||||
|
|
||||||
wait_for_opencloud = {
|
wait_for_opencloud = {
|
||||||
"name": "wait-for-%s" % container_name,
|
"name": "wait-for-%s" % container_name,
|
||||||
@@ -2687,9 +2593,6 @@ def purgeOpencloudWebBuildCache(ctx):
|
|||||||
def purgeGoBinCache(ctx):
|
def purgeGoBinCache(ctx):
|
||||||
return purgeCache("purge_go_bin_cache", "dev/opencloud/go-bin", 14)
|
return purgeCache("purge_go_bin_cache", "dev/opencloud/go-bin", 14)
|
||||||
|
|
||||||
def purgePipelineInfoCache():
|
|
||||||
return purgeCache("purge_pipeline_info_cache", "public/opencloud/pipelines", 14)
|
|
||||||
|
|
||||||
def pipelineSanityChecks(pipelines):
|
def pipelineSanityChecks(pipelines):
|
||||||
"""pipelineSanityChecks helps the CI developers to find errors before running it
|
"""pipelineSanityChecks helps the CI developers to find errors before running it
|
||||||
|
|
||||||
@@ -2757,8 +2660,10 @@ def pipelineSanityChecks(pipelines):
|
|||||||
print(" %sx\t%s" % (images[image], image))
|
print(" %sx\t%s" % (images[image], image))
|
||||||
|
|
||||||
def litmus(ctx, storage):
|
def litmus(ctx, storage):
|
||||||
|
pipelines = []
|
||||||
|
|
||||||
if not config["litmus"]:
|
if not config["litmus"]:
|
||||||
return []
|
return pipelines
|
||||||
|
|
||||||
environment = {
|
environment = {
|
||||||
"LITMUS_PASSWORD": "admin",
|
"LITMUS_PASSWORD": "admin",
|
||||||
@@ -2766,12 +2671,11 @@ def litmus(ctx, storage):
|
|||||||
"TESTS": "basic copymove props http",
|
"TESTS": "basic copymove props http",
|
||||||
}
|
}
|
||||||
|
|
||||||
litmus_command = "/usr/local/bin/litmus-wrapper"
|
litmusCommand = "/usr/local/bin/litmus-wrapper"
|
||||||
|
|
||||||
pipeline = {
|
result = {
|
||||||
"name": "test-litmus",
|
"name": "litmus",
|
||||||
"steps": evaluateWorkflowStep() +
|
"steps": restoreBuildArtifactCache(ctx, dirs["opencloudBinArtifact"], dirs["opencloudBinPath"]) +
|
||||||
restoreBuildArtifactCache(ctx, dirs["opencloudBinArtifact"], dirs["opencloudBinPath"]) +
|
|
||||||
opencloudServer(storage) +
|
opencloudServer(storage) +
|
||||||
setupForLitmus() +
|
setupForLitmus() +
|
||||||
[
|
[
|
||||||
@@ -2782,7 +2686,7 @@ def litmus(ctx, storage):
|
|||||||
"commands": [
|
"commands": [
|
||||||
"source .env",
|
"source .env",
|
||||||
'export LITMUS_URL="%s/remote.php/webdav"' % OC_URL,
|
'export LITMUS_URL="%s/remote.php/webdav"' % OC_URL,
|
||||||
litmus_command,
|
litmusCommand,
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -2792,7 +2696,7 @@ def litmus(ctx, storage):
|
|||||||
"commands": [
|
"commands": [
|
||||||
"source .env",
|
"source .env",
|
||||||
'export LITMUS_URL="%s/remote.php/dav/files/admin"' % OC_URL,
|
'export LITMUS_URL="%s/remote.php/dav/files/admin"' % OC_URL,
|
||||||
litmus_command,
|
litmusCommand,
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -2802,7 +2706,7 @@ def litmus(ctx, storage):
|
|||||||
"commands": [
|
"commands": [
|
||||||
"source .env",
|
"source .env",
|
||||||
'export LITMUS_URL="%s/remote.php/dav/files/admin/Shares/new_folder/"' % OC_URL,
|
'export LITMUS_URL="%s/remote.php/dav/files/admin/Shares/new_folder/"' % OC_URL,
|
||||||
litmus_command,
|
litmusCommand,
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -2812,7 +2716,7 @@ def litmus(ctx, storage):
|
|||||||
"commands": [
|
"commands": [
|
||||||
"source .env",
|
"source .env",
|
||||||
'export LITMUS_URL="%s/remote.php/webdav/Shares/new_folder/"' % OC_URL,
|
'export LITMUS_URL="%s/remote.php/webdav/Shares/new_folder/"' % OC_URL,
|
||||||
litmus_command,
|
litmusCommand,
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
# {
|
# {
|
||||||
@@ -2826,7 +2730,7 @@ def litmus(ctx, storage):
|
|||||||
# "commands": [
|
# "commands": [
|
||||||
# "source .env",
|
# "source .env",
|
||||||
# "export LITMUS_URL='%s/remote.php/dav/public-files/'$PUBLIC_TOKEN" % OCIS_URL,
|
# "export LITMUS_URL='%s/remote.php/dav/public-files/'$PUBLIC_TOKEN" % OCIS_URL,
|
||||||
# litmus_command,
|
# litmusCommand,
|
||||||
# ],
|
# ],
|
||||||
# },
|
# },
|
||||||
{
|
{
|
||||||
@@ -2836,7 +2740,7 @@ def litmus(ctx, storage):
|
|||||||
"commands": [
|
"commands": [
|
||||||
"source .env",
|
"source .env",
|
||||||
"export LITMUS_URL='%s/remote.php/dav/spaces/'$SPACE_ID" % OC_URL,
|
"export LITMUS_URL='%s/remote.php/dav/spaces/'$SPACE_ID" % OC_URL,
|
||||||
litmus_command,
|
litmusCommand,
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
@@ -2853,17 +2757,14 @@ def litmus(ctx, storage):
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
pipelines.append(result)
|
||||||
|
|
||||||
prefixStepCommands(pipeline, [
|
return pipelines
|
||||||
". ./.woodpecker.env",
|
|
||||||
'[ "$SKIP_WORKFLOW" = "true" ] && exit 0',
|
|
||||||
])
|
|
||||||
return [pipeline]
|
|
||||||
|
|
||||||
def setupForLitmus():
|
def setupForLitmus():
|
||||||
return [{
|
return [{
|
||||||
"name": "setup-for-litmus",
|
"name": "setup-for-litmus",
|
||||||
"image": OC_CI_NODEJS,
|
"image": OC_UBUNTU,
|
||||||
"environment": {
|
"environment": {
|
||||||
"TEST_SERVER_URL": OC_URL,
|
"TEST_SERVER_URL": OC_URL,
|
||||||
},
|
},
|
||||||
@@ -2878,7 +2779,7 @@ def getWoodpeckerEnvAndCheckScript(ctx):
|
|||||||
path_to_check_script = "%s/tests/config/woodpecker/check_web_cache.sh" % dirs["base"]
|
path_to_check_script = "%s/tests/config/woodpecker/check_web_cache.sh" % dirs["base"]
|
||||||
return {
|
return {
|
||||||
"name": "get-woodpecker-env-and-check-script",
|
"name": "get-woodpecker-env-and-check-script",
|
||||||
"image": OC_CI_NODEJS,
|
"image": OC_UBUNTU,
|
||||||
"commands": [
|
"commands": [
|
||||||
"cp %s check_web_cache.sh" % path_to_check_script,
|
"cp %s check_web_cache.sh" % path_to_check_script,
|
||||||
],
|
],
|
||||||
@@ -2897,7 +2798,7 @@ def checkForWebCache(name):
|
|||||||
def cloneWeb():
|
def cloneWeb():
|
||||||
return {
|
return {
|
||||||
"name": "clone-web",
|
"name": "clone-web",
|
||||||
"image": OC_CI_NODEJS_ALPINE,
|
"image": OC_CI_NODEJS % DEFAULT_NODEJS_VERSION,
|
||||||
"commands": [
|
"commands": [
|
||||||
". ./.woodpecker.env",
|
". ./.woodpecker.env",
|
||||||
"if $WEB_CACHE_FOUND; then exit 0; fi",
|
"if $WEB_CACHE_FOUND; then exit 0; fi",
|
||||||
@@ -2914,7 +2815,7 @@ def generateWebPnpmCache(ctx):
|
|||||||
cloneWeb(),
|
cloneWeb(),
|
||||||
{
|
{
|
||||||
"name": "install-pnpm",
|
"name": "install-pnpm",
|
||||||
"image": OC_CI_NODEJS,
|
"image": OC_CI_NODEJS % DEFAULT_NODEJS_VERSION,
|
||||||
"commands": [
|
"commands": [
|
||||||
". ./.woodpecker.env",
|
". ./.woodpecker.env",
|
||||||
"if $WEB_CACHE_FOUND; then exit 0; fi",
|
"if $WEB_CACHE_FOUND; then exit 0; fi",
|
||||||
@@ -2926,7 +2827,7 @@ def generateWebPnpmCache(ctx):
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "zip-pnpm",
|
"name": "zip-pnpm",
|
||||||
"image": OC_CI_NODEJS,
|
"image": OC_CI_NODEJS % DEFAULT_NODEJS_VERSION,
|
||||||
"commands": [
|
"commands": [
|
||||||
". ./.woodpecker.env",
|
". ./.woodpecker.env",
|
||||||
"if $WEB_CACHE_FOUND; then exit 0; fi",
|
"if $WEB_CACHE_FOUND; then exit 0; fi",
|
||||||
@@ -2988,7 +2889,7 @@ def cacheBrowsers(ctx):
|
|||||||
browser_cache_steps = [
|
browser_cache_steps = [
|
||||||
{
|
{
|
||||||
"name": "install-browsers",
|
"name": "install-browsers",
|
||||||
"image": OC_CI_NODEJS,
|
"image": OC_CI_NODEJS % DEFAULT_NODEJS_VERSION,
|
||||||
"environment": {
|
"environment": {
|
||||||
"PLAYWRIGHT_BROWSERS_PATH": ".playwright",
|
"PLAYWRIGHT_BROWSERS_PATH": ".playwright",
|
||||||
},
|
},
|
||||||
@@ -2996,7 +2897,7 @@ def cacheBrowsers(ctx):
|
|||||||
"cd %s" % dirs["web"],
|
"cd %s" % dirs["web"],
|
||||||
". ./.woodpecker.env",
|
". ./.woodpecker.env",
|
||||||
"if $BROWSER_CACHE_FOUND; then exit 0; fi",
|
"if $BROWSER_CACHE_FOUND; then exit 0; fi",
|
||||||
"pnpm exec playwright install",
|
"pnpm exec playwright install --with-deps",
|
||||||
"pnpm exec playwright install --list",
|
"pnpm exec playwright install --list",
|
||||||
"tar -czf %s .playwright" % dirs["playwrightBrowsersArchive"],
|
"tar -czf %s .playwright" % dirs["playwrightBrowsersArchive"],
|
||||||
],
|
],
|
||||||
@@ -3031,7 +2932,7 @@ def generateWebCache(ctx):
|
|||||||
cloneWeb(),
|
cloneWeb(),
|
||||||
{
|
{
|
||||||
"name": "zip-web",
|
"name": "zip-web",
|
||||||
"image": OC_CI_NODEJS,
|
"image": OC_UBUNTU,
|
||||||
"commands": [
|
"commands": [
|
||||||
". ./.woodpecker.env",
|
". ./.woodpecker.env",
|
||||||
"if $WEB_CACHE_FOUND; then exit 0; fi",
|
"if $WEB_CACHE_FOUND; then exit 0; fi",
|
||||||
@@ -3067,7 +2968,7 @@ def restoreWebCache():
|
|||||||
],
|
],
|
||||||
}, {
|
}, {
|
||||||
"name": "unzip-web-cache",
|
"name": "unzip-web-cache",
|
||||||
"image": OC_CI_NODEJS,
|
"image": OC_UBUNTU,
|
||||||
"commands": [
|
"commands": [
|
||||||
"tar -xf %s -C ." % dirs["webZip"],
|
"tar -xf %s -C ." % dirs["webZip"],
|
||||||
],
|
],
|
||||||
@@ -3086,7 +2987,7 @@ def restoreWebPnpmCache(extra_commands = []):
|
|||||||
}, {
|
}, {
|
||||||
# we need to install again because the node_modules are not cached
|
# we need to install again because the node_modules are not cached
|
||||||
"name": "unzip-and-install-pnpm",
|
"name": "unzip-and-install-pnpm",
|
||||||
"image": OC_CI_NODEJS,
|
"image": OC_CI_NODEJS % DEFAULT_NODEJS_VERSION,
|
||||||
"commands": extra_commands + [
|
"commands": extra_commands + [
|
||||||
"cd %s" % dirs["web"],
|
"cd %s" % dirs["web"],
|
||||||
"rm -rf .pnpm-store",
|
"rm -rf .pnpm-store",
|
||||||
@@ -3112,7 +3013,7 @@ def restoreBrowsersCache():
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "unzip-browsers-cache",
|
"name": "unzip-browsers-cache",
|
||||||
"image": OC_CI_NODEJS,
|
"image": OC_UBUNTU,
|
||||||
"commands": [
|
"commands": [
|
||||||
"tar -xf /woodpecker/src/github.com/%s/webTestRunner/playwright-browsers.tar.gz -C ." % repo_slug,
|
"tar -xf /woodpecker/src/github.com/%s/webTestRunner/playwright-browsers.tar.gz -C ." % repo_slug,
|
||||||
],
|
],
|
||||||
@@ -3130,7 +3031,7 @@ def waitForEmailService():
|
|||||||
"name": "wait-for-email",
|
"name": "wait-for-email",
|
||||||
"image": OC_CI_WAIT_FOR,
|
"image": OC_CI_WAIT_FOR,
|
||||||
"commands": [
|
"commands": [
|
||||||
"wait-for -host email -port 9000 -timeout 600",
|
"wait-for -it email:9000 -t 600",
|
||||||
],
|
],
|
||||||
}]
|
}]
|
||||||
|
|
||||||
@@ -3145,7 +3046,7 @@ def waitForClamavService():
|
|||||||
"name": "wait-for-clamav",
|
"name": "wait-for-clamav",
|
||||||
"image": OC_CI_WAIT_FOR,
|
"image": OC_CI_WAIT_FOR,
|
||||||
"commands": [
|
"commands": [
|
||||||
"wait-for -host clamav -port 3310 -timeout 600",
|
"wait-for -it clamav:3310 -t 600",
|
||||||
],
|
],
|
||||||
}]
|
}]
|
||||||
|
|
||||||
@@ -3188,7 +3089,7 @@ def waitForLdapService():
|
|||||||
"name": "wait-for-ldap",
|
"name": "wait-for-ldap",
|
||||||
"image": OC_CI_WAIT_FOR,
|
"image": OC_CI_WAIT_FOR,
|
||||||
"commands": [
|
"commands": [
|
||||||
"wait-for -host ldap-server -port 1636 -timeout 600",
|
"wait-for -it ldap-server:1636 -t 600",
|
||||||
],
|
],
|
||||||
}]
|
}]
|
||||||
|
|
||||||
@@ -3251,7 +3152,7 @@ def tikaService():
|
|||||||
"name": "wait-for-tika-service",
|
"name": "wait-for-tika-service",
|
||||||
"image": OC_CI_WAIT_FOR,
|
"image": OC_CI_WAIT_FOR,
|
||||||
"commands": [
|
"commands": [
|
||||||
"wait-for -host tika -port 9998 -timeout 300",
|
"wait-for -it tika:9998 -t 300",
|
||||||
],
|
],
|
||||||
}]
|
}]
|
||||||
|
|
||||||
@@ -3310,10 +3211,10 @@ def k6LoadTests(ctx):
|
|||||||
if "k6-test" in ctx.build.title.lower():
|
if "k6-test" in ctx.build.title.lower():
|
||||||
event_array.append("pull_request")
|
event_array.append("pull_request")
|
||||||
|
|
||||||
pipeline = {
|
return [{
|
||||||
"name": "test-k6-load",
|
"name": "k6-load-test",
|
||||||
"skip_clone": True,
|
"skip_clone": True,
|
||||||
"steps": evaluateWorkflowStep() + [
|
"steps": [
|
||||||
{
|
{
|
||||||
"name": "k6-load-test",
|
"name": "k6-load-test",
|
||||||
"image": OC_CI_ALPINE,
|
"image": OC_CI_ALPINE,
|
||||||
@@ -3358,26 +3259,16 @@ def k6LoadTests(ctx):
|
|||||||
"event": event_array,
|
"event": event_array,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
}
|
}]
|
||||||
prefixStepCommands(pipeline, [
|
|
||||||
". ./.woodpecker.env",
|
|
||||||
'[ "$SKIP_WORKFLOW" = "true" ] && exit 0',
|
|
||||||
])
|
|
||||||
return [pipeline]
|
|
||||||
|
|
||||||
def waitForServices(name, services = []):
|
def waitForServices(name, services = []):
|
||||||
commands = []
|
services = ",".join(services)
|
||||||
|
|
||||||
for service in services:
|
|
||||||
host, port = service.split(":", 1)
|
|
||||||
commands.append(
|
|
||||||
"wait-for -host %s -port %s -timeout 300" % (host, port),
|
|
||||||
)
|
|
||||||
|
|
||||||
return [{
|
return [{
|
||||||
"name": "wait-for-%s" % name,
|
"name": "wait-for-%s" % name,
|
||||||
"image": OC_CI_WAIT_FOR,
|
"image": OC_CI_WAIT_FOR,
|
||||||
"commands": commands,
|
"commands": [
|
||||||
|
"wait-for -it %s -t 300" % services,
|
||||||
|
],
|
||||||
}]
|
}]
|
||||||
|
|
||||||
def openCloudHealthCheck(name, services = []):
|
def openCloudHealthCheck(name, services = []):
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
"name": "opencloud-eu/opencloud",
|
"name": "opencloud-eu/opencloud",
|
||||||
"config": {
|
"config" : {
|
||||||
"platform": {
|
"platform": {
|
||||||
"php": "8.3"
|
"php": "8.2"
|
||||||
},
|
},
|
||||||
"vendor-dir": "./vendor-php",
|
"vendor-dir": "./vendor-php",
|
||||||
"allow-plugins": {
|
"allow-plugins": {
|
||||||
|
|||||||
20
go.mod
20
go.mod
@@ -47,7 +47,7 @@ require (
|
|||||||
github.com/jellydator/ttlcache/v3 v3.4.0
|
github.com/jellydator/ttlcache/v3 v3.4.0
|
||||||
github.com/jinzhu/now v1.1.5
|
github.com/jinzhu/now v1.1.5
|
||||||
github.com/justinas/alice v1.2.0
|
github.com/justinas/alice v1.2.0
|
||||||
github.com/kovidgoyal/imaging v1.8.18
|
github.com/kovidgoyal/imaging v1.8.17
|
||||||
github.com/leonelquinteros/gotext v1.7.2
|
github.com/leonelquinteros/gotext v1.7.2
|
||||||
github.com/libregraph/idm v0.5.0
|
github.com/libregraph/idm v0.5.0
|
||||||
github.com/libregraph/lico v0.66.0
|
github.com/libregraph/lico v0.66.0
|
||||||
@@ -65,7 +65,7 @@ require (
|
|||||||
github.com/opencloud-eu/icap-client v0.0.0-20250930132611-28a2afe62d89
|
github.com/opencloud-eu/icap-client v0.0.0-20250930132611-28a2afe62d89
|
||||||
github.com/opencloud-eu/libre-graph-api-go v1.0.8-0.20250724122329-41ba6b191e76
|
github.com/opencloud-eu/libre-graph-api-go v1.0.8-0.20250724122329-41ba6b191e76
|
||||||
github.com/opencloud-eu/reva/v2 v2.41.0
|
github.com/opencloud-eu/reva/v2 v2.41.0
|
||||||
github.com/opensearch-project/opensearch-go/v4 v4.6.0
|
github.com/opensearch-project/opensearch-go/v4 v4.5.0
|
||||||
github.com/orcaman/concurrent-map v1.0.0
|
github.com/orcaman/concurrent-map v1.0.0
|
||||||
github.com/pkg/errors v0.9.1
|
github.com/pkg/errors v0.9.1
|
||||||
github.com/pkg/xattr v0.4.12
|
github.com/pkg/xattr v0.4.12
|
||||||
@@ -97,21 +97,21 @@ require (
|
|||||||
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.63.0
|
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.63.0
|
||||||
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0
|
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0
|
||||||
go.opentelemetry.io/contrib/zpages v0.63.0
|
go.opentelemetry.io/contrib/zpages v0.63.0
|
||||||
go.opentelemetry.io/otel v1.39.0
|
go.opentelemetry.io/otel v1.38.0
|
||||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.38.0
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.38.0
|
||||||
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.38.0
|
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.38.0
|
||||||
go.opentelemetry.io/otel/sdk v1.39.0
|
go.opentelemetry.io/otel/sdk v1.38.0
|
||||||
go.opentelemetry.io/otel/trace v1.39.0
|
go.opentelemetry.io/otel/trace v1.38.0
|
||||||
golang.org/x/crypto v0.46.0
|
golang.org/x/crypto v0.46.0
|
||||||
golang.org/x/exp v0.0.0-20250210185358-939b2ce775ac
|
golang.org/x/exp v0.0.0-20250210185358-939b2ce775ac
|
||||||
golang.org/x/image v0.34.0
|
golang.org/x/image v0.33.0
|
||||||
golang.org/x/net v0.48.0
|
golang.org/x/net v0.48.0
|
||||||
golang.org/x/oauth2 v0.33.0
|
golang.org/x/oauth2 v0.33.0
|
||||||
golang.org/x/sync v0.19.0
|
golang.org/x/sync v0.19.0
|
||||||
golang.org/x/term v0.38.0
|
golang.org/x/term v0.38.0
|
||||||
golang.org/x/text v0.32.0
|
golang.org/x/text v0.32.0
|
||||||
google.golang.org/genproto/googleapis/api v0.0.0-20251029180050-ab9386a59fda
|
google.golang.org/genproto/googleapis/api v0.0.0-20251022142026-3a174f9686a8
|
||||||
google.golang.org/grpc v1.78.0
|
google.golang.org/grpc v1.77.0
|
||||||
google.golang.org/protobuf v1.36.10
|
google.golang.org/protobuf v1.36.10
|
||||||
gopkg.in/yaml.v2 v2.4.0
|
gopkg.in/yaml.v2 v2.4.0
|
||||||
gopkg.in/yaml.v3 v3.0.1
|
gopkg.in/yaml.v3 v3.0.1
|
||||||
@@ -384,7 +384,7 @@ require (
|
|||||||
go.opencensus.io v0.24.0 // indirect
|
go.opencensus.io v0.24.0 // indirect
|
||||||
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
|
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
|
||||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0 // indirect
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0 // indirect
|
||||||
go.opentelemetry.io/otel/metric v1.39.0 // indirect
|
go.opentelemetry.io/otel/metric v1.38.0 // indirect
|
||||||
go.opentelemetry.io/proto/otlp v1.7.1 // indirect
|
go.opentelemetry.io/proto/otlp v1.7.1 // indirect
|
||||||
go.uber.org/multierr v1.11.0 // indirect
|
go.uber.org/multierr v1.11.0 // indirect
|
||||||
go.uber.org/zap v1.27.0 // indirect
|
go.uber.org/zap v1.27.0 // indirect
|
||||||
@@ -395,7 +395,7 @@ require (
|
|||||||
golang.org/x/time v0.14.0 // indirect
|
golang.org/x/time v0.14.0 // indirect
|
||||||
golang.org/x/tools v0.39.0 // indirect
|
golang.org/x/tools v0.39.0 // indirect
|
||||||
google.golang.org/genproto v0.0.0-20250303144028-a0af3efb3deb // indirect
|
google.golang.org/genproto v0.0.0-20250303144028-a0af3efb3deb // indirect
|
||||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20251029180050-ab9386a59fda // indirect
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20251022142026-3a174f9686a8 // indirect
|
||||||
gopkg.in/cenkalti/backoff.v1 v1.1.0 // indirect
|
gopkg.in/cenkalti/backoff.v1 v1.1.0 // indirect
|
||||||
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
|
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
|
||||||
gopkg.in/warnings.v0 v0.1.2 // indirect
|
gopkg.in/warnings.v0 v0.1.2 // indirect
|
||||||
|
|||||||
44
go.sum
44
go.sum
@@ -745,8 +745,8 @@ github.com/kovidgoyal/go-parallel v1.1.1 h1:1OzpNjtrUkBPq3UaqrnvOoB2F9RttSt811ui
|
|||||||
github.com/kovidgoyal/go-parallel v1.1.1/go.mod h1:BJNIbe6+hxyFWv7n6oEDPj3PA5qSw5OCtf0hcVxWJiw=
|
github.com/kovidgoyal/go-parallel v1.1.1/go.mod h1:BJNIbe6+hxyFWv7n6oEDPj3PA5qSw5OCtf0hcVxWJiw=
|
||||||
github.com/kovidgoyal/go-shm v1.0.0 h1:HJEel9D1F9YhULvClEHJLawoRSj/1u/EDV7MJbBPgQo=
|
github.com/kovidgoyal/go-shm v1.0.0 h1:HJEel9D1F9YhULvClEHJLawoRSj/1u/EDV7MJbBPgQo=
|
||||||
github.com/kovidgoyal/go-shm v1.0.0/go.mod h1:Yzb80Xf9L3kaoB2RGok9hHwMIt7Oif61kT6t3+VnZds=
|
github.com/kovidgoyal/go-shm v1.0.0/go.mod h1:Yzb80Xf9L3kaoB2RGok9hHwMIt7Oif61kT6t3+VnZds=
|
||||||
github.com/kovidgoyal/imaging v1.8.18 h1:42JCqJnQBzBo0hGllLEJVYDARWXPP9MT3HgiTno9Chc=
|
github.com/kovidgoyal/imaging v1.8.17 h1:IDc7lbN2Qrn8s50y7Zt355HhOc+jUpvsScYAaGCW8vs=
|
||||||
github.com/kovidgoyal/imaging v1.8.18/go.mod h1:bqjHpeAxSuTLvKob6HuqAr9td2wP9G54Snbgd+1QLoU=
|
github.com/kovidgoyal/imaging v1.8.17/go.mod h1:uD4XKN42lLV9du0TsPkwi53yw23vz/qDmfpiDWCSUCE=
|
||||||
github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
|
github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
|
||||||
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
|
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
|
||||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
||||||
@@ -973,8 +973,8 @@ github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8
|
|||||||
github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
|
github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
|
||||||
github.com/opencontainers/image-spec v1.1.1 h1:y0fUlFfIZhPF1W537XOLg0/fcx6zcHCJwooC2xJA040=
|
github.com/opencontainers/image-spec v1.1.1 h1:y0fUlFfIZhPF1W537XOLg0/fcx6zcHCJwooC2xJA040=
|
||||||
github.com/opencontainers/image-spec v1.1.1/go.mod h1:qpqAh3Dmcf36wStyyWU+kCeDgrGnAve2nCC8+7h8Q0M=
|
github.com/opencontainers/image-spec v1.1.1/go.mod h1:qpqAh3Dmcf36wStyyWU+kCeDgrGnAve2nCC8+7h8Q0M=
|
||||||
github.com/opensearch-project/opensearch-go/v4 v4.6.0 h1:Ac8aLtDSmLEyOmv0r1qhQLw3b4vcUhE42NE9k+Z4cRc=
|
github.com/opensearch-project/opensearch-go/v4 v4.5.0 h1:26XckmmF6MhlXt91Bu1yY6R51jy1Ns/C3XgIfvyeTRo=
|
||||||
github.com/opensearch-project/opensearch-go/v4 v4.6.0/go.mod h1:3iZtb4SNt3IzaxavKq0dURh1AmtVgYW71E4XqmYnIiQ=
|
github.com/opensearch-project/opensearch-go/v4 v4.5.0/go.mod h1:VmFc7dqOEM3ZtLhrpleOzeq+cqUgNabqQG5gX0xId64=
|
||||||
github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
|
github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o=
|
||||||
github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs=
|
github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs=
|
||||||
github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc=
|
github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc=
|
||||||
@@ -1315,8 +1315,8 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0 h1:RbKq8BG
|
|||||||
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0/go.mod h1:h06DGIukJOevXaj/xrNjhi/2098RZzcLTbc0jDAUbsg=
|
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0/go.mod h1:h06DGIukJOevXaj/xrNjhi/2098RZzcLTbc0jDAUbsg=
|
||||||
go.opentelemetry.io/contrib/zpages v0.63.0 h1:TppOKuZGbqXMgsfjqq3i09N5Vbo1JLtLImUqiTPGnX4=
|
go.opentelemetry.io/contrib/zpages v0.63.0 h1:TppOKuZGbqXMgsfjqq3i09N5Vbo1JLtLImUqiTPGnX4=
|
||||||
go.opentelemetry.io/contrib/zpages v0.63.0/go.mod h1:5F8uugz75ay/MMhRRhxAXY33FuaI8dl7jTxefrIy5qk=
|
go.opentelemetry.io/contrib/zpages v0.63.0/go.mod h1:5F8uugz75ay/MMhRRhxAXY33FuaI8dl7jTxefrIy5qk=
|
||||||
go.opentelemetry.io/otel v1.39.0 h1:8yPrr/S0ND9QEfTfdP9V+SiwT4E0G7Y5MO7p85nis48=
|
go.opentelemetry.io/otel v1.38.0 h1:RkfdswUDRimDg0m2Az18RKOsnI8UDzppJAtj01/Ymk8=
|
||||||
go.opentelemetry.io/otel v1.39.0/go.mod h1:kLlFTywNWrFyEdH0oj2xK0bFYZtHRYUdv1NklR/tgc8=
|
go.opentelemetry.io/otel v1.38.0/go.mod h1:zcmtmQ1+YmQM9wrNsTGV/q/uyusom3P8RxwExxkZhjM=
|
||||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0 h1:GqRJVj7UmLjCVyVJ3ZFLdPRmhDUp2zFmQe3RHIOsw24=
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0 h1:GqRJVj7UmLjCVyVJ3ZFLdPRmhDUp2zFmQe3RHIOsw24=
|
||||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0/go.mod h1:ri3aaHSmCTVYu2AWv44YMauwAQc0aqI9gHKIcSbI1pU=
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0/go.mod h1:ri3aaHSmCTVYu2AWv44YMauwAQc0aqI9gHKIcSbI1pU=
|
||||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.38.0 h1:lwI4Dc5leUqENgGuQImwLo4WnuXFPetmPpkLi2IrX54=
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.38.0 h1:lwI4Dc5leUqENgGuQImwLo4WnuXFPetmPpkLi2IrX54=
|
||||||
@@ -1325,14 +1325,14 @@ go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.38.0 h1:aTL7F
|
|||||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.38.0/go.mod h1:kldtb7jDTeol0l3ewcmd8SDvx3EmIE7lyvqbasU3QC4=
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.38.0/go.mod h1:kldtb7jDTeol0l3ewcmd8SDvx3EmIE7lyvqbasU3QC4=
|
||||||
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.38.0 h1:kJxSDN4SgWWTjG/hPp3O7LCGLcHXFlvS2/FFOrwL+SE=
|
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.38.0 h1:kJxSDN4SgWWTjG/hPp3O7LCGLcHXFlvS2/FFOrwL+SE=
|
||||||
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.38.0/go.mod h1:mgIOzS7iZeKJdeB8/NYHrJ48fdGc71Llo5bJ1J4DWUE=
|
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.38.0/go.mod h1:mgIOzS7iZeKJdeB8/NYHrJ48fdGc71Llo5bJ1J4DWUE=
|
||||||
go.opentelemetry.io/otel/metric v1.39.0 h1:d1UzonvEZriVfpNKEVmHXbdf909uGTOQjA0HF0Ls5Q0=
|
go.opentelemetry.io/otel/metric v1.38.0 h1:Kl6lzIYGAh5M159u9NgiRkmoMKjvbsKtYRwgfrA6WpA=
|
||||||
go.opentelemetry.io/otel/metric v1.39.0/go.mod h1:jrZSWL33sD7bBxg1xjrqyDjnuzTUB0x1nBERXd7Ftcs=
|
go.opentelemetry.io/otel/metric v1.38.0/go.mod h1:kB5n/QoRM8YwmUahxvI3bO34eVtQf2i4utNVLr9gEmI=
|
||||||
go.opentelemetry.io/otel/sdk v1.39.0 h1:nMLYcjVsvdui1B/4FRkwjzoRVsMK8uL/cj0OyhKzt18=
|
go.opentelemetry.io/otel/sdk v1.38.0 h1:l48sr5YbNf2hpCUj/FoGhW9yDkl+Ma+LrVl8qaM5b+E=
|
||||||
go.opentelemetry.io/otel/sdk v1.39.0/go.mod h1:vDojkC4/jsTJsE+kh+LXYQlbL8CgrEcwmt1ENZszdJE=
|
go.opentelemetry.io/otel/sdk v1.38.0/go.mod h1:ghmNdGlVemJI3+ZB5iDEuk4bWA3GkTpW+DOoZMYBVVg=
|
||||||
go.opentelemetry.io/otel/sdk/metric v1.39.0 h1:cXMVVFVgsIf2YL6QkRF4Urbr/aMInf+2WKg+sEJTtB8=
|
go.opentelemetry.io/otel/sdk/metric v1.38.0 h1:aSH66iL0aZqo//xXzQLYozmWrXxyFkBJ6qT5wthqPoM=
|
||||||
go.opentelemetry.io/otel/sdk/metric v1.39.0/go.mod h1:xq9HEVH7qeX69/JnwEfp6fVq5wosJsY1mt4lLfYdVew=
|
go.opentelemetry.io/otel/sdk/metric v1.38.0/go.mod h1:dg9PBnW9XdQ1Hd6ZnRz689CbtrUp0wMMs9iPcgT9EZA=
|
||||||
go.opentelemetry.io/otel/trace v1.39.0 h1:2d2vfpEDmCJ5zVYz7ijaJdOF59xLomrvj7bjt6/qCJI=
|
go.opentelemetry.io/otel/trace v1.38.0 h1:Fxk5bKrDZJUH+AMyyIXGcFAPah0oRcT+LuNtJrmcNLE=
|
||||||
go.opentelemetry.io/otel/trace v1.39.0/go.mod h1:88w4/PnZSazkGzz/w84VHpQafiU4EtqqlVdxWy+rNOA=
|
go.opentelemetry.io/otel/trace v1.38.0/go.mod h1:j1P9ivuFsTceSWe1oY+EeW3sc+Pp42sO++GHkg4wwhs=
|
||||||
go.opentelemetry.io/proto/otlp v1.7.1 h1:gTOMpGDb0WTBOP8JaO72iL3auEZhVmAQg4ipjOVAtj4=
|
go.opentelemetry.io/proto/otlp v1.7.1 h1:gTOMpGDb0WTBOP8JaO72iL3auEZhVmAQg4ipjOVAtj4=
|
||||||
go.opentelemetry.io/proto/otlp v1.7.1/go.mod h1:b2rVh6rfI/s2pHWNlB7ILJcRALpcNDzKhACevjI+ZnE=
|
go.opentelemetry.io/proto/otlp v1.7.1/go.mod h1:b2rVh6rfI/s2pHWNlB7ILJcRALpcNDzKhACevjI+ZnE=
|
||||||
go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
|
go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
|
||||||
@@ -1392,8 +1392,8 @@ golang.org/x/exp v0.0.0-20250210185358-939b2ce775ac/go.mod h1:hH+7mtFmImwwcMvScy
|
|||||||
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
|
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
|
||||||
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
|
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
|
||||||
golang.org/x/image v0.18.0/go.mod h1:4yyo5vMFQjVjUcVk4jEQcU9MGy/rulF5WvUILseCM2E=
|
golang.org/x/image v0.18.0/go.mod h1:4yyo5vMFQjVjUcVk4jEQcU9MGy/rulF5WvUILseCM2E=
|
||||||
golang.org/x/image v0.34.0 h1:33gCkyw9hmwbZJeZkct8XyR11yH889EQt/QH4VmXMn8=
|
golang.org/x/image v0.33.0 h1:LXRZRnv1+zGd5XBUVRFmYEphyyKJjQjCRiOuAP3sZfQ=
|
||||||
golang.org/x/image v0.34.0/go.mod h1:2RNFBZRB+vnwwFil8GkMdRvrJOFd1AzdZI6vOY+eJVU=
|
golang.org/x/image v0.33.0/go.mod h1:DD3OsTYT9chzuzTQt+zMcOlBHgfoKQb1gry8p76Y1sc=
|
||||||
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||||
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
|
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
|
||||||
golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||||
@@ -1744,10 +1744,10 @@ google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6D
|
|||||||
google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||||
google.golang.org/genproto v0.0.0-20250303144028-a0af3efb3deb h1:ITgPrl429bc6+2ZraNSzMDk3I95nmQln2fuPstKwFDE=
|
google.golang.org/genproto v0.0.0-20250303144028-a0af3efb3deb h1:ITgPrl429bc6+2ZraNSzMDk3I95nmQln2fuPstKwFDE=
|
||||||
google.golang.org/genproto v0.0.0-20250303144028-a0af3efb3deb/go.mod h1:sAo5UzpjUwgFBCzupwhcLcxHVDK7vG5IqI30YnwX2eE=
|
google.golang.org/genproto v0.0.0-20250303144028-a0af3efb3deb/go.mod h1:sAo5UzpjUwgFBCzupwhcLcxHVDK7vG5IqI30YnwX2eE=
|
||||||
google.golang.org/genproto/googleapis/api v0.0.0-20251029180050-ab9386a59fda h1:+2XxjfsAu6vqFxwGBRcHiMaDCuZiqXGDUDVWVtrFAnE=
|
google.golang.org/genproto/googleapis/api v0.0.0-20251022142026-3a174f9686a8 h1:mepRgnBZa07I4TRuomDE4sTIYieg/osKmzIf4USdWS4=
|
||||||
google.golang.org/genproto/googleapis/api v0.0.0-20251029180050-ab9386a59fda/go.mod h1:fDMmzKV90WSg1NbozdqrE64fkuTv6mlq2zxo9ad+3yo=
|
google.golang.org/genproto/googleapis/api v0.0.0-20251022142026-3a174f9686a8/go.mod h1:fDMmzKV90WSg1NbozdqrE64fkuTv6mlq2zxo9ad+3yo=
|
||||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20251029180050-ab9386a59fda h1:i/Q+bfisr7gq6feoJnS/DlpdwEL4ihp41fvRiM3Ork0=
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20251022142026-3a174f9686a8 h1:M1rk8KBnUsBDg1oPGHNCxG4vc1f49epmTO7xscSajMk=
|
||||||
google.golang.org/genproto/googleapis/rpc v0.0.0-20251029180050-ab9386a59fda/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk=
|
google.golang.org/genproto/googleapis/rpc v0.0.0-20251022142026-3a174f9686a8/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk=
|
||||||
google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=
|
google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs=
|
||||||
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
||||||
google.golang.org/grpc v1.19.1/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
google.golang.org/grpc v1.19.1/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
|
||||||
@@ -1763,8 +1763,8 @@ google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3Iji
|
|||||||
google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
|
google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
|
||||||
google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
|
google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
|
||||||
google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
|
google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc=
|
||||||
google.golang.org/grpc v1.78.0 h1:K1XZG/yGDJnzMdd/uZHAkVqJE+xIDOcmdSFZkBUicNc=
|
google.golang.org/grpc v1.77.0 h1:wVVY6/8cGA6vvffn+wWK5ToddbgdU3d8MNENr4evgXM=
|
||||||
google.golang.org/grpc v1.78.0/go.mod h1:I47qjTo4OKbMkjA/aOOwxDIiPSBofUtQUI5EfpWvW7U=
|
google.golang.org/grpc v1.77.0/go.mod h1:z0BY1iVj0q8E1uSQCjL9cppRj+gnZjzDnzV0dHhrNig=
|
||||||
google.golang.org/grpc/examples v0.0.0-20211102180624-670c133e568e h1:m7aQHHqd0q89mRwhwS9Bx2rjyl/hsFAeta+uGrHsQaU=
|
google.golang.org/grpc/examples v0.0.0-20211102180624-670c133e568e h1:m7aQHHqd0q89mRwhwS9Bx2rjyl/hsFAeta+uGrHsQaU=
|
||||||
google.golang.org/grpc/examples v0.0.0-20211102180624-670c133e568e/go.mod h1:gID3PKrg7pWKntu9Ss6zTLJ0ttC0X9IHgREOCZwbCVU=
|
google.golang.org/grpc/examples v0.0.0-20211102180624-670c133e568e/go.mod h1:gID3PKrg7pWKntu9Ss6zTLJ0ttC0X9IHgREOCZwbCVU=
|
||||||
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ package command
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"context"
|
|
||||||
"crypto/tls"
|
"crypto/tls"
|
||||||
"encoding/base64"
|
"encoding/base64"
|
||||||
"errors"
|
"errors"
|
||||||
@@ -11,10 +10,8 @@ import (
|
|||||||
"net/http"
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
"os/signal"
|
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
"syscall"
|
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/olekukonko/tablewriter"
|
"github.com/olekukonko/tablewriter"
|
||||||
@@ -41,7 +38,7 @@ func BenchmarkCommand(cfg *config.Config) *cobra.Command {
|
|||||||
func BenchmarkClientCommand(cfg *config.Config) *cobra.Command {
|
func BenchmarkClientCommand(cfg *config.Config) *cobra.Command {
|
||||||
benchClientCmd := &cobra.Command{
|
benchClientCmd := &cobra.Command{
|
||||||
Use: "client",
|
Use: "client",
|
||||||
Short: "Start a client that continuously makes web requests and prints stats. The options mimic curl, but we default to PROPFIND requests.",
|
Short: "Start a client that continuously makes web requests and prints stats. The options mimic curl, but URL must be at the end.",
|
||||||
RunE: func(cmd *cobra.Command, args []string) error {
|
RunE: func(cmd *cobra.Command, args []string) error {
|
||||||
jobs, err := cmd.Flags().GetInt("jobs")
|
jobs, err := cmd.Flags().GetInt("jobs")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -49,89 +46,18 @@ func BenchmarkClientCommand(cfg *config.Config) *cobra.Command {
|
|||||||
}
|
}
|
||||||
insecure, _ := cmd.Flags().GetBool("insecure")
|
insecure, _ := cmd.Flags().GetBool("insecure")
|
||||||
opt := clientOptions{
|
opt := clientOptions{
|
||||||
|
request: cmd.Flag("request").Value.String(),
|
||||||
url: args[0],
|
url: args[0],
|
||||||
insecure: insecure,
|
insecure: insecure,
|
||||||
jobs: jobs,
|
jobs: jobs,
|
||||||
headers: make(map[string]string),
|
headers: make(map[string]string),
|
||||||
|
data: []byte(cmd.Flag("data").Value.String()),
|
||||||
}
|
}
|
||||||
|
|
||||||
if d, _ := cmd.Flags().GetString("data-raw"); d != "" {
|
|
||||||
opt.request = "POST"
|
|
||||||
opt.headers["Content-Type"] = "application/x-www-form-urlencoded"
|
|
||||||
opt.data = []byte(d)
|
|
||||||
}
|
|
||||||
|
|
||||||
if d, _ := cmd.Flags().GetString("data"); d != "" {
|
|
||||||
opt.request = "POST"
|
|
||||||
opt.headers["Content-Type"] = "application/x-www-form-urlencoded"
|
|
||||||
if strings.HasPrefix(d, "@") {
|
|
||||||
filePath := strings.TrimPrefix(d, "@")
|
|
||||||
var data []byte
|
|
||||||
var err error
|
|
||||||
|
|
||||||
// read from file or stdin and trim trailing newlines
|
|
||||||
if filePath == "-" {
|
|
||||||
data, err = os.ReadFile("/dev/stdin")
|
|
||||||
} else {
|
|
||||||
data, err = os.ReadFile(filePath)
|
|
||||||
}
|
|
||||||
if err != nil {
|
|
||||||
log.Fatal(errors.New("could not read data from file '" + filePath + "': " + err.Error()))
|
|
||||||
}
|
|
||||||
|
|
||||||
// clean byte array similar to curl's --data parameter
|
|
||||||
// It removes leading/trailing whitespace and converts line breaks to spaces
|
|
||||||
|
|
||||||
// Trim leading and trailing whitespace
|
|
||||||
data = bytes.TrimSpace(data)
|
|
||||||
|
|
||||||
// Replace newlines and carriage returns with spaces
|
|
||||||
data = bytes.ReplaceAll(data, []byte("\r\n"), []byte(" "))
|
|
||||||
data = bytes.ReplaceAll(data, []byte("\n"), []byte(" "))
|
|
||||||
data = bytes.ReplaceAll(data, []byte("\r"), []byte(" "))
|
|
||||||
|
|
||||||
// Replace multiple spaces with single space
|
|
||||||
for bytes.Contains(data, []byte(" ")) {
|
|
||||||
data = bytes.ReplaceAll(data, []byte(" "), []byte(" "))
|
|
||||||
}
|
|
||||||
|
|
||||||
opt.data = data
|
|
||||||
} else {
|
|
||||||
opt.data = []byte(d)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if d, _ := cmd.Flags().GetString("data-binary"); d != "" {
|
|
||||||
opt.request = "POST"
|
|
||||||
opt.headers["Content-Type"] = "application/x-www-form-urlencoded"
|
|
||||||
if strings.HasPrefix(d, "@") {
|
|
||||||
filePath := strings.TrimPrefix(d, "@")
|
|
||||||
var data []byte
|
|
||||||
var err error
|
|
||||||
if filePath == "-" {
|
|
||||||
data, err = os.ReadFile("/dev/stdin")
|
|
||||||
} else {
|
|
||||||
data, err = os.ReadFile(filePath)
|
|
||||||
}
|
|
||||||
if err != nil {
|
|
||||||
log.Fatal(errors.New("could not read data from file '" + filePath + "': " + err.Error()))
|
|
||||||
}
|
|
||||||
opt.data = data
|
|
||||||
} else {
|
|
||||||
opt.data = []byte(d)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// override method if specified
|
|
||||||
if request, _ := cmd.Flags().GetString("request"); request != "" {
|
|
||||||
opt.request = request
|
|
||||||
}
|
|
||||||
|
|
||||||
if opt.url == "" {
|
if opt.url == "" {
|
||||||
log.Fatal(errors.New("no URL specified"))
|
log.Fatal(errors.New("no URL specified"))
|
||||||
}
|
}
|
||||||
|
|
||||||
headersSlice, err := cmd.Flags().GetStringSlice("header")
|
headersSlice, err := cmd.Flags().GetStringSlice("headers")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -198,29 +124,17 @@ func BenchmarkClientCommand(cfg *config.Config) *cobra.Command {
|
|||||||
defer opt.ticker.Stop()
|
defer opt.ticker.Stop()
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set up signal handling for Ctrl+C
|
return client(opt)
|
||||||
ctx, cancel := context.WithCancel(cmd.Context())
|
|
||||||
defer cancel()
|
|
||||||
|
|
||||||
sigChan := make(chan os.Signal, 1)
|
|
||||||
signal.Notify(sigChan, os.Interrupt, syscall.SIGTERM)
|
|
||||||
go func() {
|
|
||||||
<-sigChan
|
|
||||||
fmt.Println("\nReceived interrupt signal, shutting down...")
|
|
||||||
cancel()
|
|
||||||
}()
|
|
||||||
return client(ctx, opt)
|
|
||||||
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO with v3 'flag.Persistent: true' can be set to make the order of flags no longer relevant \o/
|
||||||
// flags mimicing curl
|
// flags mimicing curl
|
||||||
benchClientCmd.Flags().StringP("request", "X", "PROPFIND", "Specifies a custom request method to use when communicating with the HTTP server.")
|
benchClientCmd.Flags().StringP("request", "X", "PROPFIND", "Specifies a custom request method to use when communicating with the HTTP server.")
|
||||||
benchClientCmd.Flags().StringP("user", "u", "admin:admin", "Specify the user name and password to use for server authentication.")
|
benchClientCmd.Flags().StringP("user", "u", "admin:admin", "Specify the user name and password to use for server authentication.")
|
||||||
benchClientCmd.Flags().BoolP("insecure", "k", false, "Skip the TLS verification step and proceed without checking.")
|
benchClientCmd.Flags().BoolP("insecure", "k", false, "Skip the TLS verification step and proceed without checking.")
|
||||||
benchClientCmd.Flags().StringP("data", "d", "", "Sends the specified data in a POST request to the HTTP server, in the same way that a browser does when a user has filled in an HTML form and presses the submit button. If you start the data with the letter @, the rest should be a file name to read the data from, or - if you want to read the data from stdin. When -d, --data is told to read from a file like that, carriage returns and newlines are stripped out. If you do not want the @ character to have a special interpretation use --data-raw instead.")
|
benchClientCmd.Flags().StringP("data", "d", "", "Sends the specified data in a request to the HTTP server.")
|
||||||
benchClientCmd.Flags().StringP("data-raw", "", "", "Sends the specified data in a request to the HTTP server.")
|
|
||||||
benchClientCmd.Flags().StringP("data-binary", "", "", "This posts data exactly as specified with no extra processing whatsoever. If you start the data with the letter @, the rest should be a file name to read the data from, or - if you want to read the data from stdin.")
|
|
||||||
benchClientCmd.Flags().StringSliceP("headers", "H", []string{}, "Extra header to include in information sent.")
|
benchClientCmd.Flags().StringSliceP("headers", "H", []string{}, "Extra header to include in information sent.")
|
||||||
benchClientCmd.Flags().String("rate", "", "Specify the maximum transfer frequency you allow a client to use - in number of transfer starts per time unit (sometimes called request rate). The request rate is provided as \"N/U\" where N is an integer number and U is a time unit. Supported units are 's' (second), 'm' (minute), 'h' (hour) and 'd' /(day, as in a 24 hour unit). The default time unit, if no \"/U\" is provided, is number of transfers per hour.")
|
benchClientCmd.Flags().String("rate", "", "Specify the maximum transfer frequency you allow a client to use - in number of transfer starts per time unit (sometimes called request rate). The request rate is provided as \"N/U\" where N is an integer number and U is a time unit. Supported units are 's' (second), 'm' (minute), 'h' (hour) and 'd' /(day, as in a 24 hour unit). The default time unit, if no \"/U\" is provided, is number of transfers per hour.")
|
||||||
|
|
||||||
@@ -244,7 +158,8 @@ type clientOptions struct {
|
|||||||
jobs int
|
jobs int
|
||||||
}
|
}
|
||||||
|
|
||||||
func client(ctx context.Context, o clientOptions) error {
|
func client(o clientOptions) error {
|
||||||
|
|
||||||
type stat struct {
|
type stat struct {
|
||||||
job int
|
job int
|
||||||
duration time.Duration
|
duration time.Duration
|
||||||
@@ -263,13 +178,6 @@ func client(ctx context.Context, o clientOptions) error {
|
|||||||
|
|
||||||
cookies := map[string]*http.Cookie{}
|
cookies := map[string]*http.Cookie{}
|
||||||
for {
|
for {
|
||||||
// Check if context is cancelled
|
|
||||||
select {
|
|
||||||
case <-ctx.Done():
|
|
||||||
return
|
|
||||||
default:
|
|
||||||
}
|
|
||||||
|
|
||||||
req, err := http.NewRequest(o.request, o.url, bytes.NewReader(o.data))
|
req, err := http.NewRequest(o.request, o.url, bytes.NewReader(o.data))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("client %d: could not create request: %s\n", i, err)
|
log.Printf("client %d: could not create request: %s\n", i, err)
|
||||||
@@ -287,35 +195,20 @@ func client(ctx context.Context, o clientOptions) error {
|
|||||||
res, err := client.Do(req)
|
res, err := client.Do(req)
|
||||||
duration := -time.Until(start)
|
duration := -time.Until(start)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// Check if error is due to context cancellation
|
|
||||||
if ctx.Err() != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
log.Printf("client %d: could not create request: %s\n", i, err)
|
log.Printf("client %d: could not create request: %s\n", i, err)
|
||||||
time.Sleep(time.Second)
|
time.Sleep(time.Second)
|
||||||
} else {
|
} else {
|
||||||
res.Body.Close()
|
res.Body.Close()
|
||||||
select {
|
stats <- stat{
|
||||||
case stats <- stat{
|
|
||||||
job: i,
|
job: i,
|
||||||
duration: duration,
|
duration: duration,
|
||||||
status: res.StatusCode,
|
status: res.StatusCode,
|
||||||
}:
|
|
||||||
case <-ctx.Done():
|
|
||||||
return
|
|
||||||
}
|
}
|
||||||
for _, c := range res.Cookies() {
|
for _, c := range res.Cookies() {
|
||||||
cookies[c.Name] = c
|
cookies[c.Name] = c
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Sleep with context awareness
|
time.Sleep(o.rateDelay - duration)
|
||||||
if o.rateDelay > duration {
|
|
||||||
select {
|
|
||||||
case <-time.After(o.rateDelay - duration):
|
|
||||||
case <-ctx.Done():
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}(i)
|
}(i)
|
||||||
}
|
}
|
||||||
@@ -324,14 +217,9 @@ func client(ctx context.Context, o clientOptions) error {
|
|||||||
if o.ticker == nil {
|
if o.ticker == nil {
|
||||||
// no ticker, just write every request
|
// no ticker, just write every request
|
||||||
for {
|
for {
|
||||||
select {
|
stat := <-stats
|
||||||
case stat := <-stats:
|
numRequests++
|
||||||
numRequests++
|
fmt.Printf("req %d took %v and returned status %d\n", numRequests, stat.duration, stat.status)
|
||||||
fmt.Printf("req %d took %v and returned status %d\n", numRequests, stat.duration, stat.status)
|
|
||||||
case <-ctx.Done():
|
|
||||||
fmt.Println("\nShutting down...")
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -347,12 +235,6 @@ func client(ctx context.Context, o clientOptions) error {
|
|||||||
numRequests = 0
|
numRequests = 0
|
||||||
duration = 0
|
duration = 0
|
||||||
}
|
}
|
||||||
case <-ctx.Done():
|
|
||||||
if numRequests > 0 {
|
|
||||||
fmt.Printf("\n%d req at %v/req\n", numRequests, duration/time.Duration(numRequests))
|
|
||||||
}
|
|
||||||
fmt.Println("Shutting down...")
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: EMAIL\n"
|
"Report-Msgid-Bugs-To: EMAIL\n"
|
||||||
"POT-Creation-Date: 2026-01-07 00:07+0000\n"
|
"POT-Creation-Date: 2025-12-18 00:04+0000\n"
|
||||||
"PO-Revision-Date: 2025-01-27 10:17+0000\n"
|
"PO-Revision-Date: 2025-01-27 10:17+0000\n"
|
||||||
"Last-Translator: ii kaka, 2025\n"
|
"Last-Translator: ii kaka, 2025\n"
|
||||||
"Language-Team: Japanese (https://app.transifex.com/opencloud-eu/teams/204053/ja/)\n"
|
"Language-Team: Japanese (https://app.transifex.com/opencloud-eu/teams/204053/ja/)\n"
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: EMAIL\n"
|
"Report-Msgid-Bugs-To: EMAIL\n"
|
||||||
"POT-Creation-Date: 2026-01-06 00:06+0000\n"
|
"POT-Creation-Date: 2025-12-17 00:03+0000\n"
|
||||||
"PO-Revision-Date: 2025-01-27 10:17+0000\n"
|
"PO-Revision-Date: 2025-01-27 10:17+0000\n"
|
||||||
"Last-Translator: Quan Tran, 2025\n"
|
"Last-Translator: Quan Tran, 2025\n"
|
||||||
"Language-Team: Vietnamese (https://app.transifex.com/opencloud-eu/teams/204053/vi/)\n"
|
"Language-Team: Vietnamese (https://app.transifex.com/opencloud-eu/teams/204053/vi/)\n"
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: EMAIL\n"
|
"Report-Msgid-Bugs-To: EMAIL\n"
|
||||||
"POT-Creation-Date: 2026-01-07 00:07+0000\n"
|
"POT-Creation-Date: 2025-12-18 00:04+0000\n"
|
||||||
"PO-Revision-Date: 2025-01-27 10:17+0000\n"
|
"PO-Revision-Date: 2025-01-27 10:17+0000\n"
|
||||||
"Last-Translator: ii kaka, 2025\n"
|
"Last-Translator: ii kaka, 2025\n"
|
||||||
"Language-Team: Japanese (https://app.transifex.com/opencloud-eu/teams/204053/ja/)\n"
|
"Language-Team: Japanese (https://app.transifex.com/opencloud-eu/teams/204053/ja/)\n"
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: EMAIL\n"
|
"Report-Msgid-Bugs-To: EMAIL\n"
|
||||||
"POT-Creation-Date: 2026-01-06 00:06+0000\n"
|
"POT-Creation-Date: 2025-12-17 00:03+0000\n"
|
||||||
"PO-Revision-Date: 2025-01-27 10:17+0000\n"
|
"PO-Revision-Date: 2025-01-27 10:17+0000\n"
|
||||||
"Last-Translator: Quan Tran, 2025\n"
|
"Last-Translator: Quan Tran, 2025\n"
|
||||||
"Language-Team: Vietnamese (https://app.transifex.com/opencloud-eu/teams/204053/vi/)\n"
|
"Language-Team: Vietnamese (https://app.transifex.com/opencloud-eu/teams/204053/vi/)\n"
|
||||||
|
|||||||
@@ -306,11 +306,10 @@ func (g Graph) GetUsers(w http.ResponseWriter, r *http.Request) {
|
|||||||
finalUsers := make([]*libregraph.User, len(users))
|
finalUsers := make([]*libregraph.User, len(users))
|
||||||
for i, u := range users {
|
for i, u := range users {
|
||||||
finalUsers[i] = &libregraph.User{
|
finalUsers[i] = &libregraph.User{
|
||||||
Id: u.Id,
|
Id: u.Id,
|
||||||
DisplayName: u.DisplayName,
|
DisplayName: u.DisplayName,
|
||||||
UserType: u.UserType,
|
UserType: u.UserType,
|
||||||
Identities: u.Identities,
|
Identities: u.Identities,
|
||||||
OnPremisesSamAccountName: u.OnPremisesSamAccountName,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if g.config.API.ShowUserEmailInResults {
|
if g.config.API.ShowUserEmailInResults {
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: EMAIL\n"
|
"Report-Msgid-Bugs-To: EMAIL\n"
|
||||||
"POT-Creation-Date: 2026-01-07 00:07+0000\n"
|
"POT-Creation-Date: 2025-12-18 00:04+0000\n"
|
||||||
"PO-Revision-Date: 2025-01-27 10:17+0000\n"
|
"PO-Revision-Date: 2025-01-27 10:17+0000\n"
|
||||||
"Last-Translator: ii kaka, 2025\n"
|
"Last-Translator: ii kaka, 2025\n"
|
||||||
"Language-Team: Japanese (https://app.transifex.com/opencloud-eu/teams/204053/ja/)\n"
|
"Language-Team: Japanese (https://app.transifex.com/opencloud-eu/teams/204053/ja/)\n"
|
||||||
|
|||||||
@@ -437,10 +437,18 @@ Start ClamAV daemon
|
|||||||
|
|
||||||
#### 2. Setup clamAV With Docker
|
#### 2. Setup clamAV With Docker
|
||||||
|
|
||||||
|
##### Linux OS user
|
||||||
|
|
||||||
Run `clamAV` through docker
|
Run `clamAV` through docker
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker run -d -p 3310:3310 scharfvi/clamav:latest
|
docker run -d -p 3310:3310 owncloudci/clamavd
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Mac OS user
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker run -d -p 3310:3310 -v /your/local/filesystem/path/to/clamav/:/var/lib/clamav mkodockx/docker-clamav:alpine
|
||||||
```
|
```
|
||||||
|
|
||||||
### Run OpenCloud
|
### Run OpenCloud
|
||||||
|
|||||||
@@ -1577,7 +1577,7 @@ class FeatureContext extends BehatVariablesContext {
|
|||||||
*
|
*
|
||||||
* @return mixed
|
* @return mixed
|
||||||
*/
|
*/
|
||||||
public function getJsonDecodedResponseBodyContent(?ResponseInterface $response = null): mixed {
|
public function getJsonDecodedResponseBodyContent(ResponseInterface $response = null): mixed {
|
||||||
$response = $response ?? $this->response;
|
$response = $response ?? $this->response;
|
||||||
$response->getBody()->rewind();
|
$response->getBody()->rewind();
|
||||||
return HttpRequestHelper::getJsonDecodedResponseBodyContent($response);
|
return HttpRequestHelper::getJsonDecodedResponseBodyContent($response);
|
||||||
|
|||||||
@@ -1025,7 +1025,7 @@ trait Provisioning {
|
|||||||
*/
|
*/
|
||||||
public function userHasBeenCreated(
|
public function userHasBeenCreated(
|
||||||
array $userData,
|
array $userData,
|
||||||
?string $byUser = null
|
string $byUser = null
|
||||||
): void {
|
): void {
|
||||||
$userId = null;
|
$userId = null;
|
||||||
|
|
||||||
|
|||||||
@@ -450,7 +450,7 @@ trait Sharing {
|
|||||||
string $user,
|
string $user,
|
||||||
string $path,
|
string $path,
|
||||||
bool $publicUpload = false,
|
bool $publicUpload = false,
|
||||||
?string $sharePassword = null,
|
string $sharePassword = null,
|
||||||
$permissions = null,
|
$permissions = null,
|
||||||
?string $linkName = null,
|
?string $linkName = null,
|
||||||
?string $expireDate = null
|
?string $expireDate = null
|
||||||
@@ -1207,7 +1207,7 @@ trait Sharing {
|
|||||||
*/
|
*/
|
||||||
public function deleteLastShareUsingSharingApi(
|
public function deleteLastShareUsingSharingApi(
|
||||||
string $user,
|
string $user,
|
||||||
?string $sharer = null,
|
string $sharer = null,
|
||||||
bool $deleteLastPublicLink = false
|
bool $deleteLastPublicLink = false
|
||||||
): ResponseInterface {
|
): ResponseInterface {
|
||||||
$user = $this->getActualUsername($user);
|
$user = $this->getActualUsername($user);
|
||||||
@@ -2672,7 +2672,7 @@ trait Sharing {
|
|||||||
* @return ResponseInterface
|
* @return ResponseInterface
|
||||||
* @throws GuzzleException
|
* @throws GuzzleException
|
||||||
*/
|
*/
|
||||||
public function expireShare(?string $shareId = null): ResponseInterface {
|
public function expireShare(string $shareId = null): ResponseInterface {
|
||||||
$adminUser = $this->getAdminUsername();
|
$adminUser = $this->getAdminUsername();
|
||||||
if ($shareId === null) {
|
if ($shareId === null) {
|
||||||
$shareId = $this->getLastCreatedUserGroupShareId();
|
$shareId = $this->getLastCreatedUserGroupShareId();
|
||||||
|
|||||||
@@ -1644,7 +1644,7 @@ trait WebDav {
|
|||||||
string $user,
|
string $user,
|
||||||
string $source,
|
string $source,
|
||||||
string $destination,
|
string $destination,
|
||||||
?string $spaceId = null,
|
string $spaceId = null,
|
||||||
?bool $isGivenStep = false
|
?bool $isGivenStep = false
|
||||||
): ResponseInterface {
|
): ResponseInterface {
|
||||||
$user = $this->getActualUsername($user);
|
$user = $this->getActualUsername($user);
|
||||||
@@ -4054,7 +4054,7 @@ trait WebDav {
|
|||||||
*
|
*
|
||||||
* @return string|null
|
* @return string|null
|
||||||
*/
|
*/
|
||||||
public function getFileIdForPath(string $user, string $path, ?string $spaceId = null): ?string {
|
public function getFileIdForPath(string $user, string $path, string $spaceId = null): ?string {
|
||||||
$user = $this->getActualUsername($user);
|
$user = $this->getActualUsername($user);
|
||||||
try {
|
try {
|
||||||
return WebDavHelper::getFileIdForPath(
|
return WebDavHelper::getFileIdForPath(
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
services:
|
services:
|
||||||
acceptance-tests:
|
acceptance-tests:
|
||||||
image: scharfvi/php-alpine-ci:8.4
|
image: owncloudci/php:8.2
|
||||||
working_dir: /woodpecker/src/github.com/opencloud-eu/opencloud
|
working_dir: /woodpecker/src/github.com/opencloud-eu/opencloud
|
||||||
command: /bin/bash /test/run-tests.sh
|
command: /bin/bash /test/run-tests.sh
|
||||||
environment:
|
environment:
|
||||||
|
|||||||
@@ -5,5 +5,5 @@ services:
|
|||||||
- clamav
|
- clamav
|
||||||
command: clamav:3310
|
command: clamav:3310
|
||||||
clamav:
|
clamav:
|
||||||
image: scharfvi/clamav:latest
|
image: mkodockx/docker-clamav:alpine
|
||||||
|
|
||||||
|
|||||||
@@ -1351,7 +1351,6 @@ Feature: get users
|
|||||||
"required": [
|
"required": [
|
||||||
"displayName",
|
"displayName",
|
||||||
"id",
|
"id",
|
||||||
"onPremisesSamAccountName",
|
|
||||||
"userType"
|
"userType"
|
||||||
],
|
],
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -1363,10 +1362,6 @@ Feature: get users
|
|||||||
"type": "string",
|
"type": "string",
|
||||||
"pattern": "^%user_id_pattern%$"
|
"pattern": "^%user_id_pattern%$"
|
||||||
},
|
},
|
||||||
"onPremisesSamAccountName": {
|
|
||||||
"type": "string",
|
|
||||||
"const": "Alice"
|
|
||||||
},
|
|
||||||
"userType": {
|
"userType": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"const": "Member"
|
"const": "Member"
|
||||||
@@ -1461,7 +1456,6 @@ Feature: get users
|
|||||||
"required": [
|
"required": [
|
||||||
"displayName",
|
"displayName",
|
||||||
"id",
|
"id",
|
||||||
"onPremisesSamAccountName",
|
|
||||||
"userType"
|
"userType"
|
||||||
],
|
],
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -1473,10 +1467,6 @@ Feature: get users
|
|||||||
"type": "string",
|
"type": "string",
|
||||||
"pattern": "^%user_id_pattern%$"
|
"pattern": "^%user_id_pattern%$"
|
||||||
},
|
},
|
||||||
"onPremisesSamAccountName": {
|
|
||||||
"type": "string",
|
|
||||||
"const": "Alice"
|
|
||||||
},
|
|
||||||
"userType": {
|
"userType": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"const": "Member"
|
"const": "Member"
|
||||||
@@ -1511,7 +1501,6 @@ Feature: get users
|
|||||||
"required": [
|
"required": [
|
||||||
"displayName",
|
"displayName",
|
||||||
"id",
|
"id",
|
||||||
"onPremisesSamAccountName",
|
|
||||||
"userType"
|
"userType"
|
||||||
],
|
],
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -1523,10 +1512,6 @@ Feature: get users
|
|||||||
"type": "string",
|
"type": "string",
|
||||||
"pattern": "^%user_id_pattern%$"
|
"pattern": "^%user_id_pattern%$"
|
||||||
},
|
},
|
||||||
"onPremisesSamAccountName": {
|
|
||||||
"type": "string",
|
|
||||||
"const": "Alice"
|
|
||||||
},
|
|
||||||
"userType": {
|
"userType": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"const": "Member"
|
"const": "Member"
|
||||||
@@ -1545,6 +1530,7 @@ Feature: get users
|
|||||||
| displayName | Alice Hansen |
|
| displayName | Alice Hansen |
|
||||||
| email | another-alice@example.org |
|
| email | another-alice@example.org |
|
||||||
| password | containsCharacters(*:!;_+-&) |
|
| password | containsCharacters(*:!;_+-&) |
|
||||||
|
And the administrator has assigned the role "Admin" to user "Alice" using the Graph API
|
||||||
When user "Brian" searches for user "alice" using Graph API
|
When user "Brian" searches for user "alice" using Graph API
|
||||||
Then the HTTP status code should be "200"
|
Then the HTTP status code should be "200"
|
||||||
And the JSON data of the search response should not contain users email
|
And the JSON data of the search response should not contain users email
|
||||||
@@ -1568,7 +1554,6 @@ Feature: get users
|
|||||||
"required": [
|
"required": [
|
||||||
"displayName",
|
"displayName",
|
||||||
"id",
|
"id",
|
||||||
"onPremisesSamAccountName",
|
|
||||||
"userType"
|
"userType"
|
||||||
],
|
],
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -1580,10 +1565,6 @@ Feature: get users
|
|||||||
"type": "string",
|
"type": "string",
|
||||||
"pattern": "^%user_id_pattern%$"
|
"pattern": "^%user_id_pattern%$"
|
||||||
},
|
},
|
||||||
"onPremisesSamAccountName": {
|
|
||||||
"type": "string",
|
|
||||||
"const": "Alice"
|
|
||||||
},
|
|
||||||
"userType": {
|
"userType": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"const": "Member"
|
"const": "Member"
|
||||||
@@ -1595,7 +1576,6 @@ Feature: get users
|
|||||||
"required": [
|
"required": [
|
||||||
"displayName",
|
"displayName",
|
||||||
"id",
|
"id",
|
||||||
"onPremisesSamAccountName",
|
|
||||||
"userType"
|
"userType"
|
||||||
],
|
],
|
||||||
"properties": {
|
"properties": {
|
||||||
@@ -1607,13 +1587,11 @@ Feature: get users
|
|||||||
"type": "string",
|
"type": "string",
|
||||||
"pattern": "^%user_id_pattern%$"
|
"pattern": "^%user_id_pattern%$"
|
||||||
},
|
},
|
||||||
"onPremisesSamAccountName": {
|
|
||||||
"type": "string",
|
|
||||||
"const": "another-alice"
|
|
||||||
},
|
|
||||||
"userType": {
|
"userType": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"const": "Member"
|
"const": [
|
||||||
|
"Admin"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -274,7 +274,6 @@ Feature: edit/search user including email
|
|||||||
"required": [
|
"required": [
|
||||||
"displayName",
|
"displayName",
|
||||||
"id",
|
"id",
|
||||||
"onPremisesSamAccountName",
|
|
||||||
"mail",
|
"mail",
|
||||||
"userType"
|
"userType"
|
||||||
],
|
],
|
||||||
@@ -286,9 +285,6 @@ Feature: edit/search user including email
|
|||||||
"type": "string",
|
"type": "string",
|
||||||
"pattern": "^%user_id_pattern%$"
|
"pattern": "^%user_id_pattern%$"
|
||||||
},
|
},
|
||||||
"onPremisesSamAccountName": {
|
|
||||||
"const": "Alice"
|
|
||||||
},
|
|
||||||
"mail": {
|
"mail": {
|
||||||
"const": "alice@example.org"
|
"const": "alice@example.org"
|
||||||
},
|
},
|
||||||
@@ -370,7 +366,6 @@ Feature: edit/search user including email
|
|||||||
"required": [
|
"required": [
|
||||||
"displayName",
|
"displayName",
|
||||||
"id",
|
"id",
|
||||||
"onPremisesSamAccountName",
|
|
||||||
"mail",
|
"mail",
|
||||||
"userType"
|
"userType"
|
||||||
],
|
],
|
||||||
@@ -382,9 +377,6 @@ Feature: edit/search user including email
|
|||||||
"type": "string",
|
"type": "string",
|
||||||
"pattern": "^%user_id_pattern%$"
|
"pattern": "^%user_id_pattern%$"
|
||||||
},
|
},
|
||||||
"onPremisesSamAccountName": {
|
|
||||||
"const": "Alice"
|
|
||||||
},
|
|
||||||
"mail": {
|
"mail": {
|
||||||
"const": "alice@example.org"
|
"const": "alice@example.org"
|
||||||
},
|
},
|
||||||
@@ -425,7 +417,6 @@ Feature: edit/search user including email
|
|||||||
"required": [
|
"required": [
|
||||||
"displayName",
|
"displayName",
|
||||||
"id",
|
"id",
|
||||||
"onPremisesSamAccountName",
|
|
||||||
"mail",
|
"mail",
|
||||||
"userType"
|
"userType"
|
||||||
],
|
],
|
||||||
@@ -437,9 +428,6 @@ Feature: edit/search user including email
|
|||||||
"type": "string",
|
"type": "string",
|
||||||
"pattern": "^%user_id_pattern%$"
|
"pattern": "^%user_id_pattern%$"
|
||||||
},
|
},
|
||||||
"onPremisesSamAccountName": {
|
|
||||||
"const": "Alice"
|
|
||||||
},
|
|
||||||
"mail": {
|
"mail": {
|
||||||
"const": "alice@example.org"
|
"const": "alice@example.org"
|
||||||
},
|
},
|
||||||
@@ -464,9 +452,6 @@ Feature: edit/search user including email
|
|||||||
"type": "string",
|
"type": "string",
|
||||||
"pattern": "^%user_id_pattern%$"
|
"pattern": "^%user_id_pattern%$"
|
||||||
},
|
},
|
||||||
"onPremisesSamAccountName": {
|
|
||||||
"const": "another-alice"
|
|
||||||
},
|
|
||||||
"mail": {
|
"mail": {
|
||||||
"const": "another-alice@example.org"
|
"const": "another-alice@example.org"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ Feature: Multi-tenancy
|
|||||||
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
|
"pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
|
||||||
},
|
},
|
||||||
"onPremisesSamAccountName": {
|
"onPremisesSamAccountName": {
|
||||||
"const": "alice"
|
"const": ""
|
||||||
},
|
},
|
||||||
"userType": {
|
"userType": {
|
||||||
"const": "Member"
|
"const": "Member"
|
||||||
|
|||||||
@@ -258,14 +258,16 @@ function run_behat_tests() {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
FAILED_SCENARIO_PATHS_COLORED=`awk '/Failed scenarios:/',0 ${TEST_LOG_FILE} | grep -a feature`
|
FAILED_SCENARIO_PATHS_COLORED=`awk '/Failed (scenarios|hooks):/',0 ${TEST_LOG_FILE} | grep -a feature`
|
||||||
# There will be some ANSI escape codes for color in the FEATURE_COLORED var.
|
# There will be some ANSI escape codes for color in the FEATURE_COLORED var.
|
||||||
# Strip them out so we can pass just the ordinary feature details to Behat.
|
# Strip them out so we can pass just the ordinary feature details to Behat.
|
||||||
# Also strip everything after ".feature:XX", including text such as "(on line xx)" added by Behat indicating the failing step's line number.
|
# Also strip everything after ".feature:XX", including text such as "(on line xx)" added by Behat indicating the failing step's line number.
|
||||||
# Thanks to https://en.wikipedia.org/wiki/Tee_(command) and
|
# Thanks to https://en.wikipedia.org/wiki/Tee_(command) and
|
||||||
# https://stackoverflow.com/questions/23416278/how-to-strip-ansi-escape-sequences-from-a-variable
|
# https://stackoverflow.com/questions/23416278/how-to-strip-ansi-escape-sequences-from-a-variable
|
||||||
# for ideas.
|
# for ideas.
|
||||||
FAILED_SCENARIO_PATHS=$(echo "${FAILED_SCENARIO_PATHS_COLORED}" | sed "s/\x1b[^m]*m//g" | sed 's/\(\.feature:[0-9]\+\).*/\1/')
|
FAILED_SCENARIO_PATHS=$(echo "${FAILED_SCENARIO_PATHS_COLORED}" | sed "s/\x1b[^m]*m//g" | sed "s/AfterScenario \"//g" | sed 's/\(\.feature:[0-9]\+\).*/\1/')
|
||||||
|
# remove duplicate scenario paths
|
||||||
|
FAILED_SCENARIO_PATHS=$(echo "$FAILED_SCENARIO_PATHS" | awk '!seen[$0]++')
|
||||||
|
|
||||||
# If something else went wrong, and there were no failed scenarios,
|
# If something else went wrong, and there were no failed scenarios,
|
||||||
# then the awk, grep, sed command sequence above ends up with an empty string.
|
# then the awk, grep, sed command sequence above ends up with an empty string.
|
||||||
|
|||||||
@@ -1,89 +0,0 @@
|
|||||||
const fs = require("fs");
|
|
||||||
|
|
||||||
const CI_REPO_NAME = process.env.CI_REPO_NAME;
|
|
||||||
const CI_COMMIT_SHA = process.env.CI_COMMIT_SHA;
|
|
||||||
const CI_WORKFLOW_NAME = process.env.CI_WORKFLOW_NAME;
|
|
||||||
|
|
||||||
const opencloudBuildWorkflow = "build-opencloud-for-testing";
|
|
||||||
const webCacheWorkflows = ["cache-web", "cache-web-pnpm", "cache-browsers"];
|
|
||||||
|
|
||||||
const INFO_URL = `https://s3.ci.opencloud.eu/public/${CI_REPO_NAME}/pipelines/${CI_COMMIT_SHA}/pipeline_info.json`;
|
|
||||||
|
|
||||||
function getFailedWorkflows(workflows) {
|
|
||||||
const failedWorkflows = [];
|
|
||||||
for (const workflow of workflows) {
|
|
||||||
if (workflow.state !== "success") {
|
|
||||||
failedWorkflows.push(workflow.name);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return failedWorkflows;
|
|
||||||
}
|
|
||||||
|
|
||||||
function hasFailingTestWorkflow(failedWorkflows) {
|
|
||||||
for (const workflowName of failedWorkflows) {
|
|
||||||
if (workflowName.startsWith("test-")) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
function hasFailingE2eTestWorkflow(failedWorkflows) {
|
|
||||||
for (const workflowName of failedWorkflows) {
|
|
||||||
if (workflowName.startsWith("test-e2e-")) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
async function main() {
|
|
||||||
const infoResponse = await fetch(INFO_URL);
|
|
||||||
if (infoResponse.status === 404) {
|
|
||||||
console.log("[INFO] No matching previous pipeline found. Continue...");
|
|
||||||
process.exit(0);
|
|
||||||
} else if (!infoResponse.ok) {
|
|
||||||
console.error(
|
|
||||||
"[ERROR] Failed to fetch previous pipeline info:" +
|
|
||||||
`\n URL: ${INFO_URL}\n Status: ${infoResponse.status}`
|
|
||||||
);
|
|
||||||
process.exit(1);
|
|
||||||
}
|
|
||||||
const info = await infoResponse.json();
|
|
||||||
console.log(info);
|
|
||||||
|
|
||||||
if (info.status === "success") {
|
|
||||||
console.log(
|
|
||||||
"[INFO] All workflows passed in previous pipeline. Full restart. Continue..."
|
|
||||||
);
|
|
||||||
process.exit(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
const failedWorkflows = getFailedWorkflows(info.workflows);
|
|
||||||
|
|
||||||
// NOTE: implement for test pipelines only for now
|
|
||||||
// // run the build workflow if any test workflow has failed
|
|
||||||
// if (
|
|
||||||
// CI_WORKFLOW_NAME === opencloudBuildWorkflow &&
|
|
||||||
// hasFailingTestWorkflow(failedWorkflows)
|
|
||||||
// ) {
|
|
||||||
// process.exit(0);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// // run the web cache workflows if any e2e test workflow has failed
|
|
||||||
// if (
|
|
||||||
// webCacheWorkflows.includes(CI_WORKFLOW_NAME) &&
|
|
||||||
// hasFailingE2eTestWorkflow(failedWorkflows)
|
|
||||||
// ) {
|
|
||||||
// process.exit(0);
|
|
||||||
// }
|
|
||||||
|
|
||||||
if (!failedWorkflows.includes(CI_WORKFLOW_NAME)) {
|
|
||||||
console.log("[INFO] Workflow passed in previous pipeline. Skip...");
|
|
||||||
fs.appendFileSync(".woodpecker.env", "SKIP_WORKFLOW=true\n");
|
|
||||||
process.exit(0);
|
|
||||||
}
|
|
||||||
console.log("[INFO] Restarting previously failed workflow. Continue...");
|
|
||||||
}
|
|
||||||
|
|
||||||
main();
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
mc alias set s3 $MC_HOST $AWS_ACCESS_KEY_ID $AWS_SECRET_ACCESS_KEY
|
|
||||||
|
|
||||||
# check previous pipeline
|
|
||||||
URL="https://s3.ci.opencloud.eu/$PUBLIC_BUCKET/$CI_REPO_NAME/pipelines/$CI_COMMIT_SHA/prev_pipeline"
|
|
||||||
status=$(curl -s -o prev_pipeline "$URL" -w '%{http_code}')
|
|
||||||
|
|
||||||
if [ "$status" == "200" ];
|
|
||||||
then
|
|
||||||
source prev_pipeline
|
|
||||||
REPO_ID=$(printf '%s' "$CI_PIPELINE_URL" | sed 's|.*/repos/\([0-9]*\)/.*|\1|')
|
|
||||||
p_status=$(curl -s -o pipeline_info.json "$CI_SYSTEM_URL/api/repos/$REPO_ID/pipelines/$PREV_PIPELINE_NUMBER" -w "%{http_code}")
|
|
||||||
if [ "$p_status" != "200" ];
|
|
||||||
then
|
|
||||||
echo -e "[ERROR] Failed to fetch previous pipeline info.\n URL: $CI_SYSTEM_URL/api/repos/$REPO_ID/pipelines/$PREV_PIPELINE_NUMBER\n Status: $p_status"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
# update previous pipeline info
|
|
||||||
mc cp -a pipeline_info.json "s3/$PUBLIC_BUCKET/$CI_REPO_NAME/pipelines/$CI_COMMIT_SHA/"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# upload current pipeline number for the next pipeline
|
|
||||||
echo "PREV_PIPELINE_NUMBER=$CI_PIPELINE_NUMBER" > prev_pipeline
|
|
||||||
mc cp -a prev_pipeline "s3/$PUBLIC_BUCKET/$CI_REPO_NAME/pipelines/$CI_COMMIT_SHA/"
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"config": {
|
"config": {
|
||||||
"platform": {
|
"platform": {
|
||||||
"php": "8.3"
|
"php": "8.2"
|
||||||
},
|
},
|
||||||
"allow-plugins": {
|
"allow-plugins": {
|
||||||
"composer/package-versions-deprecated": true
|
"composer/package-versions-deprecated": true
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
"guzzlehttp/guzzle": "^7.7",
|
"guzzlehttp/guzzle": "^7.7",
|
||||||
"phpunit/phpunit": "^9.6",
|
"phpunit/phpunit": "^9.6",
|
||||||
"laminas/laminas-ldap": "^2.15",
|
"laminas/laminas-ldap": "^2.15",
|
||||||
"ankitpokhrel/tus-php": "^2.4",
|
"ankitpokhrel/tus-php": "^2.3",
|
||||||
"swaggest/json-schema": "^0.12.42",
|
"swaggest/json-schema": "^0.12.42",
|
||||||
"splitbrain/php-archive": "^1.3"
|
"splitbrain/php-archive": "^1.3"
|
||||||
}
|
}
|
||||||
|
|||||||
2
vendor/github.com/kovidgoyal/imaging/prism/meta/jpegmeta/jpegmeta.go
generated
vendored
2
vendor/github.com/kovidgoyal/imaging/prism/meta/jpegmeta/jpegmeta.go
generated
vendored
@@ -59,7 +59,7 @@ func ExtractMetadata(r io.Reader) (md *meta.Data, err error) {
|
|||||||
|
|
||||||
soiSegment, err := segReader.ReadSegment()
|
soiSegment, err := segReader.ReadSegment()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if q := err.Error(); strings.Contains(q, "invalid marker identifier") || strings.Contains(q, "unrecognised marker type") {
|
if strings.Contains(err.Error(), "invalid marker identifier") {
|
||||||
err = nil
|
err = nil
|
||||||
}
|
}
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|||||||
2
vendor/github.com/kovidgoyal/imaging/publish.py
generated
vendored
2
vendor/github.com/kovidgoyal/imaging/publish.py
generated
vendored
@@ -5,7 +5,7 @@ import os
|
|||||||
import subprocess
|
import subprocess
|
||||||
|
|
||||||
|
|
||||||
VERSION = "1.8.18"
|
VERSION = "1.8.17"
|
||||||
|
|
||||||
|
|
||||||
def run(*args: str):
|
def run(*args: str):
|
||||||
|
|||||||
214
vendor/github.com/opensearch-project/opensearch-go/v4/.golangci.yml
generated
vendored
214
vendor/github.com/opensearch-project/opensearch-go/v4/.golangci.yml
generated
vendored
@@ -1,8 +1,59 @@
|
|||||||
version: "2"
|
|
||||||
run:
|
run:
|
||||||
|
timeout: 10m
|
||||||
modules-download-mode: readonly
|
modules-download-mode: readonly
|
||||||
|
|
||||||
|
linters-settings:
|
||||||
|
errcheck:
|
||||||
|
check-blank: true
|
||||||
|
check-type-assertions: false
|
||||||
|
errorlint:
|
||||||
|
check-generated: false
|
||||||
|
default-signifies-exhaustive: false
|
||||||
|
exhaustive:
|
||||||
|
default-signifies-exhaustive: false
|
||||||
|
gci:
|
||||||
|
sections:
|
||||||
|
- standard
|
||||||
|
- default
|
||||||
|
- prefix(github.com/opensearch-project/opensearch-go)
|
||||||
|
goconst:
|
||||||
|
min-len: 3
|
||||||
|
min-occurrences: 3
|
||||||
|
godox:
|
||||||
|
keywords:
|
||||||
|
- BUG
|
||||||
|
- FIXME
|
||||||
|
- HACK
|
||||||
|
goimports:
|
||||||
|
local-prefixes: github.com/opensearch-project/opensearch-go
|
||||||
|
lll:
|
||||||
|
line-length: 140
|
||||||
|
nolintlint:
|
||||||
|
allow-leading-space: false
|
||||||
|
require-explanation: true
|
||||||
|
require-specific: true
|
||||||
|
unparam:
|
||||||
|
check-exported: true
|
||||||
|
misspell:
|
||||||
|
locale: US
|
||||||
|
ignore-words:
|
||||||
|
- expect
|
||||||
|
- cancelled
|
||||||
|
prealloc:
|
||||||
|
simple: true
|
||||||
|
range-loops: true
|
||||||
|
for-loops: false
|
||||||
|
revive:
|
||||||
|
rules:
|
||||||
|
- name: exported
|
||||||
|
severity: error
|
||||||
|
disabled: false
|
||||||
|
arguments:
|
||||||
|
- "checkPrivateReceivers"
|
||||||
|
- "sayRepetitiveInsteadOfStutters"
|
||||||
|
|
||||||
linters:
|
linters:
|
||||||
default: none
|
disable-all: true
|
||||||
enable:
|
enable:
|
||||||
- asasalint
|
- asasalint
|
||||||
- asciicheck
|
- asciicheck
|
||||||
@@ -19,7 +70,10 @@ linters:
|
|||||||
- errchkjson
|
- errchkjson
|
||||||
- errname
|
- errname
|
||||||
- errorlint
|
- errorlint
|
||||||
|
- execinquery
|
||||||
- exhaustive
|
- exhaustive
|
||||||
|
- exportloopref
|
||||||
|
- gci
|
||||||
- ginkgolinter
|
- ginkgolinter
|
||||||
- gocheckcompilerdirectives
|
- gocheckcompilerdirectives
|
||||||
- gochecknoglobals
|
- gochecknoglobals
|
||||||
@@ -27,11 +81,15 @@ linters:
|
|||||||
- goconst
|
- goconst
|
||||||
- gocritic
|
- gocritic
|
||||||
- godox
|
- godox
|
||||||
|
- gofmt
|
||||||
|
- gofumpt
|
||||||
- goheader
|
- goheader
|
||||||
|
- goimports
|
||||||
- gomoddirectives
|
- gomoddirectives
|
||||||
- gomodguard
|
- gomodguard
|
||||||
- goprintffuncname
|
- goprintffuncname
|
||||||
- gosec
|
- gosec
|
||||||
|
- gosimple
|
||||||
- govet
|
- govet
|
||||||
- grouper
|
- grouper
|
||||||
- importas
|
- importas
|
||||||
@@ -59,10 +117,12 @@ linters:
|
|||||||
- rowserrcheck
|
- rowserrcheck
|
||||||
- sqlclosecheck
|
- sqlclosecheck
|
||||||
- staticcheck
|
- staticcheck
|
||||||
|
- stylecheck
|
||||||
- tagalign
|
- tagalign
|
||||||
- testpackage
|
- testpackage
|
||||||
- thelper
|
- thelper
|
||||||
- tparallel
|
- tparallel
|
||||||
|
- typecheck
|
||||||
- unconvert
|
- unconvert
|
||||||
- unparam
|
- unparam
|
||||||
- unused
|
- unused
|
||||||
@@ -70,110 +130,46 @@ linters:
|
|||||||
- wastedassign
|
- wastedassign
|
||||||
- whitespace
|
- whitespace
|
||||||
- zerologlint
|
- zerologlint
|
||||||
settings:
|
|
||||||
errcheck:
|
issues:
|
||||||
check-type-assertions: false
|
include:
|
||||||
check-blank: true
|
- EXC0012
|
||||||
exhaustive:
|
- EXC0014
|
||||||
default-signifies-exhaustive: false
|
exclude-rules:
|
||||||
goconst:
|
- path: (_test\.go|internal/)
|
||||||
min-len: 3
|
linters:
|
||||||
min-occurrences: 3
|
- cyclop
|
||||||
godox:
|
- dupl
|
||||||
keywords:
|
- errcheck
|
||||||
- BUG
|
- gochecknoglobals
|
||||||
- FIXME
|
- gochecknoinits
|
||||||
- HACK
|
- goconst
|
||||||
lll:
|
- noctx
|
||||||
line-length: 140
|
- linters:
|
||||||
misspell:
|
- gosec
|
||||||
locale: US
|
text: "math/rand"
|
||||||
ignore-rules:
|
path: _test\.go
|
||||||
- expect
|
- linters:
|
||||||
- cancelled
|
- gosec
|
||||||
nolintlint:
|
text: "TLS InsecureSkipVerify set true"
|
||||||
require-explanation: true
|
path: (_test\.go|internal/)
|
||||||
require-specific: true
|
- linters:
|
||||||
prealloc:
|
- gosec
|
||||||
simple: true
|
text: "G108: Profiling endpoint is automatically exposed on /debug/pprof"
|
||||||
range-loops: true
|
path: _test\.go
|
||||||
for-loops: false
|
- linters:
|
||||||
revive:
|
- goconst
|
||||||
rules:
|
path: opensearchapi\/api_
|
||||||
- name: exported
|
- linters:
|
||||||
arguments:
|
- errcheck
|
||||||
- checkPrivateReceivers
|
text: "Error return value of `debugLogger.Logf` is not checked"
|
||||||
- sayRepetitiveInsteadOfStutters
|
- linters:
|
||||||
severity: error
|
- errcheck
|
||||||
disabled: false
|
- gochecknoglobals
|
||||||
unparam:
|
path: opensearchtransport\/logger\.go
|
||||||
check-exported: true
|
- linters:
|
||||||
exclusions:
|
- nestif
|
||||||
generated: lax
|
path: opensearchtransport/opensearchtransport.go
|
||||||
presets:
|
- linters:
|
||||||
- common-false-positives
|
- dupl
|
||||||
- legacy
|
path: (-params\.go|api_indices|api_dangling\.go|api_point_in_time\.go|rethrottle\.go|api_cat-.*\.go|plugins/security/api_\w+.go|plugins/security/api_.*-patch.go)
|
||||||
- std-error-handling
|
|
||||||
rules:
|
|
||||||
- linters:
|
|
||||||
- cyclop
|
|
||||||
- dupl
|
|
||||||
- errcheck
|
|
||||||
- gochecknoglobals
|
|
||||||
- gochecknoinits
|
|
||||||
- goconst
|
|
||||||
- noctx
|
|
||||||
path: (_test\.go|internal/)
|
|
||||||
- linters:
|
|
||||||
- gosec
|
|
||||||
path: _test\.go
|
|
||||||
text: math/rand
|
|
||||||
- linters:
|
|
||||||
- gosec
|
|
||||||
path: (_test\.go|internal/)
|
|
||||||
text: TLS InsecureSkipVerify set true
|
|
||||||
- linters:
|
|
||||||
- gosec
|
|
||||||
path: _test\.go
|
|
||||||
text: 'G108: Profiling endpoint is automatically exposed on /debug/pprof'
|
|
||||||
- linters:
|
|
||||||
- goconst
|
|
||||||
path: -params\.go
|
|
||||||
- linters:
|
|
||||||
- errcheck
|
|
||||||
text: Error return value of `debugLogger.Logf` is not checked
|
|
||||||
- linters:
|
|
||||||
- errcheck
|
|
||||||
- gochecknoglobals
|
|
||||||
path: opensearchtransport\/logger\.go
|
|
||||||
- linters:
|
|
||||||
- nestif
|
|
||||||
path: opensearchtransport/opensearchtransport.go
|
|
||||||
- linters:
|
|
||||||
- dupl
|
|
||||||
path: (-params\.go|api_indices|api_dangling\.go|api_point_in_time\.go|rethrottle\.go|api_cat-.*\.go|plugins/security/api_\w+.go|plugins/security/api_.*-patch.go)
|
|
||||||
paths:
|
|
||||||
- third_party$
|
|
||||||
- builtin$
|
|
||||||
- examples$
|
|
||||||
formatters:
|
|
||||||
enable:
|
|
||||||
- gci
|
|
||||||
- gofmt
|
|
||||||
- gofumpt
|
|
||||||
- goimports
|
|
||||||
settings:
|
|
||||||
gci:
|
|
||||||
sections:
|
|
||||||
- standard
|
|
||||||
- default
|
|
||||||
- prefix(github.com/opensearch-project/opensearch-go)
|
|
||||||
goimports:
|
|
||||||
local-prefixes:
|
|
||||||
- github.com/opensearch-project/opensearch-go
|
|
||||||
exclusions:
|
|
||||||
generated: lax
|
|
||||||
paths:
|
|
||||||
- third_party$
|
|
||||||
- builtin$
|
|
||||||
- examples$
|
|
||||||
|
|||||||
38
vendor/github.com/opensearch-project/opensearch-go/v4/CHANGELOG.md
generated
vendored
38
vendor/github.com/opensearch-project/opensearch-go/v4/CHANGELOG.md
generated
vendored
@@ -2,41 +2,6 @@
|
|||||||
|
|
||||||
Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
|
Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
|
||||||
|
|
||||||
## [4.6.0]
|
|
||||||
|
|
||||||
### Dependencies
|
|
||||||
- Bump `github.com/aws/aws-sdk-go-v2/config` from 1.29.14 to 1.32.5 ([#707](https://github.com/opensearch-project/opensearch-go/pull/707), [#711](https://github.com/opensearch-project/opensearch-go/pull/711), [#719](https://github.com/opensearch-project/opensearch-go/pull/719), [#730](https://github.com/opensearch-project/opensearch-go/pull/730), [#737](https://github.com/opensearch-project/opensearch-go/pull/737), [#761](https://github.com/opensearch-project/opensearch-go/pull/761))
|
|
||||||
- Bump `github.com/aws/aws-sdk-go-v2` from 1.36.4 to 1.41.0 ([#710](https://github.com/opensearch-project/opensearch-go/pull/710), [#720](https://github.com/opensearch-project/opensearch-go/pull/720), [#759](https://github.com/opensearch-project/opensearch-go/pull/759))
|
|
||||||
- Bump `github.com/stretchr/testify` from 1.10.0 to 1.11.1 ([#728](https://github.com/opensearch-project/opensearch-go/pull/728))
|
|
||||||
- Bump `github.com/aws/aws-sdk-go` from 1.55.7 to 1.55.8 ([#716](https://github.com/opensearch-project/opensearch-go/pull/716))
|
|
||||||
|
|
||||||
### Added
|
|
||||||
- Adds new fields for Opensearch 3.0 ([#702](https://github.com/opensearch-project/opensearch-go/pull/702))
|
|
||||||
- Allow users to override signing port ([#721](https://github.com/opensearch-project/opensearch-go/pull/721))
|
|
||||||
- Add `phase_took` features supported from OpenSearch 2.12 ([#722](https://github.com/opensearch-project/opensearch-go/pull/722))
|
|
||||||
- Adds the action to refresh the search analyzers to the ISM plugin ([#686](https://github.com/opensearch-project/opensearch-go/pull/686))
|
|
||||||
|
|
||||||
### Changed
|
|
||||||
- Test against Opensearch 3.0 ([#702](https://github.com/opensearch-project/opensearch-go/pull/702))
|
|
||||||
- Add more SuggestOptions to SearchResp ([#713](https://github.com/opensearch-project/opensearch-go/pull/713))
|
|
||||||
- Updates Go version to 1.24 ([#674](https://github.com/opensearch-project/opensearch-go/pull/674))
|
|
||||||
- Replace `golang.org/x/exp/slices` usage with built-in `slices` ([#674](https://github.com/opensearch-project/opensearch-go/pull/674))
|
|
||||||
- Update golangci-linter to 1.64.8 ([#740](https://github.com/opensearch-project/opensearch-go/pull/740))
|
|
||||||
- Change MaxScore to pointer ([#740](https://github.com/opensearch-project/opensearch-go/pull/740))
|
|
||||||
- Update workflow action ([#760](https://github.com/opensearch-project/opensearch-go/pull/760))
|
|
||||||
- Migrate to golangci-lint v2 ([#760](https://github.com/opensearch-project/opensearch-go/pull/760))
|
|
||||||
|
|
||||||
### Deprecated
|
|
||||||
|
|
||||||
### Removed
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
- Missing "caused by" information in StructError ([#752](https://github.com/opensearch-project/opensearch-go/pull/752))
|
|
||||||
- Add missing `ignore_unavailable`, `allow_no_indices`, and `expand_wildcards` params to MSearch ([#757](https://github.com/opensearch-project/opensearch-go/pull/757))
|
|
||||||
- Fix `UpdateResp` to correctly parse the `get` field when `_source` is requested in update operations. ([#739](https://github.com/opensearch-project/opensearch-go/pull/739))
|
|
||||||
|
|
||||||
### Security
|
|
||||||
|
|
||||||
## [4.5.0]
|
## [4.5.0]
|
||||||
|
|
||||||
### Dependencies
|
### Dependencies
|
||||||
@@ -325,7 +290,7 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
|
|||||||
- Uses `[]string` instead of `string` in `SnapshotDeleteRequest` ([#237](https://github.com/opensearch-project/opensearch-go/pull/237))
|
- Uses `[]string` instead of `string` in `SnapshotDeleteRequest` ([#237](https://github.com/opensearch-project/opensearch-go/pull/237))
|
||||||
- Updates workflows to reduce CI time, consolidate OpenSearch versions, update compatibility matrix ([#242](https://github.com/opensearch-project/opensearch-go/pull/242))
|
- Updates workflows to reduce CI time, consolidate OpenSearch versions, update compatibility matrix ([#242](https://github.com/opensearch-project/opensearch-go/pull/242))
|
||||||
- Moves @svencowart to emeritus maintainers ([#270](https://github.com/opensearch-project/opensearch-go/pull/270))
|
- Moves @svencowart to emeritus maintainers ([#270](https://github.com/opensearch-project/opensearch-go/pull/270))
|
||||||
- Reads, closes and replaces the http Response Body ([#300](https://github.com/opensearch-project/opensearch-go/pull/300))
|
- Reads, closes and replaces the http Reponse Body ([#300](https://github.com/opensearch-project/opensearch-go/pull/300))
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
@@ -364,7 +329,6 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
|
|||||||
- Bumps `github.com/stretchr/testify` from 1.8.0 to 1.8.1
|
- Bumps `github.com/stretchr/testify` from 1.8.0 to 1.8.1
|
||||||
- Bumps `github.com/aws/aws-sdk-go` from 1.44.45 to 1.44.132
|
- Bumps `github.com/aws/aws-sdk-go` from 1.44.45 to 1.44.132
|
||||||
|
|
||||||
[4.6.0]: https://github.com/opensearch-project/opensearch-go/compare/v4.5.0...v4.6.0
|
|
||||||
[4.5.0]: https://github.com/opensearch-project/opensearch-go/compare/v4.4.0...v4.5.0
|
[4.5.0]: https://github.com/opensearch-project/opensearch-go/compare/v4.4.0...v4.5.0
|
||||||
[4.4.0]: https://github.com/opensearch-project/opensearch-go/compare/v4.3.0...v4.4.0
|
[4.4.0]: https://github.com/opensearch-project/opensearch-go/compare/v4.3.0...v4.4.0
|
||||||
[4.3.0]: https://github.com/opensearch-project/opensearch-go/compare/v4.2.0...v4.3.0
|
[4.3.0]: https://github.com/opensearch-project/opensearch-go/compare/v4.2.0...v4.3.0
|
||||||
|
|||||||
2
vendor/github.com/opensearch-project/opensearch-go/v4/COMPATIBILITY.md
generated
vendored
2
vendor/github.com/opensearch-project/opensearch-go/v4/COMPATIBILITY.md
generated
vendored
@@ -9,8 +9,6 @@ The below matrix shows the compatibility of the [`opensearch-go`](https://pkg.go
|
|||||||
| -------------- | ------------------ |
|
| -------------- | ------------------ |
|
||||||
| 1.x.0 | 1.x |
|
| 1.x.0 | 1.x |
|
||||||
| 2.x.0 | 1.3.13-2.11.0 |
|
| 2.x.0 | 1.3.13-2.11.0 |
|
||||||
| 3.x.0 | 1.3.13-2.12.0 |
|
|
||||||
| 4.x.0 | 1.3.20-3.0.0 |
|
|
||||||
|
|
||||||
## Upgrading
|
## Upgrading
|
||||||
|
|
||||||
|
|||||||
6
vendor/github.com/opensearch-project/opensearch-go/v4/DEVELOPER_GUIDE.md
generated
vendored
6
vendor/github.com/opensearch-project/opensearch-go/v4/DEVELOPER_GUIDE.md
generated
vendored
@@ -2,7 +2,7 @@
|
|||||||
- [Getting Started](#getting-started)
|
- [Getting Started](#getting-started)
|
||||||
- [Git Clone OpenSearch Go Client Repository](#git-clone-opensearch-go-client-repository)
|
- [Git Clone OpenSearch Go Client Repository](#git-clone-opensearch-go-client-repository)
|
||||||
- [Install Prerequisites](#install-prerequisites)
|
- [Install Prerequisites](#install-prerequisites)
|
||||||
- [Go 1.24](#go-124)
|
- [Go 1.21](#go-121)
|
||||||
- [Docker](#docker)
|
- [Docker](#docker)
|
||||||
- [Windows](#windows)
|
- [Windows](#windows)
|
||||||
- [Unit Testing](#unit-testing)
|
- [Unit Testing](#unit-testing)
|
||||||
@@ -29,9 +29,9 @@ Fork [opensearch-project/opensearch-go](https://github.com/opensearch-project/op
|
|||||||
|
|
||||||
### Install Prerequisites
|
### Install Prerequisites
|
||||||
|
|
||||||
#### Go 1.24
|
#### Go 1.21
|
||||||
|
|
||||||
OpenSearch Go Client builds using [Go](https://go.dev/doc/install) 1.24 at a minimum.
|
OpenSearch Go Client builds using [Go](https://go.dev/doc/install) 1.21 at a minimum.
|
||||||
|
|
||||||
#### Docker
|
#### Docker
|
||||||
|
|
||||||
|
|||||||
2
vendor/github.com/opensearch-project/opensearch-go/v4/MAINTAINERS.md
generated
vendored
2
vendor/github.com/opensearch-project/opensearch-go/v4/MAINTAINERS.md
generated
vendored
@@ -6,6 +6,7 @@ This document contains a list of maintainers in this repo. See [opensearch-proje
|
|||||||
|
|
||||||
| Maintainer | GitHub ID | Affiliation |
|
| Maintainer | GitHub ID | Affiliation |
|
||||||
| ----------------------- | ----------------------------------------- | ------------------- |
|
| ----------------------- | ----------------------------------------- | ------------------- |
|
||||||
|
| Daniel Doubrovkine | [dblock](https://github.com/dblock) | Independent |
|
||||||
| Jakob Hahn | [Jakob3xD](https://github.com/Jakob3xD) | Hetzner Online GmbH |
|
| Jakob Hahn | [Jakob3xD](https://github.com/Jakob3xD) | Hetzner Online GmbH |
|
||||||
| Vacha Shah | [VachaShah](https://github.com/VachaShah) | Amazon |
|
| Vacha Shah | [VachaShah](https://github.com/VachaShah) | Amazon |
|
||||||
| Vijayan Balasubramanian | [VijayanB](https://github.com/VijayanB) | Amazon |
|
| Vijayan Balasubramanian | [VijayanB](https://github.com/VijayanB) | Amazon |
|
||||||
@@ -14,7 +15,6 @@ This document contains a list of maintainers in this repo. See [opensearch-proje
|
|||||||
|
|
||||||
| Maintainer | GitHub ID | Affiliation |
|
| Maintainer | GitHub ID | Affiliation |
|
||||||
| ---------------------- | ------------------------------------------- | ----------- |
|
| ---------------------- | ------------------------------------------- | ----------- |
|
||||||
| Daniel Doubrovkine | [dblock](https://github.com/dblock) | Independent |
|
|
||||||
| Jack Mazanec | [jmazanec15](https://github.com/jmazanec15) | Amazon |
|
| Jack Mazanec | [jmazanec15](https://github.com/jmazanec15) | Amazon |
|
||||||
| Rob Cowart | [robcowart](https://github.com/robcowart) | ElastiFlow |
|
| Rob Cowart | [robcowart](https://github.com/robcowart) | ElastiFlow |
|
||||||
| Sven Cowart | [svencowart](https://github.com/svencowart) | |
|
| Sven Cowart | [svencowart](https://github.com/svencowart) | |
|
||||||
|
|||||||
6
vendor/github.com/opensearch-project/opensearch-go/v4/Makefile
generated
vendored
6
vendor/github.com/opensearch-project/opensearch-go/v4/Makefile
generated
vendored
@@ -80,7 +80,9 @@ build-coverage:
|
|||||||
|
|
||||||
##@ Development
|
##@ Development
|
||||||
lint: ## Run lint on the package
|
lint: ## Run lint on the package
|
||||||
@make linters
|
@printf "\033[2m→ Running lint...\033[0m\n"
|
||||||
|
go vet github.com/opensearch-project/opensearch-go/...
|
||||||
|
go list github.com/opensearch-project/opensearch-go/... | 'grep' -v internal | xargs golint -set_exit_status
|
||||||
|
|
||||||
package := "prettier"
|
package := "prettier"
|
||||||
lint.markdown:
|
lint.markdown:
|
||||||
@@ -227,7 +229,7 @@ cluster.clean: ## Remove unused Docker volumes and networks
|
|||||||
docker system prune --volumes --force
|
docker system prune --volumes --force
|
||||||
|
|
||||||
linters:
|
linters:
|
||||||
docker run -t --rm -v $$(pwd):/app -v ~/.cache/golangci-lint/v2.7.2:/root/.cache -w /app golangci/golangci-lint:v2.7.2 golangci-lint run --timeout=5m -v
|
docker run -t --rm -v $$(pwd):/app -v ~/.cache/golangci-lint/v1.54.2:/root/.cache -w /app golangci/golangci-lint:v1.54.2 golangci-lint run --timeout=5m
|
||||||
|
|
||||||
workflow: ## Run all github workflow commands here sequentially
|
workflow: ## Run all github workflow commands here sequentially
|
||||||
|
|
||||||
|
|||||||
24
vendor/github.com/opensearch-project/opensearch-go/v4/error.go
generated
vendored
24
vendor/github.com/opensearch-project/opensearch-go/v4/error.go
generated
vendored
@@ -75,26 +75,10 @@ type Err struct {
|
|||||||
RootCause []RootCause `json:"root_cause"`
|
RootCause []RootCause `json:"root_cause"`
|
||||||
Type string `json:"type"`
|
Type string `json:"type"`
|
||||||
Reason string `json:"reason"`
|
Reason string `json:"reason"`
|
||||||
CausedBy *CausedBy `json:"caused_by,omitempty"`
|
|
||||||
Index string `json:"index,omitempty"`
|
Index string `json:"index,omitempty"`
|
||||||
IndexUUID string `json:"index_uuid,omitempty"`
|
IndexUUID string `json:"index_uuid,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// CausedBy represents the optional caused_by of an API error response. Causes can be nested
|
|
||||||
type CausedBy struct {
|
|
||||||
Type string `json:"type"`
|
|
||||||
Reason string `json:"reason"`
|
|
||||||
CausedBy *CausedBy `json:"caused_by,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// String returns a string representation of CausedBy, handling nested structures
|
|
||||||
func (c *CausedBy) String() string {
|
|
||||||
if c.CausedBy == nil {
|
|
||||||
return fmt.Sprintf("{type: %s, reason: %s}", c.Type, c.Reason)
|
|
||||||
}
|
|
||||||
return fmt.Sprintf("{type: %s, reason: %s, caused_by: %s}", c.Type, c.Reason, c.CausedBy)
|
|
||||||
}
|
|
||||||
|
|
||||||
// RootCause represents the root_cause of an API error response
|
// RootCause represents the root_cause of an API error response
|
||||||
type RootCause struct {
|
type RootCause struct {
|
||||||
Type string `json:"type"`
|
Type string `json:"type"`
|
||||||
@@ -105,13 +89,7 @@ type RootCause struct {
|
|||||||
|
|
||||||
// Error returns a string
|
// Error returns a string
|
||||||
func (e StructError) Error() string {
|
func (e StructError) Error() string {
|
||||||
result := fmt.Sprintf("status: %d, type: %s, reason: %s, root_cause: %s", e.Status, e.Err.Type, e.Err.Reason, e.Err.RootCause)
|
return fmt.Sprintf("status: %d, type: %s, reason: %s, root_cause: %s", e.Status, e.Err.Type, e.Err.Reason, e.Err.RootCause)
|
||||||
|
|
||||||
if e.Err.CausedBy != nil {
|
|
||||||
result += fmt.Sprintf(", caused_by: %s", e.Err.CausedBy)
|
|
||||||
}
|
|
||||||
|
|
||||||
return result
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// UnmarshalJSON is a custom unmarshal function for StructError returning custom errors in special cases
|
// UnmarshalJSON is a custom unmarshal function for StructError returning custom errors in special cases
|
||||||
|
|||||||
2
vendor/github.com/opensearch-project/opensearch-go/v4/internal/version/version.go
generated
vendored
2
vendor/github.com/opensearch-project/opensearch-go/v4/internal/version/version.go
generated
vendored
@@ -27,4 +27,4 @@
|
|||||||
package version
|
package version
|
||||||
|
|
||||||
// Client returns the client version as a string.
|
// Client returns the client version as a string.
|
||||||
const Client = "4.6.0"
|
const Client = "4.5.0"
|
||||||
|
|||||||
2
vendor/github.com/opensearch-project/opensearch-go/v4/opensearchapi/api_aliases.go
generated
vendored
2
vendor/github.com/opensearch-project/opensearch-go/v4/opensearchapi/api_aliases.go
generated
vendored
@@ -52,7 +52,7 @@ type AliasesResp struct {
|
|||||||
response *opensearch.Response
|
response *opensearch.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r AliasesResp) Inspect() Inspect {
|
func (r AliasesResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
|
|||||||
2
vendor/github.com/opensearch-project/opensearch-go/v4/opensearchapi/api_bulk.go
generated
vendored
2
vendor/github.com/opensearch-project/opensearch-go/v4/opensearchapi/api_bulk.go
generated
vendored
@@ -103,7 +103,7 @@ type BulkRespItem struct {
|
|||||||
} `json:"error,omitempty"`
|
} `json:"error,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r BulkResp) Inspect() Inspect {
|
func (r BulkResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ type CatAliasResp struct {
|
|||||||
IsWriteIndex string `json:"is_write_index"`
|
IsWriteIndex string `json:"is_write_index"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r CatAliasesResp) Inspect() Inspect {
|
func (r CatAliasesResp) Inspect() Inspect {
|
||||||
return Inspect{
|
return Inspect{
|
||||||
Response: r.response,
|
Response: r.response,
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ type CatAllocationResp struct {
|
|||||||
Node string `json:"node"`
|
Node string `json:"node"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r CatAllocationsResp) Inspect() Inspect {
|
func (r CatAllocationsResp) Inspect() Inspect {
|
||||||
return Inspect{
|
return Inspect{
|
||||||
Response: r.response,
|
Response: r.response,
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ type CatClusterManagerResp struct {
|
|||||||
Node string `json:"node"`
|
Node string `json:"node"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r CatClusterManagersResp) Inspect() Inspect {
|
func (r CatClusterManagersResp) Inspect() Inspect {
|
||||||
return Inspect{
|
return Inspect{
|
||||||
Response: r.response,
|
Response: r.response,
|
||||||
|
|||||||
2
vendor/github.com/opensearch-project/opensearch-go/v4/opensearchapi/api_cat-count.go
generated
vendored
2
vendor/github.com/opensearch-project/opensearch-go/v4/opensearchapi/api_cat-count.go
generated
vendored
@@ -52,7 +52,7 @@ type CatCountResp struct {
|
|||||||
Count int `json:"count,string"`
|
Count int `json:"count,string"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r CatCountsResp) Inspect() Inspect {
|
func (r CatCountsResp) Inspect() Inspect {
|
||||||
return Inspect{
|
return Inspect{
|
||||||
Response: r.response,
|
Response: r.response,
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ type CatFieldDataItemResp struct {
|
|||||||
Size string `json:"size"`
|
Size string `json:"size"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r CatFieldDataResp) Inspect() Inspect {
|
func (r CatFieldDataResp) Inspect() Inspect {
|
||||||
return Inspect{
|
return Inspect{
|
||||||
Response: r.response,
|
Response: r.response,
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ type CatHealthItemResp struct {
|
|||||||
ActiveShardsPercent string `json:"active_shards_percent"`
|
ActiveShardsPercent string `json:"active_shards_percent"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r CatHealthResp) Inspect() Inspect {
|
func (r CatHealthResp) Inspect() Inspect {
|
||||||
return Inspect{
|
return Inspect{
|
||||||
Response: r.response,
|
Response: r.response,
|
||||||
|
|||||||
@@ -195,7 +195,7 @@ type CatIndexResp struct {
|
|||||||
SearchThrottled bool `json:"search.throttled,string"`
|
SearchThrottled bool `json:"search.throttled,string"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r CatIndicesResp) Inspect() Inspect {
|
func (r CatIndicesResp) Inspect() Inspect {
|
||||||
return Inspect{
|
return Inspect{
|
||||||
Response: r.response,
|
Response: r.response,
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ type CatMasterItemResp struct {
|
|||||||
Node string `json:"node"`
|
Node string `json:"node"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r CatMasterResp) Inspect() Inspect {
|
func (r CatMasterResp) Inspect() Inspect {
|
||||||
return Inspect{
|
return Inspect{
|
||||||
Response: r.response,
|
Response: r.response,
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ type CatNodeAttrsItemResp struct {
|
|||||||
Value string `json:"value"`
|
Value string `json:"value"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r CatNodeAttrsResp) Inspect() Inspect {
|
func (r CatNodeAttrsResp) Inspect() Inspect {
|
||||||
return Inspect{
|
return Inspect{
|
||||||
Response: r.response,
|
Response: r.response,
|
||||||
|
|||||||
2
vendor/github.com/opensearch-project/opensearch-go/v4/opensearchapi/api_cat-nodes.go
generated
vendored
2
vendor/github.com/opensearch-project/opensearch-go/v4/opensearchapi/api_cat-nodes.go
generated
vendored
@@ -138,7 +138,7 @@ type CatNodesItemResp struct {
|
|||||||
SuggestTotal *int `json:"suggest.total,string"`
|
SuggestTotal *int `json:"suggest.total,string"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r CatNodesResp) Inspect() Inspect {
|
func (r CatNodesResp) Inspect() Inspect {
|
||||||
return Inspect{
|
return Inspect{
|
||||||
Response: r.response,
|
Response: r.response,
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ type CatPendingTaskResp struct {
|
|||||||
Source string `json:"source"`
|
Source string `json:"source"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r CatPendingTasksResp) Inspect() Inspect {
|
func (r CatPendingTasksResp) Inspect() Inspect {
|
||||||
return Inspect{
|
return Inspect{
|
||||||
Response: r.response,
|
Response: r.response,
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ type CatPluginResp struct {
|
|||||||
Description string `json:"description,omitempty"`
|
Description string `json:"description,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r CatPluginsResp) Inspect() Inspect {
|
func (r CatPluginsResp) Inspect() Inspect {
|
||||||
return Inspect{
|
return Inspect{
|
||||||
Response: r.response,
|
Response: r.response,
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ type CatRecoveryItemResp struct {
|
|||||||
TranslogOpsPercent string `json:"translog_ops_percent"`
|
TranslogOpsPercent string `json:"translog_ops_percent"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r CatRecoveryResp) Inspect() Inspect {
|
func (r CatRecoveryResp) Inspect() Inspect {
|
||||||
return Inspect{
|
return Inspect{
|
||||||
Response: r.response,
|
Response: r.response,
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ type CatRepositorieResp struct {
|
|||||||
Type string `json:"type"`
|
Type string `json:"type"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r CatRepositoriesResp) Inspect() Inspect {
|
func (r CatRepositoriesResp) Inspect() Inspect {
|
||||||
return Inspect{
|
return Inspect{
|
||||||
Response: r.response,
|
Response: r.response,
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ type CatSegmentResp struct {
|
|||||||
Compound bool `json:"compound,string"`
|
Compound bool `json:"compound,string"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r CatSegmentsResp) Inspect() Inspect {
|
func (r CatSegmentsResp) Inspect() Inspect {
|
||||||
return Inspect{
|
return Inspect{
|
||||||
Response: r.response,
|
Response: r.response,
|
||||||
|
|||||||
@@ -129,7 +129,7 @@ type CatShardResp struct {
|
|||||||
DocsDeleted *int `json:"docs.deleted,string"`
|
DocsDeleted *int `json:"docs.deleted,string"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r CatShardsResp) Inspect() Inspect {
|
func (r CatShardsResp) Inspect() Inspect {
|
||||||
return Inspect{
|
return Inspect{
|
||||||
Response: r.response,
|
Response: r.response,
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ type CatSnapshotResp struct {
|
|||||||
Reason string `json:"reason"`
|
Reason string `json:"reason"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r CatSnapshotsResp) Inspect() Inspect {
|
func (r CatSnapshotsResp) Inspect() Inspect {
|
||||||
return Inspect{
|
return Inspect{
|
||||||
Response: r.response,
|
Response: r.response,
|
||||||
|
|||||||
2
vendor/github.com/opensearch-project/opensearch-go/v4/opensearchapi/api_cat-tasks.go
generated
vendored
2
vendor/github.com/opensearch-project/opensearch-go/v4/opensearchapi/api_cat-tasks.go
generated
vendored
@@ -54,7 +54,7 @@ type CatTaskResp struct {
|
|||||||
XOpaqueID string `json:"x_opaque_id"`
|
XOpaqueID string `json:"x_opaque_id"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r CatTasksResp) Inspect() Inspect {
|
func (r CatTasksResp) Inspect() Inspect {
|
||||||
return Inspect{
|
return Inspect{
|
||||||
Response: r.response,
|
Response: r.response,
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ type CatTemplateResp struct {
|
|||||||
ComposedOf string `json:"composed_of"`
|
ComposedOf string `json:"composed_of"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r CatTemplatesResp) Inspect() Inspect {
|
func (r CatTemplatesResp) Inspect() Inspect {
|
||||||
return Inspect{
|
return Inspect{
|
||||||
Response: r.response,
|
Response: r.response,
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ type CatThreadPoolItemResp struct {
|
|||||||
TotalWaitTime string `json:"total_wait_time"`
|
TotalWaitTime string `json:"total_wait_time"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r CatThreadPoolResp) Inspect() Inspect {
|
func (r CatThreadPoolResp) Inspect() Inspect {
|
||||||
return Inspect{
|
return Inspect{
|
||||||
Response: r.response,
|
Response: r.response,
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ type ClusterAllocationExplainResp struct {
|
|||||||
response *opensearch.Response
|
response *opensearch.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r ClusterAllocationExplainResp) Inspect() Inspect {
|
func (r ClusterAllocationExplainResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ type ClusterPutDecommissionResp struct {
|
|||||||
response *opensearch.Response
|
response *opensearch.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r ClusterPutDecommissionResp) Inspect() Inspect {
|
func (r ClusterPutDecommissionResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
@@ -74,7 +74,7 @@ type ClusterDeleteDecommissionResp struct {
|
|||||||
response *opensearch.Response
|
response *opensearch.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r ClusterDeleteDecommissionResp) Inspect() Inspect {
|
func (r ClusterDeleteDecommissionResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
@@ -110,7 +110,7 @@ type ClusterGetDecommissionResp struct {
|
|||||||
response *opensearch.Response
|
response *opensearch.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r ClusterGetDecommissionResp) Inspect() Inspect {
|
func (r ClusterGetDecommissionResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ type ClusterHealthResp struct {
|
|||||||
response *opensearch.Response
|
response *opensearch.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r ClusterHealthResp) Inspect() Inspect {
|
func (r ClusterHealthResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ type ClusterPendingTasksResp struct {
|
|||||||
response *opensearch.Response
|
response *opensearch.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r ClusterPendingTasksResp) Inspect() Inspect {
|
func (r ClusterPendingTasksResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ type ClusterRemoteInfoResp struct {
|
|||||||
response *opensearch.Response
|
response *opensearch.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r ClusterRemoteInfoResp) Inspect() Inspect {
|
func (r ClusterRemoteInfoResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ type ClusterRerouteResp struct {
|
|||||||
response *opensearch.Response
|
response *opensearch.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r ClusterRerouteResp) Inspect() Inspect {
|
func (r ClusterRerouteResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ type ClusterGetSettingsResp struct {
|
|||||||
response *opensearch.Response
|
response *opensearch.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r ClusterGetSettingsResp) Inspect() Inspect {
|
func (r ClusterGetSettingsResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
@@ -70,7 +70,7 @@ type ClusterPutSettingsResp struct {
|
|||||||
response *opensearch.Response
|
response *opensearch.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r ClusterPutSettingsResp) Inspect() Inspect {
|
func (r ClusterPutSettingsResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ type ClusterStateResp struct {
|
|||||||
} `json:"restore"`
|
} `json:"restore"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r ClusterStateResp) Inspect() Inspect {
|
func (r ClusterStateResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
@@ -194,7 +194,6 @@ type ClusterStateMetaDataStream struct {
|
|||||||
type ClusterStateRoutingIndex struct {
|
type ClusterStateRoutingIndex struct {
|
||||||
State string `json:"state"`
|
State string `json:"state"`
|
||||||
Primary bool `json:"primary"`
|
Primary bool `json:"primary"`
|
||||||
SearchOnly bool `json:"searchOnly"`
|
|
||||||
Node *string `json:"node"`
|
Node *string `json:"node"`
|
||||||
RelocatingNode *string `json:"relocating_node"`
|
RelocatingNode *string `json:"relocating_node"`
|
||||||
Shard int `json:"shard"`
|
Shard int `json:"shard"`
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ type ClusterStatsResp struct {
|
|||||||
response *opensearch.Response
|
response *opensearch.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r ClusterStatsResp) Inspect() Inspect {
|
func (r ClusterStatsResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
@@ -194,7 +194,6 @@ type ClusterStatsNodes struct {
|
|||||||
Master int `json:"master"`
|
Master int `json:"master"`
|
||||||
RemoteClusterClient int `json:"remote_cluster_client"`
|
RemoteClusterClient int `json:"remote_cluster_client"`
|
||||||
Search int `json:"search"`
|
Search int `json:"search"`
|
||||||
Warm int `json:"warm"`
|
|
||||||
} `json:"count"`
|
} `json:"count"`
|
||||||
Versions []string `json:"versions"`
|
Versions []string `json:"versions"`
|
||||||
Os struct {
|
Os struct {
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ type ComponentTemplateCreateResp struct {
|
|||||||
response *opensearch.Response
|
response *opensearch.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r ComponentTemplateCreateResp) Inspect() Inspect {
|
func (r ComponentTemplateCreateResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ type ComponentTemplateDeleteResp struct {
|
|||||||
response *opensearch.Response
|
response *opensearch.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r ComponentTemplateDeleteResp) Inspect() Inspect {
|
func (r ComponentTemplateDeleteResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ type ComponentTemplateGetResp struct {
|
|||||||
response *opensearch.Response
|
response *opensearch.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r ComponentTemplateGetResp) Inspect() Inspect {
|
func (r ComponentTemplateGetResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ type DanglingDeleteResp struct {
|
|||||||
response *opensearch.Response
|
response *opensearch.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r DanglingDeleteResp) Inspect() Inspect {
|
func (r DanglingDeleteResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ type DanglingGetResp struct {
|
|||||||
response *opensearch.Response
|
response *opensearch.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r DanglingGetResp) Inspect() Inspect {
|
func (r DanglingGetResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ type DanglingImportResp struct {
|
|||||||
response *opensearch.Response
|
response *opensearch.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r DanglingImportResp) Inspect() Inspect {
|
func (r DanglingImportResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ type DataStreamCreateResp struct {
|
|||||||
response *opensearch.Response
|
response *opensearch.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r DataStreamCreateResp) Inspect() Inspect {
|
func (r DataStreamCreateResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ type DataStreamDeleteResp struct {
|
|||||||
response *opensearch.Response
|
response *opensearch.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r DataStreamDeleteResp) Inspect() Inspect {
|
func (r DataStreamDeleteResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ type DataStreamGetResp struct {
|
|||||||
response *opensearch.Response
|
response *opensearch.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r DataStreamGetResp) Inspect() Inspect {
|
func (r DataStreamGetResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ type DataStreamStatsResp struct {
|
|||||||
response *opensearch.Response
|
response *opensearch.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r DataStreamStatsResp) Inspect() Inspect {
|
func (r DataStreamStatsResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ type DocumentCreateResp struct {
|
|||||||
response *opensearch.Response
|
response *opensearch.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r DocumentCreateResp) Inspect() Inspect {
|
func (r DocumentCreateResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ type DocumentDeleteResp struct {
|
|||||||
response *opensearch.Response
|
response *opensearch.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r DocumentDeleteResp) Inspect() Inspect {
|
func (r DocumentDeleteResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ type DocumentDeleteByQueryResp struct {
|
|||||||
response *opensearch.Response
|
response *opensearch.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r DocumentDeleteByQueryResp) Inspect() Inspect {
|
func (r DocumentDeleteByQueryResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ type DocumentDeleteByQueryRethrottleResourceInfo struct {
|
|||||||
MemoryInBytes int `json:"memory_in_bytes"`
|
MemoryInBytes int `json:"memory_in_bytes"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r DocumentDeleteByQueryRethrottleResp) Inspect() Inspect {
|
func (r DocumentDeleteByQueryRethrottleResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ type DocumentExplainResp struct {
|
|||||||
response *opensearch.Response
|
response *opensearch.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r DocumentExplainResp) Inspect() Inspect {
|
func (r DocumentExplainResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ type DocumentGetResp struct {
|
|||||||
response *opensearch.Response
|
response *opensearch.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r DocumentGetResp) Inspect() Inspect {
|
func (r DocumentGetResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ type DocumentSourceResp struct {
|
|||||||
response *opensearch.Response
|
response *opensearch.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r DocumentSourceResp) Inspect() Inspect {
|
func (r DocumentSourceResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
|
|||||||
2
vendor/github.com/opensearch-project/opensearch-go/v4/opensearchapi/api_index.go
generated
vendored
2
vendor/github.com/opensearch-project/opensearch-go/v4/opensearchapi/api_index.go
generated
vendored
@@ -75,7 +75,7 @@ type IndexResp struct {
|
|||||||
response *opensearch.Response
|
response *opensearch.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r IndexResp) Inspect() Inspect {
|
func (r IndexResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ type IndexTemplateCreateResp struct {
|
|||||||
response *opensearch.Response
|
response *opensearch.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r IndexTemplateCreateResp) Inspect() Inspect {
|
func (r IndexTemplateCreateResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ type IndexTemplateDeleteResp struct {
|
|||||||
response *opensearch.Response
|
response *opensearch.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r IndexTemplateDeleteResp) Inspect() Inspect {
|
func (r IndexTemplateDeleteResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ type IndexTemplateGetResp struct {
|
|||||||
response *opensearch.Response
|
response *opensearch.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r IndexTemplateGetResp) Inspect() Inspect {
|
func (r IndexTemplateGetResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ type IndexTemplateSimulateResp struct {
|
|||||||
response *opensearch.Response
|
response *opensearch.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r IndexTemplateSimulateResp) Inspect() Inspect {
|
func (r IndexTemplateSimulateResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ type IndexTemplateSimulateIndexResp struct {
|
|||||||
response *opensearch.Response
|
response *opensearch.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r IndexTemplateSimulateIndexResp) Inspect() Inspect {
|
func (r IndexTemplateSimulateIndexResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ type AliasDeleteResp struct {
|
|||||||
response *opensearch.Response
|
response *opensearch.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r AliasDeleteResp) Inspect() Inspect {
|
func (r AliasDeleteResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
@@ -140,7 +140,7 @@ type AliasGetResp struct {
|
|||||||
response *opensearch.Response
|
response *opensearch.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r AliasGetResp) Inspect() Inspect {
|
func (r AliasGetResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
@@ -179,7 +179,7 @@ type AliasPutResp struct {
|
|||||||
response *opensearch.Response
|
response *opensearch.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r AliasPutResp) Inspect() Inspect {
|
func (r AliasPutResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ type IndicesAnalyzeResp struct {
|
|||||||
response *opensearch.Response
|
response *opensearch.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r IndicesAnalyzeResp) Inspect() Inspect {
|
func (r IndicesAnalyzeResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ type IndicesBlockResp struct {
|
|||||||
response *opensearch.Response
|
response *opensearch.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r IndicesBlockResp) Inspect() Inspect {
|
func (r IndicesBlockResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ type IndicesClearCacheResp struct {
|
|||||||
response *opensearch.Response
|
response *opensearch.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r IndicesClearCacheResp) Inspect() Inspect {
|
func (r IndicesClearCacheResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ type IndicesCloneResp struct {
|
|||||||
response *opensearch.Response
|
response *opensearch.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r IndicesCloneResp) Inspect() Inspect {
|
func (r IndicesCloneResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ type IndicesCloseResp struct {
|
|||||||
response *opensearch.Response
|
response *opensearch.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r IndicesCloseResp) Inspect() Inspect {
|
func (r IndicesCloseResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ type IndicesCountResp struct {
|
|||||||
response *opensearch.Response
|
response *opensearch.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r IndicesCountResp) Inspect() Inspect {
|
func (r IndicesCountResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ type IndicesCreateResp struct {
|
|||||||
response *opensearch.Response
|
response *opensearch.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r IndicesCreateResp) Inspect() Inspect {
|
func (r IndicesCreateResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ type IndicesDeleteResp struct {
|
|||||||
response *opensearch.Response
|
response *opensearch.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r IndicesDeleteResp) Inspect() Inspect {
|
func (r IndicesDeleteResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ type IndicesFieldCapsResp struct {
|
|||||||
response *opensearch.Response
|
response *opensearch.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r IndicesFieldCapsResp) Inspect() Inspect {
|
func (r IndicesFieldCapsResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ type IndicesFlushResp struct {
|
|||||||
response *opensearch.Response
|
response *opensearch.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inspect returns the Inspect type containing the raw *opensearch.Response
|
// Inspect returns the Inspect type containing the raw *opensearch.Reponse
|
||||||
func (r IndicesFlushResp) Inspect() Inspect {
|
func (r IndicesFlushResp) Inspect() Inspect {
|
||||||
return Inspect{Response: r.response}
|
return Inspect{Response: r.response}
|
||||||
}
|
}
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user