Search in sources :

Example 1 with InternalIdentity

use of org.apache.cloudstack.api.InternalIdentity in project cloudstack by apache.

the class NuageVspElement method applyACLRules.

protected boolean applyACLRules(final Network network, List<? extends InternalIdentity> rules, boolean isNetworkAcl, boolean networkReset) throws ResourceUnavailableException {
    VspNetwork vspNetwork = _nuageVspEntityBuilder.buildVspNetwork(network);
    List<VspAclRule> vspAclRules = Lists.transform(rules, new Function<InternalIdentity, VspAclRule>() {

        @Nullable
        @Override
        public VspAclRule apply(@Nullable InternalIdentity input) {
            if (input instanceof FirewallRule) {
                return _nuageVspEntityBuilder.buildVspAclRule((FirewallRule) input, network);
            }
            return _nuageVspEntityBuilder.buildVspAclRule((NetworkACLItem) input);
        }
    });
    HostVO nuageVspHost = _nuageVspManager.getNuageVspHost(network.getPhysicalNetworkId());
    VspAclRule.ACLType vspAclType = isNetworkAcl ? VspAclRule.ACLType.NetworkACL : VspAclRule.ACLType.Firewall;
    ApplyAclRuleVspCommand cmd = new ApplyAclRuleVspCommand(vspAclType, vspNetwork, vspAclRules, networkReset);
    Answer answer = _agentMgr.easySend(nuageVspHost.getId(), cmd);
    if (answer == null || !answer.getResult()) {
        s_logger.error("ApplyAclRuleNuageVspCommand for network " + network.getUuid() + " failed on Nuage VSD " + nuageVspHost.getDetail("hostname"));
        if ((null != answer) && (null != answer.getDetails())) {
            throw new ResourceUnavailableException(answer.getDetails(), Network.class, network.getId());
        }
    }
    return true;
}
Also used : HostVO(com.cloud.host.HostVO) Answer(com.cloud.agent.api.Answer) NetworkACLItem(com.cloud.network.vpc.NetworkACLItem) ApplyAclRuleVspCommand(com.cloud.agent.api.element.ApplyAclRuleVspCommand) VspAclRule(net.nuage.vsp.acs.client.api.model.VspAclRule) ResourceUnavailableException(com.cloud.exception.ResourceUnavailableException) VspNetwork(net.nuage.vsp.acs.client.api.model.VspNetwork) InternalIdentity(org.apache.cloudstack.api.InternalIdentity) FirewallRule(com.cloud.network.rules.FirewallRule) Nullable(javax.annotation.Nullable)

Example 2 with InternalIdentity

use of org.apache.cloudstack.api.InternalIdentity in project cloudstack by apache.

the class IAMApiServiceImpl method getPermissionScopeId.

@Override
public Long getPermissionScopeId(String scope, String entityType, String scopeId) {
    if (scopeId.equals("-1")) {
        return -1L;
    }
    PermissionScope permScope = PermissionScope.valueOf(scope);
    InternalIdentity entity = null;
    switch(permScope) {
        case DOMAIN:
            entity = _domainDao.findByUuid(scopeId);
            break;
        case ACCOUNT:
            entity = _accountDao.findByUuid(scopeId);
            break;
        case RESOURCE:
            Class<?> clazz = s_typeMap.get(entityType);
            entity = (InternalIdentity) _entityMgr.findByUuid(clazz, scopeId);
    }
    if (entity != null) {
        return entity.getId();
    }
    throw new InvalidParameterValueException("Unable to find scopeId " + scopeId + " with scope " + scope + " and type " + entityType);
}
Also used : InvalidParameterValueException(com.cloud.exception.InvalidParameterValueException) InternalIdentity(org.apache.cloudstack.api.InternalIdentity) PermissionScope(org.apache.cloudstack.acl.PermissionScope)

Aggregations

InternalIdentity (org.apache.cloudstack.api.InternalIdentity)2 Answer (com.cloud.agent.api.Answer)1 ApplyAclRuleVspCommand (com.cloud.agent.api.element.ApplyAclRuleVspCommand)1 InvalidParameterValueException (com.cloud.exception.InvalidParameterValueException)1 ResourceUnavailableException (com.cloud.exception.ResourceUnavailableException)1 HostVO (com.cloud.host.HostVO)1 FirewallRule (com.cloud.network.rules.FirewallRule)1 NetworkACLItem (com.cloud.network.vpc.NetworkACLItem)1 Nullable (javax.annotation.Nullable)1 VspAclRule (net.nuage.vsp.acs.client.api.model.VspAclRule)1 VspNetwork (net.nuage.vsp.acs.client.api.model.VspNetwork)1 PermissionScope (org.apache.cloudstack.acl.PermissionScope)1