Skip to content

Commit

Permalink
Adapting test resource GUI to recent test connection changes.
Browse files Browse the repository at this point in the history
  • Loading branch information
semancik committed Apr 24, 2017
1 parent 6b36807 commit 08c88a7
Show file tree
Hide file tree
Showing 6 changed files with 108 additions and 40 deletions.
Expand Up @@ -492,19 +492,6 @@ public List<T> getObject() {
};
}

public static List<OpResult> getTestConnectionResults(OperationResult result, PageBase component) {
List<OpResult> resultsDto = new ArrayList<>();
for (ConnectorTestOperation connectorOperation : ConnectorTestOperation.values()) {
for (OperationResult testResult : result.getSubresults()) {
if (connectorOperation.getOperation().equals(testResult.getOperation())) {
OpResult resultDto = OpResult.getOpResult(component, testResult);
resultsDto.add(resultDto);
}
}
}
return resultsDto;
}

public static List<String> createTaskCategoryList() {
List<String> categories = new ArrayList<>();

Expand Down
@@ -1,5 +1,5 @@
<!--
~ Copyright (c) 2010-2016 Evolveum
~ Copyright (c) 2010-2017 Evolveum
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
Expand All @@ -19,10 +19,15 @@
<wicket:panel>
<div class="box-body">
<div wicket:id="messagesPanel">
<div wicket:id="messages"/>

<div wicket:id="connectorMessagesPanel">
<h4><span><wicket:message key="ObjectTypeGuiDescriptor.connector">Connector</wicket:message></span> <span wicket:id="connectorName"/></h4>
<div wicket:id="connectorMessages"/>
</div>
<div> <!-- Resource messages -->
<h4><wicket:message key="ObjectTypeGuiDescriptor.resource">Resource</wicket:message></h4>
<div wicket:id="resourceMessages"/>
</div>
</div>

</div>
</wicket:panel>
</html>
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2010-2016 Evolveum
* Copyright (c) 2010-2017 Evolveum
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand All @@ -21,33 +21,45 @@
import com.evolveum.midpoint.gui.api.component.result.OperationResultPanel;
import com.evolveum.midpoint.gui.api.page.PageBase;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.schema.constants.ConnectorTestOperation;
import com.evolveum.midpoint.schema.result.OperationResult;
import com.evolveum.midpoint.task.api.Task;
import com.evolveum.midpoint.util.exception.*;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ResourceType;
import org.apache.commons.lang3.StringUtils;
import org.apache.wicket.Page;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.list.ListItem;
import org.apache.wicket.markup.html.list.ListView;
import org.apache.wicket.markup.repeater.RepeatingView;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.model.util.ListModel;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
* Created by honchar.
*/
public class TestConnectionMessagesPanel extends BasePanel {
private static final String DOT_CLASS = TestConnectionMessagesPanel.class.getName() + ".";
private static final long serialVersionUID = 1L;

private static final String DOT_CLASS = TestConnectionMessagesPanel.class.getName() + ".";

private static final String OPERATION_TEST_CONNECTION = DOT_CLASS + "testConnection";

private static final String ID_MESSAGES_PANEL = "messagesPanel";
private static final String ID_MESSAGES = "messages";
private static final String ID_CONNECTOR_MESSAGES_PANEL = "connectorMessagesPanel";
private static final String ID_CONNECTOR_NAME = "connectorName";
private static final String ID_CONNECTOR_MESSAGES = "connectorMessages";
private static final String ID_RESOURCE_MESSAGES = "resourceMessages";

private PageBase parentPage;
private ListModel<OpResult> model;
private ListModel<OpResult> modelResourceResults;
private ListModel<ConnectorStruct> connectorResourceResults;

public TestConnectionMessagesPanel(String id, String resourceOid, PageBase parentPage) {
super(id);
Expand All @@ -58,45 +70,101 @@ public TestConnectionMessagesPanel(String id, String resourceOid, PageBase paren

private void initResultsModel(String resourceOid) {
OperationResult result = new OperationResult(OPERATION_TEST_CONNECTION);
List<OpResult> resultsDto = new ArrayList<>();
List<OpResult> resourceResultsDto = new ArrayList<>();
List<ConnectorStruct> connectorStructs = new ArrayList<>();
if (StringUtils.isNotEmpty(resourceOid)) {
Task task = parentPage.createSimpleTask(OPERATION_TEST_CONNECTION);
try {
Task task = parentPage.createSimpleTask(OPERATION_TEST_CONNECTION);
result = parentPage.getModelService().testResource(resourceOid, task);
resultsDto = WebComponentUtil.getTestConnectionResults(result, parentPage);
} catch (ObjectNotFoundException e) {
result.recordFatalError("Failed to test resource connection", e);
}

for (OperationResult subresult: result.getSubresults()) {
if (isConnectorResult(subresult)) {
ConnectorStruct connectorStruct = new ConnectorStruct();
connectorStruct.connectorName = (String) subresult.getParams().get(OperationResult.PARAM_NAME);
if (connectorStruct.connectorName == null) {
connectorStruct.connectorName = "";
}
connectorStruct.connectorResultsDto = new ArrayList<>();
for (OperationResult subsubresult: subresult.getSubresults()) {
if (isKnownResult(subsubresult)) {
connectorStruct.connectorResultsDto.add(OpResult.getOpResult(parentPage, subsubresult));
}
}
connectorStructs.add(connectorStruct);
} else if (isKnownResult(subresult)) {
// resource operation
resourceResultsDto.add(OpResult.getOpResult(parentPage, subresult));
}

}

if (result.isSuccess()) {
result.recomputeStatus();
}
}
model = new ListModel<OpResult>(resultsDto);
modelResourceResults = new ListModel<>(resourceResultsDto);
connectorResourceResults = new ListModel<>(connectorStructs);
}

private void initLayout() {
private boolean isConnectorResult(OperationResult subresult) {
return subresult.getOperation().equals(ConnectorTestOperation.CONNECTOR_TEST.getOperation());
}

private boolean isKnownResult(OperationResult subresult) {
for (ConnectorTestOperation connectorOperation : ConnectorTestOperation.values()) {
if (connectorOperation.getOperation().equals(subresult.getOperation())) {
return true;
}
}
return false;
}


private void initLayout() {
setOutputMarkupId(true);

WebMarkupContainer messagesPanel = new WebMarkupContainer(ID_MESSAGES_PANEL);
messagesPanel.setOutputMarkupId(true);
add(messagesPanel);

ListView<ConnectorStruct> connectorView = new ListView<ConnectorStruct>(ID_CONNECTOR_MESSAGES_PANEL, connectorResourceResults) {
private static final long serialVersionUID = 1L;
@Override
protected void populateItem(ListItem<ConnectorStruct> item) {
Label connectorNameLabel = new Label(ID_CONNECTOR_NAME, item.getModelObject().connectorName);
item.add(connectorNameLabel);
RepeatingView connectorResultView = new RepeatingView(ID_CONNECTOR_MESSAGES);
List<OpResult> resultsDto = item.getModelObject().connectorResultsDto;
if (resultsDto != null) {
initResultsPanel(connectorResultView, resultsDto, parentPage);
}
item.add(connectorResultView);
}

};
messagesPanel.add(connectorView);

RepeatingView resultView = new RepeatingView(ID_MESSAGES);
if (model.getObject() != null && model.getObject().size() > 0) {
initResultsPanel(resultView, parentPage);
RepeatingView resultView = new RepeatingView(ID_RESOURCE_MESSAGES);
if (modelResourceResults.getObject() != null) {
initResultsPanel(resultView, modelResourceResults.getObject(), parentPage);
}
resultView.setOutputMarkupId(true);
messagesPanel.add(resultView);
}

public void initResultsPanel(RepeatingView resultView, Page parentPage) {
for (OpResult result : model.getObject()) {
public void initResultsPanel(RepeatingView resultView, List<OpResult> opresults, Page parentPage) {
for (OpResult result : opresults) {
OperationResultPanel resultPanel = new OperationResultPanel(resultView.newChildId(), new Model<>(result), parentPage);
resultPanel.setOutputMarkupId(true);
resultView.add(resultPanel);
}
}


private class ConnectorStruct implements Serializable {
private String connectorName;
private List<OpResult> connectorResultsDto;
}
}
Expand Up @@ -18,15 +18,15 @@
<html xmlns:wicket="http://wicket.apache.org">
<wicket:panel>
<div class="box-body">
<diiv wicket:id="contentPanel">
<div wicket:id="contentPanel">
<div wicket:id="message"/>
<div wicket:id="result"/>
<p align="center">
<a class="btn btn-sm btn-primary" wicket:id="ok">
<wicket:message key="Button.ok"/>
</a>
</p>
</diiv>
</div>

</div>
</wicket:panel>
Expand Down
Expand Up @@ -738,9 +738,13 @@ operation.com.evolveum.midpoint.repo.api.RepositoryService.deleteObject=Delete o
operation.com.evolveum.midpoint.repo.api.RepositoryService.getObject=Get object (Repository)
operation.com.evolveum.midpoint.repo.api.RepositoryService.modifyObject=Modify object (Repository)
operation.com.evolveum.midpoint.repo.api.RepositoryService.searchObjects=Search objects (Repository)
operation.com.evolveum.midpoint.schema.constants.ConnectorTestOperation.configurationValidation=Configuration validation
operation.com.evolveum.midpoint.schema.constants.ConnectorTestOperation.connectorConnection=Connector connection test
operation.com.evolveum.midpoint.schema.constants.ConnectorTestOperation.connectorInitialization=Connector initialization
operation.com.evolveum.midpoint.schema.constants.ConnectorTestOperation.connector.connection=Connector connection
operation.com.evolveum.midpoint.schema.constants.ConnectorTestOperation.connector.initialization=Connector initialization
operation.com.evolveum.midpoint.schema.constants.ConnectorTestOperation.connector.configuration=Connector configuration
operation.com.evolveum.midpoint.schema.constants.ConnectorTestOperation.connector.capabilities=Connector capabilities
operation.com.evolveum.midpoint.schema.constants.ConnectorTestOperation.resourceSchema=Resource schema
operation.com.evolveum.midpoint.schema.constants.ConnectorTestOperation.resourceSanity=Resource sanity
operation.com.evolveum.midpoint.schema.constants.ConnectorTestOperation.extraTest=Extra test
operation.com.evolveum.midpoint.schema.constants.ConnectorTestOperation.testConnection=Test connection
operation.com.evolveum.midpoint.task.api.TaskManager.addTask=Add task (Task)
operation.com.evolveum.midpoint.task.api.TaskManager.createTaskInstance=Create task instance (Task)
Expand Down
Expand Up @@ -738,9 +738,13 @@ operation.com.evolveum.midpoint.repo.api.RepositoryService.deleteObject=Delete o
operation.com.evolveum.midpoint.repo.api.RepositoryService.getObject=Get object (Repository)
operation.com.evolveum.midpoint.repo.api.RepositoryService.modifyObject=Modify object (Repository)
operation.com.evolveum.midpoint.repo.api.RepositoryService.searchObjects=Search objects (Repository)
operation.com.evolveum.midpoint.schema.constants.ConnectorTestOperation.configurationValidation=Configuration validation
operation.com.evolveum.midpoint.schema.constants.ConnectorTestOperation.connectorConnection=Connector connection test
operation.com.evolveum.midpoint.schema.constants.ConnectorTestOperation.connectorInitialization=Connector initialization
operation.com.evolveum.midpoint.schema.constants.ConnectorTestOperation.connector.connection=Connector connection
operation.com.evolveum.midpoint.schema.constants.ConnectorTestOperation.connector.initialization=Connector initialization
operation.com.evolveum.midpoint.schema.constants.ConnectorTestOperation.connector.configuration=Connector configuration
operation.com.evolveum.midpoint.schema.constants.ConnectorTestOperation.connector.capabilities=Connector capabilities
operation.com.evolveum.midpoint.schema.constants.ConnectorTestOperation.resourceSchema=Resource schema
operation.com.evolveum.midpoint.schema.constants.ConnectorTestOperation.resourceSanity=Resource sanity
operation.com.evolveum.midpoint.schema.constants.ConnectorTestOperation.extraTest=Extra test
operation.com.evolveum.midpoint.schema.constants.ConnectorTestOperation.testConnection=Test connection
operation.com.evolveum.midpoint.task.api.TaskManager.addTask=Add task (Task)
operation.com.evolveum.midpoint.task.api.TaskManager.createTaskInstance=Create task instance (Task)
Expand Down

0 comments on commit 08c88a7

Please sign in to comment.