public static IJobSubmissionClientCredential GetJobSubmissionClientCredentials(this IAzureHDInsightJobCommandCredentialsBase command, WindowsAzureSubscription currentSubscription, string cluster) { IJobSubmissionClientCredential clientCredential = null; if (command.Credential != null) { clientCredential = new BasicAuthCredential { Server = GatewayUriResolver.GetGatewayUri(cluster), UserName = command.Credential.UserName, Password = command.Credential.GetCleartextPassword() }; } else if (currentSubscription.IsNotNull()) { var subscriptionCredentials = GetSubscriptionCredentials(command, currentSubscription); var asCertificateCredentials = subscriptionCredentials as HDInsightCertificateCredential; var asTokenCredentials = subscriptionCredentials as HDInsightAccessTokenCredential; if (asCertificateCredentials.IsNotNull()) { clientCredential = new JobSubmissionCertificateCredential(asCertificateCredentials, cluster); } else if (asTokenCredentials.IsNotNull()) { clientCredential = new JobSubmissionAccessTokenCredential(asTokenCredentials, cluster); } } return(clientCredential); }
public IJobSubmissionClient Create(IJobSubmissionClientCredential credentials) { var asBasic = credentials as BasicAuthCredential; var asSubscription = credentials as JobSubmissionCertificateCredential; string clusterName = string.Empty; if (asBasic != null) { clusterName = asBasic.Server.Host.Split('.').First(); } else if (asSubscription != null) { clusterName = asSubscription.Cluster; } else { throw new NotSupportedException("Credential type :" + credentials.GetType().Name + ": is not supported"); } string clusterUri = GatewayUriResolver.GetGatewayUri(clusterName).AbsoluteUri.ToUpperInvariant(); if (!jobSubmissionClients.ContainsKey(clusterUri)) { AzureHDInsightClusterManagementClientSimulator.SimulatorClusterContainer cluster = AzureHDInsightClusterManagementClientSimulator.GetClusterInternal(clusterName); var jobClient = new AzureHDInsightJobSubmissionClientSimulator(credentials, cluster); jobSubmissionClients.Add(clusterUri, jobClient); } return(jobSubmissionClients[clusterUri]); }
internal static void ValidateClusterConfiguration(ClusterDetails testCluster, ClusterCreateParametersV2 cluster) { var remoteCreds = new BasicAuthCredential() { Server = GatewayUriResolver.GetGatewayUri(new Uri(testCluster.ConnectionUrl).Host), UserName = testCluster.HttpUserName, Password = testCluster.HttpPassword }; var configurationAccessor = ServiceLocator.Instance.Locate <IAzureHDInsightClusterConfigurationAccessorFactory>().Create(remoteCreds); var coreConfiguration = configurationAccessor.GetCoreServiceConfiguration().WaitForResult(); ValidateConfiguration(cluster.CoreConfiguration, coreConfiguration); var hdfsConfiguration = configurationAccessor.GetHdfsServiceConfiguration().WaitForResult(); ValidateConfiguration(cluster.HdfsConfiguration, hdfsConfiguration); var mapReduceConfiguration = configurationAccessor.GetMapReduceServiceConfiguration().WaitForResult(); ValidateConfiguration(cluster.MapReduceConfiguration.ConfigurationCollection, mapReduceConfiguration); var hiveConfiguration = configurationAccessor.GetHiveServiceConfiguration().WaitForResult(); ValidateConfiguration(cluster.HiveConfiguration.ConfigurationCollection, hiveConfiguration); var oozieConfiguration = configurationAccessor.GetOozieServiceConfiguration().WaitForResult(); ValidateConfiguration(cluster.OozieConfiguration.ConfigurationCollection, oozieConfiguration); }
internal static JobList GetJobHistory(string clusterEndpoint) { string clusterGatewayUri = GatewayUriResolver.GetGatewayUri(clusterEndpoint).AbsoluteUri.ToUpperInvariant(); var manager = ServiceLocator.Instance.Locate <IServiceLocationSimulationManager>(); if (manager.MockingLevel == ServiceLocationMockingLevel.ApplyFullMocking) { if (AzureHDInsightJobSubmissionClientSimulatorFactory.jobSubmissionClients.ContainsKey(clusterGatewayUri)) { return(AzureHDInsightJobSubmissionClientSimulatorFactory.jobSubmissionClients[clusterGatewayUri].ListJobs()); } } return(new JobList { ErrorCode = HttpStatusCode.NotFound.ToString() }); }
public void ICanNotSubmitAJobWithTheIncorectCredintials() { IHDInsightCertificateCredential hdInsightCredentials = IntegrationTestBase.GetValidCredentials(); var client = ServiceLocator.Instance.Locate <IHDInsightClientFactory>().Create(new HDInsightCertificateCredential(hdInsightCredentials.SubscriptionId, hdInsightCredentials.Certificate)); var manager = ServiceLocator.Instance.Locate <IHDInsightManagementPocoClientFactory>(); var pocoClient = manager.Create(hdInsightCredentials, GetAbstractionContext(), false); var clusterDetails = GetRandomCluster(); client.CreateCluster(clusterDetails); try { ClusterDetails cluster = pocoClient.ListContainer(clusterDetails.Name).WaitForResult(); BasicAuthCredential hadoopCredentials = new BasicAuthCredential() { Server = GatewayUriResolver.GetGatewayUri(cluster.ConnectionUrl), UserName = clusterDetails.UserName, Password = clusterDetails.Password }; var hadoopClient = JobSubmissionClientFactory.Connect(hadoopCredentials); var mapReduceJob = new MapReduceJobCreateParameters() { ClassName = "pi", JobName = "pi estimation jobDetails", JarFile = "/example/hadoop-examples.jar", StatusFolder = "/piresults" }; mapReduceJob.Arguments.Add("16"); mapReduceJob.Arguments.Add("10000"); var jobCreationDetails = hadoopClient.CreateMapReduceJob(mapReduceJob); var id = pocoClient.DisableHttp(clusterDetails.Name, clusterDetails.Location).WaitForResult(); while (!pocoClient.IsComplete(cluster.Name, cluster.Location, id).WaitForResult()) { Thread.Sleep(500); } // now add a user string userName = "******"; string password = GetRandomValidPassword(); id = pocoClient.EnableHttp(clusterDetails.Name, clusterDetails.Location, userName, password).WaitForResult(); while (!pocoClient.IsComplete(cluster.Name, cluster.Location, id).WaitForResult()) { Thread.Sleep(500); } jobCreationDetails = hadoopClient.CreateMapReduceJob(mapReduceJob); Assert.Fail("This test expected an exception but did not receive one."); } catch (UnauthorizedAccessException ex) { Help.DoNothing(ex); } finally { // delete the cluster client.DeleteCluster(clusterDetails.Name); } }
public void WhenIResolveTheClusterUri() { this.resolvedUri = GatewayUriResolver.GetGatewayUri(this.uri, this.version); }