Fixup acceptance tests (#96)

diff --git a/.github/workflows/testacc.yml b/.github/workflows/testacc.yml
index fa364f8..e2adc43 100644
--- a/.github/workflows/testacc.yml
+++ b/.github/workflows/testacc.yml
@@ -65,6 +65,7 @@
 
           echo "CLOUDSTACK_API_KEY=$CLOUDSTACK_API_KEY" >> $GITHUB_ENV
           echo "CLOUDSTACK_SECRET_KEY=$CLOUDSTACK_SECRET_KEY" >> $GITHUB_ENV
+          echo "CLOUDSTACK_TEMPLATE_URL=http://dl.openvm.eu/cloudstack/macchinina/x86_64/macchinina-xen.vhd.bz2" >> $GITHUB_ENV
       - name: Install CMK
         run: |
           curl -sfL https://github.com/apache/cloudstack-cloudmonkey/releases/download/6.3.0/cmk.linux.x86-64 -o /usr/local/bin/cmk
@@ -81,6 +82,7 @@
         ports:
           - 8080:5050
     strategy:
+      fail-fast: false
       matrix:
         cloudstack_version:
           - 4.17.2.0
diff --git a/cloudstack/data_source_cloudstack_instance_test.go b/cloudstack/data_source_cloudstack_instance_test.go
index f9d531a..1461648 100644
--- a/cloudstack/data_source_cloudstack_instance_test.go
+++ b/cloudstack/data_source_cloudstack_instance_test.go
@@ -50,9 +50,8 @@
 	resource "cloudstack_instance" "my_instance" {
 		name             = "server-a"
 		service_offering = "Small Instance"
-		network_id       = "b9c953a0-8686-4240-b8a4-43849f7079ff"
-		template         = "CentOS 5.5(64-bit) no GUI (KVM)"
-		zone             = "DC"
+		template         = "CentOS 5.6 (64-bit) no GUI (Simulator)"
+		zone             = "Sandbox-simulator"
 	  }
 	  data "cloudstack_instance" "my_instance_test" {
 		filter {
diff --git a/cloudstack/data_source_cloudstack_ipaddress_test.go b/cloudstack/data_source_cloudstack_ipaddress_test.go
index ad98201..2e32b61 100644
--- a/cloudstack/data_source_cloudstack_ipaddress_test.go
+++ b/cloudstack/data_source_cloudstack_ipaddress_test.go
@@ -46,13 +46,13 @@
 
 const testIPAddressDataSourceConfig_basic = `
 resource "cloudstack_ipaddress" "ipaddress-resource" {
-	zone         = "DC"
+	zone         = "Sandbox-simulator"
   }
   
   data "cloudstack_ipaddress" "ipaddress-data-source"{
 	  filter{
 	  name = "zone_name"
-	  value= "DC"
+	  value= "Sandbox-simulator"
 	  }
 	  depends_on = [
 		cloudstack_ipaddress.ipaddress-resource
diff --git a/cloudstack/data_source_cloudstack_service_offering_test.go b/cloudstack/data_source_cloudstack_service_offering_test.go
index fbc3faa..d745539 100644
--- a/cloudstack/data_source_cloudstack_service_offering_test.go
+++ b/cloudstack/data_source_cloudstack_service_offering_test.go
@@ -27,7 +27,7 @@
 
 func TestAccServiceOfferingDataSource_basic(t *testing.T) {
 	resourceName := "cloudstack_service_offering.service-offering-resource"
-	datasourceName := "cloudstack_service_offering.service-offering-data-source"
+	datasourceName := "data.cloudstack_service_offering.service-offering-data-source"
 
 	resource.Test(t, resource.TestCase{
 		PreCheck:  func() { testAccPreCheck(t) },
@@ -45,18 +45,16 @@
 }
 
 const testServiceOfferingDataSourceConfig_basic = `
-resource "cloudstack_service_offering" "service-offering-resource"{
-	name       = "TestServiceUpdate"
-  display_text = "DisplayService"
-  }
+resource "cloudstack_service_offering" "service-offering-resource" {
+	name			= "TestServiceUpdate"
+	display_text	= "DisplayService"
+}
 
- data "cloudstack_service_offering" "service-offering-data-source"{
-    filter{
-    name = "name"
-    value="TestServiceUpdate"
-    }
-	  depends_on = [
-	  cloudstack_service_offering.service-resource
-	] 
-  }
-  `
+data "cloudstack_service_offering" "service-offering-data-source" {
+	filter {
+		name	= "name"
+		value	= "TestServiceUpdate"
+	}
+	depends_on = [cloudstack_service_offering.service-offering-resource]
+}
+`
diff --git a/cloudstack/data_source_cloudstack_volume_test.go b/cloudstack/data_source_cloudstack_volume_test.go
index 147a701..810ecdf 100644
--- a/cloudstack/data_source_cloudstack_volume_test.go
+++ b/cloudstack/data_source_cloudstack_volume_test.go
@@ -45,19 +45,30 @@
 }
 
 const testVolumeDataSourceConfig_basic = `
+resource "cloudstack_disk_offering" "disk-offering" {
+	name			=	"TestDiskOffering"
+	display_text	=	"TestDiskOffering"
+	disk_size		=	1
+}
+
+data "cloudstack_zone" "zone-data-source" {
+	filter {
+		name	=	"name"
+		value	=	"Sandbox-simulator"
+	}
+}
+
 resource "cloudstack_volume" "volume-resource"{
-	name       = "TestVolume"
-  disk_offering_id = "0038adec-5e3e-47df-b4b4-77b5dc8e3338"
-  zone_id = "9a7002b2-09a2-44dc-a332-f2e4e7f01539"
+	name				=	"TestVolume"
+	disk_offering_id	=	"${cloudstack_disk_offering.disk-offering.id}"
+	zone_id				=	"${data.cloudstack_zone.zone-data-source.id}"
   }
 
-  data "cloudstack_volume" "volume-data-source"{
-    filter{
-    name = "name"
-    value="TestVolume"
+data "cloudstack_volume" "volume-data-source"{
+	filter {
+		name	=	"name"
+		value	=	"TestVolume"
     }
-	  depends_on = [
-	  cloudstack_volume.volume-resource
-	]
-  }
-  `
+	depends_on	=	[cloudstack_volume.volume-resource]
+}
+`
diff --git a/cloudstack/data_source_cloudstack_vpc_test.go b/cloudstack/data_source_cloudstack_vpc_test.go
index 3920f02..40d3f86 100644
--- a/cloudstack/data_source_cloudstack_vpc_test.go
+++ b/cloudstack/data_source_cloudstack_vpc_test.go
@@ -49,7 +49,7 @@
 name         = "test-vpc"
 cidr         = "10.0.0.0/16"
 vpc_offering = "Default VPC Offering"
-zone         = "DC"
+zone         = "Sandbox-simulator"
 }
 
 data "cloudstack_vpc" "vpc-data-source"{
diff --git a/cloudstack/resource_cloudstack_instance_test.go b/cloudstack/resource_cloudstack_instance_test.go
index fb313af..86e8fbc 100644
--- a/cloudstack/resource_cloudstack_instance_test.go
+++ b/cloudstack/resource_cloudstack_instance_test.go
@@ -185,7 +185,7 @@
 				ResourceName:            "cloudstack_instance.foobar",
 				ImportState:             true,
 				ImportStateVerify:       true,
-				ImportStateVerifyIgnore: []string{"expunge", "user_data"},
+				ImportStateVerifyIgnore: []string{"expunge", "user_data", "uefi"},
 			},
 		},
 	})
@@ -206,7 +206,7 @@
 				ImportState:             true,
 				ImportStateIdPrefix:     "terraform/",
 				ImportStateVerify:       true,
-				ImportStateVerifyIgnore: []string{"expunge", "user_data"},
+				ImportStateVerifyIgnore: []string{"expunge", "user_data", "uefi"},
 			},
 		},
 	})
diff --git a/cloudstack/resource_cloudstack_private_gateway.go b/cloudstack/resource_cloudstack_private_gateway.go
index ec5b935..c4b6c82 100644
--- a/cloudstack/resource_cloudstack_private_gateway.go
+++ b/cloudstack/resource_cloudstack_private_gateway.go
@@ -148,7 +148,7 @@
 	d.Set("gateway", gw.Gateway)
 	d.Set("ip_address", gw.Ipaddress)
 	d.Set("netmask", gw.Netmask)
-	d.Set("vlan", gw.Vlan)
+	d.Set("vlan", strings.Replace(gw.Vlan, "vlan://", "", -1))
 	d.Set("acl_id", gw.Aclid)
 	d.Set("vpc_id", gw.Vpcid)
 
diff --git a/cloudstack/resource_cloudstack_private_gateway_test.go b/cloudstack/resource_cloudstack_private_gateway_test.go
index a7cd6fe..66af8c3 100644
--- a/cloudstack/resource_cloudstack_private_gateway_test.go
+++ b/cloudstack/resource_cloudstack_private_gateway_test.go
@@ -148,6 +148,7 @@
 resource "cloudstack_network_acl" "foo" {
   name = "terraform-acl"
   vpc_id = "${cloudstack_vpc.foo.id}"
+  depends_on = ["cloudstack_vpc.foo"]
 }
 
 resource "cloudstack_private_gateway" "foo" {
@@ -157,4 +158,5 @@
   vlan = "1"
   vpc_id = "${cloudstack_vpc.foo.id}"
   acl_id = "${cloudstack_network_acl.foo.id}"
+  depends_on = ["cloudstack_vpc.foo","cloudstack_network_acl.foo"]
 }`
diff --git a/cloudstack/resource_cloudstack_template.go b/cloudstack/resource_cloudstack_template.go
index 967dcf1..c1a4f87 100644
--- a/cloudstack/resource_cloudstack_template.go
+++ b/cloudstack/resource_cloudstack_template.go
@@ -243,22 +243,30 @@
 	p := cs.Template.NewListTemplatesParams("executable")
 	p.SetId(d.Id())
 	p.SetShowunique(true)
-	p.SetProjectid(d.Get("project").(string))
+	project := d.Get("project").(string)
+	if project != "" {
+		if !cloudstack.IsID(project) {
+			id, _, err := cs.Project.GetProjectID(project)
+			if err != nil {
+				return err
+			}
+			project = id
+		}
+		p.SetProjectid(project)
+	}
 
 	r, err := cs.Template.ListTemplates(p)
-	count := r.Count
-	t := r.Templates[0]
 	if err != nil {
-		if count == 0 {
-			log.Printf(
-				"[DEBUG] Template %s no longer exists", d.Get("name").(string))
-			d.SetId("")
-			return nil
-		}
-
 		return err
+	} else if r.Count == 0 {
+		log.Printf(
+			"[DEBUG] Template %s no longer exists", d.Get("name").(string))
+		d.SetId("")
+		return nil
 	}
 
+	t := r.Templates[0]
+
 	d.Set("name", t.Name)
 	d.Set("display_text", t.Displaytext)
 	d.Set("format", t.Format)
diff --git a/cloudstack/resource_cloudstack_template_test.go b/cloudstack/resource_cloudstack_template_test.go
index 9265c8f..da18552 100644
--- a/cloudstack/resource_cloudstack_template_test.go
+++ b/cloudstack/resource_cloudstack_template_test.go
@@ -125,7 +125,7 @@
 			return fmt.Errorf("Bad name: %s", template.Name)
 		}
 
