Examples of MessageSubscriber


Examples of org.apache.cloudstack.framework.messagebus.MessageSubscriber

 
  @Inject MessageBus _messageBus;

  @Test
  public void testExactSubjectMatch() {
    _messageBus.subscribe("Host", new MessageSubscriber() {

      @Override
      public void onPublishMessage(String senderAddress, String subject, Object args) {
        Assert.assertEquals(subject, "Host");
      }
View Full Code Here

Examples of org.apache.cloudstack.framework.messagebus.MessageSubscriber

    _messageBus.clearAll();
  }

  @Test
  public void testRootSubjectMatch() {
    _messageBus.subscribe("/", new MessageSubscriber() {

      @Override
      public void onPublishMessage(String senderAddress, String subject, Object args) {
        Assert.assertTrue(subject.equals("Host") || subject.equals("VM"));
      }
View Full Code Here

Examples of org.apache.cloudstack.framework.messagebus.MessageSubscriber

    _messageBus.clearAll();
  }
 
  @Test
  public void testMiscMatch() {
    MessageSubscriber subscriberAtParentLevel = new MessageSubscriber() {
      @Override
      public void onPublishMessage(String senderAddress, String subject, Object args) {
        Assert.assertTrue(subject.startsWith(("Host")) || subject.startsWith("VM"));
      }
    };
   
    MessageSubscriber subscriberAtChildLevel = new MessageSubscriber() {
      @Override
      public void onPublishMessage(String senderAddress, String subject, Object args) {
        Assert.assertTrue(subject.equals("Host.123"));
      }
    };
View Full Code Here

Examples of org.apache.cloudstack.framework.messagebus.MessageSubscriber

    @Override
    public boolean configure(final String name, final Map<String, Object> params) throws ConfigurationException {
        _agentMgr.registerForHostEvents(this, true, false, true);
        VirtualMachine.State.getStateMachine().registerListener(this);
        _messageBus.subscribe("VM_ReservedCapacity_Free", new MessageSubscriber() {
            @Override
            public void onPublishMessage(String senderAddress, String subject, Object obj) {
                VMInstanceVO vm = ((VMInstanceVO) obj);
                s_logger.debug("MessageBus message: host reserved capacity released for VM: " + vm.getLastHostId()
                        + ", checking if host reservation can be released for host:" + vm.getLastHostId());
View Full Code Here

Examples of org.apache.cloudstack.framework.messagebus.MessageSubscriber

    @Inject
    MessageBus _messageBus;

    @Test
    public void testExactSubjectMatch() {
        _messageBus.subscribe("Host", new MessageSubscriber() {

            @Override
            public void onPublishMessage(String senderAddress, String subject, Object args) {
                Assert.assertEquals(subject, "Host");
            }
View Full Code Here

Examples of org.apache.cloudstack.framework.messagebus.MessageSubscriber

        _messageBus.clearAll();
    }

    @Test
    public void testRootSubjectMatch() {
        _messageBus.subscribe("/", new MessageSubscriber() {

            @Override
            public void onPublishMessage(String senderAddress, String subject, Object args) {
                Assert.assertTrue(subject.equals("Host") || subject.equals("VM"));
            }
View Full Code Here

Examples of org.apache.cloudstack.framework.messagebus.MessageSubscriber

        _messageBus.clearAll();
    }

    @Test
    public void testMiscMatch() {
        MessageSubscriber subscriberAtParentLevel = new MessageSubscriber() {
            @Override
            public void onPublishMessage(String senderAddress, String subject, Object args) {
                Assert.assertTrue(subject.startsWith(("Host")) || subject.startsWith("VM"));
            }
        };

        MessageSubscriber subscriberAtChildLevel = new MessageSubscriber() {
            @Override
            public void onPublishMessage(String senderAddress, String subject, Object args) {
                Assert.assertTrue(subject.equals("Host.123"));
            }
        };
View Full Code Here

Examples of org.apache.cloudstack.framework.messagebus.MessageSubscriber

    @Override
    public boolean configure(final String name, final Map<String, Object> params) throws ConfigurationException {
        _agentMgr.registerForHostEvents(this, true, false, true);
        VirtualMachine.State.getStateMachine().registerListener(this);
        _messageBus.subscribe("VM_ReservedCapacity_Free", new MessageSubscriber() {
            @Override
            public void onPublishMessage(String senderAddress, String subject, Object obj) {
                VMInstanceVO vm = ((VMInstanceVO)obj);
                s_logger.debug("MessageBus message: host reserved capacity released for VM: " + vm.getLastHostId() +
                    ", checking if host reservation can be released for host:" + vm.getLastHostId());
View Full Code Here

Examples of org.apache.cloudstack.framework.messagebus.MessageSubscriber

    }

    @Override
    public boolean configure(final String name, final Map<String, Object> params) throws ConfigurationException {

        _messageBus.subscribe(AccountManager.MESSAGE_ADD_ACCOUNT_EVENT, new MessageSubscriber() {
            @Override
            public void onPublishMessage(String senderAddress, String subject, Object obj) {
                HashMap<Long, Long> acctGroupMap = (HashMap<Long, Long>) obj;
                for (Long accountId : acctGroupMap.keySet()) {
                    Long groupId = acctGroupMap.get(accountId);
                    s_logger.debug("MessageBus message: new Account Added: " + accountId + ", adding it to groupId :"
                            + groupId);
                    addAccountToIAMGroup(accountId, groupId);
                    // add it to domain group too
                    AccountVO account = _accountDao.findById(accountId);
                    Domain domain = _domainDao.findById(account.getDomainId());
                    if (domain != null) {
                        List<IAMGroup> domainGroups = listDomainGroup(domain);

                        if (domainGroups != null) {
                            for (IAMGroup group : domainGroups) {
                                addAccountToIAMGroup(accountId, new Long(group.getId()));
                            }
                        }
                    }
                }
            }
        });

        _messageBus.subscribe(AccountManager.MESSAGE_REMOVE_ACCOUNT_EVENT, new MessageSubscriber() {
            @Override
            public void onPublishMessage(String senderAddress, String subject, Object obj) {
                Long accountId = ((Long) obj);
                if (accountId != null) {
                    s_logger.debug("MessageBus message: Account removed: " + accountId
                            + ", releasing the group associations");
                    removeAccountFromIAMGroups(accountId);
                }
            }
        });

        _messageBus.subscribe(DomainManager.MESSAGE_ADD_DOMAIN_EVENT, new MessageSubscriber() {
            @Override
            public void onPublishMessage(String senderAddress, String subject, Object obj) {
                Long domainId = ((Long) obj);
                if (domainId != null) {
                    s_logger.debug("MessageBus message: new Domain created: " + domainId + ", creating a new group");
                    Domain domain = _domainDao.findById(domainId);
                    _iamSrv.createIAMGroup("DomainGrp-" + domain.getUuid(), "Domain group", domain.getPath());
                }
            }
        });

        _messageBus.subscribe(DomainManager.MESSAGE_REMOVE_DOMAIN_EVENT, new MessageSubscriber() {
            @Override
            public void onPublishMessage(String senderAddress, String subject, Object obj) {
                Long domainId = ((Long) obj);
                if (domainId != null) {
                    s_logger.debug("MessageBus message: Domain removed: " + domainId + ", removing the domain group");
                    Domain domain = _domainDao.findByIdIncludingRemoved(domainId);
                    List<IAMGroup> groups = listDomainGroup(domain);
                    for (IAMGroup group : groups) {
                        _iamSrv.deleteIAMGroup(group.getId());
                    }
                }
            }
        });

        _messageBus.subscribe(TemplateManager.MESSAGE_REGISTER_PUBLIC_TEMPLATE_EVENT, new MessageSubscriber() {
            @Override
            public void onPublishMessage(String senderAddress, String subject, Object obj) {
                Long templateId = (Long)obj;
                if (templateId != null) {
                    s_logger.debug("MessageBus message: new public template registered: " + templateId
                            + ", grant permission to default root admin, domain admin and normal user policies");
                    _iamSrv.addIAMPermissionToIAMPolicy(new Long(Account.ACCOUNT_TYPE_ADMIN + 1), VirtualMachineTemplate.class.getSimpleName(),
                            PermissionScope.RESOURCE.toString(), templateId, "listTemplates", AccessType.UseEntry.toString(), Permission.Allow, false);
                    _iamSrv.addIAMPermissionToIAMPolicy(new Long(Account.ACCOUNT_TYPE_DOMAIN_ADMIN + 1), VirtualMachineTemplate.class.getSimpleName(),
                            PermissionScope.RESOURCE.toString(), templateId, "listTemplates", AccessType.UseEntry.toString(), Permission.Allow, false);
                    _iamSrv.addIAMPermissionToIAMPolicy(new Long(Account.ACCOUNT_TYPE_NORMAL + 1), VirtualMachineTemplate.class.getSimpleName(),
                            PermissionScope.RESOURCE.toString(), templateId, "listTemplates", AccessType.UseEntry.toString(), Permission.Allow, false);
                }
            }
        });

        _messageBus.subscribe(TemplateManager.MESSAGE_RESET_TEMPLATE_PERMISSION_EVENT, new MessageSubscriber() {
            @Override
            public void onPublishMessage(String senderAddress, String subject, Object obj) {
                Long templateId = (Long)obj;
                if (templateId != null) {
                    s_logger.debug("MessageBus message: reset template permission: " + templateId);
                    resetTemplatePermission(templateId);
                }
            }
        });

        _messageBus.subscribe(EntityManager.MESSAGE_REMOVE_ENTITY_EVENT, new MessageSubscriber() {
            @Override
            public void onPublishMessage(String senderAddress, String subject, Object obj) {
                Pair<Class<?>, Long> entity = (Pair<Class<?>, Long>)obj;
                if (entity != null) {
                    String entityType = entity.first().getSimpleName();
                    Long entityId = entity.second();
                    s_logger.debug("MessageBus message: delete an entity: (" + entityType + "," + entityId + "), remove its related permission");
                    _iamSrv.removeIAMPermissionForEntity(entityType, entityId);
                }
            }
        });


        _messageBus.subscribe(EntityManager.MESSAGE_GRANT_ENTITY_EVENT, new MessageSubscriber() {
            @Override
            public void onPublishMessage(String senderAddress, String subject, Object obj) {
                Map<String, Object> permit = (Map<String, Object>)obj;
                if (permit != null) {
                    Class<?> entityType = (Class<?>)permit.get(ApiConstants.ENTITY_TYPE);
                    Long entityId = (Long)permit.get(ApiConstants.ENTITY_ID);
                    AccessType accessType = (AccessType)permit.get(ApiConstants.ACCESS_TYPE);
                    String action = (String)permit.get(ApiConstants.IAM_ACTION);
                    List<Long> acctIds = (List<Long>)permit.get(ApiConstants.ACCOUNTS);
                    s_logger.debug("MessageBus message: grant accounts permission to an entity: (" + entityType + "," + entityId + ")");
                    grantEntityPermissioinToAccounts(entityType.getSimpleName(), entityId, accessType, action, acctIds);
                }
            }
        });

        _messageBus.subscribe(EntityManager.MESSAGE_REVOKE_ENTITY_EVENT, new MessageSubscriber() {
            @Override
            public void onPublishMessage(String senderAddress, String subject, Object obj) {
                Map<String, Object> permit = (Map<String, Object>)obj;
                if (permit != null) {
                    Class<?> entityType = (Class<?>)permit.get(ApiConstants.ENTITY_TYPE);
                    Long entityId = (Long)permit.get(ApiConstants.ENTITY_ID);
                    AccessType accessType = (AccessType)permit.get(ApiConstants.ACCESS_TYPE);
                    String action = (String)permit.get(ApiConstants.IAM_ACTION);
                    List<Long> acctIds = (List<Long>)permit.get(ApiConstants.ACCOUNTS);
                    s_logger.debug("MessageBus message: revoke from accounts permission to an entity: (" + entityType + "," + entityId + ")");
                    revokeEntityPermissioinFromAccounts(entityType.getSimpleName(), entityId, accessType, action, acctIds);
                }
            }
        });

        _messageBus.subscribe(EntityManager.MESSAGE_ADD_DOMAIN_WIDE_ENTITY_EVENT, new MessageSubscriber() {
            @Override
            public void onPublishMessage(String senderAddress, String subject, Object obj) {
                Map<String, Object> params = (Map<String, Object>) obj;
                if (params != null) {
                    addDomainWideResourceAccess(params);
View Full Code Here

Examples of org.apache.cloudstack.framework.messagebus.MessageSubscriber

    @Override
    public boolean configure(final String name, final Map<String, Object> params) throws ConfigurationException {
        _agentMgr.registerForHostEvents(this, true, false, true);
        VirtualMachine.State.getStateMachine().registerListener(this);
        _messageBus.subscribe("VM_ReservedCapacity_Free", new MessageSubscriber() {
            @Override
            public void onPublishMessage(String senderAddress, String subject, Object obj) {
                VMInstanceVO vm = ((VMInstanceVO) obj);
                s_logger.debug("MessageBus message: host reserved capacity released for VM: " + vm.getLastHostId()
                        + ", checking if host reservation can be released for host:" + vm.getLastHostId());
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.