netvs-core issueshttps://git.scc.kit.edu/scc-net/netvs/netvs-core/-/issues2024-02-14T15:24:35+01:00https://git.scc.kit.edu/scc-net/netvs/netvs-core/-/issues/680Macfinder: Rechte für Anschlussdosen2024-02-14T15:24:35+01:00xe4704janis.streib@kit.eduMacfinder: Rechte für AnschlussdosenRequest:
```json
[
{
"idx": "bcd_list",
"name": "nd.bcd.list",
"old": {
"name": "ibcs-itb-1"
}
},
{
"idx": "vlan_list",
"inner_join_ref": {
"bcd_list": "default"
},
"name": "nd.vlan.list"
},
{
"idx": "l_port_...Request:
```json
[
{
"idx": "bcd_list",
"name": "nd.bcd.list",
"old": {
"name": "ibcs-itb-1"
}
},
{
"idx": "vlan_list",
"inner_join_ref": {
"bcd_list": "default"
},
"name": "nd.vlan.list"
},
{
"idx": "l_port_list",
"inner_join_ref": {
"vlan_list": "default"
},
"name": "nd.l_port.list",
"old": {
"dev_fqdn": "se-b316-r001-1.tmn.scc.kit.edu."
}
},
{
"idx": "l2p_port_list",
"inner_join_ref": {
"l_port_list": "default"
},
"name": "nd.l2p_port.list"
},
{
"idx": "p_port_list",
"inner_join_ref": {
"l2p_port_list": "default"
},
"name": "nd.p_port.list",
"old": {
"name": "GigabitEthernet1/0/21"
}
},
{
"idx": "tmp",
"inner_join_ref": {
"p_port_list": "self"
},
"name": "nd.p_port.list"
},
{
"anti_join_ref": {
"tmp": "self"
},
"idx": "resolved",
"inner_join_ref": {
"p_port_list": "api_func_nd_p_port_is_intersect_of_conn_node_set"
},
"name": "nd.p_port.list",
"old": {
"is_edge_node": true
}
}
]
```
Ergebnis **ohne** globale Rechte:
```json
{
"bcd_list": [
{
"gpk": "9613c219-bb5b-41e4-90e8-1da9d644d30b",
"name": "ibcs-itb-1",
"categ": "USER",
"is_own": true,
"seclvl": 1110,
"description": null,
"dhcp_domain": null,
"dhcp_enabled": false,
"admin_description": null,
"dhcp_opt_t1_percent": 50,
"dhcp_opt_t2_percent": 88,
"dhcp_accept_new_leases": true,
"dhcp_ttl_value_percent": 50,
"dhcp_leasetime_dyn_days": 0,
"dhcp_leasetime_dyn_hours": 2,
"dhcp_leasetime_dyn_minutes": 0,
"dhcp_leasetime_static_days": 0,
"dhcp_leasetime_static_hours": 6,
"dhcp_offer_rsv_time_minutes": 0,
"dhcp_offer_rsv_time_seconds": 15,
"dhcp_leasetime_static_minutes": 0,
"dhcp_accept_requested_hostname": false,
"dhcp_dynamic_lease_removal_time": "1 day",
"dhcp_new_leases_get_static_addr": true,
"dhcp_new_leases_get_static_fqdn": false
}
],
"vlan_list": [
{
"id": 58,
"bcd": "ibcs-itb-1",
"gpk": "6cac7e7b-5ef1-402d-85a7-b638da5b590f",
"name": "ibcs-itb-1",
"net_instnc": "local_cn_campus",
"description": null
}
],
"l_port_list": [
{
"gpk": "458af09a-cd15-4f92-8ecc-96395435830b",
"lag": null,
"name": "GigabitEthernet2/0/23",
"level": 0,
"dev_fqdn": "se-b316-r001-1.tmn.scc.kit.edu.",
"priority": 0,
"tag_list": null,
"adm_state": 1,
"description": null,
"name_sortby": "GigabitEthernet0002/0000/0023",
"ingress_vlan_gfk": "6cac7e7b-5ef1-402d-85a7-b638da5b590f",
"adm_state_description": "UP"
},
{
"gpk": "8d48427a-c79a-454f-b14d-a413ae8e785d",
"lag": null,
"name": "GigabitEthernet1/0/21",
"level": 0,
"dev_fqdn": "se-b316-r001-1.tmn.scc.kit.edu.",
"priority": 0,
"tag_list": null,
"adm_state": 1,
"description": null,
"name_sortby": "GigabitEthernet0001/0000/0021",
"ingress_vlan_gfk": "6cac7e7b-5ef1-402d-85a7-b638da5b590f",
"adm_state_description": "UP"
}
],
"l2p_port_list": [
{
"gpk": "739cc43a-5d35-4cad-b3bc-e49335655d58",
"l_port_gfk": "458af09a-cd15-4f92-8ecc-96395435830b",
"p_port_gfk": "5930f34d-2240-431f-a592-23401e0ee6a2",
"port_order": 1
},
{
"gpk": "0bbe64ed-819a-48bf-967f-6e5365937f43",
"l_port_gfk": "8d48427a-c79a-454f-b14d-a413ae8e785d",
"p_port_gfk": "67bbf253-1f73-402c-83b5-f400d1775d37",
"port_order": 1
}
],
"p_port_list": [
{
"gpk": "67bbf253-1f73-402c-83b5-f400d1775d37",
"name": "GigabitEthernet1/0/21",
"type": "RJ45",
"speed": "1 GBit",
"is_nnl": false,
"mdl_bldg": "0316",
"mdl_room": "001",
"mdl_type": "Cisco WS-C3750E-48TD",
"protocol": "ETH",
"type_group": "Kupfer/ETH/STANDARD",
"description": null,
"mdl_fq_name": "se-b316-r001-1-id1",
"name_sortby": "GigabitEthernet0001/0000/0021",
"type_sortby": 1,
"is_connected": true,
"is_defective": false,
"is_edge_node": true,
"connected_gfk": "859c241b-9fee-4fa8-b30d-4bacb9da3b2d",
"connected_name": "M",
"connected_mdl_bldg": "0316",
"connected_mdl_room": "001",
"dest_connected_gfk": "e13733c8-e725-4f0a-81d8-df19b16fdc6b",
"connection_id_nodes": [
656045,
656045,
433679
],
"connection_position": 0,
"connected_mdl_fq_name": "lan316.1[PP5]Feld5[14]124.2",
"is_internal_connected": false,
"internal_connected_gfk": "67bbf253-1f73-402c-83b5-f400d1775d37",
"internal_connected_name": null
}
],
"tmp": [
{
"gpk": "67bbf253-1f73-402c-83b5-f400d1775d37",
"name": "GigabitEthernet1/0/21",
"type": "RJ45",
"speed": "1 GBit",
"is_nnl": false,
"mdl_bldg": "0316",
"mdl_room": "001",
"mdl_type": "Cisco WS-C3750E-48TD",
"protocol": "ETH",
"type_group": "Kupfer/ETH/STANDARD",
"description": null,
"mdl_fq_name": "se-b316-r001-1-id1",
"name_sortby": "GigabitEthernet0001/0000/0021",
"type_sortby": 1,
"is_connected": true,
"is_defective": false,
"is_edge_node": true,
"connected_gfk": "859c241b-9fee-4fa8-b30d-4bacb9da3b2d",
"connected_name": "M",
"connected_mdl_bldg": "0316",
"connected_mdl_room": "001",
"dest_connected_gfk": "e13733c8-e725-4f0a-81d8-df19b16fdc6b",
"connection_id_nodes": [
656045,
656045,
433679
],
"connection_position": 0,
"connected_mdl_fq_name": "lan316.1[PP5]Feld5[14]124.2",
"is_internal_connected": false,
"internal_connected_gfk": "67bbf253-1f73-402c-83b5-f400d1775d37",
"internal_connected_name": null
}
],
"resolved": []
}
```
(erwartetes) Ergebnis **mit** globalen Rechten:
```json
{
"bcd_list": [
{
"gpk": "9613c219-bb5b-41e4-90e8-1da9d644d30b",
"name": "ibcs-itb-1",
"categ": "USER",
"is_own": false,
"seclvl": 1110,
"description": null,
"dhcp_domain": null,
"dhcp_enabled": false,
"admin_description": null,
"dhcp_opt_t1_percent": 50,
"dhcp_opt_t2_percent": 88,
"dhcp_accept_new_leases": true,
"dhcp_ttl_value_percent": 50,
"dhcp_leasetime_dyn_days": 0,
"dhcp_leasetime_dyn_hours": 2,
"dhcp_leasetime_dyn_minutes": 0,
"dhcp_leasetime_static_days": 0,
"dhcp_leasetime_static_hours": 6,
"dhcp_offer_rsv_time_minutes": 0,
"dhcp_offer_rsv_time_seconds": 15,
"dhcp_leasetime_static_minutes": 0,
"dhcp_accept_requested_hostname": false,
"dhcp_dynamic_lease_removal_time": "1 day",
"dhcp_new_leases_get_static_addr": true,
"dhcp_new_leases_get_static_fqdn": false
}
],
"vlan_list": [
{
"id": 58,
"bcd": "ibcs-itb-1",
"gpk": "6cac7e7b-5ef1-402d-85a7-b638da5b590f",
"name": "ibcs-itb-1",
"net_instnc": "local_cn_campus",
"description": null
}
],
"l_port_list": [
{
"gpk": "458af09a-cd15-4f92-8ecc-96395435830b",
"lag": null,
"name": "GigabitEthernet2/0/23",
"level": 0,
"dev_fqdn": "se-b316-r001-1.tmn.scc.kit.edu.",
"priority": 0,
"tag_list": null,
"adm_state": 1,
"description": null,
"name_sortby": "GigabitEthernet0002/0000/0023",
"ingress_vlan_gfk": "6cac7e7b-5ef1-402d-85a7-b638da5b590f",
"adm_state_description": "UP"
},
{
"gpk": "8d48427a-c79a-454f-b14d-a413ae8e785d",
"lag": null,
"name": "GigabitEthernet1/0/21",
"level": 0,
"dev_fqdn": "se-b316-r001-1.tmn.scc.kit.edu.",
"priority": 0,
"tag_list": null,
"adm_state": 1,
"description": null,
"name_sortby": "GigabitEthernet0001/0000/0021",
"ingress_vlan_gfk": "6cac7e7b-5ef1-402d-85a7-b638da5b590f",
"adm_state_description": "UP"
}
],
"l2p_port_list": [
{
"gpk": "739cc43a-5d35-4cad-b3bc-e49335655d58",
"l_port_gfk": "458af09a-cd15-4f92-8ecc-96395435830b",
"p_port_gfk": "5930f34d-2240-431f-a592-23401e0ee6a2",
"port_order": 1
},
{
"gpk": "0bbe64ed-819a-48bf-967f-6e5365937f43",
"l_port_gfk": "8d48427a-c79a-454f-b14d-a413ae8e785d",
"p_port_gfk": "67bbf253-1f73-402c-83b5-f400d1775d37",
"port_order": 1
}
],
"p_port_list": [
{
"gpk": "67bbf253-1f73-402c-83b5-f400d1775d37",
"name": "GigabitEthernet1/0/21",
"type": "RJ45",
"speed": "1 GBit",
"is_nnl": false,
"mdl_bldg": "0316",
"mdl_room": "001",
"mdl_type": "Cisco WS-C3750E-48TD",
"protocol": "ETH",
"type_group": "Kupfer/ETH/STANDARD",
"description": null,
"mdl_fq_name": "se-b316-r001-1-id1",
"name_sortby": "GigabitEthernet0001/0000/0021",
"type_sortby": 1,
"is_connected": true,
"is_defective": false,
"is_edge_node": true,
"connected_gfk": "859c241b-9fee-4fa8-b30d-4bacb9da3b2d",
"connected_name": "M",
"connected_mdl_bldg": "0316",
"connected_mdl_room": "001",
"dest_connected_gfk": "e13733c8-e725-4f0a-81d8-df19b16fdc6b",
"connection_id_nodes": [
656045,
656045,
433679
],
"connection_position": 0,
"connected_mdl_fq_name": "lan316.1[PP5]Feld5[14]124.2",
"is_internal_connected": false,
"internal_connected_gfk": "67bbf253-1f73-402c-83b5-f400d1775d37",
"internal_connected_name": null
}
],
"tmp": [
{
"gpk": "67bbf253-1f73-402c-83b5-f400d1775d37",
"name": "GigabitEthernet1/0/21",
"type": "RJ45",
"speed": "1 GBit",
"is_nnl": false,
"mdl_bldg": "0316",
"mdl_room": "001",
"mdl_type": "Cisco WS-C3750E-48TD",
"protocol": "ETH",
"type_group": "Kupfer/ETH/STANDARD",
"description": null,
"mdl_fq_name": "se-b316-r001-1-id1",
"name_sortby": "GigabitEthernet0001/0000/0021",
"type_sortby": 1,
"is_connected": true,
"is_defective": false,
"is_edge_node": true,
"connected_gfk": "859c241b-9fee-4fa8-b30d-4bacb9da3b2d",
"connected_name": "M",
"connected_mdl_bldg": "0316",
"connected_mdl_room": "001",
"dest_connected_gfk": "e13733c8-e725-4f0a-81d8-df19b16fdc6b",
"connection_id_nodes": [
656045,
656045,
433679
],
"connection_position": 0,
"connected_mdl_fq_name": "lan316.1[PP5]Feld5[14]124.2",
"is_internal_connected": false,
"internal_connected_gfk": "67bbf253-1f73-402c-83b5-f400d1775d37",
"internal_connected_name": null
}
],
"resolved": [
{
"gpk": "e13733c8-e725-4f0a-81d8-df19b16fdc6b",
"name": "M",
"type": "RJ45",
"speed": "[passiv]",
"is_nnl": false,
"mdl_bldg": "0316",
"mdl_room": "124",
"mdl_type": "DD-BTR 1*RJ45-ETH-1GB",
"protocol": "ETH",
"type_group": "Kupfer/ETH/STANDARD",
"description": null,
"mdl_fq_name": "124.2",
"name_sortby": "M",
"type_sortby": 1,
"is_connected": false,
"is_defective": false,
"is_edge_node": true,
"connected_gfk": "e13733c8-e725-4f0a-81d8-df19b16fdc6b",
"connected_name": null,
"connected_mdl_bldg": null,
"connected_mdl_room": null,
"dest_connected_gfk": "e13733c8-e725-4f0a-81d8-df19b16fdc6b",
"connection_id_nodes": [
433679,
656045,
433679
],
"connection_position": 4,
"connected_mdl_fq_name": null,
"is_internal_connected": true,
"internal_connected_gfk": "56d1b1db-32e1-433d-b8fc-7a83ca9f4b9f",
"internal_connected_name": "M(CBL)"
}
]
}
```https://git.scc.kit.edu/scc-net/netvs/netvs-core/-/issues/674api_fkey_cntl_mgr2group_mgr wird mit mehr Gruppen immer langsamer2024-02-17T17:32:18+01:00ov5916julian.keck9@kit.eduapi_fkey_cntl_mgr2group_mgr wird mit mehr Gruppen immer langsamerWenn man selbst viele Gruppen hat, allerdings keine globalen Leserechte für cntl, wird ein Join über `api_fkey_cntl_mgr2group_mgr` immer langsamer. (Scheint mit der Anzahl der Gruppen zu skalieren.)
Führt man die folgende TA mit globale...Wenn man selbst viele Gruppen hat, allerdings keine globalen Leserechte für cntl, wird ein Join über `api_fkey_cntl_mgr2group_mgr` immer langsamer. (Scheint mit der Anzahl der Gruppen zu skalieren.)
Führt man die folgende TA mit globalen Rechten aus braucht sie weniger als 1 Sekunde, nimmt man eine Person aus der Gruppe landet man hier schnell bei >= 5 Sekunden.
Liefert das erste Statement mehr als ein Ergebnis wird das entsprechend linear langsamer.
Beispiel:
```json
[
{
"idx": "mgr_groups",
"name": "cntl.group.list",
"old": {
"name": "ra-1"
}
},
{
"name": "cntl.mgr2group.list",
"inner_join_ref": {
"mgr_groups": "default"
},
"idx": "mgr2group_list"
},
{
"name": "cntl.mgr.list",
"inner_join_ref": {
"mgr2group_list": "default"
},
"idx": "mgr_list"
}
]
```gq3345rainer.steinmueller@kit.edugq3345rainer.steinmueller@kit.eduhttps://git.scc.kit.edu/scc-net/netvs/netvs-core/-/issues/655dhcpv4.lease.list: mac_addr-Filter hat keinen effekt2024-01-23T18:30:55+01:00xe4704janis.streib@kit.edudhcpv4.lease.list: mac_addr-Filter hat keinen effektMit beliebiger syntaktisch gültiger `mac_addr` bekommt man immer alle leases (4.0).Mit beliebiger syntaktisch gültiger `mac_addr` bekommt man immer alle leases (4.0).https://git.scc.kit.edu/scc-net/netvs/netvs-core/-/issues/651API 4.1: Datentyp-Formatierungsfehler bei wapi.object_type.list2024-01-17T16:46:58+01:00xe4704janis.streib@kit.eduAPI 4.1: Datentyp-Formatierungsfehler bei wapi.object_type.listOhne irgendwelche Parameter. Aufgefallen, weil seitdem 4.1 im Version-Index steht, der devel-build von der Library failed ;)Ohne irgendwelche Parameter. Aufgefallen, weil seitdem 4.1 im Version-Index steht, der devel-build von der Library failed ;)https://git.scc.kit.edu/scc-net/netvs/netvs-core/-/issues/650Direkter POST-Req. gg. 4.0/cntl/ot_attr_val/bulk_update wirft 4042024-01-16T20:25:18+01:00xe4704janis.streib@kit.eduDirekter POST-Req. gg. 4.0/cntl/ot_attr_val/bulk_update wirft 404...andere Fkt./Bulk-updates funktionieren. Der 404 kommt vom CherryPy. Getestet auf Prod + Test....andere Fkt./Bulk-updates funktionieren. Der 404 kommt vom CherryPy. Getestet auf Prod + Test.https://git.scc.kit.edu/scc-net/netvs/netvs-core/-/issues/647BCD-Zuordung von PTR-Records verschwindet, wenn Adresse verschoben wird2024-01-10T14:37:36+01:00xe4704janis.streib@kit.eduBCD-Zuordung von PTR-Records verschwindet, wenn Adresse verschoben wirdMit "BCD-Zuordung" ist der Join bcd -> subnets -> records (via `api_func_dns_record_rr_chain_target_contains_subnet`) gemeint.
Wenn man einen A-Rec um eine IP verschiebt (rev. unq.), dann taucht der PTR nichtmehr bei oben genannten Join...Mit "BCD-Zuordung" ist der Join bcd -> subnets -> records (via `api_func_dns_record_rr_chain_target_contains_subnet`) gemeint.
Wenn man einen A-Rec um eine IP verschiebt (rev. unq.), dann taucht der PTR nichtmehr bei oben genannten Join auf. Wenn man dann Rev.unq. einmal aus- und wieder anschaltet, taucht der PTR wieder bei o.g. Join auf.gq3345rainer.steinmueller@kit.edugq3345rainer.steinmueller@kit.eduhttps://git.scc.kit.edu/scc-net/netvs/netvs-core/-/issues/631TTL-Rechte-Überprüfung aushebelbar2023-12-27T14:12:24+01:00xe4704janis.streib@kit.eduTTL-Rechte-Überprüfung aushebelbarWenn man als Nutzer ohne globale Rechte die TTL mit Ablauftag setzt und dannach den Ablauftag leert, erhält man dauerhaft die reduzierte TTL. Entdeckt durch @ov5916Wenn man als Nutzer ohne globale Rechte die TTL mit Ablauftag setzt und dannach den Ablauftag leert, erhält man dauerhaft die reduzierte TTL. Entdeckt durch @ov5916gq3345rainer.steinmueller@kit.edugq3345rainer.steinmueller@kit.eduhttps://git.scc.kit.edu/scc-net/netvs/netvs-core/-/issues/613NETDB: Ändern der übergeordneten OE löscht die OE-Betreuer aus allen ihren Gr...2023-11-30T14:02:13+01:00se7337klara.mall@kit.eduNETDB: Ändern der übergeordneten OE löscht die OE-Betreuer aus allen ihren GruppenReproduziert auf test:
```
SCC-NET-KLARA als Sub-OE von SCC-NET angelegt. scc-netvs-test-0002 ist OE-Betreuer von SCC-NET-KLARA
scc-netvs-test-0002 mgr in klara-test Gruppe in SCC-NET-KLARA
scc-netvs-test-0002 mgr in imk-tro-radar Grupp...Reproduziert auf test:
```
SCC-NET-KLARA als Sub-OE von SCC-NET angelegt. scc-netvs-test-0002 ist OE-Betreuer von SCC-NET-KLARA
scc-netvs-test-0002 mgr in klara-test Gruppe in SCC-NET-KLARA
scc-netvs-test-0002 mgr in imk-tro-radar Gruppe in IMK-TRO
Ich ändere die übergeordnete OE von SCC-NET auf SCC
=> scc-netvs-test-0002 ist nicht mehr in klara-test UND nicht mehr in imk-tro-radar
```gq3345rainer.steinmueller@kit.edugq3345rainer.steinmueller@kit.eduhttps://git.scc.kit.edu/scc-net/netvs/netvs-core/-/issues/612NETDB: Ändern der OE einer Gruppe löscht Gruppenmitglieder.2023-12-04T19:13:42+01:00ov5916julian.keck9@kit.eduNETDB: Ändern der OE einer Gruppe löscht Gruppenmitglieder.Wenn man `cntl.group.update` mit einer geänderten OE ausführt, werden alle mgr aus der Gruppe entfernt.
Das passiert sowohl im netvs, als auch im Perl-Interface.
Genaues statement:
```json
[
{
"name": "cntl.group.update",
"old...Wenn man `cntl.group.update` mit einer geänderten OE ausführt, werden alle mgr aus der Gruppe entfernt.
Das passiert sowohl im netvs, als auch im Perl-Interface.
Genaues statement:
```json
[
{
"name": "cntl.group.update",
"old": {
"name": "net-foo"
},
"new": {
"ou_short_name": "SCC-NET-TEST-FOO2",
"do_idm_sync": false,
"do_refresh_idm_sync": false,
"idm_sync_max_mgr_count": 20
},
"idx": "bde01951-c810-4190-8481-958ef21e774e"
}
]
```gq3345rainer.steinmueller@kit.edugq3345rainer.steinmueller@kit.eduhttps://git.scc.kit.edu/scc-net/netvs/netvs-core/-/issues/576Fehler bei übergeordnete OE ändern2023-11-02T11:23:36+01:00se7337klara.mall@kit.eduFehler bei übergeordnete OE ändernÜbergeordnete OE von SCC-NET-VM ändern: SCC-SYS -> SCC-NET
Fehler: `cross-database references are not implemented: cntl.cntl.check_m2oe_dup`Übergeordnete OE von SCC-NET-VM ändern: SCC-SYS -> SCC-NET
Fehler: `cross-database references are not implemented: cntl.cntl.check_m2oe_dup`https://git.scc.kit.edu/scc-net/netvs/netvs-core/-/issues/573Patch Request: keine leeren Elemente zur Auswahl anbieten2024-01-31T17:09:44+01:00gq3345rainer.steinmueller@kit.eduPatch Request: keine leeren Elemente zur Auswahl anbietenDie Auswahl leerer Elemente fuehrt in eine Sackgasse (endet im naechsten Schritt). Deshalb gleich im Menue 'Patch-Aktion erstellen' filtern:
- ~~Gebiete, die keine Gebaeude enthalten~~
- Gebaeude, die keine Raeume enthalten
- Raeume, die...Die Auswahl leerer Elemente fuehrt in eine Sackgasse (endet im naechsten Schritt). Deshalb gleich im Menue 'Patch-Aktion erstellen' filtern:
- ~~Gebiete, die keine Gebaeude enthalten~~
- Gebaeude, die keine Raeume enthalten
- Raeume, die keine Module enthalten (kann allerdings vorkommen, dass zwar Module drin sind, aber keine DD. Muss ggf. noch verfeinert werden)
- Ports, die intern verbunden sind (`"nd.p_port.is_internal_connected": false`)
Leere Elemente koennen zur Entstehung von 'Loechern' fuehren. Alternativ trotzdem alle Elemente ausgeben, aber die leeren bspw. 'grau' markieren und damit eine Umsonst-Auswahl verhindern.
Vorlage f.d. API-Abfrage:
```
[
{"name": "nd.site.list", "old": {"sorting_params_list": ["parent_fq_name","name"]}, "semi_join_noref": {"and": ["api_fkey_nd_bldg_site"]}},
{"name": "nd.bldg.list", "old": {"sorting_params_list": ["number"]}, "semi_join_noref": {"and": ["api_fkey_nd_room_bldg"]}},
{"name": "nd.floor.list", "old": {"sorting_params_list": ["name_sortby"]}},
{"name": "nd.room.list", "semi_join_noref": {"and": ["api_fkey_nd_module_room"]}}
]
```
Sonstiges:
- Beschreibungstexte der Objekttypen moeglichst aus `wapi.object_type_lang_dict` nehmen
- Statt 'Module' sollte 'Datennetzanschlußdosen' stehen (dh. nicht die OT-Beschreibung f. `nd.module`, sondern die `description` als Sprachattribut fuer `ndcfg.module_type_class.name = 'DD'` nehmen.)
- Raeume nach Etagen sortieren (`nd.floor.name_sortby`; Sortierung muss dann intern von floor auf room umgerechnet werden)gq3345rainer.steinmueller@kit.eduxe4704janis.streib@kit.edugq3345rainer.steinmueller@kit.eduhttps://git.scc.kit.edu/scc-net/netvs/netvs-core/-/issues/564Token-View: Subgroups: Hauptkonto sieht keine Unterkonten und umgekehrt2023-10-25T13:42:51+02:00ov5916julian.keck9@kit.eduToken-View: Subgroups: Hauptkonto sieht keine Unterkonten und umgekehrthttps://git.scc.kit.edu/scc-net/netvs/netvs-core/-/issues/562eventlog-ausgabe der bcd wirft generischen fehler, wenn im sudo-mode2023-10-25T14:26:39+02:00gq3345rainer.steinmueller@kit.edueventlog-ausgabe der bcd wirft generischen fehler, wenn im sudo-modepassiert wahrsch. bei allen evlog-ausgabenpassiert wahrsch. bei allen evlog-ausgabenhttps://git.scc.kit.edu/scc-net/netvs/netvs-core/-/issues/558Lesezugriff ohne Rechte fuer Objekttyp generalisieren2023-10-23T19:55:41+02:00gq3345rainer.steinmueller@kit.eduLesezugriff ohne Rechte fuer Objekttyp generalisierenOT wie z.b. `org.unit`, `nd.bldg` etc. sollen frei fuer alle konten lesbar sein. Bisher nur im Code via abfrage unterschiedlich behandelt.
Besser: neues OT-attribut (z.b. `cntl_tab.ot_grants_read_access`) einfuehren und via `in_stmt_rec....OT wie z.b. `org.unit`, `nd.bldg` etc. sollen frei fuer alle konten lesbar sein. Bisher nur im Code via abfrage unterschiedlich behandelt.
Besser: neues OT-attribut (z.b. `cntl_tab.ot_grants_read_access`) einfuehren und via `in_stmt_rec.ot_grants_read_access` (in typedef `wapi_4_1.exec_ta_stmt_rec_type` einsetzen) generisch abfragen.
- [x] `cntl_tab.ot_grants_read_access` definieren incl. dml (crud) und cgi-webintf.
- [x] in `wapi_4_1.exec_ta_stmt_rec_type` definieren und `get_ta_stmt_csr SCROLL CURSOR for` in wapi_4_1/_create_wapi_functions.pgsql anpassen
- [x] `is_ot_reader` anpassen: `... OR in_stmt_rec.ot_grants_read_access;`
- [x] abfrage `if not has_read_permission then return; end if;` ueberall in `do_list_<ot>` wieder aktivieren
- [x] cgi anpassen: nur in api_tab das neue attribut einsetzenAPI 4.1 Releasegq3345rainer.steinmueller@kit.edugq3345rainer.steinmueller@kit.eduhttps://git.scc.kit.edu/scc-net/netvs/netvs-core/-/issues/534ot_lang_attrs_def ohne globale rechte?2023-10-04T18:10:23+02:00xe4704janis.streib@kit.eduot_lang_attrs_def ohne globale rechte?Wäre es möglich, `cntl.ot_lang_attrs_def` ohne globale rechte lesbar zu machen? Das NETVS cached die daten einmal bei Login und erspart viele zusätzliche Queries so. @gq3345Wäre es möglich, `cntl.ot_lang_attrs_def` ohne globale rechte lesbar zu machen? Das NETVS cached die daten einmal bei Login und erspart viele zusätzliche Queries so. @gq3345gq3345rainer.steinmueller@kit.edugq3345rainer.steinmueller@kit.eduhttps://git.scc.kit.edu/scc-net/netvs/netvs-core/-/issues/507Rückgabe des TA-Status: nur-lese-TA oder schreib-lese-TA2023-09-25T19:05:56+02:00gq3345rainer.steinmueller@kit.eduRückgabe des TA-Status: nur-lese-TA oder schreib-lese-TABei Fällen, wo `dry_mode` nicht explizit angegeben wurde, kann es hilfreich sein, die Information zurückzugeben, ob ein TA-rollback erfolgte oder nicht.
(am besten via http-header-parameter)Bei Fällen, wo `dry_mode` nicht explizit angegeben wurde, kann es hilfreich sein, die Information zurückzugeben, ob ein TA-rollback erfolgte oder nicht.
(am besten via http-header-parameter)gq3345rainer.steinmueller@kit.edugq3345rainer.steinmueller@kit.eduhttps://git.scc.kit.edu/scc-net/netvs/netvs-core/-/issues/500sperre gegen loeschen/verschieben automatisch angelegter PTR-RRs (symmetrisch...2023-10-13T21:47:32+02:00gq3345rainer.steinmueller@kit.edusperre gegen loeschen/verschieben automatisch angelegter PTR-RRs (symmetrische PTR via dns.record.target_is_reverse_unique)in dns_wapi_4_0.do_update_rr oder dns_wapi_4_0.do_delete_rr: exception werfen, wenn (nur OLD)
- v_dbrt_rec = ptr_v_dbrt_rec (wie im code), dh. aktueller rr ist vom typ PTR
- v_dbrt_rec des rr-ziels hat target_is_rev_unq = true und dns_rr...in dns_wapi_4_0.do_update_rr oder dns_wapi_4_0.do_delete_rr: exception werfen, wenn (nur OLD)
- v_dbrt_rec = ptr_v_dbrt_rec (wie im code), dh. aktueller rr ist vom typ PTR
- v_dbrt_rec des rr-ziels hat target_is_rev_unq = true und dns_rr_type_name = A / AAAA
- zieladresse des rr-ziels entspricht dem rev-fqdn des aktuellen rr
in dns_wapi_4_0.do_update_fqdn: gleichermassen, wenn fqdn-value geaendert und rr mit obigen bedingungen hatgq3345rainer.steinmueller@kit.edugq3345rainer.steinmueller@kit.eduhttps://git.scc.kit.edu/scc-net/netvs/netvs-core/-/issues/489evlog.Record.list: `mgr_login_name` not nullable in datadict, but there are `...2023-07-20T13:30:09+02:00xe4704janis.streib@kit.eduevlog.Record.list: `mgr_login_name` not nullable in datadict, but there are `null` valueshttps://git.scc.kit.edu/scc-net/netvs/netvs-core/-/issues/465Änderungswunsch BCD2OU: jeder BCD ist mindestens eine OU zugeordnet2023-06-01T15:04:51+02:00gq3345rainer.steinmueller@kit.eduÄnderungswunsch BCD2OU: jeder BCD ist mindestens eine OU zugeordnetAnfrage von Bene: wieviel Aufwand wäre es denn, entsprechende Checks einzubauen, dass jeder BCD mindestens eine OU zugeordnet ist?
vertretbar (ab webapi 4.0).
wir haben sowas schon bei den service-accounts:
- ein svc-account muss mind. ...Anfrage von Bene: wieviel Aufwand wäre es denn, entsprechende Checks einzubauen, dass jeder BCD mindestens eine OU zugeordnet ist?
vertretbar (ab webapi 4.0).
wir haben sowas schon bei den service-accounts:
- ein svc-account muss mind. eine oe haben.
- der check geht via deferred trigger transaktional, greift also nur bei aenderungen.
- vorher bestehende abweichungen werden dadurch nicht erfasst.
aktuell sehe ich in prod, dass es keine bcd ohne oe gibt, damit waere der letzte punkt egalisiert.gq3345rainer.steinmueller@kit.eduiv4011benedikt.neuffer@kit.edugq3345rainer.steinmueller@kit.eduhttps://git.scc.kit.edu/scc-net/netvs/netvs-core/-/issues/460Maintenance-Mode abfragen und verwenden2023-07-18T12:23:49+02:00xe4704janis.streib@kit.eduMaintenance-Mode abfragen und verwendenfür wartungsankündigungen erweitern:
- [x] details fuer scheduled maint modes präzisieren
- pro wartung ein datensatz mit beschreibung und zeitrahmen (startzeit, intervall oder startzeit, stopzeit)
- zeitliche überlappung zwar ...für wartungsankündigungen erweitern:
- [x] details fuer scheduled maint modes präzisieren
- pro wartung ein datensatz mit beschreibung und zeitrahmen (startzeit, intervall oder startzeit, stopzeit)
- zeitliche überlappung zwar ausgeschlossen, aber direkte aufeinanderfolge nicht (wg. ts-granularität)
- wartungsmodus wird automatisch aktiv, sobald die älteste (größte) startzeit aller vorhandenen datensätze erreicht oder überschritten wird
- wartungsmodus wird erst deaktiviert, wenn kein datensatz mehr existiert, dessen startzeit erreicht oder überschritten wird, dh. keine automatische deaktivierung, wenn stopzeit erreicht oder überschritten wurde.
- stopzeit hat demnach nur informativen charakter
- [x] OT cntl.maint_state nach wapi verschieben: wird damit f. unauth-zugriffe verfügbar (nur ausgabe möglich)
- [x] modifikation (und optional auch ausgabe) der wartungsmeldungen erfolgen über script-commands auf svc-netdb unter ~netadmin/net-svc-scripts/kitnet-cntl/scripts/:
- create_netdb_maint_state.py
- update_netdb_maint_state.py
- delete_netdb_maint_state.py
- list_netdb_maint_state.pyxe4704janis.streib@kit.eduxe4704janis.streib@kit.edu