func resourceArmRouteTableCreate(d *schema.ResourceData, meta interface{}) error { client := meta.(*ArmClient) routeTablesClient := client.routeTablesClient log.Printf("[INFO] preparing arguments for Azure ARM Route Table creation.") name := d.Get("name").(string) location := d.Get("location").(string) resGroup := d.Get("resource_group_name").(string) tags := d.Get("tags").(map[string]interface{}) routeSet := network.RouteTable{ Name: &name, Location: &location, Tags: expandTags(tags), } if _, ok := d.GetOk("route"); ok { properties := network.RouteTablePropertiesFormat{} routes, routeErr := expandAzureRmRouteTableRoutes(d) if routeErr != nil { return fmt.Errorf("Error Building list of Route Table Routes: %s", routeErr) } if len(routes) > 0 { routeSet.Properties = &properties } } resp, err := routeTablesClient.CreateOrUpdate(resGroup, name, routeSet) if err != nil { return err } d.SetId(*resp.ID) log.Printf("[DEBUG] Waiting for Route Table (%s) to become available", name) stateConf := &resource.StateChangeConf{ Pending: []string{"Accepted", "Updating"}, Target: "Succeeded", Refresh: routeTableStateRefreshFunc(client, resGroup, name), Timeout: 10 * time.Minute, } if _, err := stateConf.WaitForState(); err != nil { return fmt.Errorf("Error waiting forRoute Table (%s) to become available: %s", name, err) } return resourceArmRouteTableRead(d, meta) }
func resourceArmRouteTableCreate(d *schema.ResourceData, meta interface{}) error { client := meta.(*ArmClient) routeTablesClient := client.routeTablesClient log.Printf("[INFO] preparing arguments for Azure ARM Route Table creation.") name := d.Get("name").(string) location := d.Get("location").(string) resGroup := d.Get("resource_group_name").(string) tags := d.Get("tags").(map[string]interface{}) routeSet := network.RouteTable{ Name: &name, Location: &location, Tags: expandTags(tags), } if _, ok := d.GetOk("route"); ok { routes, routeErr := expandAzureRmRouteTableRoutes(d) if routeErr != nil { return fmt.Errorf("Error Building list of Route Table Routes: %s", routeErr) } if len(routes) > 0 { routeSet.RouteTablePropertiesFormat = &network.RouteTablePropertiesFormat{ Routes: &routes, } } } _, err := routeTablesClient.CreateOrUpdate(resGroup, name, routeSet, make(chan struct{})) if err != nil { return err } read, err := routeTablesClient.Get(resGroup, name, "") if err != nil { return err } if read.ID == nil { return fmt.Errorf("Cannot read Route Table %s (resource group %s) ID", name, resGroup) } d.SetId(*read.ID) return resourceArmRouteTableRead(d, meta) }