Fix problem a repeatable where DS assignment leads to 500. (#501)

Signed-off-by: kaizimmerm <kai.zimmermann@bosch-si.com>
This commit is contained in:
Kai Zimmermann
2017-05-04 08:43:54 +02:00
committed by GitHub
parent 1ee3d0c850
commit 3da33dd486
2 changed files with 17 additions and 14 deletions

View File

@@ -12,7 +12,6 @@ import static org.springframework.hateoas.mvc.ControllerLinkBuilder.linkTo;
import static org.springframework.hateoas.mvc.ControllerLinkBuilder.methodOn;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -282,17 +281,10 @@ public class MgmtTargetResource implements MgmtTargetRestApi {
findTargetWithExceptionIfNotFound(controllerId);
final ActionType type = (dsId.getType() != null) ? MgmtRestModelMapper.convertActionType(dsId.getType())
: ActionType.FORCED;
final Iterator<Target> changed = this.deploymentManagement
.assignDistributionSet(dsId.getId(), type, dsId.getForcetime(), Lists.newArrayList(controllerId))
.getAssignedEntity().iterator();
if (changed.hasNext()) {
return new ResponseEntity<>(HttpStatus.OK);
}
LOG.error("Target update (ds {} assigment to target {}) failed! Returnd target list is empty.", dsId.getId(),
controllerId);
return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR);
this.deploymentManagement.assignDistributionSet(dsId.getId(), type, dsId.getForcetime(),
Lists.newArrayList(controllerId));
return new ResponseEntity<>(HttpStatus.OK);
}
@Override

View File

@@ -1080,16 +1080,27 @@ public class MgmtTargetResourceTest extends AbstractManagementApiIntegrationTest
}
@Test
@Description("Verfies that a DS to target assignment is reflected by the repository and that repeating "
+ "the assignment does not change the target.")
public void assignDistributionSetToTarget() throws Exception {
testdataFactory.createTarget("fsdfsd");
Target target = testdataFactory.createTarget();
final DistributionSet set = testdataFactory.createDistributionSet("one");
mvc.perform(post(MgmtRestConstants.TARGET_V1_REQUEST_MAPPING + "/fsdfsd/assignedDS")
mvc.perform(post(MgmtRestConstants.TARGET_V1_REQUEST_MAPPING + "/" + target.getControllerId() + "/assignedDS")
.content("{\"id\":" + set.getId() + "}").contentType(MediaType.APPLICATION_JSON))
.andDo(MockMvcResultPrinter.print()).andExpect(status().isOk());
assertThat(deploymentManagement.getAssignedDistributionSet("fsdfsd").get()).isEqualTo(set);
assertThat(deploymentManagement.getAssignedDistributionSet(target.getControllerId()).get()).isEqualTo(set);
target = targetManagement.findTargetByControllerID(target.getControllerId()).get();
// repeating DS assignment leads again to OK
mvc.perform(post(MgmtRestConstants.TARGET_V1_REQUEST_MAPPING + "/" + target.getControllerId() + "/assignedDS")
.content("{\"id\":" + set.getId() + "}").contentType(MediaType.APPLICATION_JSON))
.andDo(MockMvcResultPrinter.print()).andExpect(status().isOk());
// ...but does not change the target
assertThat(targetManagement.findTargetByControllerID(target.getControllerId()).get()).isEqualTo(target);
}
@Test