Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make acl-config more resilient #1188

Merged
merged 13 commits into from
Feb 3, 2020
439 changes: 159 additions & 280 deletions bin/acl-config

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions classes/OpenXdmod/Setup/DatabaseSetup.php
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,7 @@ public function handle()
'shredder-bootstrap',
'staging-bootstrap',
'hpcdb-bootstrap',
'acls-xdmod-management'
), $logger);


Expand Down
38 changes: 0 additions & 38 deletions configuration/etl/etl.d/acls-import.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,44 +31,6 @@
],
"enabled": true
},
{
"name": "xdmod-scrub-acl-tabs",
"description": "Ensures that the acl_tabs table does not contain erroneous data",
"sql_file_list": [
{
"sql_file": "acls/xdmod/scrub_acl_tabs.sql"
}
],
"enabled": true
},
{
"name": "xdmod-update-admin-users",
"description": "Ensure that any users that only have 'mgr' have 'usr' added.",
"sql_file_list": [
{
"sql_file": "acls/xdmod/update_admin_users.sql"
}
],
"enabled": true
},
{
"name": "xdmod-normalize-user-organizations",
"description": "Ensure that current Users have valid organizations",
"sql_file_list": [
{
"sql_file": "acls/xdmod/normalize_user_organizations.sql"
}
]
},
{
"name": "xdmod-update-user-organizations",
"description": "Ensure that current Users have the most up to date organization",
"sql_file_list": [
{
"sql_file": "acls/xdmod/update_user_organizations.sql"
}
]
},
{
"name": "report-template-acls",
"description": "report-template-acls + data",
Expand Down
21 changes: 21 additions & 0 deletions configuration/etl/etl.d/acls-xdmod-management.json
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,27 @@
}
},
"truncate_destination": true
},
{
"#": "AclStagingTableManagement should always be run after any changes have been made to the files ( tables ) found below.",
"name": "AclStagingTableManagement",
"class": "ManageTables",
"description": "Manage the various Acl related tables.",
"definition_file_list": [
"acls/staging/modules.json",
"acls/staging/realms.json",
"acls/staging/hierarchies.json",
"acls/staging/acl_types.json",
"acls/staging/acls.json",
"acls/staging/group_bys.json",
"acls/staging/statistics.json",
"acls/staging/acl_hierarchies.json",
"acls/staging/user_acls.json",
"acls/staging/acl_group_bys.json",
"acls/staging/tabs.json",
"acls/staging/acl_tabs.json",
"acls/staging/user_acl_group_by_parameters.json"
]
}
]
}
10 changes: 10 additions & 0 deletions configuration/etl/etl_tables.d/acls/group_bys.json
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,16 @@
"columns": [
"realm_id"
]
},
{
"name": "idx_module_id_realm_id_name",
"columns": [
"module_id",
"realm_id",
"name"
],
"type": "BTREE",
"is_unique": true
}
],
"foreign_key_constraints": [
Expand Down
9 changes: 9 additions & 0 deletions configuration/etl/etl_tables.d/acls/realms.json
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,15 @@
"columns": [
"module_id"
]
},
{
"name": "idx_module_id_name",
"columns": [
"module_id",
"name"
],
"type": "BTREE",
"is_unique": true
}
],
"foreign_key_constraints": [
Expand Down
54 changes: 54 additions & 0 deletions configuration/etl/etl_tables.d/acls/staging/acl_group_bys.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
{
"table_definition": {
"$ref-with-overwrite": "etl_tables.d/acls/acl_group_bys.json#/table_definition",
"$overwrite": {
"name": "acl_group_bys_staging",
"foreign_key_constraints": [
{
"name": "fk_agb_staging_acl_id",
"columns": [
"acl_id"
],
"referenced_table": "acls_staging",
"referenced_columns": [
"acl_id"
],
"on_delete": "CASCADE"
},
{
"name": "fk_agb_staging_group_by_id",
"columns": [
"group_by_id"
],
"referenced_table": "group_bys_staging",
"referenced_columns": [
"group_by_id"
],
"on_delete": "CASCADE"
},
{
"name": "fk_agb_staging_realm_id",
"columns": [
"realm_id"
],
"referenced_table": "realms_staging",
"referenced_columns": [
"realm_id"
],
"on_delete": "CASCADE"
},
{
"name": "fk_agb_staging_statistic_id",
"columns": [
"statistic_id"
],
"referenced_table": "statistics_staging",
"referenced_columns": [
"statistic_id"
],
"on_delete": "CASCADE"
}
]
}
}
}
31 changes: 31 additions & 0 deletions configuration/etl/etl_tables.d/acls/staging/acl_hierarchies.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{
"table_definition": {
"$ref-with-overwrite": "etl_tables.d/acls/acl_hierarchies.json#/table_definition",
"$overwrite": {
"name": "acl_hierarchies_staging",
"foreign_key_constraints": [
{
"name": "fk_ah_staging_acl_id",
"columns": [
"acl_id"
],
"referenced_table": "acls_staging",
"referenced_columns": [
"acl_id"
],
"on_delete": "CASCADE"
},{
"name": "fk_ah_staging_hierarchy_id",
"columns": [
"hierarchy_id"
],
"referenced_table": "hierarchies_staging",
"referenced_columns": [
"hierarchy_id"
],
"on_delete": "CASCADE"
}
]
}
}
}
32 changes: 32 additions & 0 deletions configuration/etl/etl_tables.d/acls/staging/acl_tabs.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{
"table_definition": {
"$ref-with-overwrite": "etl_tables.d/acls/acl_tabs.json#/table_definition",
"$overwrite": {
"name": "acl_tabs_staging",
"foreign_key_constraints": [
{
"name": "fk_at_staging_acl_id",
"columns": [
"acl_id"
],
"referenced_table": "acls_staging",
"referenced_columns": [
"acl_id"
],
"on_delete": "CASCADE"
},
{
"name": "fk_at_staging_tab_id",
"columns": [
"tab_id"
],
"referenced_table": "tabs_staging",
"referenced_columns": [
"tab_id"
],
"on_delete": "CASCADE"
}
]
}
}
}
21 changes: 21 additions & 0 deletions configuration/etl/etl_tables.d/acls/staging/acl_types.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"table_definition": {
"$ref-with-overwrite": "etl_tables.d/acls/acl_types.json#/table_definition",
"$overwrite": {
"name": "acl_types_staging",
"foreign_key_constraints": [
{
"name": "fk_atp_staging_module_id",
"columns": [
"module_id"
],
"referenced_table": "modules_staging",
"referenced_columns": [
"module_id"
],
"on_delete": "CASCADE"
}
]
}
}
}
32 changes: 32 additions & 0 deletions configuration/etl/etl_tables.d/acls/staging/acls.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{
"table_definition": {
"$ref-with-overwrite": "etl_tables.d/acls/acls.json#/table_definition",
"$overwrite": {
"name": "acls_staging",
"foreign_key_constraints": [
{
"name": "fk_a_staging_module_id",
"columns": [
"module_id"
],
"referenced_table": "modules_staging",
"referenced_columns": [
"module_id"
],
"on_delete": "CASCADE"
},
{
"name": "fk_a_staging_acl_type_id",
"columns": [
"acl_type_id"
],
"referenced_table": "acl_types_staging",
"referenced_columns": [
"acl_type_id"
],
"on_delete": "CASCADE"
}
]
}
}
}
32 changes: 32 additions & 0 deletions configuration/etl/etl_tables.d/acls/staging/group_bys.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{
"table_definition": {
"$ref-with-overwrite": "etl_tables.d/acls/group_bys.json#/table_definition",
"$overwrite": {
"name": "group_bys_staging",
"foreign_key_constraints": [
{
"name": "fk_gb_staging_module_id",
"columns": [
"module_id"
],
"referenced_table": "modules_staging",
"referenced_columns": [
"module_id"
],
"on_delete": "CASCADE"
},
{
"name": "fk_gb_staging_realm_id",
"columns": [
"realm_id"
],
"referenced_table": "realms_staging",
"referenced_columns": [
"realm_id"
],
"on_delete": "CASCADE"
}
]
}
}
}
21 changes: 21 additions & 0 deletions configuration/etl/etl_tables.d/acls/staging/hierarchies.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"table_definition": {
"$ref-with-overwrite": "etl_tables.d/acls/hierarchies.json#/table_definition",
"$overwrite": {
"name": "hierarchies_staging",
"foreign_key_constraints": [
{
"name": "fk_h_module_staging_id",
"columns": [
"module_id"
],
"referenced_table": "modules_staging",
"referenced_columns": [
"module_id"
],
"on_delete": "CASCADE"
}
]
}
}
}
8 changes: 8 additions & 0 deletions configuration/etl/etl_tables.d/acls/staging/modules.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"table_definition": {
"$ref-with-overwrite": "etl_tables.d/acls/modules.json#/table_definition",
"$overwrite": {
"name": "modules_staging"
}
}
}
21 changes: 21 additions & 0 deletions configuration/etl/etl_tables.d/acls/staging/realms.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"table_definition": {
"$ref-with-overwrite": "etl_tables.d/acls/realms.json#/table_definition",
"$overwrite": {
"name": "realms_staging",
"foreign_key_constraints": [
{
"name": "fk_r_module_staging_id",
"columns": [
"module_id"
],
"referenced_table": "modules_staging",
"referenced_columns": [
"module_id"
],
"on_delete": "CASCADE"
}
]
}
}
}
Loading