30 lines
715 B
Go
30 lines
715 B
Go
|
package azure
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"os"
|
||
|
|
||
|
"github.com/MSOpenTech/azure-sdk-for-go/management"
|
||
|
)
|
||
|
|
||
|
// Config is the configuration structure used to instantiate a
|
||
|
// new Azure management client.
|
||
|
type Config struct {
|
||
|
SettingsFile string
|
||
|
SubscriptionID string
|
||
|
}
|
||
|
|
||
|
// NewClient returns a new Azure management client
|
||
|
func (c *Config) NewClient() (*management.Client, error) {
|
||
|
if _, err := os.Stat(c.SettingsFile); os.IsNotExist(err) {
|
||
|
return nil, fmt.Errorf("Publish Settings file %q does not exist!", c.SettingsFile)
|
||
|
}
|
||
|
|
||
|
mc, err := management.ClientFromPublishSettingsFile(c.SettingsFile, c.SubscriptionID)
|
||
|
if err != nil {
|
||
|
return nil, fmt.Errorf("Error creating management client: %s", err)
|
||
|
}
|
||
|
|
||
|
return &mc, nil
|
||
|
}
|