func checkName(name string) { c, err := helpers.LoadCredentials() if err != nil { log.Fatalf("Error: %v", err) } ac := storage.NewAccountsClient(c["subscriptionID"]) spt, err := helpers.NewServicePrincipalTokenFromCredentials(c, azure.PublicCloud.ResourceManagerEndpoint) if err != nil { log.Fatalf("Error: %v", err) } ac.Authorizer = spt ac.Sender = autorest.CreateSender( autorest.WithLogging(log.New(os.Stdout, "sdk-example: ", log.LstdFlags))) ac.RequestInspector = withInspection() ac.ResponseInspector = byInspecting() cna, err := ac.CheckNameAvailability( storage.AccountCheckNameAvailabilityParameters{ Name: to.StringPtr(name), Type: to.StringPtr("Microsoft.Storage/storageAccounts")}) if err != nil { log.Fatalf("Error: %v", err) } else { if to.Bool(cna.NameAvailable) { fmt.Printf("The name '%s' is available\n", name) } else { fmt.Printf("The name '%s' is unavailable because %s\n", name, to.String(cna.Message)) } } }
func createAccount(resourceGroup, name string) { c, err := helpers.LoadCredentials() if err != nil { log.Fatalf("Error: %v", err) } ac := storage.NewAccountsClient(c["subscriptionID"]) spt, err := helpers.NewServicePrincipalTokenFromCredentials(c, azure.AzureResourceManagerScope) if err != nil { log.Fatalf("Error: %v", err) } ac.Authorizer = spt cna, err := ac.CheckNameAvailability( storage.AccountCheckNameAvailabilityParameters{ Name: to.StringPtr(name), Type: to.StringPtr("Microsoft.Storage/storageAccounts")}) if err != nil { log.Fatalf("Error: %v", err) return } if !to.Bool(cna.NameAvailable) { fmt.Printf("%s is unavailable -- try again\n", name) return } fmt.Printf("%s is available\n\n", name) ac.Sender = autorest.CreateSender(withWatcher()) ac.PollingMode = autorest.PollUntilAttempts ac.PollingAttempts = 5 cp := storage.AccountCreateParameters{} cp.Location = to.StringPtr("westus") cp.Properties = &storage.AccountPropertiesCreateParameters{AccountType: storage.StandardLRS} sa, err := ac.Create(resourceGroup, name, cp) if err != nil { if sa.Response.StatusCode != http.StatusAccepted { fmt.Printf("Creation of %s.%s failed with err -- %v\n", resourceGroup, name, err) return } fmt.Printf("Create initiated for %s.%s -- poll %s to check status\n", resourceGroup, name, sa.GetPollingLocation()) return } fmt.Printf("Successfully created %s.%s\n\n", resourceGroup, name) ac.Sender = nil r, err := ac.Delete(resourceGroup, name) if err != nil { fmt.Printf("Delete of %s.%s failed with status %s\n...%v\n", resourceGroup, name, r.Status, err) return } fmt.Printf("Deletion of %s.%s succeeded -- %s\n", resourceGroup, name, r.Status) }
func main() { resourceGroup := "resourceGroupName" name := "gosdktestname01" c := map[string]string{ "AZURE_CLIENT_ID": os.Getenv("AZURE_CLIENT_ID"), "AZURE_CLIENT_SECRET": os.Getenv("AZURE_CLIENT_SECRET"), "AZURE_SUBSCRIPTION_ID": os.Getenv("AZURE_SUBSCRIPTION_ID"), "AZURE_TENANT_ID": os.Getenv("AZURE_TENANT_ID")} if err := checkEnvVar(&c); err != nil { log.Fatalf("Error: %v", err) return } spt, err := helpers.NewServicePrincipalTokenFromCredentials(c, azure.PublicCloud.ResourceManagerEndpoint) if err != nil { log.Fatalf("Error: %v", err) return } ac := storage.NewAccountsClient(c["AZURE_SUBSCRIPTION_ID"]) ac.Authorizer = spt cna, err := ac.CheckNameAvailability( storage.AccountCheckNameAvailabilityParameters{ Name: to.StringPtr(name), Type: to.StringPtr("Microsoft.Storage/storageAccounts")}) if err != nil { log.Fatalf("Error: %v", err) return } if !to.Bool(cna.NameAvailable) { fmt.Printf("%s is unavailable -- try with another name\n", name) return } fmt.Printf("%s is available\n\n", name) cp := storage.AccountCreateParameters{ Sku: &storage.Sku{ Name: storage.StandardLRS, Tier: storage.Standard}, Location: to.StringPtr("westus")} cancel := make(chan struct{}) if _, err = ac.Create(resourceGroup, name, cp, cancel); err != nil { fmt.Printf("Create '%s' storage account failed: %v\n", name, err) return } fmt.Printf("Successfully created '%s' storage account in '%s' resource group\n\n", name, resourceGroup) r, err := ac.Delete(resourceGroup, name) if err != nil { fmt.Printf("Delete of '%s' failed with status %s\n...%v\n", name, r.Status, err) return } fmt.Printf("Deletion of '%s' storage account in '%s' resource group succeeded -- %s\n", name, resourceGroup, r.Status) }
func createAccount(resourceGroup, name string) { c, err := helpers.LoadCredentials() if err != nil { log.Fatalf("Error: %v", err) } ac := storage.NewAccountsClient(c["subscriptionID"]) spt, err := helpers.NewServicePrincipalTokenFromCredentials(c, azure.PublicCloud.ResourceManagerEndpoint) if err != nil { log.Fatalf("Error: %v", err) } ac.Authorizer = spt cna, err := ac.CheckNameAvailability( storage.AccountCheckNameAvailabilityParameters{ Name: to.StringPtr(name), Type: to.StringPtr("Microsoft.Storage/storageAccounts")}) if err != nil { log.Fatalf("Error: %v", err) return } if !to.Bool(cna.NameAvailable) { fmt.Printf("%s is unavailable -- try again\n", name) return } fmt.Printf("%s is available\n\n", name) cp := storage.AccountCreateParameters{} cp.Location = to.StringPtr("westus") cp.Properties = &storage.AccountPropertiesCreateParameters{AccountType: storage.StandardLRS} cancel := make(chan struct{}) _, err = ac.Create(resourceGroup, name, cp, cancel) if err != nil { fmt.Printf("Create failed: %v\n", err) return } fmt.Printf("Successfully created %s.%s\n\n", resourceGroup, name) r, err := ac.Delete(resourceGroup, name) if err != nil { fmt.Printf("Delete of %s.%s failed with status %s\n...%v\n", resourceGroup, name, r.Status, err) return } fmt.Printf("Deletion of %s.%s succeeded -- %s\n", resourceGroup, name, r.Status) }
func main() { name := "testname01" c := map[string]string{ "AZURE_CLIENT_ID": os.Getenv("AZURE_CLIENT_ID"), "AZURE_CLIENT_SECRET": os.Getenv("AZURE_CLIENT_SECRET"), "AZURE_SUBSCRIPTION_ID": os.Getenv("AZURE_SUBSCRIPTION_ID"), "AZURE_TENANT_ID": os.Getenv("AZURE_TENANT_ID")} if err := checkEnvVar(&c); err != nil { log.Fatalf("Error: %v", err) return } spt, err := helpers.NewServicePrincipalTokenFromCredentials(c, azure.PublicCloud.ResourceManagerEndpoint) if err != nil { log.Fatalf("Error: %v", err) return } ac := storage.NewAccountsClient(c["AZURE_SUBSCRIPTION_ID"]) ac.Authorizer = spt ac.Sender = autorest.CreateSender( autorest.WithLogging(log.New(os.Stdout, "sdk-example: ", log.LstdFlags))) ac.RequestInspector = withInspection() ac.ResponseInspector = byInspecting() cna, err := ac.CheckNameAvailability( storage.AccountCheckNameAvailabilityParameters{ Name: to.StringPtr(name), Type: to.StringPtr("Microsoft.Storage/storageAccounts")}) if err != nil { log.Fatalf("Error: %v", err) return } if to.Bool(cna.NameAvailable) { fmt.Printf("The storage account name '%s' is available\n", name) } else { fmt.Printf("The storage account name '%s' is unavailable because %s\n", name, to.String(cna.Message)) } }
// primaryNetworkAddress returns the instance's primary jujunetwork.Address for // the internal virtual network. This address is used to identify the machine in // network security rules. func (inst *azureInstance) primaryNetworkAddress() (jujunetwork.Address, error) { for _, nic := range inst.networkInterfaces { if nic.Properties.IPConfigurations == nil { continue } for _, ipConfiguration := range *nic.Properties.IPConfigurations { if ipConfiguration.Properties.Subnet == nil { continue } if !to.Bool(ipConfiguration.Properties.Primary) { continue } privateIpAddress := ipConfiguration.Properties.PrivateIPAddress if privateIpAddress == nil { continue } return jujunetwork.NewScopedAddress( to.String(privateIpAddress), jujunetwork.ScopeCloudLocal, ), nil } } return jujunetwork.Address{}, errors.NotFoundf("internal network address") }