git.iko.soy/distributed-process
on master help sign in
We need to pick the right Azure API version number
956b995Edsko de Vries
azure-service-api/src/Network/Azure/ServiceManagement.hs+12−13
@@ -1,8 +1,6 @@
1module Network.Azure.ServiceManagement
1module Network.Azure.ServiceManagement
2− (
3− -- * Submitting requests
2+ ( -- * Submitting requests
4− SubscriptionId(SubscriptionId)
5− , azureRequest
3+ azureRequest
6 -- * Re-export functionality from TLS
4 -- * Re-export functionality from TLS
7 , fileReadCertificate
5 , fileReadCertificate
8 , fileReadPrivateKey
6 , fileReadPrivateKey
@@ -23,18 +21,19 @@ import Network.HTTP.Conduit
23 )
21 )
24import Data.CaseInsensitive as CI (mk)
22import Data.CaseInsensitive as CI (mk)
25
23
26−newtype SubscriptionId = SubscriptionId { unSubscriptionId :: String }
24+-- ^ Execute an Azure request
27−
25+azureRequest :: String -- ^ Subscription ID
28−azureRequest :: SubscriptionId -> X509 -> PrivateKey -> String -> IO ByteString
26+ -> X509 -- ^ X509 certificate
27+ -> PrivateKey -- ^ Private key
28+ -> String -- ^ Relative path
29+ -> String -- ^ Version
30+ -> IO ByteString
29−azureRequest sid cert pkey subURL = do
31+azureRequest sid cert pkey subURL version = do
30− req <- parseUrl ( "https://management.core.windows.net/"
32+ req <- parseUrl $ "https://management.core.windows.net/" ++ sid++ subURL
31− ++ unSubscriptionId sid
32− ++ subURL
33− )
34 withManager $ \manager -> do
33 withManager $ \manager -> do
35 let req' = req {
34 let req' = req {
36 clientCertificates = [ (cert, Just pkey) ]
35 clientCertificates = [ (cert, Just pkey) ]
37− , requestHeaders = [ (CI.mk $ BSC.pack "x-ms-version", BSC.pack "2010-10-28")
36+ , requestHeaders = [ (CI.mk $ BSC.pack "x-ms-version", BSC.pack version)
38 , (CI.mk $ BSC.pack "content-type", BSC.pack "application/xml")
37 , (CI.mk $ BSC.pack "content-type", BSC.pack "application/xml")
39 ]
38 ]
40 }
39 }
azure-service-api/src/Network/Azure/ServiceManagement/CommandLine.hs+2−3
@@ -7,8 +7,7 @@ import qualified Data.ByteString.Lazy.Char8 as BSLC (putStrLn)
7
7
8-- SSL
8-- SSL
9import Network.Azure.ServiceManagement
9import Network.Azure.ServiceManagement
10− ( SubscriptionId(SubscriptionId)
11− , azureRequest
10+ ( azureRequest
12 , fileReadCertificate
11 , fileReadCertificate
13 , fileReadPrivateKey
12 , fileReadPrivateKey
14 )
13 )
@@ -71,5 +70,5 @@ tryConnectToAzure :: String -> String -> String -> IO ()
71tryConnectToAzure sid pathToCert pathToKey = do
70tryConnectToAzure sid pathToCert pathToKey = do
72 cert <- fileReadCertificate pathToCert
71 cert <- fileReadCertificate pathToCert
73 key <- fileReadPrivateKey pathToKey
72 key <- fileReadPrivateKey pathToKey
74− outp <- azureRequest (SubscriptionId sid) cert key "/services/hostedservices"
73+ outp <- azureRequest sid cert key "/services/hostedservices" "2012-03-01"
75 BSLC.putStrLn outp
74 BSLC.putStrLn outp