| // Licensed to the Apache Software Foundation (ASF) under one |
| // or more contributor license agreements. See the NOTICE file |
| // distributed with this work for additional information |
| // regarding copyright ownership. The ASF licenses this file |
| // to you under the Apache License, Version 2.0 (the |
| // "License"); you may not use this file except in compliance |
| // with the License. You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, |
| // software distributed under the License is distributed on an |
| // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| // KIND, either express or implied. See the License for the |
| // specific language governing permissions and limitations |
| // under the License. |
| package com.cloud.agent.api; |
| |
| import com.google.gson.Gson; |
| import com.google.gson.GsonBuilder; |
| |
| /** |
| * This command represents logical view of VM's connectivity in VPC. |
| */ |
| public class OvsVpcRoutingPolicyConfigCommand extends Command { |
| |
| VpcConfig vpcConfig =null; |
| long hostId; |
| String bridgeName; |
| long sequenceNumber; |
| String schemaVersion; |
| |
| public static class AclItem { |
| int number; |
| String uuid; |
| String action; |
| String direction; |
| String sourcePortStart; |
| String sourcePortEnd; |
| String protocol; |
| String[] sourceCidrs; |
| public AclItem(int number, String uuid, String action, String direction, String sourcePortStart, |
| String sourcePortEnd, String protocol, String[] sourceCidrs) { |
| this.number = number; |
| this.uuid =uuid; |
| this.action = action; |
| this.direction = direction; |
| this.sourceCidrs = sourceCidrs; |
| this.sourcePortStart = sourcePortStart; |
| this.sourcePortEnd = sourcePortEnd; |
| this.protocol = protocol; |
| } |
| } |
| |
| public static class Acl { |
| String id; |
| AclItem[] aclItems; |
| public Acl(String uuid, AclItem[] aclItems) { |
| this.id = uuid; |
| this.aclItems = aclItems; |
| } |
| } |
| |
| public static class Tier { |
| String id; |
| String cidr; |
| String aclId; |
| public Tier(String uuid, String cidr, String aclId) { |
| this.id = uuid; |
| this.cidr = cidr; |
| this.aclId = aclId; |
| } |
| } |
| |
| public class Vpc { |
| String cidr; |
| String id; |
| Acl[] acls; |
| Tier[] tiers; |
| public Vpc(String id, String cidr, Acl[] acls, Tier[] tiers) { |
| this.id = id; |
| this.cidr = cidr; |
| this.acls = acls; |
| this.tiers = tiers; |
| } |
| } |
| |
| public static class VpcConfig { |
| Vpc vpc; |
| public VpcConfig(Vpc vpc) { |
| this.vpc = vpc; |
| } |
| } |
| |
| public OvsVpcRoutingPolicyConfigCommand(String id, String cidr, Acl[] acls, Tier[] tiers) { |
| Vpc vpc = new Vpc(id, cidr, acls, tiers); |
| vpcConfig = new VpcConfig(vpc); |
| } |
| |
| public String getVpcConfigInJson() { |
| Gson gson = new GsonBuilder().create(); |
| return gson.toJson(vpcConfig).toLowerCase(); |
| } |
| |
| public void setHostId(long hostId) { |
| this.hostId = hostId; |
| } |
| |
| public long getHostId() { |
| return hostId; |
| } |
| |
| public String getBridgeName() { |
| return bridgeName; |
| } |
| |
| public void setBridgeName(String bridgeName) { |
| this.bridgeName = bridgeName; |
| } |
| |
| @Override |
| public boolean executeInSequence() { |
| return false; |
| } |
| |
| public long getSequenceNumber() { |
| return sequenceNumber; |
| } |
| |
| public void setSequenceNumber(long sequenceNumber) { |
| this.sequenceNumber = sequenceNumber; |
| } |
| } |