@Override public boolean equals(final Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; final EpPolicyTemplateValueKey that = (EpPolicyTemplateValueKey) o; if (tenantId != null ? !tenantId.equals(that.tenantId) : that.tenantId != null) return false; if (epgId != null ? !epgId.equals(that.epgId) : that.epgId != null) return false; return conditionName != null ? conditionName.equals(that.conditionName) : that.conditionName == null; }
@Override public boolean apply(EndpointL3Prefix input) { return (input.getTenant().equals(tenantId)); }
/** * Reads endpointL3 from data store * @param l3c id of {@link L3Context} * @param ipAddress IP address of the endpoint * @param tenantId ID of {@link Tenant} can be optionally specified * @return {@link EndpointL3} if exists, otherwise null. */ public EndpointL3 getL3Endpoint(L3ContextId l3c, IpAddress ipAddress, @Nullable TenantId tenantId) { if (l3c == null || ipAddress == null) { LOG.warn("[ContextId: {}, IpAddress: {}] Cannot read endpoint from DS unless both keys are specified!", l3c, ipAddress); return null; } ReadOnlyTransaction rTx = dataProvider.newReadOnlyTransaction(); Optional<EndpointL3> endpointL3 = DataStoreHelper.readFromDs(LogicalDatastoreType.OPERATIONAL, IidFactory.l3EndpointIid(l3c, ipAddress), rTx); rTx.close(); if (!endpointL3.isPresent()) { LOG.warn("EndpointL3 [{},{}] not found in data store.", l3c, ipAddress); return null; } if(tenantId != null && !endpointL3.get().getTenant().equals(tenantId)) { LOG.warn("EndpointL3 [{},{}] not found in data store for tenant: {}", l3c, ipAddress, tenantId); return null; } return endpointL3.get(); }
@VisibleForTesting void executeEvent(final AsyncDataChangeEvent<InstanceIdentifier<?>, DataObject> change) { // Remove for (InstanceIdentifier<?> iid : change.getRemovedPaths()) { DataObject old = change.getOriginalData().get(iid); if (old == null) { continue; } if (old instanceof Tenant) { Tenant tenant = (Tenant) old; if (tenant.getId().equals(gbpTenantId)) { LOG.info("Removed gbp Tenant {} -- faas Tenant {}", gbpTenantId.getValue(), faasTenantId.getValue()); this.policyManager.removeTenantLogicalNetwork(gbpTenantId, faasTenantId); } } } } }
@VisibleForTesting boolean handledPolicy(ResolvedPolicy policy) { if (!policy.getConsumerTenantId().equals(policy.getProviderTenantId())) { // FAAS always assumes consumer and provider EPGs belong to the same tenant LOG.warn( "Ignore Resolved Policy between Consumer EPG {} and Provider EPG {} becuase they belong to different Tenants", policy.getConsumerTenantId().getValue(), policy.getProviderTenantId().getValue()); return false; } return isTenantRegistered(policy.getConsumerTenantId()); }
private boolean isEqualService(ResolvedPolicy newPolicy, ResolvedPolicy oldPolicy) { return oldPolicy != null && newPolicy.getConsumerEpgId().equals(oldPolicy.getConsumerEpgId()) && newPolicy.getProviderEpgId().equals(oldPolicy.getProviderEpgId()) && newPolicy.getConsumerTenantId().equals(oldPolicy.getConsumerTenantId()) && newPolicy.getProviderTenantId().equals(oldPolicy.getProviderTenantId()); }
private void mapAllTenantResolvedPolicies(TenantId gbpTenantId, EndpointGroupId epgId) { Optional<ResolvedPolicies> resolvedPoliciesOptional = DataStoreHelper.readFromDs( LogicalDatastoreType.OPERATIONAL, InstanceIdentifier.builder(ResolvedPolicies.class).build(), dataProvider.newReadOnlyTransaction()); if (!resolvedPoliciesOptional.isPresent() || resolvedPoliciesOptional.get().getResolvedPolicy() == null) { return; } List<ResolvedPolicy> resolvedPolicies = resolvedPoliciesOptional.get().getResolvedPolicy(); for (ResolvedPolicy policy : resolvedPolicies) { if (policy.getConsumerTenantId().equals(gbpTenantId)) { if (epgId == null || epgId.equals(policy.getConsumerEpgId()) || epgId.equals(policy.getProviderEpgId())) { // if any epg or a specific epg policy updateLogicalNetwork(policy); } } } }
LogicalNetworks logicalNetworks = op3.get(); for (LogicalNetwork ln : logicalNetworks.getLogicalNetwork()) { if (ln.getConsumerTenantId().equals(gbpTenantId) || ln.getProviderTenantId().equals(gbpTenantId)) { removeLogicalNetwork(ln.getConsumerEpgId(), ln.getConsumerTenantId(), ln.getContractId(), ln.getProviderEpgId(), ln.getProviderTenantId());