You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by nc...@apache.org on 2017/07/13 19:14:22 UTC

[04/37] ambari git commit: AMBARI-21450. Initial cherry-picking for feature branch (ncole)

http://git-wip-us.apache.org/repos/asf/ambari/blob/48f7fb22/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog230Test.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog230Test.java b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog230Test.java
deleted file mode 100644
index 947ba2e..0000000
--- a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog230Test.java
+++ /dev/null
@@ -1,313 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.ambari.server.upgrade;
-
-import static org.easymock.EasyMock.*;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-import java.lang.reflect.Field;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import org.apache.ambari.server.configuration.Configuration;
-import org.apache.ambari.server.orm.DBAccessor;
-import org.apache.ambari.server.orm.dao.DaoUtils;
-import org.apache.ambari.server.orm.dao.PermissionDAO;
-import org.apache.ambari.server.orm.dao.ResourceTypeDAO;
-import org.apache.ambari.server.orm.dao.RoleAuthorizationDAO;
-import org.apache.ambari.server.orm.entities.PermissionEntity;
-import org.apache.ambari.server.orm.entities.ResourceTypeEntity;
-import org.apache.ambari.server.orm.entities.RoleAuthorizationEntity;
-import org.apache.ambari.server.state.stack.OsFamily;
-import org.easymock.Capture;
-import org.easymock.EasyMock;
-import org.easymock.EasyMockSupport;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-
-import com.google.inject.Binder;
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-import com.google.inject.Module;
-
-import javax.persistence.EntityManager;
-
-/**
- * UpgradeCatalog230 tests.
- */
-public class UpgradeCatalog230Test extends EasyMockSupport {
-
-  private Injector injector;
-
-  @Before
-  public void setup() {
-    resetAll();
-
-    Module module = new Module() {
-      @Override
-      public void configure(Binder binder) {
-        binder.bind(DBAccessor.class).toInstance(createMock(DBAccessor.class));
-        binder.bind(OsFamily.class).toInstance(createNiceMock(OsFamily.class));
-        binder.bind(EntityManager.class).toInstance(createNiceMock(EntityManager.class));
-        binder.bind(DaoUtils.class).toInstance(createNiceMock(DaoUtils.class));
-        binder.bind(PermissionDAO.class).toInstance(createMock(PermissionDAO.class));
-        binder.bind(ResourceTypeDAO.class).toInstance(createMock(ResourceTypeDAO.class));
-        binder.bind(RoleAuthorizationDAO.class).toInstance(createMock(RoleAuthorizationDAO.class));
-      }
-    };
-
-    injector = Guice.createInjector(module);
-  }
-
-  @Test
-  public void testExecuteDDLUpdates() throws Exception {
-
-    final DBAccessor dbAccessor = injector.getInstance(DBAccessor.class);
-
-    Configuration configuration = createNiceMock(Configuration.class);
-    expect(configuration.getDatabaseUrl()).andReturn(Configuration.JDBC_IN_MEMORY_URL).anyTimes();
-
-    Capture<DBAccessor.DBColumnInfo> columnCapture = EasyMock.newCapture();
-    Capture<DBAccessor.DBColumnInfo> columnCaptureUserType = EasyMock.newCapture();
-    Capture<DBAccessor.DBColumnInfo> columnCapturePermissionLabel = EasyMock.newCapture();
-    Capture<List<DBAccessor.DBColumnInfo>> columnsCaptureRoleAuthorization = EasyMock.newCapture();
-    Capture<List<DBAccessor.DBColumnInfo>> columnsCapturePermissionRoleAuthorization = EasyMock.newCapture();
-
-    dbAccessor.alterColumn(eq("host_role_command"), capture(columnCapture));
-    expectLastCall();
-
-    dbAccessor.executeQuery("UPDATE users SET user_type='LDAP' WHERE ldap_user=1");
-    expectLastCall();
-
-    dbAccessor.addUniqueConstraint("users", "UNQ_users_0", "user_name", "user_type");
-    expectLastCall();
-
-    dbAccessor.addColumn(eq("users"), capture(columnCaptureUserType));
-    expectLastCall();
-
-    dbAccessor.addColumn(eq("adminpermission"), capture(columnCapturePermissionLabel));
-    expectLastCall();
-
-    dbAccessor.createTable(eq("roleauthorization"), capture(columnsCaptureRoleAuthorization), eq("authorization_id"));
-    expectLastCall();
-
-    dbAccessor.createTable(eq("permission_roleauthorization"), capture(columnsCapturePermissionRoleAuthorization), eq("permission_id"), eq("authorization_id"));
-    expectLastCall();
-
-    dbAccessor.addFKConstraint("permission_roleauthorization", "FK_permission_roleauth_pid",
-        "permission_id", "adminpermission", "permission_id", false);
-    expectLastCall();
-
-    dbAccessor.addFKConstraint("permission_roleauthorization", "FK_permission_roleauth_aid",
-        "authorization_id", "roleauthorization", "authorization_id", false);
-    expectLastCall();
-
-    replayAll();
-    AbstractUpgradeCatalog upgradeCatalog = injector.getInstance(UpgradeCatalog230.class);
-    Class<?> c = AbstractUpgradeCatalog.class;
-    Field f = c.getDeclaredField("configuration");
-    f.setAccessible(true);
-    f.set(upgradeCatalog, configuration);
-
-    upgradeCatalog.executeDDLUpdates();
-    verifyAll();
-
-    assertTrue(columnCapture.getValue().isNullable());
-
-    assertEquals(columnCaptureUserType.getValue().getName(), "user_type");
-    assertEquals(columnCaptureUserType.getValue().getType(), String.class);
-    assertEquals(columnCaptureUserType.getValue().getLength(), null);
-    assertEquals(columnCaptureUserType.getValue().getDefaultValue(), "LOCAL");
-    assertEquals(columnCaptureUserType.getValue().isNullable(), true);
-
-    assertEquals(columnCapturePermissionLabel.getValue().getName(), "permission_label");
-    assertEquals(columnCapturePermissionLabel.getValue().getType(), String.class);
-    assertEquals(columnCapturePermissionLabel.getValue().getLength(), Integer.valueOf(255));
-    assertEquals(columnCapturePermissionLabel.getValue().isNullable(), true);
-
-    List<DBAccessor.DBColumnInfo> columnInfos;
-    DBAccessor.DBColumnInfo columnInfo;
-
-    // Verify roleauthorization table
-    columnInfos = columnsCaptureRoleAuthorization.getValue();
-    assertEquals(2, columnInfos.size());
-
-    columnInfo = columnInfos.get(0);
-    assertEquals("authorization_id", columnInfo.getName());
-    assertEquals(String.class, columnInfo.getType());
-    assertEquals(Integer.valueOf(100), columnInfo.getLength());
-
-    columnInfo = columnInfos.get(1);
-    assertEquals("authorization_name", columnInfo.getName());
-    assertEquals(String.class, columnInfo.getType());
-    assertEquals(Integer.valueOf(255), columnInfo.getLength());
-
-    // Verify permission_roleauthorization table
-    columnInfos = columnsCapturePermissionRoleAuthorization.getValue();
-    assertEquals(2, columnInfos.size());
-
-    columnInfo = columnInfos.get(0);
-    assertEquals("permission_id", columnInfo.getName());
-    assertEquals(Long.class, columnInfo.getType());
-    assertEquals(null, columnInfo.getLength());
-
-    columnInfo = columnInfos.get(1);
-    assertEquals("authorization_id", columnInfo.getName());
-    assertEquals(String.class, columnInfo.getType());
-    assertEquals(Integer.valueOf(100), columnInfo.getLength());
-  }
-
-  @Test
-  public void testExecuteDMLUpdates() throws Exception {
-    final DBAccessor dbAccessor = injector.getInstance(DBAccessor.class);
-    UpgradeCatalog230 upgradeCatalog = injector.getInstance(UpgradeCatalog230.class);
-
-    final ResourceTypeEntity ambariResourceTypeEntity = createMock(ResourceTypeEntity.class);
-    expect(ambariResourceTypeEntity.getId()).andReturn(1).anyTimes();
-
-    final ResourceTypeEntity clusterResourceTypeEntity = createMock(ResourceTypeEntity.class);
-    expect(clusterResourceTypeEntity.getId()).andReturn(2).anyTimes();
-
-    final ResourceTypeEntity viewResourceTypeEntity = createMock(ResourceTypeEntity.class);
-    expect(viewResourceTypeEntity.getId()).andReturn(3).anyTimes();
-
-    final ResourceTypeDAO resourceTypeDAO = injector.getInstance(ResourceTypeDAO.class);
-    expect(resourceTypeDAO.findByName("AMBARI")).andReturn(ambariResourceTypeEntity).anyTimes();
-    expect(resourceTypeDAO.findByName("CLUSTER")).andReturn(clusterResourceTypeEntity).anyTimes();
-    expect(resourceTypeDAO.findByName("VIEW")).andReturn(viewResourceTypeEntity).anyTimes();
-
-    final PermissionEntity viewUserPermissionEntity = createMock(PermissionEntity.class);
-    expect(viewUserPermissionEntity.getId()).andReturn(1).anyTimes();
-
-    final PermissionEntity ambariAdministratorPermissionEntity = createMock(PermissionEntity.class);
-    expect(ambariAdministratorPermissionEntity.getId()).andReturn(2).anyTimes();
-
-    final PermissionEntity clusterUserPermissionEntity = createMock(PermissionEntity.class);
-    expect(clusterUserPermissionEntity.getId()).andReturn(3).anyTimes();
-
-    final PermissionEntity clusterOperatorPermissionEntity = createMock(PermissionEntity.class);
-    expect(clusterOperatorPermissionEntity.getId()).andReturn(4).anyTimes();
-
-    final PermissionEntity clusterAdministratorPermissionEntity = createMock(PermissionEntity.class);
-    expect(clusterAdministratorPermissionEntity.getId()).andReturn(5).anyTimes();
-
-    final PermissionEntity serviceAdministratorPermissionEntity = createMock(PermissionEntity.class);
-    expect(serviceAdministratorPermissionEntity.getId()).andReturn(6).anyTimes();
-
-    final PermissionEntity serviceOperatorPermissionEntity = createMock(PermissionEntity.class);
-    expect(serviceOperatorPermissionEntity.getId()).andReturn(7).anyTimes();
-
-    final PermissionDAO permissionDAO = injector.getInstance(PermissionDAO.class);
-    expect(permissionDAO.findPermissionByNameAndType("VIEW.USER", viewResourceTypeEntity))
-        .andReturn(viewUserPermissionEntity)
-        .anyTimes();
-    expect(permissionDAO.findPermissionByNameAndType("AMBARI.ADMINISTRATOR", ambariResourceTypeEntity))
-        .andReturn(ambariAdministratorPermissionEntity)
-        .anyTimes();
-    expect(permissionDAO.findPermissionByNameAndType("CLUSTER.USER", clusterResourceTypeEntity))
-        .andReturn(clusterUserPermissionEntity)
-        .anyTimes();
-    expect(permissionDAO.findPermissionByNameAndType("CLUSTER.OPERATOR", clusterResourceTypeEntity))
-        .andReturn(clusterOperatorPermissionEntity)
-        .anyTimes();
-    expect(permissionDAO.findPermissionByNameAndType("CLUSTER.ADMINISTRATOR", clusterResourceTypeEntity))
-        .andReturn(clusterAdministratorPermissionEntity)
-        .anyTimes();
-    expect(permissionDAO.findPermissionByNameAndType("SERVICE.ADMINISTRATOR", clusterResourceTypeEntity))
-        .andReturn(serviceAdministratorPermissionEntity)
-        .anyTimes();
-    expect(permissionDAO.findPermissionByNameAndType("SERVICE.OPERATOR", clusterResourceTypeEntity))
-        .andReturn(serviceOperatorPermissionEntity)
-        .anyTimes();
-
-    String updateQueryPattern;
-
-    // Set permission labels
-    updateQueryPattern = "UPDATE adminpermission SET permission_label='%s' WHERE permission_id=%d";
-    expect(dbAccessor.executeUpdate(String.format(updateQueryPattern,
-        "Ambari Administrator", PermissionEntity.AMBARI_ADMINISTRATOR_PERMISSION)))
-        .andReturn(1).once();
-    expect(dbAccessor.executeUpdate(String.format(updateQueryPattern,
-        "Cluster User", PermissionEntity.CLUSTER_USER_PERMISSION)))
-        .andReturn(1).once();
-    expect(dbAccessor.executeUpdate(String.format(updateQueryPattern,
-        "Cluster Administrator", PermissionEntity.CLUSTER_ADMINISTRATOR_PERMISSION)))
-        .andReturn(1).once();
-    expect(dbAccessor.executeUpdate(String.format(updateQueryPattern,
-        "View User", PermissionEntity.VIEW_USER_PERMISSION)))
-        .andReturn(1).once();
-
-    // Update permissions names
-    updateQueryPattern = "UPDATE adminpermission SET permission_name='%s' WHERE permission_id=%d";
-    expect(dbAccessor.executeUpdate(String.format(updateQueryPattern,
-        PermissionEntity.AMBARI_ADMINISTRATOR_PERMISSION_NAME, PermissionEntity.AMBARI_ADMINISTRATOR_PERMISSION)))
-        .andReturn(1).once();
-    expect(dbAccessor.executeUpdate(String.format(updateQueryPattern,
-        PermissionEntity.CLUSTER_USER_PERMISSION_NAME, PermissionEntity.CLUSTER_USER_PERMISSION)))
-        .andReturn(1).once();
-    expect(dbAccessor.executeUpdate(String.format(updateQueryPattern,
-        PermissionEntity.CLUSTER_ADMINISTRATOR_PERMISSION_NAME, PermissionEntity.CLUSTER_ADMINISTRATOR_PERMISSION)))
-        .andReturn(1).once();
-    expect(dbAccessor.executeUpdate(String.format(updateQueryPattern,
-        PermissionEntity.VIEW_USER_PERMISSION_NAME, PermissionEntity.VIEW_USER_PERMISSION)))
-        .andReturn(1).once();
-
-    RoleAuthorizationEntity roleAuthorization = createMock(RoleAuthorizationEntity.class);
-
-    RoleAuthorizationDAO roleAuthorizationDAO = injector.getInstance(RoleAuthorizationDAO.class);
-    expect(roleAuthorizationDAO.findById(anyString())).andReturn(roleAuthorization).anyTimes();
-
-    Collection<RoleAuthorizationEntity> authorizations = new ArrayList<RoleAuthorizationEntity>();
-
-    expect(ambariAdministratorPermissionEntity.getAuthorizations()).andReturn(authorizations).atLeastOnce();
-    expect(clusterAdministratorPermissionEntity.getAuthorizations()).andReturn(authorizations).atLeastOnce();
-    expect(clusterOperatorPermissionEntity.getAuthorizations()).andReturn(authorizations).atLeastOnce();
-    expect(serviceAdministratorPermissionEntity.getAuthorizations()).andReturn(authorizations).atLeastOnce();
-    expect(serviceOperatorPermissionEntity.getAuthorizations()).andReturn(authorizations).atLeastOnce();
-    expect(clusterUserPermissionEntity.getAuthorizations()).andReturn(authorizations).atLeastOnce();
-    expect(viewUserPermissionEntity.getAuthorizations()).andReturn(authorizations).atLeastOnce();
-
-    expect(permissionDAO.merge(ambariAdministratorPermissionEntity)).andReturn(ambariAdministratorPermissionEntity).atLeastOnce();
-    expect(permissionDAO.merge(clusterAdministratorPermissionEntity)).andReturn(clusterAdministratorPermissionEntity).atLeastOnce();
-    expect(permissionDAO.merge(clusterOperatorPermissionEntity)).andReturn(clusterOperatorPermissionEntity).atLeastOnce();
-    expect(permissionDAO.merge(serviceAdministratorPermissionEntity)).andReturn(serviceAdministratorPermissionEntity).atLeastOnce();
-    expect(permissionDAO.merge(serviceOperatorPermissionEntity)).andReturn(serviceOperatorPermissionEntity).atLeastOnce();
-    expect(permissionDAO.merge(clusterUserPermissionEntity)).andReturn(clusterUserPermissionEntity).atLeastOnce();
-    expect(permissionDAO.merge(viewUserPermissionEntity)).andReturn(viewUserPermissionEntity).atLeastOnce();
-
-    replayAll();
-    upgradeCatalog.executeDMLUpdates();
-    verifyAll();
-  }
-
-  @Test
-  public void testGetTargetVersion() throws Exception {
-    UpgradeCatalog upgradeCatalog = injector.getInstance(UpgradeCatalog230.class);
-    Assert.assertEquals("2.3.0", upgradeCatalog.getTargetVersion());
-  }
-
-  @Test
-  public void testGetSourceVersion() {
-    UpgradeCatalog upgradeCatalog = injector.getInstance(UpgradeCatalog230.class);
-    Assert.assertEquals("2.2.1", upgradeCatalog.getSourceVersion());
-  }
-
-}