-		if template.Format != "QCOW2" {
+		if template.Format != "VHD" {
 			return fmt.Errorf("Bad format: %s", template.Format)
 		}
 
@@ -133,7 +133,7 @@
 			return fmt.Errorf("Bad hypervisor: %s", template.Hypervisor)
 		}
 
-		if template.Ostypename != "Centos 5.6 (64-bit)" {
+		if template.Ostypename != "CentOS 5.6 (64-bit)" {
 			return fmt.Errorf("Bad os type: %s", template.Ostypename)
 		}
 
@@ -189,9 +189,9 @@
 var testAccCloudStackTemplate_basic = fmt.Sprintf(`
 resource "cloudstack_template" "foo" {
   name = "terraform-test"
-  format = "QCOW2"
+  format = "VHD"
   hypervisor = "Simulator"
-  os_type = "Centos 5.6 (64-bit)"
+  os_type = "CentOS 5.6 (64-bit)"
   url = "%s"
   zone = "Sandbox-simulator"
   tags = {
@@ -203,9 +203,9 @@
 resource "cloudstack_template" "foo" {
   name = "terraform-test"
   display_text = "terraform-updated"
-  format = "QCOW2"
+  format = "VHD"
   hypervisor = "Simulator"
-  os_type = "Centos 5.6 (64-bit)"
+  os_type = "CentOS 5.6 (64-bit)"
   url = "%s"
   is_dynamically_scalable = true
   password_enabled = true