Package org.platformlayer.service.database.ops

Source Code of org.platformlayer.service.database.ops.DatabaseController

package org.platformlayer.service.database.ops;

import java.util.Map;

import javax.inject.Inject;

import org.platformlayer.InetAddressChooser;
import org.platformlayer.core.model.ItemBase;
import org.platformlayer.core.model.PlatformLayerKey;
import org.platformlayer.ops.Bound;
import org.platformlayer.ops.Handler;
import org.platformlayer.ops.OpsException;
import org.platformlayer.ops.databases.DatabaseServer;
import org.platformlayer.ops.helpers.InstanceHelpers;
import org.platformlayer.ops.helpers.ProviderHelper;
import org.platformlayer.ops.machines.PlatformLayerHelpers;
import org.platformlayer.ops.postgres.CreateDatabase;
import org.platformlayer.ops.postgres.CreateUser;
import org.platformlayer.ops.postgres.DatabaseConnection;
import org.platformlayer.ops.tree.OpsTreeBase;
import org.platformlayer.ops.uses.LinkConsumer;
import org.platformlayer.ops.uses.LinkTarget;
import org.platformlayer.service.database.model.Database;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class DatabaseController extends OpsTreeBase implements LinkTarget {
  private static final Logger log = LoggerFactory.getLogger(DatabaseController.class);

  @Bound
  Database model;

  @Inject
  InstanceHelpers instanceHelpers;

  @Inject
  PlatformLayerHelpers platformLayer;

  @Inject
  ProviderHelper providers;

  @Handler
  public void handler() throws OpsException {
  }

  @Override
  protected void addChildren() throws OpsException {
    DatabaseConnection dbConnection;
    {
      dbConnection = addChild(DatabaseConnection.build(model.server));

      dbConnection.databaseName = model.databaseName;
    }

    {
      CreateDatabase db = dbConnection.addChild(CreateDatabase.class);
      db.databaseName = model.databaseName;
    }

    {
      CreateUser db = dbConnection.addChild(CreateUser.class);
      db.grantDatabaseName = model.databaseName;
      db.databaseUser = model.username;
      db.databasePassword = model.password;
    }
  }

  @Override
  public Map<String, String> buildLinkTargetConfiguration(LinkConsumer consumer) throws OpsException {
    ItemBase serverItem = platformLayer.getItem(model.server);
    DatabaseServer databaseServer = providers.toInterface(serverItem, DatabaseServer.class);

    InetAddressChooser inetAddressChooser = consumer.getInetAddressChooser();

    return databaseServer.buildTargetConfiguration(model.username, model.password, model.databaseName,
        inetAddressChooser);
  }

  @Override
  public PlatformLayerKey getCaForClientKey() {
    return null;
  }
}
TOP

Related Classes of org.platformlayer.service.database.ops.DatabaseController

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.