rhtyd commented on a change in pull request #4071:
URL: https://github.com/apache/cloudstack/pull/4071#discussion_r437203881
##########
File path: engine/schema/src/main/resources/META-INF/db/schema-41400to41500.sql
##########
@@ -18,3 +18,81 @@
--;
-- Schema upgrade from 4.14.0.0 to 4.15.0.0
--;
+
+ALTER TABLE `cloud`.`roles` ADD COLUMN `is_default` tinyint(1) NOT NULL
DEFAULT '0' COMMENT 'is this a default role';
+UPDATE `cloud`.`roles` SET `is_default` = 1 WHERE id IN (1, 2, 3, 4);
+
+-- Updated Default CloudStack roles with read-only and support admin and user
roles
+INSERT INTO `cloud`.`roles` (`uuid`, `name`, `role_type`, `description`,
`is_default`) VALUES (UUID(), 'Read-Only Admin', 'Admin', 'Default read-only
admin role', 1) ON DUPLICATE KEY UPDATE name=name;
+INSERT INTO `cloud`.`roles` (`uuid`, `name`, `role_type`, `description`,
`is_default`) VALUES (UUID(), 'Read-Only User', 'User', 'Default read-only user
role', 1) ON DUPLICATE KEY UPDATE name=name;
+INSERT INTO `cloud`.`roles` (`uuid`, `name`, `role_type`, `description`,
`is_default`) VALUES (UUID(), 'Admin-Support', 'Admin', 'Default admin support
role', 1) ON DUPLICATE KEY UPDATE name=name;
+INSERT INTO `cloud`.`roles` (`uuid`, `name`, `role_type`, `description`,
`is_default`) VALUES (UUID(), 'User-Support', 'User', 'Default user support
role', 1) ON DUPLICATE KEY UPDATE name=name;
+
+-- Role permissions for Read-Only Admin
+SELECT id INTO @ReadOnlyAdminRoleId FROM `cloud`.`roles` WHERE name =
'Read-Only Admin' AND is_default = 1;
+SELECT @ReadOnlyAdminSortOrder:=-1;
Review comment:
With a debugger I found that execution fails for mvn deploydb with:
```
========> Processing upgrade: com.cloud.upgrade.DatabaseUpgradeChecker
[WARNING]
java.lang.reflect.InvocationTargetException
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:566)
at org.codehaus.mojo.exec.ExecJavaMojo$1.run (ExecJavaMojo.java:297)
at java.lang.Thread.run (Thread.java:834)
Caused by: com.cloud.utils.exception.CloudRuntimeException: Unable to
upgrade the database
at com.cloud.upgrade.DatabaseUpgradeChecker.upgrade
(DatabaseUpgradeChecker.java:271)
at com.cloud.upgrade.DatabaseUpgradeChecker.check
(DatabaseUpgradeChecker.java:342)
at com.cloud.upgrade.DatabaseCreator.main (DatabaseCreator.java:217)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:566)
at org.codehaus.mojo.exec.ExecJavaMojo$1.run (ExecJavaMojo.java:297)
at java.lang.Thread.run (Thread.java:834)
Caused by: com.cloud.utils.exception.CloudRuntimeException: Unable to
execute upgrade script
at com.cloud.upgrade.DatabaseUpgradeChecker.runScript
(DatabaseUpgradeChecker.java:209)
at com.cloud.upgrade.DatabaseUpgradeChecker.upgrade
(DatabaseUpgradeChecker.java:258)
at com.cloud.upgrade.DatabaseUpgradeChecker.check
(DatabaseUpgradeChecker.java:342)
at com.cloud.upgrade.DatabaseCreator.main (DatabaseCreator.java:217)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:566)
at org.codehaus.mojo.exec.ExecJavaMojo$1.run (ExecJavaMojo.java:297)
at java.lang.Thread.run (Thread.java:834)
Caused by: java.sql.SQLException: Column index out of range.
at com.cloud.utils.db.ScriptRunner.runScript (ScriptRunner.java:185)
at com.cloud.utils.db.ScriptRunner.runScript (ScriptRunner.java:87)
at com.cloud.upgrade.DatabaseUpgradeChecker.runScript
(DatabaseUpgradeChecker.java:203)
at com.cloud.upgrade.DatabaseUpgradeChecker.upgrade
(DatabaseUpgradeChecker.java:258)
at com.cloud.upgrade.DatabaseUpgradeChecker.check
(DatabaseUpgradeChecker.java:342)
at com.cloud.upgrade.DatabaseCreator.main (DatabaseCreator.java:217)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:566)
at org.codehaus.mojo.exec.ExecJavaMojo$1.run (ExecJavaMojo.java:297)
at java.lang.Thread.run (Thread.java:834)
```
----------------------------------------------------------------
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.
For queries about this service, please contact Infrastructure at:
[email protected]