// guiVersionAndHash returns the version and the SHA256 hash of the current // Juju GUI archive. func guiVersionAndHash(st *state.State, storage binarystorage.Storage) (vers, hash string, err error) { currentVers, err := st.GUIVersion() if errors.IsNotFound(err) { return "", "", errors.NotFoundf("Juju GUI") } if err != nil { return "", "", errors.Annotate(err, "cannot retrieve current GUI version") } metadata, err := storage.Metadata(currentVers.String()) if err != nil { return "", "", errors.Annotate(err, "cannot retrieve GUI metadata") } return metadata.Version, metadata.SHA256, nil }