Quantcast
Channel: Azure Management Portal forum
Viewing all articles
Browse latest Browse all 4189

Is there a Programmatic/API way to Provision a Service Bus Namespace ?

$
0
0

Yes - There is a Rest API way of Creating Service Bus Namespaces - http://msdn.microsoft.com/en-us/library/windowsazure/jj856303.aspx (Resource Provider API Reference - Service Bus)

Code Snippet to Create Namespace using Rest and return the Http Status code (Success - Ok):

        /// <param name="subscriptionId">Get one from https://Windows.Azure.com </param>
        /// <param name="managementCertificate">Add a management certificate to the Windows Azure Subscription http://msdn.microsoft.com/en-us/library/gg551726.aspx </param>
        /// <param name="namespaceName">ServiceBus Namespace name to be Created </param>
        /// <param name="region">Region in which the SB Namespace needs to be Created Ex: West US</param>
        public static string CreateServiceBusNamespace(
            string subscriptionId,
            X509Certificate2 managementCertificate,
            string namespaceName,
            string region)
        {
            //build the complete request URI
            string requestURI = string.Format("https://management.core.windows.net/{0}/services/ServiceBus/Namespaces/{1}", subscriptionId, namespaceName);
            HttpWebRequest request = WebRequest.Create(requestURI) as HttpWebRequest;

            //add Subscription management Certificate to the request
            request.ClientCertificates.Add(managementCertificate);

            //create the request headers and specify the method required for this type of operation
            request.Headers.Add("x-ms-version", "2012-03-01");
            request.ContentType = "application/atom+xml";
            request.Method = "PUT";
            request.KeepAlive = true;

            // Serialize NamespaceDescription, if additional properties needs to be specified http://msdn.microsoft.com/en-us/library/jj873988.aspx
            string requestBody = string.Format("<entry xmlns='http://www.w3.org/2005/Atom'>  <content type='application/xml'><NamespaceDescription xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://schemas.microsoft.com/netservices/2010/10/servicebus/connect\"> <Region>{0}</Region></NamespaceDescription>  </content></entry>", region);

            byte[] byteArray = Encoding.UTF8.GetBytes(requestBody);
            request.ContentLength = byteArray.Length;

            //write the data to the stream that holds the request body content
            using (Stream requestStream = request.GetRequestStream())
            {
                requestStream.Write(byteArray, 0, byteArray.Length);
            }
            
            // Response contains the Namespace Description if the SB Namespace creation is Successfull
            string responseStatus = HttpStatusCode.Unused.ToString();
            try
            {
                using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
                {
                    responseStatus = response.StatusCode.ToString();
                }
            }
            catch (WebException webException)
            {
                using (HttpWebResponse exceptionResponse = webException.Response as HttpWebResponse)
                {
                    // Log that the Exception is swallowed and reason why 
                    responseStatus = exceptionResponse.StatusCode.ToString();
                }
            }

            return responseStatus;
        }

HTH!

SreeramG






Viewing all articles
Browse latest Browse all 4189

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>