Example #1
0
 /// <inheritdoc />
 public string SerializeClusterCreateRequestV3(ClusterCreateParametersV2 cluster)
 {
     Contracts.May2014.ClusterCreateParameters ccp = null;
     if (cluster.ClusterType == ClusterType.HBase)
     {
         ccp = HDInsightClusterRequestGenerator.Create3XClusterForMapReduceAndHBaseTemplate(cluster);
     }
     else if (cluster.ClusterType == ClusterType.Storm)
     {
         ccp = HDInsightClusterRequestGenerator.Create3XClusterForMapReduceAndStormTemplate(cluster);
     }
     else if (cluster.ClusterType == ClusterType.Spark)
     {
         ccp = HDInsightClusterRequestGenerator.Create3XClusterForMapReduceAndSparkTemplate(cluster);
     }
     else if (cluster.ClusterType == ClusterType.Hadoop)
     {
         ccp = HDInsightClusterRequestGenerator.Create3XClusterFromMapReduceTemplate(cluster);
     }
     else
     {
         throw new InvalidDataException("Invalid cluster type");
     }
     return(this.CreateClusterRequest_ToInternalV3(ccp));
 }
        private string CreateClusterRequest_ToInternalV3(Contracts.May2014.ClusterCreateParameters ccp)
        {
            var ccpAsXmlString = ccp.SerializeAndOptionallyWriteToStream();
            var doc            = new XmlDocument();

            using (var stringReader = new StringReader(ccpAsXmlString))
            {
                using (var reader = XmlReader.Create(stringReader))
                {
                    doc.Load(reader);
                }
            }
            var resource = new RDFEResource {
                SchemaVersion = "3.0", IntrinsicSettings = new XmlNode[] { doc.DocumentElement }
            };

            using (var str = new MemoryStream())
            {
                var serializer = new DataContractSerializer(typeof(RDFEResource));
                serializer.WriteObject(str, resource);

                str.Position = 0;
                using (var reader = new StreamReader(str))
                {
                    return(reader.ReadToEnd());
                }
            }
        }