test_class.declarator: s_logger = LoggerFactory.getLogger(GlobalLoadBalancingRulesServiceImplTest.class)
test_class.modifier: private static final
test_class.original_string: private static final Logger s_logger = LoggerFactory.getLogger(GlobalLoadBalancingRulesServiceImplTest.class);
test_class.type: Logger
test_class.var_name: s_logger
test_class.file: server/src/test/java/org/apache/cloudstack/region/gslb/GlobalLoadBalancingRulesServiceImplTest.java
test_class.identifier: GlobalLoadBalancingRulesServiceImplTest
test_class.superclass: extends TestCase
test_case.body: @Test
      public void testCreateGlobalLoadBalancerRule() throws Exception {
  
          s_logger.info("Running tests for CreateGlobalLoadBalancerRule() service API");
  
          /*
           * TEST 1: given valid parameters CreateGlobalLoadBalancerRule should succeed
           */
          runCreateGlobalLoadBalancerRulePostiveTest();
  
          /*
           * TEST 2: given invalid algorithm CreateGlobalLoadBalancerRule should fail
           */
          runCreateGlobalLoadBalancerRuleInvalidAlgorithm();
  
          /*
           * TEST 3: given invalid persistence method CreateGlobalLoadBalancerRule should fail
           */
          runCreateGlobalLoadBalancerRuleInvalidStickyMethod();
  
          /*
           * TEST 4: given invalid service type CreateGlobalLoadBalancerRule should fail
           */
          runCreateGlobalLoadBalancerRuleInvalidServiceType();
  
          /*
           * TEST 5: given 'domain name' that is already used by a different GSLB rule CreateGlobalLoadBalancerRule should fail
           */
          runCreateGlobalLoadBalancerRuleInvalidDomainName();
      }
test_case.class_method_signature: GlobalLoadBalancingRulesServiceImplTest.testCreateGlobalLoadBalancerRule()
test_case.full_signature: @Test public void testCreateGlobalLoadBalancerRule()
test_case.identifier: testCreateGlobalLoadBalancerRule
test_case.invocations: info runCreateGlobalLoadBalancerRulePostiveTest runCreateGlobalLoadBalancerRuleInvalidAlgorithm runCreateGlobalLoadBalancerRuleInvalidStickyMethod runCreateGlobalLoadBalancerRuleInvalidServiceType runCreateGlobalLoadBalancerRuleInvalidDomainName
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testCreateGlobalLoadBalancerRule()
focal_class.declarator: s_logger = LoggerFactory.getLogger(GlobalLoadBalancingRulesServiceImpl.class)
focal_class.modifier: private static final
focal_class.original_string: private static final Logger s_logger = LoggerFactory.getLogger(GlobalLoadBalancingRulesServiceImpl.class);
focal_class.type: Logger
focal_class.var_name: s_logger
focal_class.declarator: _accountMgr
focal_class.modifier: @Inject
focal_class.original_string: @Inject
      AccountManager _accountMgr;
focal_class.type: AccountManager
focal_class.var_name: _accountMgr
focal_class.declarator: _gslbRuleDao
focal_class.modifier: @Inject
focal_class.original_string: @Inject
      GlobalLoadBalancerRuleDao _gslbRuleDao;
focal_class.type: GlobalLoadBalancerRuleDao
focal_class.var_name: _gslbRuleDao
focal_class.declarator: _gslbLbMapDao
focal_class.modifier: @Inject
focal_class.original_string: @Inject
      GlobalLoadBalancerLbRuleMapDao _gslbLbMapDao;
focal_class.type: GlobalLoadBalancerLbRuleMapDao
focal_class.var_name: _gslbLbMapDao
focal_class.declarator: _regionDao
focal_class.modifier: @Inject
focal_class.original_string: @Inject
      RegionDao _regionDao;
focal_class.type: RegionDao
focal_class.var_name: _regionDao
focal_class.declarator: _rulesMgr
focal_class.modifier: @Inject
focal_class.original_string: @Inject
      RulesManager _rulesMgr;
focal_class.type: RulesManager
focal_class.var_name: _rulesMgr
focal_class.declarator: _lbDao
focal_class.modifier: @Inject
focal_class.original_string: @Inject
      LoadBalancerDao _lbDao;
