GUI changes to leverage a new control for storage tags
Added the listHostTags API command
CLOUDSTACK-7182: NPE while trying to deploy VMs in parallel in isolated network
- Check to see if network is implemented changed from 'state == Implementing||Implemented' to 'state == Implemented'.
The earlier check was a hack to prevent the issue described below.
- At the time of implementing network (using implementNetwork() method), if the VR needs to be deployed then it follows
the same path of regular VM deployment. This leads to a nested call to implementNetwork() while preparing VR nics. This
flow creates issues in dealing with network state transitions. The original call puts network in "Implementing" state
and then the nested call again tries to put it into same state resulting in issues. In order to avoid it, implementNetwork()
call for VR is replaced with below code.
GUI modifications related to host tags
CLOUDSTACK-7177: Fixed AlertSyslogAppender does not honor a non-default port in sysloghost parameter
CLOUDSTACK-7234: stop sending smb credentials to Hyper-v agent
CLOUDSTACK-7235: [Hyper-V] In case of any exception in ModifyStoragePoolCommand, now we are returning appropriate error
CLOUDSTACK-7277: [Hyper-V] For vmsync first VMs are listed and their power state is
determined. To exclude hosted system we filter the result on Caption='Virtual Machine'
but this string is locale dependent so it may not not work properly for locales other
than english. To overcome this now we started using ProcessId >= 0 filter
CLOUDSTACK-7359. Make sure timeout value is set for the MigrateVolumeCommand. This will
make sure the agent waits for the resource to complete (success/failure) migration of
volume on the hypervisor.
CLOUDSTACK-7360 [vmware] Add host to existing cluster fails if the cluster is using Nexus 1000v as backend for atleast one traffic type.

While adding host to existing cluster which is using Nexus 1000v as a network backend, skip validation of Nexus VSM as it was already done while adding that cluster.

Signed-off-by: Sateesh Chodapuneedi <sateesh@apache.org>
CLOUDSTACK-7361: Fix SAML2UserAuthenticator to not let every login credential

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
SAML2: add saml sso and slo apicmds skeleton, add classes to AuthManager

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
server: add opensaml as dependency

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
SAML: WIP redirections work now

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
ApiServer: change loginUser method signature to return ResponseObject

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
DefaultLoginAPIAuthenticatorCmd: move createLoginResponse to ApiServer

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
SAML2LoginAPIAuthenticatorCmd: Implement SAML SSO using HTTP Redirect binding

- Creates SAMLRequest and uses HTTP redirect binding (uses GET/302)
- Redirects to IdP for auth
- On successful auth, check for assertion
- Tries to get attributes based on standard LDAP attribute names
- Next, gets user using EntityManager, if not found creates one with NameID as UUID
- Finally tries to log in and redirect

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
ApiServlet: Fix NPE while inserting to auditTrail

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
ui: Unbox extra quotes from sessionKey cookie value

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
SAML2LoginAPIAuthenticatorCmd: Set all necessary cookies and redirect to UI

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>