Search in sources :

Example 1 with SwitchInfo

use of org.openkilda.model.SwitchInfo in project open-kilda by telstra.

the class SwitchService method processInventorySwitch.

/**
 * Process inventory switch.
 *
 * @param switches the switch.
 *
 * @param inventorySwitches the inventory switch.
 */
private void processInventorySwitch(final List<SwitchInfo> switches, final List<InventorySwitch> inventorySwitches) {
    List<SwitchInfo> discrepancySwitch = new ArrayList<SwitchInfo>();
    for (InventorySwitch inventorySwitch : inventorySwitches) {
        int index = -1;
        for (SwitchInfo switchInfo : switches) {
            if (switchInfo.getSwitchId().equalsIgnoreCase((inventorySwitch.getSwitchId()))) {
                index = switches.indexOf(switchInfo);
                break;
            }
        }
        if (index >= 0) {
            SwitchInfo switchObj = switches.get(index);
            appendInventoryInfo(switchObj, inventorySwitch);
            SwitchDiscrepancy discrepancy = new SwitchDiscrepancy();
            discrepancy.setControllerDiscrepancy(false);
            if (!((switchObj.getState()).equalsIgnoreCase(inventorySwitch.getStatus()))) {
                discrepancy.setStatus(true);
                discrepancy.setInventoryDiscrepancy(true);
                SwitchStatus switchState = new SwitchStatus();
                switchState.setControllerStatus(switchObj.getState());
                switchState.setInventoryStatus(inventorySwitch.getStatus());
                discrepancy.setStatusValue(switchState);
                switchObj.setDiscrepancy(discrepancy);
            }
            switchObj.setInventorySwitch(true);
        } else {
            SwitchInfo switchInfoObj = new SwitchInfo();
            toSwitchInfo(switchInfoObj, inventorySwitch);
            discrepancySwitch.add(switchInfoObj);
        }
    }
    for (SwitchInfo switchInfo : switches) {
        boolean flag = false;
        for (InventorySwitch inventorySwitch : inventorySwitches) {
            if (switchInfo.getSwitchId().equalsIgnoreCase((inventorySwitch.getSwitchId()))) {
                flag = true;
                break;
            }
        }
        if (!flag) {
            SwitchDiscrepancy discrepancy = new SwitchDiscrepancy();
            discrepancy.setInventoryDiscrepancy(true);
            discrepancy.setControllerDiscrepancy(false);
            discrepancy.setStatus(true);
            SwitchStatus switchState = new SwitchStatus();
            switchState.setControllerStatus(switchInfo.getState());
            switchState.setInventoryStatus(null);
            discrepancy.setStatusValue(switchState);
            switchInfo.setDiscrepancy(discrepancy);
        }
        switchInfo.setControllerSwitch(true);
    }
    switches.addAll(discrepancySwitch);
}
Also used : ArrayList(java.util.ArrayList) InventorySwitch(org.openkilda.integration.source.store.dto.InventorySwitch) SwitchDiscrepancy(org.openkilda.model.SwitchDiscrepancy) SwitchInfo(org.openkilda.model.SwitchInfo) SwitchStatus(org.openkilda.model.SwitchStatus)

Example 2 with SwitchInfo

use of org.openkilda.model.SwitchInfo in project open-kilda by telstra.

the class SwitchService method getSwitch.

/**
 * get All SwitchList.
 *
 * @return SwitchRelationData the switch info
 * @throws IntegrationException the integration exception
 */
public SwitchInfo getSwitch(final String switchId, boolean controller) throws IntegrationException {
    SwitchInfo switchInfo = null;
    try {
        switchInfo = switchIntegrationService.getSwitchesById(switchId);
    } catch (InvalidResponseException ex) {
        LOGGER.error("Error occurred while retrieving switches from controller", ex);
    }
    if (!controller) {
        try {
            UserInfo userInfo = userService.getLoggedInUserInfo();
            if (userInfo.getPermissions().contains(IConstants.Permission.SW_SWITCH_INVENTORY)) {
                if (storeService.getSwitchStoreConfig().getUrls().size() > 0) {
                    InventorySwitch inventorySwitch = switchStoreService.getSwitch(switchId);
                    if (inventorySwitch.getSwitchId() != null) {
                        switchInfo = processInventorySwitch(switchInfo, inventorySwitch);
                    } else {
                        SwitchDiscrepancy discrepancy = new SwitchDiscrepancy();
                        discrepancy.setControllerDiscrepancy(false);
                        discrepancy.setStatus(true);
                        discrepancy.setInventoryDiscrepancy(true);
                        SwitchStatus switchState = new SwitchStatus();
                        switchState.setControllerStatus(switchInfo.getState());
                        discrepancy.setStatusValue(switchState);
                        switchInfo.setDiscrepancy(discrepancy);
                    }
                }
            }
        } catch (Exception ex) {
            LOGGER.error("Error occurred while retrieving switches from store", ex);
            throw new StoreIntegrationException("Error occurred while retrieving switches from store");
        }
    }
    return switchInfo;
}
Also used : InventorySwitch(org.openkilda.integration.source.store.dto.InventorySwitch) SwitchDiscrepancy(org.openkilda.model.SwitchDiscrepancy) StoreIntegrationException(org.openkilda.integration.exception.StoreIntegrationException) UserInfo(org.usermanagement.model.UserInfo) SwitchInfo(org.openkilda.model.SwitchInfo) InvalidResponseException(org.openkilda.integration.exception.InvalidResponseException) SwitchStatus(org.openkilda.model.SwitchStatus) InvalidResponseException(org.openkilda.integration.exception.InvalidResponseException) IntegrationException(org.openkilda.integration.exception.IntegrationException) StoreIntegrationException(org.openkilda.integration.exception.StoreIntegrationException) RequestValidationException(org.usermanagement.exception.RequestValidationException) AccessDeniedException(java.nio.file.AccessDeniedException)