focal_class.type: LoadBalancerDao
focal_class.var_name: _lbDao
focal_class.declarator: _networkDao
focal_class.modifier: @Inject
focal_class.original_string: @Inject
      NetworkDao _networkDao;
focal_class.type: NetworkDao
focal_class.var_name: _networkDao
focal_class.declarator: _globalConfigDao
focal_class.modifier: @Inject
focal_class.original_string: @Inject
      ConfigurationDao _globalConfigDao;
focal_class.type: ConfigurationDao
focal_class.var_name: _globalConfigDao
focal_class.declarator: _ipAddressDao
focal_class.modifier: @Inject
focal_class.original_string: @Inject
      IPAddressDao _ipAddressDao;
focal_class.type: IPAddressDao
focal_class.var_name: _ipAddressDao
focal_class.declarator: _agentMgr
focal_class.modifier: @Inject
focal_class.original_string: @Inject
      AgentManager _agentMgr;
focal_class.type: AgentManager
focal_class.var_name: _agentMgr
focal_class.declarator: _gslbProviders
focal_class.modifier: protected
focal_class.original_string: protected List<GslbServiceProvider> _gslbProviders;
focal_class.type: List<GslbServiceProvider>
focal_class.var_name: _gslbProviders
focal_class.file: server/src/main/java/org/apache/cloudstack/region/gslb/GlobalLoadBalancingRulesServiceImpl.java
focal_class.identifier: GlobalLoadBalancingRulesServiceImpl
focal_class.interfaces: implements GlobalLoadBalancingRulesService
focal_class.class_method_signature: GlobalLoadBalancingRulesServiceImpl.setGslbServiceProviders(List<GslbServiceProvider> providers)
focal_class.full_signature: public void setGslbServiceProviders(List<GslbServiceProvider> providers)
focal_class.identifier: setGslbServiceProviders
focal_class.modifiers: public
focal_class.parameters: (List<GslbServiceProvider> providers)
focal_class.return: void
focal_class.signature: void setGslbServiceProviders(List<GslbServiceProvider> providers)
focal_class.class_method_signature: GlobalLoadBalancingRulesServiceImpl.createGlobalLoadBalancerRule(CreateGlobalLoadBalancerRuleCmd newRule)
focal_class.full_signature: @Override @DB @ActionEvent(eventType = EventTypes.EVENT_GLOBAL_LOAD_BALANCER_CREATE, eventDescription = "creating global load " + "balancer rule", create = true) public GlobalLoadBalancerRule createGlobalLoadBalancerRule(CreateGlobalLoadBalancerRuleCmd newRule)
focal_class.identifier: createGlobalLoadBalancerRule
focal_class.modifiers: @Override @DB @ActionEvent(eventType = EventTypes.EVENT_GLOBAL_LOAD_BALANCER_CREATE, eventDescription = "creating global load " + "balancer rule", create = true) public
focal_class.parameters: (CreateGlobalLoadBalancerRuleCmd newRule)
focal_class.return: GlobalLoadBalancerRule
focal_class.signature: GlobalLoadBalancerRule createGlobalLoadBalancerRule(CreateGlobalLoadBalancerRuleCmd newRule)
focal_class.class_method_signature: GlobalLoadBalancingRulesServiceImpl.assignToGlobalLoadBalancerRule(AssignToGlobalLoadBalancerRuleCmd assignToGslbCmd)
focal_class.full_signature: @Override @DB @ActionEvent(eventType = EventTypes.EVENT_ASSIGN_TO_GLOBAL_LOAD_BALANCER_RULE, eventDescription = "Assigning a load balancer rule to global load balancer rule", async = true) public boolean assignToGlobalLoadBalancerRule(AssignToGlobalLoadBalancerRuleCmd assignToGslbCmd)
focal_class.identifier: assignToGlobalLoadBalancerRule
focal_class.modifiers: @Override @DB @ActionEvent(eventType = EventTypes.EVENT_ASSIGN_TO_GLOBAL_LOAD_BALANCER_RULE, eventDescription = "Assigning a load balancer rule to global load balancer rule", async = true) public
focal_class.parameters: (AssignToGlobalLoadBalancerRuleCmd assignToGslbCmd)
focal_class.return: boolean
focal_class.signature: boolean assignToGlobalLoadBalancerRule(AssignToGlobalLoadBalancerRuleCmd assignToGslbCmd)
focal_class.class_method_signature: GlobalLoadBalancingRulesServiceImpl.removeFromGlobalLoadBalancerRule(RemoveFromGlobalLoadBalancerRuleCmd removeFromGslbCmd)
focal_class.full_signature: @Override @DB @ActionEvent(eventType = EventTypes.EVENT_REMOVE_FROM_GLOBAL_LOAD_BALANCER_RULE, eventDescription = "Removing a load balancer rule to be part of global load balancer rule") public boolean removeFromGlobalLoadBalancerRule(RemoveFromGlobalLoadBalancerRuleCmd removeFromGslbCmd)
focal_class.identifier: removeFromGlobalLoadBalancerRule
focal_class.modifiers: @Override @DB @ActionEvent(eventType = EventTypes.EVENT_REMOVE_FROM_GLOBAL_LOAD_BALANCER_RULE, eventDescription = "Removing a load balancer rule to be part of global load balancer rule") public
focal_class.parameters: (RemoveFromGlobalLoadBalancerRuleCmd removeFromGslbCmd)
focal_class.return: boolean
focal_class.signature: boolean removeFromGlobalLoadBalancerRule(RemoveFromGlobalLoadBalancerRuleCmd removeFromGslbCmd)
focal_class.class_method_signature: GlobalLoadBalancingRulesServiceImpl.deleteGlobalLoadBalancerRule(DeleteGlobalLoadBalancerRuleCmd deleteGslbCmd)
focal_class.full_signature: @Override @ActionEvent(eventType = EventTypes.EVENT_GLOBAL_LOAD_BALANCER_DELETE, eventDescription = "Delete global load balancer rule") public boolean deleteGlobalLoadBalancerRule(DeleteGlobalLoadBalancerRuleCmd deleteGslbCmd)
focal_class.identifier: deleteGlobalLoadBalancerRule
focal_class.modifiers: @Override @ActionEvent(eventType = EventTypes.EVENT_GLOBAL_LOAD_BALANCER_DELETE, eventDescription = "Delete global load balancer rule") public
focal_class.parameters: (DeleteGlobalLoadBalancerRuleCmd deleteGslbCmd)
focal_class.return: boolean
focal_class.signature: boolean deleteGlobalLoadBalancerRule(DeleteGlobalLoadBalancerRuleCmd deleteGslbCmd)
focal_class.class_method_signature: GlobalLoadBalancingRulesServiceImpl.revokeGslbRule(final long gslbRuleId, Account caller)
focal_class.full_signature: @DB private void revokeGslbRule(final long gslbRuleId, Account caller)
focal_class.identifier: revokeGslbRule
focal_class.modifiers: @DB private
focal_class.parameters: (final long gslbRuleId, Account caller)
focal_class.return: void
focal_class.signature: void revokeGslbRule(final long gslbRuleId, Account caller)
focal_class.class_method_signature: GlobalLoadBalancingRulesServiceImpl.updateGlobalLoadBalancerRule(UpdateGlobalLoadBalancerRuleCmd updateGslbCmd)
focal_class.full_signature: @Override public GlobalLoadBalancerRule updateGlobalLoadBalancerRule(UpdateGlobalLoadBalancerRuleCmd updateGslbCmd)
focal_class.identifier: updateGlobalLoadBalancerRule
focal_class.modifiers: @Override public
focal_class.parameters: (UpdateGlobalLoadBalancerRuleCmd updateGslbCmd)
focal_class.return: GlobalLoadBalancerRule
focal_class.signature: GlobalLoadBalancerRule updateGlobalLoadBalancerRule(UpdateGlobalLoadBalancerRuleCmd updateGslbCmd)
focal_class.class_method_signature: GlobalLoadBalancingRulesServiceImpl.listGlobalLoadBalancerRule(ListGlobalLoadBalancerRuleCmd listGslbCmd)
focal_class.full_signature: @Override public List<GlobalLoadBalancerRule> listGlobalLoadBalancerRule(ListGlobalLoadBalancerRuleCmd listGslbCmd)
focal_class.identifier: listGlobalLoadBalancerRule
focal_class.modifiers: @Override public
focal_class.parameters: (ListGlobalLoadBalancerRuleCmd listGslbCmd)
focal_class.return: List<GlobalLoadBalancerRule>
focal_class.signature: List<GlobalLoadBalancerRule> listGlobalLoadBalancerRule(ListGlobalLoadBalancerRuleCmd listGslbCmd)
focal_class.class_method_signature: GlobalLoadBalancingRulesServiceImpl.listSiteLoadBalancers(long gslbRuleId)
focal_class.full_signature: @Override public List<LoadBalancer> listSiteLoadBalancers(long gslbRuleId)
focal_class.identifier: listSiteLoadBalancers
focal_class.modifiers: @Override public
focal_class.parameters: (long gslbRuleId)
focal_class.return: List<LoadBalancer>
focal_class.signature: List<LoadBalancer> listSiteLoadBalancers(long gslbRuleId)
focal_class.class_method_signature: GlobalLoadBalancingRulesServiceImpl.applyGlobalLoadBalancerRuleConfig(long gslbRuleId, boolean revoke)
focal_class.full_signature: private boolean applyGlobalLoadBalancerRuleConfig(long gslbRuleId, boolean revoke)
focal_class.identifier: applyGlobalLoadBalancerRuleConfig
focal_class.modifiers: private
focal_class.parameters: (long gslbRuleId, boolean revoke)
focal_class.return: boolean
focal_class.signature: boolean applyGlobalLoadBalancerRuleConfig(long gslbRuleId, boolean revoke)
focal_class.class_method_signature: GlobalLoadBalancingRulesServiceImpl.revokeAllGslbRulesForAccount(com.cloud.user.Account caller, long accountId)
focal_class.full_signature: @Override public boolean revokeAllGslbRulesForAccount(com.cloud.user.Account caller, long accountId)
focal_class.identifier: revokeAllGslbRulesForAccount
focal_class.modifiers: @Override public
focal_class.parameters: (com.cloud.user.Account caller, long accountId)
focal_class.return: boolean
focal_class.signature: boolean revokeAllGslbRulesForAccount(com.cloud.user.Account caller, long accountId)
focal_class.class_method_signature: GlobalLoadBalancingRulesServiceImpl.checkGslbServiceEnabledInZone(long zoneId, long physicalNetworkId)
focal_class.full_signature: private boolean checkGslbServiceEnabledInZone(long zoneId, long physicalNetworkId)
focal_class.identifier: checkGslbServiceEnabledInZone
focal_class.modifiers: private
focal_class.parameters: (long zoneId, long physicalNetworkId)
focal_class.return: boolean
focal_class.signature: boolean checkGslbServiceEnabledInZone(long zoneId, long physicalNetworkId)
focal_class.class_method_signature: GlobalLoadBalancingRulesServiceImpl.lookupGslbServiceProvider()
focal_class.full_signature: protected GslbServiceProvider lookupGslbServiceProvider()
focal_class.identifier: lookupGslbServiceProvider
focal_class.modifiers: protected
focal_class.parameters: ()
focal_class.return: GslbServiceProvider
focal_class.signature: GslbServiceProvider lookupGslbServiceProvider()
focal_class.class_method_signature: GlobalLoadBalancingRulesServiceImpl.findById(long gslbRuleId)
focal_class.full_signature: @Override public GlobalLoadBalancerRule findById(long gslbRuleId)
focal_class.identifier: findById
focal_class.modifiers: @Override public
focal_class.parameters: (long gslbRuleId)
focal_class.return: GlobalLoadBalancerRule
focal_class.signature: GlobalLoadBalancerRule findById(long gslbRuleId)
focal_method.body: @Override
      @DB
      @ActionEvent(eventType = EventTypes.EVENT_GLOBAL_LOAD_BALANCER_CREATE, eventDescription = "creating global load " + "balancer rule", create = true)
      public GlobalLoadBalancerRule createGlobalLoadBalancerRule(CreateGlobalLoadBalancerRuleCmd newRule) {
  
          final Integer regionId = newRule.getRegionId();
          final String algorithm = newRule.getAlgorithm();
          final String stickyMethod = newRule.getStickyMethod();
          final String name = newRule.getName();
          final String description = newRule.getDescription();
          final String domainName = newRule.getServiceDomainName();
          final String serviceType = newRule.getServiceType();
  
          final Account gslbOwner = _accountMgr.getAccount(newRule.getEntityOwnerId());
  
          if (!GlobalLoadBalancerRule.Algorithm.isValidAlgorithm(algorithm)) {
              throw new InvalidParameterValueException("Invalid Algorithm: " + algorithm);
          }
  
          if (!GlobalLoadBalancerRule.Persistence.isValidPersistence(stickyMethod)) {
              throw new InvalidParameterValueException("Invalid persistence: " + stickyMethod);
          }
  
          if (!GlobalLoadBalancerRule.ServiceType.isValidServiceType(serviceType)) {
              throw new InvalidParameterValueException("Invalid service type: " + serviceType);
          }
  
          if (!NetUtils.verifyDomainName(domainName)) {
              throw new InvalidParameterValueException("Invalid domain name : " + domainName);
          }
  
          GlobalLoadBalancerRuleVO gslbRuleWithDomainName = _gslbRuleDao.findByDomainName(domainName);
          if (gslbRuleWithDomainName != null) {
              throw new InvalidParameterValueException("Domain name " + domainName + "is in use");
          }
  
          Region region = _regionDao.findById(regionId);
          if (region == null) {
              throw new InvalidParameterValueException("Invalid region ID: " + regionId);
          }
  
          String providerDnsName = _globalConfigDao.getValue(Config.CloudDnsName.key());
          if (!region.checkIfServiceEnabled(Region.Service.Gslb) || (providerDnsName == null)) {
              throw new CloudRuntimeException("GSLB service is not enabled in region : " + region.getName());
          }
  
          GlobalLoadBalancerRuleVO newGslbRule = Transaction.execute(new TransactionCallback<GlobalLoadBalancerRuleVO>() {
              @Override
              public GlobalLoadBalancerRuleVO doInTransaction(TransactionStatus status) {
                  GlobalLoadBalancerRuleVO newGslbRule =
                      new GlobalLoadBalancerRuleVO(name, description, domainName, algorithm, stickyMethod, serviceType, regionId, gslbOwner.getId(),
                          gslbOwner.getDomainId(), GlobalLoadBalancerRule.State.Staged);
                  _gslbRuleDao.persist(newGslbRule);
  
                  UsageEventUtils.publishUsageEvent(EventTypes.EVENT_GLOBAL_LOAD_BALANCER_CREATE, newGslbRule.getAccountId(), 0, newGslbRule.getId(), name,
                      GlobalLoadBalancerRule.class.getName(), newGslbRule.getUuid());
  
                  return newGslbRule;
              }
          });
  
          s_logger.debug("successfully created new global load balancer rule for the account " + gslbOwner.getId());
  
          return newGslbRule;
      }
