package org.ovirt.engine.core.vdsbroker.gluster; import java.util.ArrayList; import java.util.List; import java.util.Map; import org.ovirt.engine.core.common.businessentities.gluster.GlusterHookContentType; import org.ovirt.engine.core.common.businessentities.gluster.GlusterHookEntity; import org.ovirt.engine.core.vdsbroker.irsbroker.StatusReturn; public class GlusterHooksListReturn extends StatusReturn { private static final String HOOK_STATUS = "status"; private static final String CONTENT_TYPE = "mimetype"; private static final String CHECKSUM = "md5sum"; private static final String LEVEL = "level"; private static final String COMMAND = "command"; private static final String NAME = "name"; private static final String HOOKS_LIST = "hooksList"; private List<GlusterHookEntity> hooks; @SuppressWarnings("unchecked") public GlusterHooksListReturn(Map<String, Object> innerMap) { super(innerMap); if (getStatus().code != 0) { return; } Object[] hooksArr = (Object[]) innerMap.get(HOOKS_LIST); hooks = new ArrayList<>(); if (hooksArr != null) { for (Object hookMap : hooksArr) { hooks.add(getHook((Map<String, Object>)hookMap)); } } } private GlusterHookEntity getHook(Map<String, Object> map) { GlusterHookEntity hook = new GlusterHookEntity(); hook.setName(map.get(NAME).toString()); hook.setGlusterCommand(map.get(COMMAND).toString()); hook.setStage(map.get(LEVEL).toString()); hook.setChecksum(map.get(CHECKSUM).toString()); hook.setContentType(GlusterHookContentType.fromMimeType(map.get(CONTENT_TYPE).toString())); hook.setStatus(map.get(HOOK_STATUS).toString()); return hook; } public List<GlusterHookEntity> getGlusterHooks() { return hooks; } }