Skip to content

Commit 5635c0e

Browse files
authoredApr 23, 2024
Merge pull request #1366 from atlassian/release/8.2.0
Release 8.2.0
2 parents 9e3409d + 43e7ae9 commit 5635c0e

23 files changed

+121
-91
lines changed
 

‎README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ This repository contains Taurus scripts for performance testing of Atlassian Dat
2020
* Crowd [release notes](https://confluence.atlassian.com/crowd/crowd-release-notes-199094.html): `5.2.3`
2121

2222
* Supported Bamboo versions:
23-
* Bamboo [Long Term Support release](https://confluence.atlassian.com/bamboo/bamboo-release-notes-671089224.html): `9.2.11`
23+
* Bamboo [Long Term Support release](https://confluence.atlassian.com/bamboo/bamboo-release-notes-671089224.html): `9.6.1`
2424

2525
## Support
2626
In case of technical questions, issues or problems with DC Apps Performance Toolkit, contact us for support in the [community Slack](http://bit.ly/dcapt_slack) **#data-center-app-performance-toolkit** channel.

‎app/bamboo.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ modules:
125125
httpsampler.ignore_failed_embedded_resources: "true"
126126
selenium:
127127
chromedriver:
128-
version: "122.0.6261.128" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing
128+
version: "124.0.6367.60" # Supports Chrome version 124. You can refer to https://googlechromelabs.github.io/chrome-for-testing
129129
reporting:
130130
- data-source: sample-labels
131131
module: junit-xml

‎app/bitbucket.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ modules:
9191
httpsampler.ignore_failed_embedded_resources: "true"
9292
selenium:
9393
chromedriver:
94-
version: "122.0.6261.128" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing
94+
version: "124.0.6367.60" # Supports Chrome version 124. You can refer to https://googlechromelabs.github.io/chrome-for-testing
9595
reporting:
9696
- data-source: sample-labels
9797
module: junit-xml

‎app/confluence.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ modules:
118118
httpsampler.ignore_failed_embedded_resources: "true"
119119
selenium:
120120
chromedriver:
121-
version: "122.0.6261.128" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing
121+
version: "124.0.6367.60" # Supports Chrome version 124. You can refer to https://googlechromelabs.github.io/chrome-for-testing
122122
reporting:
123123
- data-source: sample-labels
124124
module: junit-xml

‎app/jira.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ modules:
119119
httpsampler.ignore_failed_embedded_resources: "true"
120120
selenium:
121121
chromedriver:
122-
version: "122.0.6261.128" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing
122+
version: "124.0.6367.60" # Supports Chrome version 124. You can refer to https://googlechromelabs.github.io/chrome-for-testing
123123
reporting:
124124
- data-source: sample-labels
125125
module: junit-xml

‎app/jsm.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ modules:
171171
httpsampler.ignore_failed_embedded_resources: "true"
172172
selenium:
173173
chromedriver:
174-
version: "122.0.6261.128" # Supports Chrome version 122. You can refer to https://googlechromelabs.github.io/chrome-for-testing
174+
version: "124.0.6367.60" # Supports Chrome version 124. You can refer to https://googlechromelabs.github.io/chrome-for-testing
175175
reporting:
176176
- data-source: sample-labels
177177
module: junit-xml

‎app/selenium_ui/bamboo/pages/selectors.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ class AllBuildsLocators:
5252

5353

5454
class PlanConfigurationLocators:
55-
edit_config_button = (By.XPATH, "//span[contains(text(),'Configure plan')]")
55+
edit_config_button = (By.XPATH, "//span[@title='Configure plan']")
5656
config_plan_page = (By.ID, "config-sidebar")
5757
config_plan_page_content = (By.ID, "content")
5858

‎app/util/api/bamboo_clients.py

+11-7
Original file line numberDiff line numberDiff line change
@@ -159,14 +159,18 @@ def get_server_info(self):
159159
return r.json()
160160

161161
def get_available_processors(self):
162-
processors = None
163-
page = self.get(f'{self.host}/admin/systemInfo.action', 'Could not get Page content')
164-
tree = html.fromstring(page.content)
165162
try:
166-
processors = tree.xpath('//*[@id="systemInfo_availableProcessors"]/text()')[0]
167-
except Exception as error:
168-
print(f"Warning: Could not parse number of Bamboo available processors: {error}")
169-
return processors
163+
processors = None
164+
page = self.get(f'{self.host}/admin/systemInfo.action', 'Could not get Page content')
165+
tree = html.fromstring(page.content)
166+
try:
167+
processors = tree.xpath('//*[@id="systemInfo_availableProcessors"]/text()')[0]
168+
except Exception as e:
169+
print(f"Warning: Could not parse number of Bamboo available processors: {e}")
170+
return processors
171+
except Exception as e:
172+
print(f"Warning: Could not get Available Processors information. Error: {e}")
173+
return 'N/A'
170174

171175
def get_nodes_count(self):
172176
r = self.get(f'{self.host}/rest/api/latest/server/nodes', error_msg="Could not get Bamboo nodes count")

‎app/util/api/bitbucket_clients.py

+11-7
Original file line numberDiff line numberDiff line change
@@ -173,14 +173,18 @@ def get_bitbucket_repo_count(self):
173173
return repos_count
174174

175175
def get_available_processors(self):
176-
processors = None
177-
page = self.get_bitbucket_system_page()
178-
tree = html.fromstring(page.content)
179176
try:
180-
processors = tree.xpath('//*[@id="content-stp.properties.os-0"]/div[4]/span/text()')[0]
181-
except Exception as error:
182-
print(f"Warning: Could not parse number of Bitbucket available processors: {error}")
183-
return processors
177+
processors = None
178+
page = self.get_bitbucket_system_page()
179+
tree = html.fromstring(page.content)
180+
try:
181+
processors = tree.xpath('//*[@id="content-stp.properties.os-0"]/div[4]/span/text()')[0]
182+
except Exception as error:
183+
print(f"Warning: Could not parse number of Bitbucket available processors: {error}")
184+
return processors
185+
except Exception as e:
186+
print(f"Warning: Could not get Available Processors information. Error: {e}")
187+
return 'N/A'
184188

185189
def get_locale(self):
186190
language = None

‎app/util/api/jsm_clients.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ def get_requests(self, start_at: int = 0, max_results: int = 100, auth: tuple =
104104
init_url = self.host + "/rest/servicedeskapi/request"
105105
while loop_count > 0:
106106

107-
api_url = init_url + f"?start={start_at}&limit={max_results}"
107+
api_url = init_url + f"?start={start_at}&limit={max_results}&requestOwnership=PARTICIPATED_REQUESTS"
108108
if status:
109109
api_url += f"&requestStatus={status}"
110110

‎app/util/bamboo/bamboo_dataset_generator/pom.xml

+5-5
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<groupId>com.atlassian.bamboo</groupId>
77
<artifactId>bamboo-specs-parent</artifactId>
8-
<version>9.2.11</version>
8+
<version>9.6.1</version>
99
<relativePath/>
1010
</parent>
1111

@@ -62,17 +62,17 @@
6262
<dependency>
6363
<groupId>com.google.guava</groupId>
6464
<artifactId>guava</artifactId>
65-
<version>33.0.0-jre</version>
65+
<version>33.1.0-jre</version>
6666
</dependency>
6767
<dependency>
6868
<groupId>com.fasterxml.jackson.core</groupId>
6969
<artifactId>jackson-core</artifactId>
70-
<version>2.16.1</version>
70+
<version>2.17.0</version>
7171
</dependency>
7272
<dependency>
7373
<groupId>com.fasterxml.jackson.core</groupId>
7474
<artifactId>jackson-databind</artifactId>
75-
<version>2.16.1</version>
75+
<version>2.17.0</version>
7676
</dependency>
7777
<dependency>
7878
<groupId>com.jayway.jsonpath</groupId>
@@ -82,7 +82,7 @@
8282
<dependency>
8383
<groupId>net.minidev</groupId>
8484
<artifactId>json-smart</artifactId>
85-
<version>2.5.0</version>
85+
<version>2.5.1</version>
8686
</dependency>
8787
<dependency>
8888
<groupId>org.slf4j</groupId>

‎app/util/conf.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
from util.project_paths import JIRA_YML, CONFLUENCE_YML, BITBUCKET_YML, JSM_YML, CROWD_YML, BAMBOO_YML
44

5-
TOOLKIT_VERSION = '8.1.0'
6-
UNSUPPORTED_VERSION = '7.4.1'
5+
TOOLKIT_VERSION = '8.2.0'
6+
UNSUPPORTED_VERSION = '7.5.0'
77

88

99
def read_yml_file(file):

‎app/util/k8s/README.MD

+10-10
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ docker run --pull=always --env-file aws_envs \
3030
-v "/$PWD/dcapt-small.tfvars:/data-center-terraform/conf.tfvars" \
3131
-v "/$PWD/dcapt-snapshots.json:/data-center-terraform/dcapt-snapshots.json" \
3232
-v "/$PWD/logs:/data-center-terraform/logs" \
33-
-it atlassianlabs/terraform:2.7.4 ./install.sh -c conf.tfvars
33+
-it atlassianlabs/terraform:2.7.7 ./install.sh -c conf.tfvars
3434
```
3535
### Terminate development environment
3636
Note: install and uninstall commands have to use the same `atlassianlabs/terraform:TAG` image tag.
@@ -42,7 +42,7 @@ docker run --pull=always --env-file aws_envs \
4242
-v "/$PWD/dcapt-small.tfvars:/data-center-terraform/conf.tfvars" \
4343
-v "/$PWD/dcapt-snapshots.json:/data-center-terraform/dcapt-snapshots.json" \
4444
-v "/$PWD/logs:/data-center-terraform/logs" \
45-
-it atlassianlabs/terraform:2.7.4 ./uninstall.sh -c conf.tfvars
45+
-it atlassianlabs/terraform:2.7.7 ./uninstall.sh -c conf.tfvars
4646
```
4747

4848
# Enterprise-scale environment
@@ -59,7 +59,7 @@ docker run --pull=always --env-file aws_envs \
5959
-v "/$PWD/dcapt.tfvars:/data-center-terraform/conf.tfvars" \
6060
-v "/$PWD/dcapt-snapshots.json:/data-center-terraform/dcapt-snapshots.json" \
6161
-v "/$PWD/logs:/data-center-terraform/logs" \
62-
-it atlassianlabs/terraform:2.7.4 ./install.sh -c conf.tfvars
62+
-it atlassianlabs/terraform:2.7.7 ./install.sh -c conf.tfvars
6363
```
6464
### Terminate enterprise-scale environment
6565
Note: install and uninstall commands have to use the same `atlassianlabs/terraform:TAG` image tag.
@@ -71,7 +71,7 @@ docker run --pull=always --env-file aws_envs \
7171
-v "/$PWD/dcapt.tfvars:/data-center-terraform/conf.tfvars" \
7272
-v "/$PWD/dcapt-snapshots.json:/data-center-terraform/dcapt-snapshots.json" \
7373
-v "/$PWD/logs:/data-center-terraform/logs" \
74-
-it atlassianlabs/terraform:2.7.4 ./uninstall.sh -c conf.tfvars
74+
-it atlassianlabs/terraform:2.7.7 ./uninstall.sh -c conf.tfvars
7575
```
7676

7777
# Collect detailed k8s logs
@@ -91,7 +91,7 @@ export REGION=us-east-2
9191
docker run --pull=always --env-file aws_envs \
9292
-v "/$PWD/k8s_logs:/data-center-terraform/k8s_logs" \
9393
-v "/$PWD/logs:/data-center-terraform/logs" \
94-
-it atlassianlabs/terraform:2.7.4 ./scripts/collect_k8s_logs.sh atlas-$ENVIRONMENT_NAME-cluster $REGION k8s_logs
94+
-it atlassianlabs/terraform:2.7.7 ./scripts/collect_k8s_logs.sh atlas-$ENVIRONMENT_NAME-cluster $REGION k8s_logs
9595
```
9696

9797
# Force terminate cluster
@@ -124,7 +124,7 @@ atlassian/dcapt terminate_cluster.py --cluster_name atlas-$ENVIRONMENT_NAME-clus
124124
docker run --pull=always --env-file aws_envs \
125125
-e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \
126126
-e REGION=$REGION \
127-
-it atlassianlabs/terraform:2.7.4 bash
127+
-it atlassianlabs/terraform:2.7.7 bash
128128
```
129129

130130
5. Connect to the product pod. Example below for jira pod with number 0. For other product or pod number change `PRODUCT_POD` accordingly.
@@ -148,7 +148,7 @@ atlassian/dcapt terminate_cluster.py --cluster_name atlas-$ENVIRONMENT_NAME-clus
148148
-e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \
149149
-e REGION=$REGION \
150150
-v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \
151-
-it atlassianlabs/terraform:2.7.4 bash
151+
-it atlassianlabs/terraform:2.7.7 bash
152152
```
153153
5. Copy code base and connect to the execution environment pod:
154154
``` bash
@@ -176,7 +176,7 @@ atlassian/dcapt terminate_cluster.py --cluster_name atlas-$ENVIRONMENT_NAME-clus
176176
-e REGION=$REGION \
177177
-e PRODUCT=$PRODUCT \
178178
-v "/$PWD/script-runner.yml:/data-center-terraform/script-runner.yml" \
179-
-it atlassianlabs/terraform:2.7.4 bash
179+
-it atlassianlabs/terraform:2.7.7 bash
180180
```
181181
5. Run following commands one by one inside docker container:
182182
``` bash
@@ -204,7 +204,7 @@ To enable detailed CPU/Memory monitoring and Grafana dashboards for visualisatio
204204
docker run --pull=always --env-file aws_envs \
205205
-e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \
206206
-e REGION=$REGION \
207-
-it atlassianlabs/terraform:2.7.4 bash
207+
-it atlassianlabs/terraform:2.7.7 bash
208208
```
209209
``` bash
210210
aws eks update-kubeconfig --name atlas-$ENVIRONMENT_NAME-cluster --region $REGION
@@ -240,5 +240,5 @@ Note: this option is **not** suitable for full-scale performance runs as local n
240240
-e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \
241241
-v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \
242242
-v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \
243-
-it atlassianlabs/terraform:2.7.4 bash bzt_on_pod.sh jira.yml
243+
-it atlassianlabs/terraform:2.7.7 bash bzt_on_pod.sh jira.yml
244244
```

‎app/util/k8s/dcapt-snapshots.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
"size": "small",
4040
"snapshots": [
4141
{
42-
"us-east-2": "snap-0067577f23ce694f1",
42+
"us-east-2": "snap-0b103b4d0d75384f5",
4343
"us-east-1": "snap-0ff264d124d02af3a"
4444
}
4545
]

‎app/util/k8s/dcapt.tfvars

+2-2
Original file line numberDiff line numberDiff line change
@@ -389,8 +389,8 @@ crowd_db_master_password = "Password1!"
389389
# By default, latest supported by DCAPT version is set.
390390
# https://hub.docker.com/r/atlassian/bamboo/tags
391391
# https://hub.docker.com/r/atlassian/bamboo-agent-base/tags
392-
bamboo_version_tag = "9.2.11"
393-
bamboo_agent_version_tag = "9.2.11"
392+
bamboo_version_tag = "9.6.1"
393+
bamboo_agent_version_tag = "9.6.1"
394394

395395
# Helm chart version of Bamboo and Bamboo agent instances
396396
# bamboo_helm_chart_version = "<helm_chart_version>"

‎app/util/k8s/terminate_cluster.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ def delete_nodegroup(aws_region, cluster_name):
179179
nodegroupName=node_group)['nodegroup']['resources']['autoScalingGroups'][0]['name']
180180
autoscaling_client.delete_auto_scaling_group(AutoScalingGroupName=autoscaling_group_name,
181181
ForceDelete=True)
182-
except Boto3Error as e:
182+
except (Boto3Error, KeyError) as e:
183183
logging.error(f"Deleting autoscaling group {autoscaling_group_name} failed with error: {e}")
184184

185185
try:

‎app/util/pre_run/environment_compliance_check.py

+27-5
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
1+
import subprocess
12
import sys
2-
from selenium import webdriver
3+
34
from packaging import version
5+
from selenium import webdriver
46

5-
from util.common_util import get_latest_version, get_current_version, get_unsupported_version
6-
from util.analytics.application_info import ApplicationSelector
77
from util.analytics.analytics import MIN_DEFAULTS
8+
from util.analytics.application_info import ApplicationSelector
9+
from util.common_util import get_latest_version, get_current_version, get_unsupported_version
810
from util.conf import JIRA_SETTINGS, CONFLUENCE_SETTINGS, BITBUCKET_SETTINGS, JSM_SETTINGS, BAMBOO_SETTINGS, \
911
CROWD_SETTINGS
1012

11-
1213
APPS_SETTINGS = {
1314
"JIRA": JIRA_SETTINGS,
1415
"CONFLUENCE": CONFLUENCE_SETTINGS,
@@ -18,6 +19,8 @@
1819
"CROWD": CROWD_SETTINGS,
1920
}
2021

22+
SUPPORTED_JAVA_VERSIONS = [11, 17]
23+
2124

2225
def check_dcapt_version():
2326
latest_version = get_latest_version()
@@ -94,10 +97,27 @@ def validate_chromedriver_version(app_name, app_settings):
9497
f'Please change `chromedriver` version in your {app_name}.yml.')
9598

9699

100+
def validate_java_version():
101+
try:
102+
response = subprocess.check_output(['java', '-version'], stderr=subprocess.STDOUT)
103+
java_version = str(response.splitlines()[0]).split('"')[1]
104+
print(f'INFO: Java version: {java_version}')
105+
except Exception as e:
106+
print(f"WARNING: Skipping Java version check. Failed to get java version: {e}")
107+
return
108+
java_version_major = int(java_version.split(".")[0])
109+
110+
if java_version_major not in SUPPORTED_JAVA_VERSIONS:
111+
raise SystemExit(
112+
f"ERROR: Current java version {java_version} is not supported. "
113+
f"Supported java versions: {SUPPORTED_JAVA_VERSIONS}")
114+
115+
97116
def analyze_application_configuration(app_name):
98117
app_name_upper = app_name.upper()
99118
app = ApplicationSelector(app_name).application
100119
processors = app.processors
120+
print(f"INFO: {app_name} processors count: {processors}")
101121
app_settings = APPS_SETTINGS[app_name_upper]
102122

103123
try:
@@ -109,13 +129,15 @@ def analyze_application_configuration(app_name):
109129
app_settings,
110130
min_defaults)
111131
except ValueError:
112-
print("WARNING: Skipping processor count validation because.")
132+
print("WARNING: Skipping processor count validation. Get processor count failed.")
113133

114134
if app_name.upper() == "CROWD":
115135
print("INFO: Skipping Chromedriver check for Crowd.")
116136
else:
117137
validate_chromedriver_version(app_name, app_settings)
118138

139+
validate_java_version()
140+
119141

120142
def main():
121143
check_dcapt_version()

0 commit comments

Comments
 (0)
Failed to load comments.