focal_method.class_method_signature: GlobalLoadBalancingRulesServiceImpl.createGlobalLoadBalancerRule(CreateGlobalLoadBalancerRuleCmd newRule)
focal_method.full_signature: @Override @DB @ActionEvent(eventType = EventTypes.EVENT_GLOBAL_LOAD_BALANCER_CREATE, eventDescription = "creating global load " + "balancer rule", create = true) public GlobalLoadBalancerRule createGlobalLoadBalancerRule(CreateGlobalLoadBalancerRuleCmd newRule)
focal_method.identifier: createGlobalLoadBalancerRule
focal_method.invocations: getRegionId getAlgorithm getStickyMethod getName getDescription getServiceDomainName getServiceType getAccount getEntityOwnerId isValidAlgorithm isValidPersistence isValidServiceType verifyDomainName findByDomainName findById getValue key checkIfServiceEnabled getName execute getId getDomainId persist publishUsageEvent getAccountId getId getName getUuid debug getId
focal_method.modifiers: @Override @DB @ActionEvent(eventType = EventTypes.EVENT_GLOBAL_LOAD_BALANCER_CREATE, eventDescription = "creating global load " + "balancer rule", create = true) public
focal_method.parameters: (CreateGlobalLoadBalancerRuleCmd newRule)
focal_method.return: GlobalLoadBalancerRule
focal_method.signature: GlobalLoadBalancerRule createGlobalLoadBalancerRule(CreateGlobalLoadBalancerRuleCmd newRule)