Skip to content

Commit edd9429

Browse files
authored
Change pageSize value equal to totalCount (#145)
* Fix extension not found due to page size limit
1 parent 157a815 commit edd9429

File tree

7 files changed

+20
-12
lines changed

7 files changed

+20
-12
lines changed

.bumpversion.cfg

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[bumpversion]
2-
current_version = 1.6.8
2+
current_version = 1.6.9
33
parse = (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)(-(?P<release>.*))?
44
serialize =
55
{major}.{minor}.{patch}-{release}

Makefile

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ lint: setup
88
.venv: poetry.lock
99
python -m venv .venv
1010
poetry install
11+
touch .venv
1112

1213
type-check: setup
1314
#poetry run mypy --strict dtcli/scripts/dt.py

dtcli/api.py

+9-3
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,11 @@ def acquire_environment_configuration(self, fqdn: str):
4141

4242
def acquire_extensions(self):
4343
r = self.requests.get(f"{self.url_base}/api/v2/extensions", headers=self.headers)
44+
# Temporary solution. It can cause too much data usage.
45+
# Also we can hit a hard backend limit wrg to page size.
46+
# Which can cause false negatives.
47+
ext_num_tot = r.json()["totalCount"]
48+
r = self.requests.get(f"{self.url_base}/api/v2/extensions?pageSize={ext_num_tot}", headers=self.headers)
4449
r.raise_for_status()
4550
return r.json()["extensions"]
4651

@@ -113,9 +118,10 @@ def download_schemas(self, target_version: str, download_dir: str):
113118

114119
header = self.headers
115120
header["accept"] = "application/octet-stream"
116-
file = self.requests.get(self.url_base + f"/api/v2/extensions/schemas/{version}", headers=header, stream=True)
117-
file.raise_for_status()
118-
zfile = zipfile.ZipFile(io.BytesIO(file.content))
121+
schema_file = self.requests.get(self.url_base + f"/api/v2/extensions/schemas/{version}",
122+
headers=header, stream=True)
123+
schema_file.raise_for_status()
124+
zfile = zipfile.ZipFile(io.BytesIO(schema_file.content))
119125

120126
THRESHOLD_ENTRIES = 10000
121127
THRESHOLD_SIZE = 1000000000

dtcli/delete_extension.py

-5
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,6 @@ def acquire_state(client: DynatraceAPIClient) -> State:
5858

5959

6060
def acquire_state_for_extension(client: DynatraceAPIClient, extension: str) -> State:
61-
extensions_listing = list(map(lambda e: e["extensionName"], client.acquire_extensions()))
62-
63-
if extension not in extensions_listing:
64-
raise Exception("Extension doesn't exist")
65-
6661
versions = client.acquire_extension_versions(extension)
6762
# TODO: is this really any?
6863
extension_data: Dict[str, Dict[str, Any]] = defaultdict(dict)

dtcli/scripts/dt.py

+7-1
Original file line numberDiff line numberDiff line change
@@ -784,7 +784,13 @@ def delete(**kwargs):
784784
Example: custom:com.dynatrace.extension.extension-name
785785
"""
786786
token = kwargs["api_token_path"]
787-
delete_extension.wipe(fqdn=kwargs["extension"], tenant=kwargs["tenant_url"], token=token)
787+
try:
788+
delete_extension.wipe(fqdn=kwargs["extension"], tenant=kwargs["tenant_url"], token=token)
789+
except requests.exceptions.HTTPError as err:
790+
if err.response.status_code == 404:
791+
raise click.BadParameter(err, param_hint="EXTENSION")
792+
else:
793+
raise
788794

789795

790796
@extension.command(

dtcli/version.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
__version__ = "1.6.8"
15+
__version__ = "1.6.9"

pyproject.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ packages = [
1212
]
1313
readme = "README.md"
1414
repository = "https://github.com/dynatrace-oss/dt-cli"
15-
version = "1.6.8"
15+
version = "1.6.9"
1616

1717

1818
[tool.poetry.dependencies]

0 commit comments

Comments
 (0)