rosi-shapeblue commented on PR #10223:
URL: https://github.com/apache/cloudstack/pull/10223#issuecomment-3402139190
**WIP**
**Verification Checklist**
- [x] Pre-Fix Behavior – re-creation after deletion not possible **FAIL**
(expected)
- [x] Create counter **PASS**
- [x] Delete counter **PASS**
- [x] Recreate same counter after deletion **PASS**
- [x] Duplicate creation with active value blocked **PASS**
- [x] Same name with different value works **PASS**
- [x] Verify listing shows multiple counters **PASS**
- [x] Delete one and recreate again **PASS**
- [x] DB entries properly marked as removed **PASS**
- [ ] Verify counter appears in the UI list after creation.
- [ ] Verify disappears after deletion.
- [ ] Verify re-creation works without errors.
- [ ] Verify duplicate creation gives proper error or block.
### Detailed Test Results
**Pre-Fix Behavior - re-creation after deletion not possible.**
```
(localcloud) 🐱 > list counters name=Linux System CPU - percentage
{
"count": 1,
"counter": [
{
"id": "4e450db5-a8ba-11f0-86a0-1e00f00003ce",
"name": "Linux User CPU - percentage - native",
"provider": "Netscaler",
"source": "CPU",
"value": "1.3.6.1.4.1.2021.11.9.1"
}
]
}
(localcloud) 🐱 >
(localcloud) 🐱 > delete counter id=4e450db5-a8ba-11f0-86a0-1e00f00003ce
{
"success": true
}
(localcloud) 🐱 > list counters name=Linux System CPU - percentage
(localcloud) 🐱 >
(localcloud) 🐱 > create counter name="Linux System CPU - percentage"
provider="Netscaler" source="SNMP" value="1.3.6.1.4.1.2021.11.10.0"
🙈 Error: (HTTP 530, error code 9999) Entity already exists
(localcloud) 🐱 >
```
**Verification with Fix**
**1. Create counter - counter can be created**
```
(localcloud) 🐱 > list counters name=Linux System CPU - percentage
(localcloud) 🐱 >
(localcloud) 🐱 > create counter name="Linux System CPU - percentage"
provider="Netscaler" source="SNMP" value="1.3.6.1.4.1.2021.11.10.0"
{
"counter": {
"id": "20faa221-c51b-43be-96b2-b4fe8037b561",
"name": "Linux System CPU - percentage",
"provider": "Netscaler",
"source": "SNMP",
"value": "1.3.6.1.4.1.2021.11.10.0"
}
}
(localcloud) 🐱 > list counters name=Linux System CPU - percentage
{
"count": 1,
"counter": [
{
"id": "20faa221-c51b-43be-96b2-b4fe8037b561",
"name": "Linux System CPU - percentage",
"provider": "Netscaler",
"source": "SNMP",
"value": "1.3.6.1.4.1.2021.11.10.0"
}
]
}
```
**2. Delete counter - counter is deleted**
```
(localcloud) 🐱 > delete counter id=20faa221-c51b-43be-96b2-b4fe8037b561
{
"success": true
}
(localcloud) 🐱 > list counters name=Linux System CPU - percentage
(localcloud) 🐱 >
```
**3. Recreate same counter after delete**
```
(localcloud) 🐱 > create counter name="Linux System CPU - percentage"
provider="Netscaler" source="SNMP" value="1.3.6.1.4.1.2021.11.10.0"
{
"counter": {
"id": "83209340-7e4b-4edc-9791-3d5d24920e85",
"name": "Linux System CPU - percentage",
"provider": "Netscaler",
"source": "SNMP",
"value": "1.3.6.1.4.1.2021.11.10.0"
}
}
```
**4. Try duplicate creation - fails**
```
(localcloud) 🐱 > create counter name="Linux System CPU - percentage"
provider="Netscaler" source="SNMP" value="1.3.6.1.4.1.2021.11.10.0"
🙈 Error: (HTTP 431, error code 4350) Counter with name Linux System CPU -
percentage and value 1.3.6.1.4.1.2021.11.10.0 already exists.
```
**5. Create same name with different value - succeeds**
```
(localcloud) 🐱 > create counter name="Linux System CPU - percentage"
provider="Netscaler" source="SNMP" value="1.3.6.1.4.1.2021.11.12.0"
{
"counter": {
"id": "8a96b886-c533-4abb-b491-630014964947",
"name": "Linux System CPU - percentage",
"provider": "Netscaler",
"source": "SNMP",
"value": "1.3.6.1.4.1.2021.11.12.0"
}
}
```
**6. Verify listing**
```
(localcloud) 🐱 > list counters name=Linux System CPU - percentage
{
"count": 2,
"counter": [
{
"id": "8a96b886-c533-4abb-b491-630014964947",
"name": "Linux System CPU - percentage",
"provider": "Netscaler",
"source": "SNMP",
"value": "1.3.6.1.4.1.2021.11.12.0"
},
{
"id": "83209340-7e4b-4edc-9791-3d5d24920e85",
"name": "Linux System CPU - percentage",
"provider": "Netscaler",
"source": "SNMP",
"value": "1.3.6.1.4.1.2021.11.10.0"
}
]
}
```
**7. Delete one and recreate it again - recreation succeeds**
```
(localcloud) 🐱 > delete counter id=8a96b886-c533-4abb-b491-630014964947
{
"success": true
}
(localcloud) 🐱 > create counter name="Linux System CPU - percentage"
provider="Netscaler" source="SNMP" value="1.3.6.1.4.1.2021.11.12.0"
{
"counter": {
"id": "b5cc257e-9958-4e6a-ad23-66a93936d7a4",
"name": "Linux System CPU - percentage",
"provider": "Netscaler",
"source": "SNMP",
"value": "1.3.6.1.4.1.2021.11.12.0"
}
}
```
**8. DB Verification Deleted counters have removed timestamps.; Active
counters have NULL in removed.**
```
mysql> select id,name,value,removed from cloud.counter where name='Linux
System CPU - percentage';
+-----+-------------------------------+--------------------------+---------------------+
| id | name | value | removed
|
+-----+-------------------------------+--------------------------+---------------------+
| 2 | Linux System CPU - percentage | 1.3.6.1.4.1.2021.11.10.0 |
2025-10-14 13:11:08 |
| 121 | Linux System CPU - percentage | 1.3.6.1.4.1.2021.11.10.0 |
2025-10-14 13:52:41 |
| 122 | Linux System CPU - percentage | 1.3.6.1.4.1.2021.11.10.0 | NULL
|
| 123 | Linux System CPU - percentage | 1.3.6.1.4.1.2021.11.12.0 |
2025-10-14 13:54:35 |
| 124 | Linux System CPU - percentage | 1.3.6.1.4.1.2021.11.12.0 | NULL
|
+-----+-------------------------------+--------------------------+---------------------+
5 rows in set (0.00 sec)
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]