Beispiel #1
0
  public void testKeepsExistingUpdatesGoing() throws Exception {
    final MockDomainGroup domainGroup =
        new MockDomainGroup("myDomainGroup") {
          @Override
          public DomainGroupVersion getLatestVersion() {
            return new MockDomainGroupVersion(null, null, 2);
          }
        };

    final MockRingGroup mockRingGroupConf =
        new MockRingGroup(null, "myRingGroup", Collections.EMPTY_SET) {
          @Override
          public DomainGroup getDomainGroup() {
            return domainGroup;
          }

          @Override
          public Integer getCurrentVersion() {
            return 1;
          }

          @Override
          public boolean isUpdating() {
            return true;
          }
        };

    DataDeployerConfigurator mockConfig =
        new DataDeployerConfigurator() {
          @Override
          public long getSleepInterval() {
            return 100;
          }

          @Override
          public String getRingGroupName() {
            return "myRingGroup";
          }

          @Override
          public Coordinator getCoordinator() {
            return new MockCoordinator() {
              @Override
              public RingGroup getRingGroupConfig(String ringGroupName) {
                return mockRingGroupConf;
              }
            };
          }
        };
    MockRingGroupUpdateTransitionFunction mockTransFunc =
        new MockRingGroupUpdateTransitionFunction();
    DataDeployer daemon = new DataDeployer(mockConfig, mockTransFunc);
    daemon.processUpdates(mockRingGroupConf, domainGroup);

    assertEquals(mockRingGroupConf, mockTransFunc.calledWithRingGroup);
  }
Beispiel #2
0
  public void testTriggersUpdates() throws Exception {
    final MockDomainGroup domainGroup =
        new MockDomainGroup("myDomainGroup") {
          @Override
          public DomainGroupVersion getLatestVersion() {
            return new MockDomainGroupVersion(null, null, 2);
          }
        };

    final MockHostDomainPartition mockHostDomainPartitionConfig =
        new MockHostDomainPartition(0, 0, 1);

    final MockHost mockHostConfig =
        new MockHost(new PartDaemonAddress("locahost", 12345)) {
          @Override
          public Set<HostDomain> getAssignedDomains() throws IOException {
            return Collections.singleton(
                (HostDomain)
                    new AbstractHostDomain() {
                      @Override
                      public HostDomainPartition addPartition(int partNum, int initialVersion) {
                        return null;
                      }

                      @Override
                      public int getDomainId() {
                        return 0;
                      }

                      @Override
                      public Set<HostDomainPartition> getPartitions() {
                        return Collections.singleton(
                            (HostDomainPartition) mockHostDomainPartitionConfig);
                      }
                    });
          }
        };

    final MockRing mockRingConfig =
        new MockRing(null, null, 1, null) {
          @Override
          public Set<Host> getHosts() {
            return Collections.singleton((Host) mockHostConfig);
          }
        };

    final MockRingGroup mockRingGroupConf =
        new MockRingGroup(null, "myRingGroup", Collections.EMPTY_SET) {
          @Override
          public DomainGroup getDomainGroup() {
            return domainGroup;
          }

          @Override
          public Integer getCurrentVersion() {
            return 1;
          }

          @Override
          public Set<Ring> getRings() {
            return Collections.singleton((Ring) mockRingConfig);
          }
        };

    DataDeployerConfigurator mockConfig =
        new DataDeployerConfigurator() {
          @Override
          public long getSleepInterval() {
            return 100;
          }

          @Override
          public String getRingGroupName() {
            return "myRingGroup";
          }

          @Override
          public Coordinator getCoordinator() {
            return new MockCoordinator() {
              @Override
              public RingGroup getRingGroupConfig(String ringGroupName) {
                return mockRingGroupConf;
              }
            };
          }
        };
    MockRingGroupUpdateTransitionFunction mockTransFunc =
        new MockRingGroupUpdateTransitionFunction();
    DataDeployer daemon = new DataDeployer(mockConfig, mockTransFunc);
    daemon.processUpdates(mockRingGroupConf, domainGroup);

    assertNull(mockTransFunc.calledWithRingGroup);
    assertEquals(2, mockRingGroupConf.updateToVersion);
    assertEquals(Integer.valueOf(2), mockRingConfig.updatingToVersion);
    assertEquals(2, mockHostDomainPartitionConfig.updatingToVersion);
  }