@Override
public NodeMetadata createNodeWithGroupEncodedIntoName(String group, String name, Template template) {
InstantiateVAppTemplateOptions options = getOptions.apply(template);
NodeAndInitialCredentials<VApp> from = computeClient.startAndReturnCredentials(URI.create(template.getLocation().getId()), URI.create(template
.getImage().getId()), name, options, template.getOptions().getInboundPorts());
LoginCredentials fromNode = from.getCredentials();
if (credentialStore.containsKey("group#" + group)) {
fromNode = fromNode == null ? LoginCredentials.fromCredentials(credentialStore.get("group#" + group))
: fromNode.toBuilder().privateKey(credentialStore.get("group#" + group).credential).build();
}
LoginCredentials creds = prioritizeCredentialsFromTemplate.apply(template, fromNode);
if (creds != null)
credentialStore.put("node#" + from.getNodeId(), creds);
return vAppToNodeMetadata.apply(from.getNode());
}