Automation Phase 2:Request Approval

I am trying to trigger an email approval for a service request.

I set the values in the following file:

But it seems that the real desicion point whether to auto-approve or to set status to pending and send an email to the approvers it in the folloing method:
Service / Provisioning / StateMachines / ServiceProvisionRequestApproval / validate_request
But the validate_request method is only a placeholder with no implementation.

I am missing something? Do I need to write ruby code to make use of the approver workflow?
Is there a simpler way of doing this using tags?

Thank you a lot for any inputs.

@gmccullough can you review this question from @marioland and forward to a SME if necessary.

Hi @marioland

You’re right, by default the provisioning workflow for VMs provisioned the ‘old fashioned’ way via Lifecycle -> Provision VMs includes an approval stage. The provisioning workflow for VMs provisioned through services still has an approval stage - and we’re free to customise it - but as you correctly state by default it auto-approves all service provisioning requests. If you need to customise this you’d need to add your own equivalent of the ProvisionRequestApproval state machine and associated methods.

I can see the logic behind auto-approval of services. By creating a service catalog we’re implicitly delegating a level of control and authority to our users, to allow them to create their own VMs via a self-service interface. This is very much the ‘cloudy’ way of working.

I’d almost certainly allocate quotas to my users/groups/tenants to ensure that they don’t consume all of my precious cloud or virtual infrastructure resources, but as long as they stay within quota, I probably wouldn’t want to manually approve individual service requests as well.

Hope this helps,

1 Like

Hi @pemcg
Thanks for your reply. This answered the question.

If we take it one step further:
I would like to see some questions about data sensitivity and requested network security zone in the service request form. Based on that a manual approval can be neccesarry for compliance reasons.


ok, you have interesting use-cases here, and you may well need to implement your own approval workflow to satisfy your requirements.

It would be interesting to try to formalise what the approval criteria would be, and see if you can implement some kind of RBAC-like selective presentation of suitable options to your users in a dynamic dialog element (such as only presenting a reduced list of networks to users in certain groups).