Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for creating Clients from a previously read settings file #181

Merged
merged 3 commits into from
Aug 3, 2015
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 20 additions & 2 deletions management/publishSettings.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,20 @@ import (
"github.com/Azure/go-pkcs12"
)

// ClientFromPublishSettingsData unmarshalls the contents of a publish settings file
// from https://manage.windowsazure.com/publishsettings.
// If subscriptionID is left empty, the first subscription in the file is used.
func ClientFromPublishSettingsData(settingsData []byte, subscriptionID string) (client Client, err error) {
return ClientFromPublishSettingsDataWithConfig(settingsData, subscriptionID, DefaultConfig())
}

// ClientFromPublishSettingsDataWithConfig unmarshalls the contents of a publish settings file
// from https://manage.windowsazure.com/publishsettings.
// If subscriptionID is left empty, the first subscription in the string is used.
func ClientFromPublishSettingsDataWithConfig(settingsData []byte, subscriptionID string, config ClientConfig) (client Client, err error) {
return clientFromPublishData(settingsData, subscriptionID, config)
}

// ClientFromPublishSettingsFile reads a publish settings file downloaded from https://manage.windowsazure.com/publishsettings.
// If subscriptionID is left empty, the first subscription in the file is used.
func ClientFromPublishSettingsFile(filePath, subscriptionID string) (client Client, err error) {
Expand All @@ -28,8 +42,12 @@ func ClientFromPublishSettingsFileWithConfig(filePath, subscriptionID string, co
return client, err
}

return clientFromPublishData(publishSettingsContent, subscriptionID, config)
}

func clientFromPublishData(data []byte, subscriptionID string, config ClientConfig) (client Client, err error) {
publishData := publishData{}
if err = xml.Unmarshal(publishSettingsContent, &publishData); err != nil {
if err = xml.Unmarshal(data, &publishData); err != nil {
return client, err
}

Expand Down Expand Up @@ -59,7 +77,7 @@ func ClientFromPublishSettingsFileWithConfig(filePath, subscriptionID string, co
}
}

return client, fmt.Errorf("could not find subscription '%s' in '%s'", subscriptionID, filePath)
return client, fmt.Errorf("could not find subscription '%s' in settings provided", subscriptionID)
}

type publishSettings struct {
Expand Down