in google-cloud-server-base/src/main/java/jetbrains/buildServer/clouds/google/GoogleUtils.java [26:49]
public static <T extends CloudImageDetails> Collection<T> parseImageData(Class<T> clazz, final CloudClientParameters params) {
Gson gson = new Gson();
final String imageData = StringUtil.emptyIfNull(params.getParameter(CloudImageParameters.SOURCE_IMAGES_JSON));
if (StringUtil.isEmpty(imageData)) {
return Collections.emptyList();
}
final ListParametrizedType listType = new ListParametrizedType(clazz);
final List<T> images = gson.fromJson(imageData, listType);
if (CloudImagePasswordDetails.class.isAssignableFrom(clazz)) {
final String passwordData = params.getParameter("secure:passwords_data");
final Map<String, String> data = gson.fromJson(passwordData, stringStringMapType);
if (data != null) {
for (T image : images) {
final CloudImagePasswordDetails userImage = (CloudImagePasswordDetails) image;
if (data.get(image.getSourceId()) != null) {
userImage.setPassword(data.get(image.getSourceId()));
}
}
}
}
return new ArrayList<>(images);
}