Rollout management issues

Signed-off-by: venu1278 <venugopal.boodidadinne@in.bosch.com>
This commit is contained in:
venu1278
2016-04-18 20:12:30 +05:30
parent 6046e9b41d
commit f290eb78e5
10 changed files with 336 additions and 315 deletions

View File

@@ -9,7 +9,7 @@
package org.eclipse.hawkbit.ui.customrenderers.client; package org.eclipse.hawkbit.ui.customrenderers.client;
import org.eclipse.hawkbit.ui.customrenderers.client.renderers.CustomObject; import org.eclipse.hawkbit.ui.customrenderers.client.renderers.RendererData;
import com.google.web.bindery.event.shared.HandlerRegistration; import com.google.web.bindery.event.shared.HandlerRegistration;
import com.vaadin.client.connectors.ClickableRendererConnector; import com.vaadin.client.connectors.ClickableRendererConnector;
@@ -17,9 +17,12 @@ import com.vaadin.client.renderers.ClickableRenderer.RendererClickHandler;
import com.vaadin.shared.ui.Connect; import com.vaadin.shared.ui.Connect;
import elemental.json.JsonObject; import elemental.json.JsonObject;
/**
* A connector for {@link CustomObjectRenderer }.
*
*/
@Connect(org.eclipse.hawkbit.ui.customrenderers.renderers.CustomObjectRenderer.class) @Connect(org.eclipse.hawkbit.ui.customrenderers.renderers.CustomObjectRenderer.class)
public class CustomObjectRendererConnector extends ClickableRendererConnector<CustomObject> { public class CustomObjectRendererConnector extends ClickableRendererConnector<RendererData> {
private static final long serialVersionUID = 7734682321931830566L; private static final long serialVersionUID = 7734682321931830566L;
public org.eclipse.hawkbit.ui.customrenderers.client.renderers.CustomObjectRenederer getRenderer() { public org.eclipse.hawkbit.ui.customrenderers.client.renderers.CustomObjectRenederer getRenderer() {

View File

@@ -18,7 +18,7 @@ import com.vaadin.client.widget.grid.RendererCellReference;
* Used to display button with link. * Used to display button with link.
* *
*/ */
public class CustomObjectRenederer extends ClickableRenderer<CustomObject, VButton> { public class CustomObjectRenederer extends ClickableRenderer<RendererData, VButton> {
@Override @Override
public VButton createWidget() { public VButton createWidget() {
@@ -29,7 +29,7 @@ public class CustomObjectRenederer extends ClickableRenderer<CustomObject, VButt
} }
@Override @Override
public void render(RendererCellReference cell, CustomObject text, VButton button) { public void render(RendererCellReference cell, RendererData text, VButton button) {
final String creating = "CREATING"; final String creating = "CREATING";
button.setText(text.getName()); button.setText(text.getName());
applystyle(button); applystyle(button);

View File

@@ -10,18 +10,34 @@ package org.eclipse.hawkbit.ui.customrenderers.client.renderers;
import java.io.Serializable; import java.io.Serializable;
public class CustomObject implements Serializable { /**
* RendererData class with Name and Status.
*
*/
public class RendererData implements Serializable {
private static final long serialVersionUID = -5018181529953620263L; private static final long serialVersionUID = -5018181529953620263L;
private String name; private String name;
private String status; private String status;
public CustomObject(){ /**
* Initialize the RendererData.
*/
public RendererData() {
} }
public CustomObject(String name, String status) { /**
* Initialize the RendererData.
*
* @param name
* Name of the Rollout.
* @param status
* Status of Rollout.
*/
public RendererData(String name, String status) {
super(); super();
this.name = name; this.name = name;
this.status = status; this.status = status;
@@ -39,7 +55,6 @@ public class CustomObject implements Serializable {
return status; return status;
} }
public void setStatus(String status) { public void setStatus(String status) {
this.status = status; this.status = status;
} }

View File

@@ -9,7 +9,7 @@
package org.eclipse.hawkbit.ui.customrenderers.renderers; package org.eclipse.hawkbit.ui.customrenderers.renderers;
import org.eclipse.hawkbit.ui.customrenderers.client.renderers.CustomObject; import org.eclipse.hawkbit.ui.customrenderers.client.renderers.RendererData;
import com.vaadin.ui.renderers.ClickableRenderer; import com.vaadin.ui.renderers.ClickableRenderer;
@@ -21,7 +21,7 @@ import elemental.json.JsonValue;
* *
*/ */
public class CustomObjectRenderer extends ClickableRenderer<CustomObject> { public class CustomObjectRenderer extends ClickableRenderer<RendererData> {
private static final long serialVersionUID = -8754180585906263554L; private static final long serialVersionUID = -8754180585906263554L;
@@ -29,7 +29,7 @@ public class CustomObjectRenderer extends ClickableRenderer<CustomObject> {
* Creates a new custom object renderer. * Creates a new custom object renderer.
*/ */
public CustomObjectRenderer() { public CustomObjectRenderer() {
super(CustomObject.class, null); super(RendererData.class, null);
} }
/** /**
@@ -39,7 +39,7 @@ public class CustomObjectRenderer extends ClickableRenderer<CustomObject> {
* Class<CustomObject> * Class<CustomObject>
*/ */
public CustomObjectRenderer(Class<CustomObject> presentationType) { public CustomObjectRenderer(Class<RendererData> presentationType) {
super(presentationType); super(presentationType);
} }
@@ -55,7 +55,7 @@ public class CustomObjectRenderer extends ClickableRenderer<CustomObject> {
} }
@Override @Override
public JsonValue encode(CustomObject resource) { public JsonValue encode(RendererData resource) {
return super.encode(resource, CustomObject.class); return super.encode(resource, RendererData.class);
} }
} }

View File

@@ -9,7 +9,7 @@
package org.eclipse.hawkbit.ui.rollout.rollout; package org.eclipse.hawkbit.ui.rollout.rollout;
import org.eclipse.hawkbit.repository.model.Rollout; import org.eclipse.hawkbit.repository.model.Rollout;
import org.eclipse.hawkbit.ui.customrenderers.client.renderers.CustomObject; import org.eclipse.hawkbit.ui.customrenderers.client.renderers.RendererData;
import com.vaadin.server.FontAwesome; import com.vaadin.server.FontAwesome;
@@ -33,14 +33,16 @@ public class ProxyRollout extends Rollout {
private String totalTargetsCount; private String totalTargetsCount;
private CustomObject customObject; private RendererData rendererData;
public CustomObject getCustomObject() {
return customObject;
public RendererData getRendererData() {
return rendererData;
} }
public void setCustomObject(CustomObject customObject) { public void setRendererData(RendererData rendererData) {
this.customObject = customObject; this.rendererData = rendererData;
} }
/** /**

View File

@@ -17,7 +17,7 @@ import org.eclipse.hawkbit.repository.TargetFilterQueryManagement;
import org.eclipse.hawkbit.repository.model.DistributionSet; import org.eclipse.hawkbit.repository.model.DistributionSet;
import org.eclipse.hawkbit.repository.model.Rollout; import org.eclipse.hawkbit.repository.model.Rollout;
import org.eclipse.hawkbit.repository.model.TotalTargetCountStatus; import org.eclipse.hawkbit.repository.model.TotalTargetCountStatus;
import org.eclipse.hawkbit.ui.customrenderers.client.renderers.CustomObject; import org.eclipse.hawkbit.ui.customrenderers.client.renderers.RendererData;
import org.eclipse.hawkbit.ui.rollout.state.RolloutUIState; import org.eclipse.hawkbit.ui.rollout.state.RolloutUIState;
import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil; import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil;
import org.eclipse.hawkbit.ui.utils.SPDateTimeUtil; import org.eclipse.hawkbit.ui.utils.SPDateTimeUtil;
@@ -40,164 +40,165 @@ import com.google.common.base.Strings;
*/ */
public class RolloutBeanQuery extends AbstractBeanQuery<ProxyRollout> { public class RolloutBeanQuery extends AbstractBeanQuery<ProxyRollout> {
private static final long serialVersionUID = 4027879794344836185L; private static final long serialVersionUID = 4027879794344836185L;
private final String searchText; private final String searchText;
private Sort sort = new Sort(Direction.ASC, "createdAt"); private Sort sort = new Sort(Direction.ASC, "createdAt");
private transient RolloutManagement rolloutManagement; private transient RolloutManagement rolloutManagement;
private transient TargetFilterQueryManagement filterQueryManagement; private transient TargetFilterQueryManagement filterQueryManagement;
private transient RolloutUIState rolloutUIState; private transient RolloutUIState rolloutUIState;
/** /**
* Parametric Constructor. * Parametric Constructor.
* *
* @param definition * @param definition
* as QueryDefinition * as QueryDefinition
* @param queryConfig * @param queryConfig
* as Config * as Config
* @param sortIds * @param sortIds
* as sort * as sort
* @param sortStates * @param sortStates
* as Sort status * as Sort status
*/ */
public RolloutBeanQuery(final QueryDefinition definition, final Map<String, Object> queryConfig, public RolloutBeanQuery(final QueryDefinition definition, final Map<String, Object> queryConfig,
final Object[] sortIds, final boolean[] sortStates) { final Object[] sortIds, final boolean[] sortStates) {
super(definition, queryConfig, sortIds, sortStates); super(definition, queryConfig, sortIds, sortStates);
searchText = getSearchText(); searchText = getSearchText();
if (HawkbitCommonUtil.checkBolArray(sortStates)) { if (HawkbitCommonUtil.checkBolArray(sortStates)) {
// Initalize Sor // Initalize Sor
sort = new Sort(sortStates[0] ? Direction.ASC : Direction.DESC, (String) sortIds[0]); sort = new Sort(sortStates[0] ? Direction.ASC : Direction.DESC, (String) sortIds[0]);
// Add sort. // Add sort.
for (int targetId = 1; targetId < sortIds.length; targetId++) { for (int targetId = 1; targetId < sortIds.length; targetId++) {
sort.and(new Sort(sortStates[targetId] ? Direction.ASC : Direction.DESC, (String) sortIds[targetId])); sort.and(new Sort(sortStates[targetId] ? Direction.ASC : Direction.DESC, (String) sortIds[targetId]));
} }
} }
} }
private String getSearchText() { private String getSearchText() {
if (getRolloutUIState().getSearchText().isPresent()) { if (getRolloutUIState().getSearchText().isPresent()) {
return String.format("%%%s%%", getRolloutUIState().getSearchText().get()); return String.format("%%%s%%", getRolloutUIState().getSearchText().get());
} }
return null; return null;
} }
@Override @Override
protected ProxyRollout constructBean() { protected ProxyRollout constructBean() {
return new ProxyRollout(); return new ProxyRollout();
} }
/* /*
* (non-Javadoc) * (non-Javadoc)
* *
* @see * @see
* org.vaadin.addons.lazyquerycontainer.AbstractBeanQuery#loadBeans(int, * org.vaadin.addons.lazyquerycontainer.AbstractBeanQuery#loadBeans(int,
* int) * int)
*/ */
@Override @Override
protected List<ProxyRollout> loadBeans(final int startIndex, final int count) { protected List<ProxyRollout> loadBeans(final int startIndex, final int count) {
final Slice<Rollout> rolloutBeans; final Slice<Rollout> rolloutBeans;
if (Strings.isNullOrEmpty(searchText)) { if (Strings.isNullOrEmpty(searchText)) {
rolloutBeans = getRolloutManagement().findAllRolloutsWithDetailedStatus( rolloutBeans = getRolloutManagement().findAllRolloutsWithDetailedStatus(
new PageRequest(startIndex / SPUIDefinitions.PAGE_SIZE, SPUIDefinitions.PAGE_SIZE, sort)); new PageRequest(startIndex / SPUIDefinitions.PAGE_SIZE, SPUIDefinitions.PAGE_SIZE, sort));
} else { } else {
rolloutBeans = getRolloutManagement().findRolloutByFilters( rolloutBeans = getRolloutManagement().findRolloutByFilters(
new PageRequest(startIndex / SPUIDefinitions.PAGE_SIZE, SPUIDefinitions.PAGE_SIZE, sort), new PageRequest(startIndex / SPUIDefinitions.PAGE_SIZE, SPUIDefinitions.PAGE_SIZE, sort),
searchText); searchText);
} }
return getProxyRolloutList(rolloutBeans); return getProxyRolloutList(rolloutBeans);
} }
private List<ProxyRollout> getProxyRolloutList(final Slice<Rollout> rolloutBeans) { private List<ProxyRollout> getProxyRolloutList(final Slice<Rollout> rolloutBeans) {
final List<ProxyRollout> proxyRolloutList = new ArrayList<>(); final List<ProxyRollout> proxyRolloutList = new ArrayList<>();
for (final Rollout rollout : rolloutBeans) { for (final Rollout rollout : rolloutBeans) {
final ProxyRollout proxyRollout = new ProxyRollout(); final ProxyRollout proxyRollout = new ProxyRollout();
proxyRollout.setName(rollout.getName()); proxyRollout.setName(rollout.getName());
proxyRollout.setDescription(rollout.getDescription()); proxyRollout.setDescription(rollout.getDescription());
final DistributionSet distributionSet = rollout.getDistributionSet(); final DistributionSet distributionSet = rollout.getDistributionSet();
proxyRollout.setDistributionSetNameVersion(HawkbitCommonUtil.getFormattedNameVersion( proxyRollout.setDistributionSetNameVersion(
distributionSet.getName(), distributionSet.getVersion())); HawkbitCommonUtil.getFormattedNameVersion(distributionSet.getName(), distributionSet.getVersion()));
proxyRollout.setDistributionSet(distributionSet); proxyRollout.setDistributionSet(distributionSet);
proxyRollout.setNumberOfGroups(Long.valueOf(rollout.getRolloutGroups().size())); proxyRollout.setNumberOfGroups(Long.valueOf(rollout.getRolloutGroups().size()));
proxyRollout.setCreatedDate(SPDateTimeUtil.getFormattedDate(rollout.getCreatedAt())); proxyRollout.setCreatedDate(SPDateTimeUtil.getFormattedDate(rollout.getCreatedAt()));
proxyRollout.setModifiedDate(SPDateTimeUtil.getFormattedDate(rollout.getLastModifiedAt())); proxyRollout.setModifiedDate(SPDateTimeUtil.getFormattedDate(rollout.getLastModifiedAt()));
proxyRollout.setCreatedBy(HawkbitCommonUtil.getIMUser(rollout.getCreatedBy())); proxyRollout.setCreatedBy(HawkbitCommonUtil.getIMUser(rollout.getCreatedBy()));
proxyRollout.setLastModifiedBy(HawkbitCommonUtil.getIMUser(rollout.getLastModifiedBy())); proxyRollout.setLastModifiedBy(HawkbitCommonUtil.getIMUser(rollout.getLastModifiedBy()));
proxyRollout.setForcedTime(rollout.getForcedTime()); proxyRollout.setForcedTime(rollout.getForcedTime());
proxyRollout.setId(rollout.getId()); proxyRollout.setId(rollout.getId());
proxyRollout.setStatus(rollout.getStatus()); proxyRollout.setStatus(rollout.getStatus());
proxyRollout.setCustomObject(new CustomObject(rollout.getName(), rollout.getStatus().toString())); proxyRollout.setRendererData(new RendererData(rollout.getName(), rollout.getStatus().toString()));
final TotalTargetCountStatus totalTargetCountActionStatus = rollout.getTotalTargetCountStatus();
proxyRollout.setTotalTargetCountStatus(totalTargetCountActionStatus);
proxyRollout.setTotalTargetsCount(String.valueOf(rollout.getTotalTargets()));
proxyRolloutList.add(proxyRollout);
}
return proxyRolloutList;
}
/* final TotalTargetCountStatus totalTargetCountActionStatus = rollout.getTotalTargetCountStatus();
* (non-Javadoc) proxyRollout.setTotalTargetCountStatus(totalTargetCountActionStatus);
* proxyRollout.setTotalTargetsCount(String.valueOf(rollout.getTotalTargets()));
* @see
* org.vaadin.addons.lazyquerycontainer.AbstractBeanQuery#saveBeans(java
* .util.List, java.util.List, java.util.List)
*/
@Override
protected void saveBeans(final List<ProxyRollout> arg0, final List<ProxyRollout> arg1, final List<ProxyRollout> arg2) {
/**
* CRUD operations on Target will be done through repository methods
*/
}
/* proxyRolloutList.add(proxyRollout);
* (non-Javadoc) }
* return proxyRolloutList;
* @see org.vaadin.addons.lazyquerycontainer.AbstractBeanQuery#size() }
*/
@Override
public int size() {
int size = getRolloutManagement().countRolloutsAll().intValue();
if (!Strings.isNullOrEmpty(searchText)) {
size = getRolloutManagement().countRolloutsAllByFilters(searchText).intValue();
}
return size;
}
/** /*
* @return the rolloutManagement * (non-Javadoc)
*/ *
public RolloutManagement getRolloutManagement() { * @see
if (null == rolloutManagement) { * org.vaadin.addons.lazyquerycontainer.AbstractBeanQuery#saveBeans(java
rolloutManagement = SpringContextHelper.getBean(RolloutManagement.class); * .util.List, java.util.List, java.util.List)
} */
return rolloutManagement; @Override
} protected void saveBeans(final List<ProxyRollout> arg0, final List<ProxyRollout> arg1,
final List<ProxyRollout> arg2) {
/**
* CRUD operations on Target will be done through repository methods
*/
}
/** /*
* @return the filterQueryManagement * (non-Javadoc)
*/ *
public TargetFilterQueryManagement getFilterQueryManagement() { * @see org.vaadin.addons.lazyquerycontainer.AbstractBeanQuery#size()
if (null == filterQueryManagement) { */
filterQueryManagement = SpringContextHelper.getBean(TargetFilterQueryManagement.class); @Override
} public int size() {
return filterQueryManagement; int size = getRolloutManagement().countRolloutsAll().intValue();
} if (!Strings.isNullOrEmpty(searchText)) {
size = getRolloutManagement().countRolloutsAllByFilters(searchText).intValue();
}
return size;
}
/** /**
* @return the rolloutUIState * @return the rolloutManagement
*/ */
public RolloutUIState getRolloutUIState() { public RolloutManagement getRolloutManagement() {
if (null == rolloutUIState) { if (null == rolloutManagement) {
rolloutUIState = SpringContextHelper.getBean(RolloutUIState.class); rolloutManagement = SpringContextHelper.getBean(RolloutManagement.class);
} }
return rolloutUIState; return rolloutManagement;
} }
/**
* @return the filterQueryManagement
*/
public TargetFilterQueryManagement getFilterQueryManagement() {
if (null == filterQueryManagement) {
filterQueryManagement = SpringContextHelper.getBean(TargetFilterQueryManagement.class);
}
return filterQueryManagement;
}
/**
* @return the rolloutUIState
*/
public RolloutUIState getRolloutUIState() {
if (null == rolloutUIState) {
rolloutUIState = SpringContextHelper.getBean(RolloutUIState.class);
}
return rolloutUIState;
}
} }

View File

@@ -22,7 +22,7 @@ import org.eclipse.hawkbit.repository.model.Rollout;
import org.eclipse.hawkbit.repository.model.Rollout.RolloutStatus; import org.eclipse.hawkbit.repository.model.Rollout.RolloutStatus;
import org.eclipse.hawkbit.repository.model.TotalTargetCountStatus; import org.eclipse.hawkbit.repository.model.TotalTargetCountStatus;
import org.eclipse.hawkbit.ui.common.grid.AbstractGrid; import org.eclipse.hawkbit.ui.common.grid.AbstractGrid;
import org.eclipse.hawkbit.ui.customrenderers.client.renderers.CustomObject; import org.eclipse.hawkbit.ui.customrenderers.client.renderers.RendererData;
import org.eclipse.hawkbit.ui.customrenderers.renderers.CustomObjectRenderer; import org.eclipse.hawkbit.ui.customrenderers.renderers.CustomObjectRenderer;
import org.eclipse.hawkbit.ui.customrenderers.renderers.HtmlButtonRenderer; import org.eclipse.hawkbit.ui.customrenderers.renderers.HtmlButtonRenderer;
import org.eclipse.hawkbit.ui.customrenderers.renderers.HtmlLabelRenderer; import org.eclipse.hawkbit.ui.customrenderers.renderers.HtmlLabelRenderer;
@@ -145,7 +145,7 @@ public class RolloutListGrid extends AbstractGrid {
.setValue(Long.valueOf(rollout.getRolloutGroups().size())); .setValue(Long.valueOf(rollout.getRolloutGroups().size()));
} }
item.getItemProperty(customObject) item.getItemProperty(customObject)
.setValue(new CustomObject(rollout.getName(), rollout.getStatus().toString())); .setValue(new RendererData(rollout.getName(), rollout.getStatus().toString()));
} }
@@ -160,7 +160,7 @@ public class RolloutListGrid extends AbstractGrid {
protected void addContainerProperties() { protected void addContainerProperties() {
final LazyQueryContainer rolloutGridContainer = (LazyQueryContainer) getContainerDataSource(); final LazyQueryContainer rolloutGridContainer = (LazyQueryContainer) getContainerDataSource();
rolloutGridContainer.addContainerProperty(SPUILabelDefinitions.VAR_NAME, String.class, "", false, false); rolloutGridContainer.addContainerProperty(SPUILabelDefinitions.VAR_NAME, String.class, "", false, false);
rolloutGridContainer.addContainerProperty(customObject, CustomObject.class, null, false, false); rolloutGridContainer.addContainerProperty(customObject, RendererData.class, null, false, false);
rolloutGridContainer.addContainerProperty(SPUILabelDefinitions.VAR_DESC, String.class, null, false, false); rolloutGridContainer.addContainerProperty(SPUILabelDefinitions.VAR_DESC, String.class, null, false, false);
rolloutGridContainer.addContainerProperty(SPUILabelDefinitions.VAR_STATUS, RolloutStatus.class, null, false, rolloutGridContainer.addContainerProperty(SPUILabelDefinitions.VAR_STATUS, RolloutStatus.class, null, false,
false); false);
@@ -287,7 +287,7 @@ public class RolloutListGrid extends AbstractGrid {
getColumn(SPUILabelDefinitions.ACTION).setRenderer(new HtmlButtonRenderer(event -> onClickOfActionBtn(event))); getColumn(SPUILabelDefinitions.ACTION).setRenderer(new HtmlButtonRenderer(event -> onClickOfActionBtn(event)));
CustomObjectRenderer customObjectRenderer = new CustomObjectRenderer(CustomObject.class); CustomObjectRenderer customObjectRenderer = new CustomObjectRenderer(RendererData.class);
customObjectRenderer.addClickListener(event -> onClickOfRolloutName(event)); customObjectRenderer.addClickListener(event -> onClickOfRolloutName(event));
getColumn(customObject).setRenderer(customObjectRenderer); getColumn(customObject).setRenderer(customObjectRenderer);
@@ -452,7 +452,7 @@ public class RolloutListGrid extends AbstractGrid {
} else if (SPUILabelDefinitions.ACTION.equals(cell.getPropertyId())) { } else if (SPUILabelDefinitions.ACTION.equals(cell.getPropertyId())) {
return SPUILabelDefinitions.ACTION.toLowerCase(); return SPUILabelDefinitions.ACTION.toLowerCase();
} else if (customObject.equals(cell.getPropertyId())) { } else if (customObject.equals(cell.getPropertyId())) {
return ((CustomObject) cell.getProperty().getValue()).getName(); return ((RendererData) cell.getProperty().getValue()).getName();
} else if (SPUILabelDefinitions.VAR_TOTAL_TARGETS_COUNT_STATUS.equals(cell.getPropertyId())) { } else if (SPUILabelDefinitions.VAR_TOTAL_TARGETS_COUNT_STATUS.equals(cell.getPropertyId())) {
return DistributionBarHelper return DistributionBarHelper
.getTooltip(((TotalTargetCountStatus) cell.getValue()).getStatusTotalCountMap()); .getTooltip(((TotalTargetCountStatus) cell.getValue()).getStatusTotalCountMap());

View File

@@ -9,10 +9,10 @@
package org.eclipse.hawkbit.ui.rollout.rolloutgroup; package org.eclipse.hawkbit.ui.rollout.rolloutgroup;
import org.eclipse.hawkbit.repository.model.RolloutGroup; import org.eclipse.hawkbit.repository.model.RolloutGroup;
import org.eclipse.hawkbit.ui.customrenderers.client.renderers.CustomObject; import org.eclipse.hawkbit.ui.customrenderers.client.renderers.RendererData;
/** /**
* Proxy rollout group with custom properties. * Proxy rollout group with renderer properties.
* *
*/ */
public class ProxyRolloutGroup extends RolloutGroup { public class ProxyRolloutGroup extends RolloutGroup {
@@ -41,14 +41,14 @@ public class ProxyRolloutGroup extends RolloutGroup {
private String totalTargetsCount; private String totalTargetsCount;
private CustomObject customObject; private RendererData rendererData;
public CustomObject getCustomObject() { public RendererData getRendererData() {
return customObject; return rendererData;
} }
public void setCustomObject(CustomObject customObject) { public void setRendererData(RendererData rendererData) {
this.customObject = customObject; this.rendererData = rendererData;
} }
/** /**

View File

@@ -15,7 +15,7 @@ import java.util.Map;
import org.eclipse.hawkbit.repository.RolloutGroupManagement; import org.eclipse.hawkbit.repository.RolloutGroupManagement;
import org.eclipse.hawkbit.repository.RolloutManagement; import org.eclipse.hawkbit.repository.RolloutManagement;
import org.eclipse.hawkbit.repository.model.RolloutGroup; import org.eclipse.hawkbit.repository.model.RolloutGroup;
import org.eclipse.hawkbit.ui.customrenderers.client.renderers.CustomObject; import org.eclipse.hawkbit.ui.customrenderers.client.renderers.RendererData;
import org.eclipse.hawkbit.ui.rollout.state.RolloutUIState; import org.eclipse.hawkbit.ui.rollout.state.RolloutUIState;
import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil; import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil;
import org.eclipse.hawkbit.ui.utils.SPDateTimeUtil; import org.eclipse.hawkbit.ui.utils.SPDateTimeUtil;
@@ -35,160 +35,160 @@ import org.vaadin.addons.lazyquerycontainer.QueryDefinition;
*/ */
public class RolloutGroupBeanQuery extends AbstractBeanQuery<ProxyRolloutGroup> { public class RolloutGroupBeanQuery extends AbstractBeanQuery<ProxyRolloutGroup> {
private static final long serialVersionUID = 5342450502894318589L; private static final long serialVersionUID = 5342450502894318589L;
private Sort sort = new Sort(Direction.ASC, "createdAt"); private Sort sort = new Sort(Direction.ASC, "createdAt");
private transient Page<RolloutGroup> firstPageRolloutGroupSets = null; private transient Page<RolloutGroup> firstPageRolloutGroupSets = null;
private transient RolloutManagement rolloutManagement; private transient RolloutManagement rolloutManagement;
private transient RolloutGroupManagement rolloutGroupManagement; private transient RolloutGroupManagement rolloutGroupManagement;
private transient RolloutUIState rolloutUIState; private transient RolloutUIState rolloutUIState;
private final Long rolloutId; private final Long rolloutId;
/** /**
* Parametric Constructor. * Parametric Constructor.
* *
* @param definition * @param definition
* as QueryDefinition * as QueryDefinition
* @param queryConfig * @param queryConfig
* as Config * as Config
* @param sortPropertyIds * @param sortPropertyIds
* as sort * as sort
* @param sortStates * @param sortStates
* as Sort status * as Sort status
*/ */
public RolloutGroupBeanQuery(final QueryDefinition definition, final Map<String, Object> queryConfig, public RolloutGroupBeanQuery(final QueryDefinition definition, final Map<String, Object> queryConfig,
final Object[] sortPropertyIds, final boolean[] sortStates) { final Object[] sortPropertyIds, final boolean[] sortStates) {
super(definition, queryConfig, sortPropertyIds, sortStates); super(definition, queryConfig, sortPropertyIds, sortStates);
rolloutId = getRolloutId(); rolloutId = getRolloutId();
if (HawkbitCommonUtil.checkBolArray(sortStates)) { if (HawkbitCommonUtil.checkBolArray(sortStates)) {
// Initalize Sor // Initalize Sor
sort = new Sort(sortStates[0] ? Direction.ASC : Direction.DESC, (String) sortPropertyIds[0]); sort = new Sort(sortStates[0] ? Direction.ASC : Direction.DESC, (String) sortPropertyIds[0]);
// Add sort. // Add sort.
for (int targetId = 1; targetId < sortPropertyIds.length; targetId++) { for (int targetId = 1; targetId < sortPropertyIds.length; targetId++) {
sort.and(new Sort(sortStates[targetId] ? Direction.ASC : Direction.DESC, sort.and(new Sort(sortStates[targetId] ? Direction.ASC : Direction.DESC,
(String) sortPropertyIds[targetId])); (String) sortPropertyIds[targetId]));
} }
} }
} }
/** /**
* @return * @return
*/ */
private Long getRolloutId() { private Long getRolloutId() {
return getRolloutUIState().getRolloutId().isPresent() ? getRolloutUIState().getRolloutId().get() : null; return getRolloutUIState().getRolloutId().isPresent() ? getRolloutUIState().getRolloutId().get() : null;
} }
@Override @Override
protected ProxyRolloutGroup constructBean() { protected ProxyRolloutGroup constructBean() {
return new ProxyRolloutGroup(); return new ProxyRolloutGroup();
} }
@Override @Override
protected List<ProxyRolloutGroup> loadBeans(final int startIndex, final int count) { protected List<ProxyRolloutGroup> loadBeans(final int startIndex, final int count) {
List<RolloutGroup> proxyRolloutGroupsList = new ArrayList<>(); List<RolloutGroup> proxyRolloutGroupsList = new ArrayList<>();
if (startIndex == 0 && firstPageRolloutGroupSets != null) { if (startIndex == 0 && firstPageRolloutGroupSets != null) {
proxyRolloutGroupsList = firstPageRolloutGroupSets.getContent(); proxyRolloutGroupsList = firstPageRolloutGroupSets.getContent();
} else if (null != rolloutId) { } else if (null != rolloutId) {
proxyRolloutGroupsList = getRolloutGroupManagement() proxyRolloutGroupsList = getRolloutGroupManagement()
.findAllRolloutGroupsWithDetailedStatus(rolloutId, new PageRequest(startIndex / count, count)) .findAllRolloutGroupsWithDetailedStatus(rolloutId, new PageRequest(startIndex / count, count))
.getContent(); .getContent();
} }
return getProxyRolloutGroupList(proxyRolloutGroupsList); return getProxyRolloutGroupList(proxyRolloutGroupsList);
} }
private List<ProxyRolloutGroup> getProxyRolloutGroupList(final List<RolloutGroup> rolloutGroupBeans) { private List<ProxyRolloutGroup> getProxyRolloutGroupList(final List<RolloutGroup> rolloutGroupBeans) {
final List<ProxyRolloutGroup> proxyRolloutGroupsList = new ArrayList<>(); final List<ProxyRolloutGroup> proxyRolloutGroupsList = new ArrayList<>();
for (final RolloutGroup rolloutGroup : rolloutGroupBeans) { for (final RolloutGroup rolloutGroup : rolloutGroupBeans) {
final ProxyRolloutGroup proxyRolloutGroup = new ProxyRolloutGroup(); final ProxyRolloutGroup proxyRolloutGroup = new ProxyRolloutGroup();
proxyRolloutGroup.setName(rolloutGroup.getName()); proxyRolloutGroup.setName(rolloutGroup.getName());
proxyRolloutGroup.setDescription(rolloutGroup.getDescription()); proxyRolloutGroup.setDescription(rolloutGroup.getDescription());
proxyRolloutGroup.setCreatedDate(SPDateTimeUtil.getFormattedDate(rolloutGroup.getCreatedAt())); proxyRolloutGroup.setCreatedDate(SPDateTimeUtil.getFormattedDate(rolloutGroup.getCreatedAt()));
proxyRolloutGroup.setModifiedDate(SPDateTimeUtil.getFormattedDate(rolloutGroup.getLastModifiedAt())); proxyRolloutGroup.setModifiedDate(SPDateTimeUtil.getFormattedDate(rolloutGroup.getLastModifiedAt()));
proxyRolloutGroup.setCreatedBy(HawkbitCommonUtil.getIMUser(rolloutGroup.getCreatedBy())); proxyRolloutGroup.setCreatedBy(HawkbitCommonUtil.getIMUser(rolloutGroup.getCreatedBy()));
proxyRolloutGroup.setLastModifiedBy(HawkbitCommonUtil.getIMUser(rolloutGroup.getLastModifiedBy())); proxyRolloutGroup.setLastModifiedBy(HawkbitCommonUtil.getIMUser(rolloutGroup.getLastModifiedBy()));
proxyRolloutGroup.setId(rolloutGroup.getId()); proxyRolloutGroup.setId(rolloutGroup.getId());
proxyRolloutGroup.setStatus(rolloutGroup.getStatus()); proxyRolloutGroup.setStatus(rolloutGroup.getStatus());
proxyRolloutGroup.setErrorAction(rolloutGroup.getErrorAction()); proxyRolloutGroup.setErrorAction(rolloutGroup.getErrorAction());
proxyRolloutGroup.setErrorActionExp(rolloutGroup.getErrorActionExp()); proxyRolloutGroup.setErrorActionExp(rolloutGroup.getErrorActionExp());
proxyRolloutGroup.setErrorCondition(rolloutGroup.getErrorCondition()); proxyRolloutGroup.setErrorCondition(rolloutGroup.getErrorCondition());
proxyRolloutGroup.setErrorConditionExp(rolloutGroup.getErrorConditionExp()); proxyRolloutGroup.setErrorConditionExp(rolloutGroup.getErrorConditionExp());
proxyRolloutGroup.setSuccessCondition(rolloutGroup.getSuccessCondition()); proxyRolloutGroup.setSuccessCondition(rolloutGroup.getSuccessCondition());
proxyRolloutGroup.setSuccessConditionExp(rolloutGroup.getSuccessConditionExp()); proxyRolloutGroup.setSuccessConditionExp(rolloutGroup.getSuccessConditionExp());
proxyRolloutGroup.setFinishedPercentage(calculateFinishedPercentage(rolloutGroup)); proxyRolloutGroup.setFinishedPercentage(calculateFinishedPercentage(rolloutGroup));
proxyRolloutGroup.setCustomObject(new CustomObject(rolloutGroup.getName(), null));
proxyRolloutGroup.setTotalTargetsCount(String.valueOf(rolloutGroup.getTotalTargets())); proxyRolloutGroup.setRendererData(new RendererData(rolloutGroup.getName(), null));
proxyRolloutGroup.setTotalTargetCountStatus(rolloutGroup.getTotalTargetCountStatus());
proxyRolloutGroupsList.add(proxyRolloutGroup); proxyRolloutGroup.setTotalTargetsCount(String.valueOf(rolloutGroup.getTotalTargets()));
} proxyRolloutGroup.setTotalTargetCountStatus(rolloutGroup.getTotalTargetCountStatus());
return proxyRolloutGroupsList;
}
private String calculateFinishedPercentage(final RolloutGroup rolloutGroup) { proxyRolloutGroupsList.add(proxyRolloutGroup);
return HawkbitCommonUtil.formattingFinishedPercentage(rolloutGroup, getRolloutManagement() }
.getFinishedPercentForRunningGroup(rolloutGroup.getRollout().getId(), rolloutGroup)); return proxyRolloutGroupsList;
} }
@Override private String calculateFinishedPercentage(final RolloutGroup rolloutGroup) {
protected void saveBeans(final List<ProxyRolloutGroup> arg0, final List<ProxyRolloutGroup> arg1, return HawkbitCommonUtil.formattingFinishedPercentage(rolloutGroup, getRolloutManagement()
final List<ProxyRolloutGroup> arg2) { .getFinishedPercentForRunningGroup(rolloutGroup.getRollout().getId(), rolloutGroup));
/** }
* CRUD operations be done through repository methods.
*/
}
@Override @Override
public int size() { protected void saveBeans(final List<ProxyRolloutGroup> arg0, final List<ProxyRolloutGroup> arg1,
long size = 0; final List<ProxyRolloutGroup> arg2) {
if (null != rolloutId) { /**
firstPageRolloutGroupSets = getRolloutGroupManagement().findAllRolloutGroupsWithDetailedStatus(rolloutId, * CRUD operations be done through repository methods.
new PageRequest(0, SPUIDefinitions.PAGE_SIZE, sort)); */
size = firstPageRolloutGroupSets.getTotalElements(); }
}
if (size > Integer.MAX_VALUE) {
return Integer.MAX_VALUE;
}
return (int) size; @Override
} public int size() {
long size = 0;
if (null != rolloutId) {
firstPageRolloutGroupSets = getRolloutGroupManagement().findAllRolloutGroupsWithDetailedStatus(rolloutId,
new PageRequest(0, SPUIDefinitions.PAGE_SIZE, sort));
size = firstPageRolloutGroupSets.getTotalElements();
}
if (size > Integer.MAX_VALUE) {
return Integer.MAX_VALUE;
}
/** return (int) size;
* @return the rolloutManagement }
*/
public RolloutManagement getRolloutManagement() {
if (null == rolloutManagement) {
rolloutManagement = SpringContextHelper.getBean(RolloutManagement.class);
}
return rolloutManagement;
}
/** /**
* @return the rolloutManagement * @return the rolloutManagement
*/ */
public RolloutGroupManagement getRolloutGroupManagement() { public RolloutManagement getRolloutManagement() {
if (null == rolloutGroupManagement) { if (null == rolloutManagement) {
rolloutGroupManagement = SpringContextHelper.getBean(RolloutGroupManagement.class); rolloutManagement = SpringContextHelper.getBean(RolloutManagement.class);
} }
return rolloutGroupManagement; return rolloutManagement;
} }
/** /**
* @return the rolloutUIState * @return the rolloutManagement
*/ */
public RolloutUIState getRolloutUIState() { public RolloutGroupManagement getRolloutGroupManagement() {
if (null == rolloutUIState) { if (null == rolloutGroupManagement) {
rolloutUIState = SpringContextHelper.getBean(RolloutUIState.class); rolloutGroupManagement = SpringContextHelper.getBean(RolloutGroupManagement.class);
} }
return rolloutUIState; return rolloutGroupManagement;
} }
/**
* @return the rolloutUIState
*/
public RolloutUIState getRolloutUIState() {
if (null == rolloutUIState) {
rolloutUIState = SpringContextHelper.getBean(RolloutUIState.class);
}
return rolloutUIState;
}
} }

View File

@@ -23,7 +23,7 @@ import org.eclipse.hawkbit.repository.model.RolloutGroup;
import org.eclipse.hawkbit.repository.model.RolloutGroup.RolloutGroupStatus; import org.eclipse.hawkbit.repository.model.RolloutGroup.RolloutGroupStatus;
import org.eclipse.hawkbit.repository.model.TotalTargetCountStatus; import org.eclipse.hawkbit.repository.model.TotalTargetCountStatus;
import org.eclipse.hawkbit.ui.common.grid.AbstractGrid; import org.eclipse.hawkbit.ui.common.grid.AbstractGrid;
import org.eclipse.hawkbit.ui.customrenderers.client.renderers.CustomObject; import org.eclipse.hawkbit.ui.customrenderers.client.renderers.RendererData;
import org.eclipse.hawkbit.ui.customrenderers.renderers.CustomObjectRenderer; import org.eclipse.hawkbit.ui.customrenderers.renderers.CustomObjectRenderer;
import org.eclipse.hawkbit.ui.customrenderers.renderers.HtmlLabelRenderer; import org.eclipse.hawkbit.ui.customrenderers.renderers.HtmlLabelRenderer;
@@ -132,7 +132,7 @@ public class RolloutGroupListGrid extends AbstractGrid {
final LazyQueryContainer rolloutGroupGridContainer = (LazyQueryContainer) getContainerDataSource(); final LazyQueryContainer rolloutGroupGridContainer = (LazyQueryContainer) getContainerDataSource();
rolloutGroupGridContainer.addContainerProperty(SPUILabelDefinitions.VAR_NAME, String.class, "", false, false); rolloutGroupGridContainer.addContainerProperty(SPUILabelDefinitions.VAR_NAME, String.class, "", false, false);
rolloutGroupGridContainer.addContainerProperty(customObject, CustomObject.class, null, false, false); rolloutGroupGridContainer.addContainerProperty(customObject, RendererData.class, null, false, false);
rolloutGroupGridContainer.addContainerProperty(SPUILabelDefinitions.VAR_DESC, String.class, null, false, false); rolloutGroupGridContainer.addContainerProperty(SPUILabelDefinitions.VAR_DESC, String.class, null, false, false);
rolloutGroupGridContainer.addContainerProperty(SPUILabelDefinitions.VAR_STATUS, RolloutGroupStatus.class, null, rolloutGroupGridContainer.addContainerProperty(SPUILabelDefinitions.VAR_STATUS, RolloutGroupStatus.class, null,
false, false); false, false);
@@ -286,7 +286,7 @@ public class RolloutGroupListGrid extends AbstractGrid {
} else if (SPUILabelDefinitions.ACTION.equals(cell.getPropertyId())) { } else if (SPUILabelDefinitions.ACTION.equals(cell.getPropertyId())) {
return SPUILabelDefinitions.ACTION.toLowerCase(); return SPUILabelDefinitions.ACTION.toLowerCase();
} else if (customObject.equals(cell.getPropertyId())) { } else if (customObject.equals(cell.getPropertyId())) {
return ((CustomObject) cell.getProperty().getValue()).getName(); return ((RendererData) cell.getProperty().getValue()).getName();
} else if (SPUILabelDefinitions.VAR_TOTAL_TARGETS_COUNT_STATUS.equals(cell.getPropertyId())) { } else if (SPUILabelDefinitions.VAR_TOTAL_TARGETS_COUNT_STATUS.equals(cell.getPropertyId())) {
return DistributionBarHelper return DistributionBarHelper
.getTooltip(((TotalTargetCountStatus) cell.getValue()).getStatusTotalCountMap()); .getTooltip(((TotalTargetCountStatus) cell.getValue()).getStatusTotalCountMap());