Search in sources :

Example 1 with InstallServer42FlowBuilder

use of org.openkilda.messaging.command.flow.InstallServer42Flow.InstallServer42FlowBuilder in project open-kilda by telstra.

the class CommandBuilderImpl method buildInstallSpecialDefaultRuleCommands.

/**
 * Some default rules require additional properties to be installed. This method creates commands for such rules.
 */
private List<BaseInstallFlow> buildInstallSpecialDefaultRuleCommands(SwitchId switchId, List<Long> switchRules) {
    SwitchProperties properties = getSwitchProperties(switchId);
    List<BaseInstallFlow> commands = new ArrayList<>();
    for (Long cookie : switchRules) {
        InstallServer42FlowBuilder command = InstallServer42Flow.builder().transactionId(transactionIdGenerator.generate()).cookie(cookie).switchId(switchId).multiTable(properties.isMultiTable()).inputPort(0).outputPort(0).server42Vlan(properties.getServer42Vlan()).server42MacAddress(properties.getServer42MacAddress());
        if (cookie == SERVER_42_FLOW_RTT_OUTPUT_VLAN_COOKIE) {
            commands.add(command.id("SWMANAGER_SERVER_42_FLOW_RTT_OUTPUT_VLAN_RULE_INSTALL").outputPort(properties.getServer42Port()).build());
        } else if (cookie == SERVER_42_FLOW_RTT_OUTPUT_VXLAN_COOKIE) {
            commands.add(command.id("SWMANAGER_SERVER_42_FLOW_RTT_OUTPUT_VXLAN_RULE_INSTALL").outputPort(properties.getServer42Port()).build());
        } else if (new PortColourCookie(cookie).getType() == CookieType.SERVER_42_FLOW_RTT_INPUT) {
            commands.add(command.id("SWMANAGER_SERVER_42_FLOW_RTT_INPUT_RULE_INSTALL").inputPort(properties.getServer42Port()).build());
        } else if (cookie == SERVER_42_ISL_RTT_OUTPUT_COOKIE) {
            commands.add(command.id("SWMANAGER_SERVER_42_ISL_RTT_OUTPUT_RULE_INSTALL").outputPort(properties.getServer42Port()).build());
        } else if (new PortColourCookie(cookie).getType() == CookieType.SERVER_42_ISL_RTT_INPUT) {
            commands.add(command.id("SWMANAGER_SERVER_42_ISL_RTT_INPUT_RULE_INSTALL").inputPort(properties.getServer42Port()).build());
        } else {
            log.warn("Got request for installation of unknown rule {} on switch {}", cookie, switchId);
        }
    }
    return commands;
}
Also used : ArrayList(java.util.ArrayList) BaseInstallFlow(org.openkilda.messaging.command.flow.BaseInstallFlow) InstallServer42FlowBuilder(org.openkilda.messaging.command.flow.InstallServer42Flow.InstallServer42FlowBuilder) SwitchProperties(org.openkilda.model.SwitchProperties) PortColourCookie(org.openkilda.model.cookie.PortColourCookie)

Aggregations

ArrayList (java.util.ArrayList)1 BaseInstallFlow (org.openkilda.messaging.command.flow.BaseInstallFlow)1 InstallServer42FlowBuilder (org.openkilda.messaging.command.flow.InstallServer42Flow.InstallServer42FlowBuilder)1 SwitchProperties (org.openkilda.model.SwitchProperties)1 PortColourCookie (org.openkilda.model.cookie.PortColourCookie)1