Example 3 with SwitchInfo

use of org.openkilda.model.SwitchInfo in project open-kilda by telstra.

the class SwitchService method getSwitches.

/**
 * get All SwitchList.
 *
 * @return SwitchRelationData the switch info
 * @throws IntegrationException the integration exception
 */
public List<SwitchInfo> getSwitches(boolean storeConfigurationStatus, boolean controller) throws IntegrationException {
    List<SwitchInfo> switchInfo = switchIntegrationService.getSwitches();
    if (switchInfo == null) {
        switchInfo = new ArrayList<SwitchInfo>();
    }
    if (!controller) {
        try {
            UserInfo userInfo = userService.getLoggedInUserInfo();
            if (userInfo.getPermissions().contains(IConstants.Permission.SW_SWITCH_INVENTORY)) {
                if (storeConfigurationStatus && storeService.getSwitchStoreConfig().getUrls().size() > 0) {
                    List<InventorySwitch> inventorySwitches = new ArrayList<InventorySwitch>();
                    inventorySwitches = switchStoreService.getSwitches();
                    processInventorySwitch(switchInfo, inventorySwitches);
                }
            }
        } catch (Exception ex) {
            LOGGER.error("Error occurred while retrieving switches from store", ex);
        }
    }
    return switchInfo;
}
Also used : ArrayList(java.util.ArrayList) InventorySwitch(org.openkilda.integration.source.store.dto.InventorySwitch) UserInfo(org.usermanagement.model.UserInfo) SwitchInfo(org.openkilda.model.SwitchInfo) InvalidResponseException(org.openkilda.integration.exception.InvalidResponseException) IntegrationException(org.openkilda.integration.exception.IntegrationException) StoreIntegrationException(org.openkilda.integration.exception.StoreIntegrationException) RequestValidationException(org.usermanagement.exception.RequestValidationException) AccessDeniedException(java.nio.file.AccessDeniedException)

Example 4 with SwitchInfo

use of org.openkilda.model.SwitchInfo in project open-kilda by telstra.

the class SwitchService method processInventorySwitch.

private SwitchInfo processInventorySwitch(SwitchInfo switchInfo, final InventorySwitch inventorySwitch) {
    if (switchInfo == null) {
        switchInfo = new SwitchInfo();
        toSwitchInfo(switchInfo, inventorySwitch);
    } else {
        appendInventoryInfo(switchInfo, inventorySwitch);
        SwitchDiscrepancy discrepancy = new SwitchDiscrepancy();
        discrepancy.setControllerDiscrepancy(false);
        if (!((switchInfo.getState()).equalsIgnoreCase(inventorySwitch.getStatus()))) {
            discrepancy.setStatus(true);
            discrepancy.setInventoryDiscrepancy(true);
            SwitchStatus switchState = new SwitchStatus();
            switchState.setControllerStatus(switchInfo.getState());
            switchState.setInventoryStatus(inventorySwitch.getStatus());
            discrepancy.setStatusValue(switchState);
            switchInfo.setDiscrepancy(discrepancy);
        }
        switchInfo.setInventorySwitch(true);
    }
    return switchInfo;
}
Also used : SwitchDiscrepancy(org.openkilda.model.SwitchDiscrepancy) SwitchInfo(org.openkilda.model.SwitchInfo) SwitchStatus(org.openkilda.model.SwitchStatus)

Example 5 with SwitchInfo

use of org.openkilda.model.SwitchInfo in project open-kilda by telstra.

the class SwitchIntegrationService method getSwitchInfoSetName.

/**
 * Gets the switch info set name.
 *
 * @param switches
 *            the switches
 * @return the switch info set name
 */
private List<SwitchInfo> getSwitchInfoSetName(final List<SwitchInfo> switches) {
    if (switches != null && !StringUtils.isEmpty(switches)) {
        Map<String, String> csNames = getSwitchNames();
        for (SwitchInfo switchInfo : switches) {
            switchInfo.setName(customSwitchName(csNames, switchInfo.getSwitchId()));
            switchInfo.setControllerSwitch(true);
        }
    }
    return switches;
}
Also used : SwitchInfo(org.openkilda.model.SwitchInfo)

Aggregations

SwitchInfo (org.openkilda.model.SwitchInfo)10 Test (org.junit.Test)3 InvalidResponseException (org.openkilda.integration.exception.InvalidResponseException)3 InventorySwitch (org.openkilda.integration.source.store.dto.InventorySwitch)3 SwitchDiscrepancy (org.openkilda.model.SwitchDiscrepancy)3 SwitchStatus (org.openkilda.model.SwitchStatus)3 RequestValidationException (org.usermanagement.exception.RequestValidationException)3 AccessDeniedException (java.nio.file.AccessDeniedException)2 ArrayList (java.util.ArrayList)2 IntegrationException (org.openkilda.integration.exception.IntegrationException)2 StoreIntegrationException (org.openkilda.integration.exception.StoreIntegrationException)2 UserInfo (org.usermanagement.model.UserInfo)2 JsonProcessingException (com.fasterxml.jackson.core.JsonProcessingException)1 Date (java.util.Date)1 HttpResponse (org.apache.http.HttpResponse)1 SwitchNameEntity (org.openkilda.dao.entity.SwitchNameEntity)1