Check node resource before creating cluster
Currently we do not do any resource check before creating cluster, and it might cause issues. For example, the roles on a node may need 8GB memory/20GB disk, while we only have 4GB memory, or 10GB disk size on this node or volume. This may cause the cluster creation fail but users do not know why if they do not check the plugin-specific debug info. This is quite unreasonable. We can add a resource-checking phase before cluster infrastructuring phase, to minimize the possibilities of this case. To achieve this, we need to register the OS sytem and roles' resource requirements, and check whether the flavor and volumes allocated can meet them. If no, invloved exceptions can be thrown and users can know the reason, or cluster creating can go on. At the first step, we can just set it as a gating check, that means we do not promise all clusters passing this phase will never have resource issues in the future. Instead, it just help users to avoid the likely problems in most cases.
Whiteboard
Gerrit topic: https:/
Addressed by: https:/
Resource Check before Cluster Creation
Addressed by: https:/
Add Resource Check step and the involved base methods