COOPR-501: Created interfaces for Cluster and Tenant Client API.
COOPR-501: Refactored transport objects.
COOPR-501: Created interfaces and transport objects for the Coopr Rest Client API.
COOPR-496 add links to the cluster template that can point to
various useful service UIs. Services and cluster templates have
a links field that consists of an array of links, where a link
is a label and a url. The url can contain macros. When a cluster
is fetched from the rest api, links in the cluster template are
expanded and placed at the top level of the returned object.
In addition, for every node in the cluster, the links for all
services on the node are taken, expanded, and combined into a list
of links for the node.
COOPR-501: Replaced new info classes with specification classes from the coopr-server project; Updated java docs; Removed unused classes; Combine the template, provider, service, hardware, and image clients into a single admin client.
Merge branch 'develop' into feature/rest-client
Move writing of our SSH keys to its own def
Copy write_ssh_file to shell_automator plugin
Remove extra ssh_keyfile code and clean up after ourselves
Ignore non-ASCII comments for rubocop
Also check that @ssh_file isn't nil
Remove extra ssh_keyfile code and clean up after ourselves
Make decode_string_to_file the same across plugins
COOPR-501: Updated code according to the comments above.
Merge branch 'develop' into feature/rest-client
Merge pull request #640 from caskdata/feature/ngui-ddtc-labels

dropdown text labels
Merge pull request #635 from cybervisiontech/feature/rest-client

Feature/rest client
Merge pull request #642 from caskdata/gaarf

ngui rev-tagged static assets + more
COOPR-496 adding a getter for service links on a node and
using constants instead of creating new type tokens every time
deserialization of an object happens.
Merge pull request #638 from caskdata/feature/COOPR-496-cluster-links

COOPR-496 add links to the cluster template that can point to