public class org.finos.legend.engine.language.snowflakeApp.api.SnowflakeAppDeploymentTool extends java.lang.Object
{
private static final org.slf4j.Logger LOGGER;
private final org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector connectionManager;
public void <init>(org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector)
{
org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector v;
org.finos.legend.engine.language.snowflakeApp.api.SnowflakeAppDeploymentTool v;
v := @this: org.finos.legend.engine.language.snowflakeApp.api.SnowflakeAppDeploymentTool;
v := @parameter: org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.finos.legend.engine.language.snowflakeApp.api.SnowflakeAppDeploymentTool: org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector connectionManager> = v;
return;
}
public void deploy(org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_specification_SnowflakeDatasourceSpecification, org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_authentication_SnowflakePublicAuthenticationStrategy, java.lang.String) throws java.lang.Exception
{
java.lang.Throwable v;
java.sql.Connection v;
org.slf4j.Logger v, v, v;
org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_specification_SnowflakeDatasourceSpecification v;
org.finos.legend.engine.language.snowflakeApp.api.SnowflakeAppDeploymentTool v;
java.lang.Exception v;
org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_authentication_SnowflakePublicAuthenticationStrategy v;
java.lang.String v;
v := @this: org.finos.legend.engine.language.snowflakeApp.api.SnowflakeAppDeploymentTool;
v := @parameter: org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_specification_SnowflakeDatasourceSpecification;
v := @parameter: org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_authentication_SnowflakePublicAuthenticationStrategy;
v := @parameter: java.lang.String;
v = <org.finos.legend.engine.language.snowflakeApp.api.SnowflakeAppDeploymentTool: org.slf4j.Logger LOGGER>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("Starting deployment");
label:
v = virtualinvoke v.<org.finos.legend.engine.language.snowflakeApp.api.SnowflakeAppDeploymentTool: java.sql.Connection getJdbcConnection(org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_specification_SnowflakeDatasourceSpecification,org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_authentication_SnowflakePublicAuthenticationStrategy)>(v, v);
label:
interfaceinvoke v.<java.sql.Connection: void setAutoCommit(boolean)>(0);
virtualinvoke v.<org.finos.legend.engine.language.snowflakeApp.api.SnowflakeAppDeploymentTool: void deployImpl(java.sql.Connection,java.lang.String)>(v, v);
interfaceinvoke v.<java.sql.Connection: void commit()>();
v = <org.finos.legend.engine.language.snowflakeApp.api.SnowflakeAppDeploymentTool: org.slf4j.Logger LOGGER>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("Completed deployment successfully");
label:
interfaceinvoke v.<java.sql.Connection: void close()>();
goto label;
label:
v := @caughtexception;
throw v;
label:
v := @caughtexception;
v = <org.finos.legend.engine.language.snowflakeApp.api.SnowflakeAppDeploymentTool: org.slf4j.Logger LOGGER>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("Completed deployment with error");
throw v;
label:
return;
catch java.lang.Throwable from label to label with label;
catch java.lang.Exception from label to label with label;
}
public org.eclipse.collections.api.list.ImmutableList getDeployed(org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_specification_SnowflakeDatasourceSpecification, org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_authentication_SnowflakePublicAuthenticationStrategy) throws java.lang.Exception
{
java.lang.Throwable v;
java.sql.Connection v;
org.slf4j.Logger v, v, v;
org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_specification_SnowflakeDatasourceSpecification v;
org.finos.legend.engine.language.snowflakeApp.api.SnowflakeAppDeploymentTool v;
java.lang.Exception v;
org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_authentication_SnowflakePublicAuthenticationStrategy v;
org.eclipse.collections.api.list.ImmutableList v;
v := @this: org.finos.legend.engine.language.snowflakeApp.api.SnowflakeAppDeploymentTool;
v := @parameter: org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_specification_SnowflakeDatasourceSpecification;
v := @parameter: org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_authentication_SnowflakePublicAuthenticationStrategy;
v = <org.finos.legend.engine.language.snowflakeApp.api.SnowflakeAppDeploymentTool: org.slf4j.Logger LOGGER>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("Querying deployment");
label:
v = virtualinvoke v.<org.finos.legend.engine.language.snowflakeApp.api.SnowflakeAppDeploymentTool: java.sql.Connection getJdbcConnection(org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_specification_SnowflakeDatasourceSpecification,org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_authentication_SnowflakePublicAuthenticationStrategy)>(v, v);
label:
v = virtualinvoke v.<org.finos.legend.engine.language.snowflakeApp.api.SnowflakeAppDeploymentTool: org.eclipse.collections.api.list.ImmutableList getDeployedImpl(java.sql.Connection)>(v);
v = <org.finos.legend.engine.language.snowflakeApp.api.SnowflakeAppDeploymentTool: org.slf4j.Logger LOGGER>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("Completed querying deployments successfully");
label:
if v == null goto label;
interfaceinvoke v.<java.sql.Connection: void close()>();
goto label;
label:
v := @caughtexception;
throw v;
label:
v := @caughtexception;
v = <org.finos.legend.engine.language.snowflakeApp.api.SnowflakeAppDeploymentTool: org.slf4j.Logger LOGGER>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>("Completed querying deployments with error");
throw v;
label:
return v;
catch java.lang.Throwable from label to label with label;
catch java.lang.Exception from label to label with label;
}
public java.sql.Connection getJdbcConnection(org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_specification_SnowflakeDatasourceSpecification, org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_authentication_SnowflakePublicAuthenticationStrategy)
{
org.finos.legend.engine.shared.core.identity.Identity v;
java.sql.Connection v;
org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.DatabaseType v;
org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_specification_SnowflakeDatasourceSpecification v;
org.finos.legend.engine.language.snowflakeApp.api.SnowflakeAppDeploymentTool v;
org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector v;
org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_authentication_SnowflakePublicAuthenticationStrategy v;
org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.RelationalDatabaseConnection v;
v := @this: org.finos.legend.engine.language.snowflakeApp.api.SnowflakeAppDeploymentTool;
v := @parameter: org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_specification_SnowflakeDatasourceSpecification;
v := @parameter: org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_authentication_SnowflakePublicAuthenticationStrategy;
v = specialinvoke v.<org.finos.legend.engine.language.snowflakeApp.api.SnowflakeAppDeploymentTool: org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.RelationalDatabaseConnection adaptConnection(org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_specification_SnowflakeDatasourceSpecification,org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_authentication_SnowflakePublicAuthenticationStrategy)>(v, v);
v = <org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.DatabaseType: org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.DatabaseType Snowflake>;
v.<org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.RelationalDatabaseConnection: org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.DatabaseType type> = v;
v = new org.finos.legend.engine.shared.core.identity.Identity;
specialinvoke v.<org.finos.legend.engine.shared.core.identity.Identity: void <init>(java.lang.String)>("unknown");
v = v.<org.finos.legend.engine.language.snowflakeApp.api.SnowflakeAppDeploymentTool: org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector connectionManager>;
v = virtualinvoke v.<org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector: java.sql.Connection getDatabaseConnection(org.finos.legend.engine.shared.core.identity.Identity,org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.DatabaseConnection)>(v, v);
return v;
}
public void deployImpl(java.sql.Connection, java.lang.String) throws java.lang.Exception
{
java.lang.Object[] v, v;
java.sql.Connection v;
long v;
org.finos.legend.engine.language.snowflakeApp.api.SnowflakeAppDeploymentTool v;
java.lang.Long v;
java.sql.Statement v;
java.lang.String v, v, v, v;
v := @this: org.finos.legend.engine.language.snowflakeApp.api.SnowflakeAppDeploymentTool;
v := @parameter: java.sql.Connection;
v := @parameter: java.lang.String;
v = interfaceinvoke v.<java.sql.Connection: java.sql.Statement createStatement()>();
v = virtualinvoke v.<org.finos.legend.engine.language.snowflakeApp.api.SnowflakeAppDeploymentTool: java.lang.String getDeploymentTableName(java.sql.Connection)>(v);
v = newarray (java.lang.Object)[1];
v[0] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("create table %s (id INTEGER, message VARCHAR(1000)) if not exists", v);
interfaceinvoke v.<java.sql.Statement: boolean execute(java.lang.String)>(v);
v = newarray (java.lang.Object)[3];
v[0] = v;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v[1] = v;
v[2] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("insert into %s(id, message) values(%d, \'%s\')", v);
interfaceinvoke v.<java.sql.Statement: boolean execute(java.lang.String)>(v);
return;
}
public java.lang.String getDeploymentTableName(java.sql.Connection) throws java.sql.SQLException
{
java.lang.Object[] v;
java.sql.Connection v;
java.lang.String v, v;
org.finos.legend.engine.language.snowflakeApp.api.SnowflakeAppDeploymentTool v;
v := @this: org.finos.legend.engine.language.snowflakeApp.api.SnowflakeAppDeploymentTool;
v := @parameter: java.sql.Connection;
v = interfaceinvoke v.<java.sql.Connection: java.lang.String getCatalog()>();
v = newarray (java.lang.Object)[2];
v[0] = v;
v[1] = "NATIVE_APP";
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("%s.%s.LEGEND_SNOWFLAKE_APP_DEPLOYMENT", v);
return v;
}
public org.eclipse.collections.api.list.ImmutableList getDeployedImpl(java.sql.Connection) throws java.lang.Exception
{
java.lang.Object[] v;
java.sql.Connection v;
long v;
org.eclipse.collections.api.factory.list.MutableListFactory v;
org.finos.legend.engine.language.snowflakeApp.api.SnowflakeAppDeploymentTool v;
org.eclipse.collections.api.list.MutableList v;
org.finos.legend.engine.language.snowflakeApp.api.SnowflakeAppDeploymentTool$DeploymentInfo v;
java.lang.Long v;
java.sql.ResultSet v;
java.util.Map v, v;
java.lang.String v, v, v;
boolean v;
org.eclipse.collections.api.list.ImmutableList v;
java.sql.Statement v;
v := @this: org.finos.legend.engine.language.snowflakeApp.api.SnowflakeAppDeploymentTool;
v := @parameter: java.sql.Connection;
v = <org.eclipse.collections.impl.factory.Lists: org.eclipse.collections.api.factory.list.MutableListFactory mutable>;
v = interfaceinvoke v.<org.eclipse.collections.api.factory.list.MutableListFactory: org.eclipse.collections.api.list.MutableList empty()>();
v = virtualinvoke v.<org.finos.legend.engine.language.snowflakeApp.api.SnowflakeAppDeploymentTool: java.lang.String getDeploymentTableName(java.sql.Connection)>(v);
v = newarray (java.lang.Object)[1];
v[0] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("select * from %s order by id", v);
v = interfaceinvoke v.<java.sql.Connection: java.sql.Statement createStatement()>();
v = interfaceinvoke v.<java.sql.Statement: java.sql.ResultSet executeQuery(java.lang.String)>(v);
label:
v = interfaceinvoke v.<java.sql.ResultSet: boolean next()>();
if v == 0 goto label;
v = new org.finos.legend.engine.language.snowflakeApp.api.SnowflakeAppDeploymentTool$DeploymentInfo;
specialinvoke v.<org.finos.legend.engine.language.snowflakeApp.api.SnowflakeAppDeploymentTool$DeploymentInfo: void <init>()>();
v = v.<org.finos.legend.engine.language.snowflakeApp.api.SnowflakeAppDeploymentTool$DeploymentInfo: java.util.Map attributes>;
v = interfaceinvoke v.<java.sql.ResultSet: long getLong(int)>(1);
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("id", v);
v = v.<org.finos.legend.engine.language.snowflakeApp.api.SnowflakeAppDeploymentTool$DeploymentInfo: java.util.Map attributes>;
v = interfaceinvoke v.<java.sql.ResultSet: java.lang.String getString(int)>(2);
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("message", v);
interfaceinvoke v.<org.eclipse.collections.api.list.MutableList: boolean add(java.lang.Object)>(v);
goto label;
label:
v = interfaceinvoke v.<org.eclipse.collections.api.list.MutableList: org.eclipse.collections.api.list.ImmutableList toImmutable()>();
return v;
}
private org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.RelationalDatabaseConnection adaptConnection(org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_specification_SnowflakeDatasourceSpecification, org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_authentication_SnowflakePublicAuthenticationStrategy)
{
org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.DatabaseType v;
org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_specification_SnowflakeDatasourceSpecification v;
org.finos.legend.engine.language.snowflakeApp.api.SnowflakeAppDeploymentTool v;
org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_authentication_SnowflakePublicAuthenticationStrategy v;
java.lang.String v, v, v, v, v, v, v, v, v;
org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.specification.SnowflakeDatasourceSpecification v;
org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.authentication.SnowflakePublicAuthenticationStrategy v;
org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.RelationalDatabaseConnection v;
v := @this: org.finos.legend.engine.language.snowflakeApp.api.SnowflakeAppDeploymentTool;
v := @parameter: org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_specification_SnowflakeDatasourceSpecification;
v := @parameter: org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_authentication_SnowflakePublicAuthenticationStrategy;
v = new org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.RelationalDatabaseConnection;
specialinvoke v.<org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.RelationalDatabaseConnection: void <init>()>();
v = new org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.specification.SnowflakeDatasourceSpecification;
specialinvoke v.<org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.specification.SnowflakeDatasourceSpecification: void <init>()>();
v = interfaceinvoke v.<org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_specification_SnowflakeDatasourceSpecification: java.lang.String _accountName()>();
v.<org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.specification.SnowflakeDatasourceSpecification: java.lang.String accountName> = v;
v = interfaceinvoke v.<org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_specification_SnowflakeDatasourceSpecification: java.lang.String _databaseName()>();
v.<org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.specification.SnowflakeDatasourceSpecification: java.lang.String databaseName> = v;
v = interfaceinvoke v.<org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_specification_SnowflakeDatasourceSpecification: java.lang.String _role()>();
v.<org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.specification.SnowflakeDatasourceSpecification: java.lang.String role> = v;
v = interfaceinvoke v.<org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_specification_SnowflakeDatasourceSpecification: java.lang.String _warehouseName()>();
v.<org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.specification.SnowflakeDatasourceSpecification: java.lang.String warehouseName> = v;
v = interfaceinvoke v.<org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_specification_SnowflakeDatasourceSpecification: java.lang.String _region()>();
v.<org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.specification.SnowflakeDatasourceSpecification: java.lang.String region> = v;
v = interfaceinvoke v.<org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_specification_SnowflakeDatasourceSpecification: java.lang.String _cloudType()>();
v.<org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.specification.SnowflakeDatasourceSpecification: java.lang.String cloudType> = v;
v = new org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.authentication.SnowflakePublicAuthenticationStrategy;
specialinvoke v.<org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.authentication.SnowflakePublicAuthenticationStrategy: void <init>()>();
v = interfaceinvoke v.<org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_authentication_SnowflakePublicAuthenticationStrategy: java.lang.String _privateKeyVaultReference()>();
v.<org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.authentication.SnowflakePublicAuthenticationStrategy: java.lang.String privateKeyVaultReference> = v;
v = interfaceinvoke v.<org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_authentication_SnowflakePublicAuthenticationStrategy: java.lang.String _passPhraseVaultReference()>();
v.<org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.authentication.SnowflakePublicAuthenticationStrategy: java.lang.String passPhraseVaultReference> = v;
v = interfaceinvoke v.<org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_authentication_SnowflakePublicAuthenticationStrategy: java.lang.String _publicUserName()>();
v.<org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.authentication.SnowflakePublicAuthenticationStrategy: java.lang.String publicUserName> = v;
v.<org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.RelationalDatabaseConnection: org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.authentication.AuthenticationStrategy authenticationStrategy> = v;
v.<org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.RelationalDatabaseConnection: org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.specification.DatasourceSpecification datasourceSpecification> = v;
v = <org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.DatabaseType: org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.DatabaseType Snowflake>;
v.<org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.RelationalDatabaseConnection: org.finos.legend.engine.protocol.pure.v.model.packageableElement.store.relational.connection.DatabaseType type> = v;
return v;
}
static void <clinit>()
{
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/finos/legend/engine/language/snowflakeApp/api/SnowflakeAppDeploymentTool;");
<org.finos.legend.engine.language.snowflakeApp.api.SnowflakeAppDeploymentTool: org.slf4j.Logger LOGGER> = v;
return;
}
}