Create a server referencing a non-existing flavor, and verify that it is waiting for the flavor to be created externally.
Create a server referencing a non-existing image, and verify that it is waiting for the image to be created externally.
Create a server referencing a non-existing port, and verify that it is waiting for the port to be created externally.
Create a server referencing a non-existing server group, and verify that it is waiting for the server group to be created externally.
Create a server referencing a non-existing user-data secret, and verify that it is waiting for the secret to be created externally.
Create a server referencing a non-existing keypair, and verify that it is waiting for the keypair to be created externally.
Create the missing dependencies, and verify that the server is now available.
Delete all the dependencies and check that ORC prevents deletion of image and port since there is still a resource that depends on them. Verify that flavor, keypair, server group and user-data secrets are deleted.
Delete the server and validate that all resources are gone.
The server-dependency test has a different pattern to the other resources dependency tests to limit the risks of getting an instance in ERROR state on smaller devstacks. We create the instances serially rather than in parallel.