You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by da...@apache.org on 2022/04/19 10:58:07 UTC
[cloudstack-go] branch main updated: Autogenerate tests (#32)
This is an automated email from the ASF dual-hosted git repository.
davidjumani pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cloudstack-go.git
The following commit(s) were added to refs/heads/main by this push:
new ac35fe8 Autogenerate tests (#32)
ac35fe8 is described below
commit ac35fe8914b7df722fc3357d7323039e1cfb4b86
Author: David Jumani <dj...@gmail.com>
AuthorDate: Tue Apr 19 16:28:02 2022 +0530
Autogenerate tests (#32)
* Decouple tests from autogenerated code
* Autogenereate tests
* cleanup
---
cloudstack/AccountService_test.go | 108 ----
cloudstack/AddressService_test.go | 74 ---
cloudstack/AffinityGroupService_test.go | 49 --
cloudstack/ApiDiscoveryService_test.go | 188 -------
cloudstack/AuthenticationService_test.go | 80 ---
cloudstack/CertificateService_test.go | 56 ---
cloudstack/ClusterService_test.go | 284 -----------
cloudstack/ConfigurationService_test.go | 92 ----
cloudstack/DiskOfferingService_test.go | 90 ----
cloudstack/DomainService_test.go | 141 ------
cloudstack/ExtFirewallService.go | 17 -
cloudstack/ExtFirewallService_mock.go | 24 -
cloudstack/ExtLoadBalancerService.go | 17 -
cloudstack/ExtLoadBalancerService_mock.go | 24 -
cloudstack/ExternalDeviceService.go | 17 -
cloudstack/ExternalDeviceService_mock.go | 24 -
cloudstack/FirewallService_test.go | 116 -----
cloudstack/HostService_test.go | 181 -------
cloudstack/HypervisorService_test.go | 51 --
cloudstack/ImageStoreService_test.go | 96 ----
cloudstack/LoadBalancerService_test.go | 78 ---
cloudstack/NetworkACLService_test.go | 48 --
cloudstack/NetworkOfferingService_test.go | 116 -----
cloudstack/NetworkService_test.go | 156 ------
cloudstack/PoolService_test.go | 97 ----
cloudstack/ProjectService_test.go | 142 ------
cloudstack/ResourcetagsService_test.go | 76 ---
cloudstack/SSHService_test.go | 116 -----
cloudstack/ServiceOfferingService_test.go | 96 ----
cloudstack/StoragePoolService_test.go | 70 ---
cloudstack/TemplateService_test.go | 95 ----
cloudstack/UserService_test.go | 188 -------
cloudstack/VLANService_test.go | 52 --
cloudstack/VPCService_test.go | 73 ---
cloudstack/VirtualMachineService_test.go | 170 -------
cloudstack/cloudstack.go | 2 +-
cloudstack/testdata/AccountServiceData.json | 154 ------
cloudstack/testdata/AddressServiceData.json | 80 ---
cloudstack/testdata/AffinityGroupServiceData.json | 36 --
cloudstack/testdata/CertificateServiceData.json | 28 --
cloudstack/testdata/FirewallServiceData.json | 123 -----
cloudstack/testdata/NetworkACLServiceData.json | 32 --
cloudstack/testdata/ProjectServiceData.json | 312 ------------
cloudstack/testdata/ResourceTagsServiceData.json | 50 --
cloudstack/testdata/SSHServiceData.json | 145 ------
cloudstack/testdata/VPCServiceData.json | 336 -------------
cloudstack/testdata/VPNServiceData.json | 26 -
cloudstack/testdata/VirtualMachineServiceData.json | 545 ---------------------
generate/generate.go | 132 +++++
.../APIDiscoveryService_test.go | 42 +-
test/AccountService_test.go | 182 +++++++
test/AddressService_test.go | 86 ++++
test/AffinityGroupService_test.go | 98 ++++
test/AlertService_test.go | 86 ++++
test/AsyncjobService_test.go | 62 +++
test/AuthenticationService_test.go | 62 +++
test/AutoScaleService_test.go | 278 +++++++++++
test/BaremetalService_test.go | 146 ++++++
test/BigSwitchBCFService_test.go | 74 +++
test/BrocadeVCSService_test.go | 86 ++++
.../CertificateService_test.go | 42 +-
.../CloudIdentifierService_test.go | 44 +-
test/ClusterService_test.go | 182 +++++++
test/ConfigurationService_test.go | 86 ++++
test/DiskOfferingService_test.go | 86 ++++
test/DomainService_test.go | 98 ++++
test/EventService_test.go | 86 ++++
test/FirewallService_test.go | 230 +++++++++
test/GuestOSService_test.go | 146 ++++++
test/HostService_test.go | 302 ++++++++++++
test/HypervisorService_test.go | 74 +++
test/ISOService_test.go | 158 ++++++
test/ImageStoreService_test.go | 134 +++++
test/InternalLBService_test.go | 110 +++++
test/LDAPService_test.go | 158 ++++++
test/LimitService_test.go | 98 ++++
test/LoadBalancerService_test.go | 446 +++++++++++++++++
test/NATService_test.go | 98 ++++
test/NetworkACLService_test.go | 146 ++++++
test/NetworkDeviceService_test.go | 74 +++
test/NetworkOfferingService_test.go | 86 ++++
test/NetworkService_test.go | 374 ++++++++++++++
test/NicService_test.go | 86 ++++
test/NiciraNVPService_test.go | 74 +++
test/OutofbandManagementService_test.go | 74 +++
test/OvsElementService_test.go | 62 +++
test/PodService_test.go | 122 +++++
test/PoolService_test.go | 98 ++++
test/PortableIPService_test.go | 74 +++
test/ProjectService_test.go | 194 ++++++++
.../QuotaService_test.go | 43 +-
test/RegionService_test.go | 86 ++++
test/ResourcemetadataService_test.go | 86 ++++
test/ResourcetagsService_test.go | 86 ++++
test/RoleService_test.go | 134 +++++
test/RouterService_test.go | 146 ++++++
test/SSHService_test.go | 98 ++++
test/SecurityGroupService_test.go | 122 +++++
test/ServiceOfferingService_test.go | 86 ++++
test/SnapshotService_test.go | 182 +++++++
test/StoragePoolService_test.go | 74 +++
test/StratosphereSSPService_test.go | 62 +++
test/SwiftService_test.go | 62 +++
.../SystemCapacityService_test.go | 42 +-
test/SystemVMService_test.go | 134 +++++
test/TemplateService_test.go | 182 +++++++
test/UCSService_test.go | 110 +++++
test/UsageService_test.go | 182 +++++++
test/UserService_test.go | 170 +++++++
test/VLANService_test.go | 110 +++++
test/VMGroupService_test.go | 86 ++++
test/VPCService_test.go | 218 +++++++++
test/VPNService_test.go | 278 +++++++++++
test/VirtualMachineService_test.go | 302 ++++++++++++
test/VolumeService_test.go | 206 ++++++++
test/ZoneService_test.go | 170 +++++++
{cloudstack => test}/cloudstack_test.go | 89 ++--
test/testdata/AccountService.json | 154 ++++++
test/testdata/AddressService.json | 63 +++
test/testdata/AffinityGroupService.json | 28 ++
.../testdata/ApiDiscoveryService.json | 0
.../testdata/AsyncJobService.json | 0
.../testdata/AuthenticationService.json | 0
test/testdata/CertificateService.json | 21 +
.../testdata/ClusterService.json | 134 ++---
.../testdata/ConfigurationService.json | 0
.../testdata/DiskOfferingService.json | 0
.../testdata/DomainService.json | 29 +-
test/testdata/FirewallService.json | 93 ++++
.../testdata/HostService.json | 102 ++--
.../testdata/HypervisorService.json | 0
.../testdata/ISOService.json | 0
.../testdata/ImageStoreService.json | 0
.../testdata/LimitService.json | 0
.../testdata/LoadBalancerService.json | 49 +-
test/testdata/NetworkACLService.json | 25 +
.../testdata/NetworkOfferingService.json | 0
.../testdata/NetworkService.json | 91 ++--
.../testdata/PoolService.json | 0
test/testdata/ProjectService.json | 283 +++++++++++
test/testdata/ResourceTagsService.json | 36 ++
test/testdata/SSHService.json | 138 ++++++
.../testdata/ServiceOfferingService.json | 0
.../testdata/StoragePoolService.json | 54 +-
.../testdata/TemplateService.json | 77 ++-
.../testdata/UserService.json | 8 +-
.../testdata/VLANService.json | 0
test/testdata/VPCService.json | 463 +++++++++++++++++
test/testdata/VPNService.json | 19 +
test/testdata/VirtualMachineService.json | 509 +++++++++++++++++++
150 files changed, 10811 insertions(+), 5658 deletions(-)
diff --git a/cloudstack/AccountService_test.go b/cloudstack/AccountService_test.go
deleted file mode 100644
index 3e93614..0000000
--- a/cloudstack/AccountService_test.go
+++ /dev/null
@@ -1,108 +0,0 @@
-//
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-//
-
-package cloudstack
-
-import (
- "fmt"
- "net/http"
- "net/http/httptest"
- "testing"
-)
-
-func TestListAccounts(t *testing.T) {
- apiName := "listAccountsResponse"
- server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
- resp, err := ReadData(apiName, "AccountService")
- if err != nil {
- t.Errorf("Failed to read response data, due to: %v", err)
- return
- }
- fmt.Fprintln(w, resp[apiName])
- }))
- defer server.Close()
-
- client := newClient(server.URL, "APIKEY", "SECRETKEY", true, true)
- p := client.Account.NewListAccountsParams()
- acc, _ := client.Account.ListAccounts(p)
- accounts := acc.Accounts
- if len(accounts) != 1 {
- t.Errorf("length: actual %d, expected 1", len(accounts))
- }
-
- if accounts[0].Name != "admin" {
- t.Errorf("name: actual %s, expected admin", accounts[0].Name)
- }
-
- if len(accounts[0].User) != 1 {
- t.Errorf("length of user: actual %d, expected 1", len(accounts[0].User))
- }
-
- if accounts[0].User[0].Username != "admin" {
- t.Errorf("username: actual %s, expected admin", accounts[0].User[0].Username)
- }
-
- if accounts[0].Accountdetails["key0"] != "value0" {
- t.Errorf("accountdetails[\"key0\"]: actual %s, expected value0", accounts[0].Accountdetails["key0"])
- }
-}
-
-func TestCreateAccounts(t *testing.T) {
- apiName := "createAccountsResponse"
- server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
- resp, err := ReadData(apiName, "AccountService")
- if err != nil {
- t.Errorf("Failed to read response data, due to: %v", err)
- return
- }
- fmt.Fprintln(w, resp[apiName])
- }))
- defer server.Close()
-
- client := newClient(server.URL, "APIKEY", "SECRETKEY", true, true)
- email := "user01@example.com"
- firstname := "user01"
- lastname := "user01"
- password := "password"
- username := "user01"
-
- p := client.Account.NewCreateAccountParams(email, firstname, lastname, password, username)
- p.SetAccountdetails(map[string]string{"key0": "value0", "key1": "value1"})
- account, _ := client.Account.CreateAccount(p)
-
- if account.Name != "user01" {
- t.Errorf("name: actual %s, expected user01", account.Name)
- }
-
- if len(account.User) != 1 {
- t.Errorf("length of user: actual %d, expected 1", len(account.User))
- }
-
- if account.User[0].Username != "user01" {
- t.Errorf("username: actual %s, expected admin", account.User[0].Username)
- }
-
- if account.Accountdetails["key0"] != "value0" {
- t.Errorf("accountdetails[\"key0\"]: actual %s, expected value0", account.Accountdetails["key0"])
- }
-
- if account.Accountdetails["key1"] != "value1" {
- t.Errorf("accountdetails[\"key1\"]: actual %s, expected value1", account.Accountdetails["key1"])
- }
-}
diff --git a/cloudstack/AddressService_test.go b/cloudstack/AddressService_test.go
deleted file mode 100644
index e993488..0000000
--- a/cloudstack/AddressService_test.go
+++ /dev/null
@@ -1,74 +0,0 @@
-//
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-//
-
-package cloudstack
-
-import (
- "fmt"
- "net/http"
- "net/http/httptest"
- "testing"
-)
-
-func TestAssociateIpAddress(t *testing.T) {
- apiName := "associateIpAddress"
- server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
- response, err := ParseAsyncResponse(apiName, "AddressService", *r)
- if err != nil {
- t.Errorf("Failed to parse response, due to: %v", err)
- }
- fmt.Fprintln(w, response)
- }))
-
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", false)
- p := client.Address.NewAssociateIpAddressParams()
- p.SetZoneid("2e86e486-b472-4f12-a9b2-bb73701241e0")
- ip, err := client.Address.AssociateIpAddress(p)
- if err != nil {
- t.Errorf(err.Error())
- }
-
- if ip.Ipaddress != "10.70.3.100" {
- t.Errorf("ipaddress: actual %s, expected 10.70.3.100", ip.Ipaddress)
- }
-}
-
-func TestDisassociateIpAddress(t *testing.T) {
- apiName := "disassociateIpAddress"
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- response, err := ParseAsyncResponse(apiName, "AddressService", *request)
- if err != nil {
- t.Errorf("Failed to parse response, due to: %v", err)
- }
- fmt.Fprintln(writer, response)
- }))
-
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", false)
- p := client.Address.NewDisassociateIpAddressParams("a767fbe1-ed7a-4d7c-8221-c7d736ca622d")
- address, err := client.Address.DisassociateIpAddress(p)
- if err != nil {
- t.Errorf("Failed to disassociate IP addres due to: %v", err.Error())
- return
- }
- if address.Success != true {
- t.Errorf("Failed to disassociate IP address")
- }
-}
diff --git a/cloudstack/AffinityGroupService_test.go b/cloudstack/AffinityGroupService_test.go
deleted file mode 100644
index 03104f7..0000000
--- a/cloudstack/AffinityGroupService_test.go
+++ /dev/null
@@ -1,49 +0,0 @@
-//
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-//
-
-package cloudstack
-
-import (
- "fmt"
- "net/http"
- "net/http/httptest"
- "testing"
-)
-
-func TestCreateAffinityGroup(t *testing.T) {
- apiName := "createAffinityGroup"
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- responses, err := ParseAsyncResponse(apiName, "AffinityGroupService", *request)
- if err != nil {
- t.Errorf("Failed to parse response, due to: %v", err)
- }
- fmt.Fprintln(writer, responses)
- }))
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", false)
- p := client.AffinityGroup.NewCreateAffinityGroupParams("testAffinityGroup", "host affinity")
- ag, err := client.AffinityGroup.CreateAffinityGroup(p)
- if err != nil {
- t.Errorf("Failed to disassociate IP addres due to: %v", err.Error())
- return
- }
- if ag.Name != "testAffinityGroup" {
- t.Errorf("Failed to create affinity group of name: testAffinityGroup")
- }
-}
diff --git a/cloudstack/ApiDiscoveryService_test.go b/cloudstack/ApiDiscoveryService_test.go
deleted file mode 100644
index 30e63bf..0000000
--- a/cloudstack/ApiDiscoveryService_test.go
+++ /dev/null
@@ -1,188 +0,0 @@
-//
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-//
-
-package cloudstack
-
-import (
- "fmt"
- "net/http"
- "net/http/httptest"
- "testing"
-)
-
-func TestListApis_SetName(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- response := `{
- "listapisresponse": {
- "api": [
- {
- "description": "List registered keypairs",
- "isasync": false,
- "name": "listSSHKeyPairs",
- "params": [
- {
- "description": "",
- "length": 255,
- "name": "page",
- "required": false,
- "type": "integer"
- },
- {
- "description": "A key pair name to look for",
- "length": 255,
- "name": "name",
- "required": false,
- "type": "string"
- },
- {
- "description": "If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false",
- "length": 255,
- "name": "listall",
- "required": false,
- "type": "boolean"
- },
- {
- "description": "list objects by project",
- "length": 255,
- "name": "projectid",
- "related": "activateProject",
- "required": false,
- "type": "uuid"
- },
- {
- "description": "list resources by account. Must be used with the domainId parameter.",
- "length": 255,
- "name": "account",
- "required": false,
- "type": "string"
- },
- {
- "description": "A public key fingerprint to look for",
- "length": 255,
- "name": "fingerprint",
- "required": false,
- "type": "string"
- },
- {
- "description": "List by keyword",
- "length": 255,
- "name": "keyword",
- "required": false,
- "type": "string"
- },
- {
- "description": "",
- "length": 255,
- "name": "pagesize",
- "required": false,
- "type": "integer"
- },
- {
- "description": "list only resources belonging to the domain specified",
- "length": 255,
- "name": "domainid",
- "related": "listDomains",
- "required": false,
- "type": "uuid"
- },
- {
- "description": "defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves.",
- "length": 255,
- "name": "isrecursive",
- "required": false,
- "type": "boolean"
- }
- ],
- "related": "",
- "response": [
- {},
- {
- "description": "Name of the keypair",
- "name": "name",
- "type": "string"
- },
- {
- "description": "Fingerprint of the public key",
- "name": "fingerprint",
- "type": "string"
- },
- {
- "description": "the domain name of the keypair owner",
- "name": "domain",
- "type": "string"
- },
- {
- "description": "true if the entity/resource has annotations",
- "name": "hasannotations",
- "type": "boolean"
- },
- {
- "description": "the domain id of the keypair owner",
- "name": "domainid",
- "type": "string"
- },
- {
- "description": "the current status of the latest async job acting on this object",
- "name": "jobstatus",
- "type": "integer"
- },
- {
- "description": "the UUID of the latest async job acting on this object",
- "name": "jobid",
- "type": "string"
- },
- {
- "description": "the owner of the keypair",
- "name": "account",
- "type": "string"
- },
- {},
- {
- "description": "ID of the ssh keypair",
- "name": "id",
- "type": "string"
- }
- ]
- }
- ],
- "count": 1
- }
-}`
- fmt.Fprintln(writer, response)
- }))
-
- defer server.Close()
-
- client := newClient(server.URL, "APIKEY", "SECRETKEY", true, true)
- p := client.APIDiscovery.NewListApisParams()
- p.SetName("listSSHKeyPairs")
- resp, err := client.APIDiscovery.ListApis(p)
-
- if err != nil {
- t.Errorf("Failed to fetch listSSHKeyPairs API details, due to: %s", err)
- }
-
- if resp.Count != 1 {
- t.Errorf("Failed to fetch listSSHKeyPairs API details")
- }
-
- if resp.Apis[0].Name != "listSSHKeyPairs" {
- t.Errorf("Failed to fetch listSSHKeyPairs API details")
- }
-}
diff --git a/cloudstack/AuthenticationService_test.go b/cloudstack/AuthenticationService_test.go
deleted file mode 100644
index 2295ab5..0000000
--- a/cloudstack/AuthenticationService_test.go
+++ /dev/null
@@ -1,80 +0,0 @@
-//
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-//
-
-package cloudstack
-
-import (
- "fmt"
- "net/http"
- "net/http/httptest"
- "testing"
-)
-
-func TestAuthenticationService_Login(t *testing.T) {
- apiName := "login"
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- loginResponse, err := ReadData(apiName, "AuthenticationService")
- if err != nil {
- t.Errorf("Failed to parse response, due to: %v", err)
- }
- fmt.Fprintf(writer, loginResponse[apiName])
- }))
- defer server.Close()
-
- client := newClient(server.URL, "APIKEY", "SECRETKEY", true, true)
- loginParams := client.Authentication.NewLoginParams("admin", "password")
- resp, err := client.Authentication.Login(loginParams)
-
- if err != nil {
- t.Errorf("Failed to login user 'admin', due to: %v", err)
- }
-
- if resp == nil {
- t.Errorf("Failed to login user 'admin'")
- }
-
- if resp.Username != "admin" {
- t.Errorf("Failed to login user 'admin'")
- }
-}
-
-func TestAuthenticationService_Logout(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "logout"
- logoutResponse, err := ReadData(apiName, "AuthenticationService")
- if err != nil {
- t.Errorf("Failed to parse response, due to: %v", err)
- }
- fmt.Fprintln(writer, logoutResponse[apiName])
- }))
-
- defer server.Close()
-
- client := newClient(server.URL, "APIKEY", "SECRETKEY", true, true)
- logoutParams := client.Authentication.NewLogoutParams()
- logoutResp, err := client.Authentication.Logout(logoutParams)
-
- if err != nil {
- t.Errorf("Failed to logout user 'admin', due to: %v", err)
- }
-
- if logoutResp.Description != "success" {
- t.Errorf("Failed to logout user 'admin'")
- }
-}
diff --git a/cloudstack/CertificateService_test.go b/cloudstack/CertificateService_test.go
deleted file mode 100644
index 7402a06..0000000
--- a/cloudstack/CertificateService_test.go
+++ /dev/null
@@ -1,56 +0,0 @@
-//
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-//
-
-package cloudstack
-
-import (
- "fmt"
- "net/http"
- "net/http/httptest"
- "testing"
-)
-
-func TestUploadCustomCertificate(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "uploadCustomCertificate"
- response, err := ParseAsyncResponse(apiName, "CertificateService", *request)
- if err != nil {
- t.Errorf("Failed to parse response, due to: %v", err)
- }
- fmt.Fprintln(writer, response)
- }))
-
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.Certificate.NewUploadCustomCertificateParams("test", "xyz.com")
- resp, err := client.Certificate.UploadCustomCertificate(params)
-
- if err != nil {
- t.Errorf("Failed to upload custom certificate, due to: %v", err)
- }
-
- if resp.Jobstatus == 2 {
- t.Errorf("Failed to upload custom certificate")
- }
-
- if resp.Jobstatus == 1 {
- t.Log("Successfully uploaded certificate")
- }
-
-}
diff --git a/cloudstack/ClusterService_test.go b/cloudstack/ClusterService_test.go
deleted file mode 100644
index 68feed2..0000000
--- a/cloudstack/ClusterService_test.go
+++ /dev/null
@@ -1,284 +0,0 @@
-//
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-//
-
-package cloudstack
-
-import (
- "fmt"
- "net/http"
- "net/http/httptest"
- "testing"
-)
-
-var (
- clusterName = "TestCluster"
- clusterType = "CloudManaged"
- hypervisorType = "KVM"
- podId = "6137ef6f-753f-4e7b-a728-8d46a92358d2"
- zoneId = "04ccc336-d730-42fe-8ff6-5ae36e141e81"
-)
-
-//func TestCreateCluster(t *testing.T) {
-// server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
-// response := `{
-// "addclusterresponse": {
-// "count": 1,
-// "cluster": [
-// {
-// "id": "f1f5a259-1b55-431d-ad7e-6d39c28f1b15",
-// "name": "TestCluster",
-// "podid": "6137ef6f-753f-4e7b-a728-8d46a92358d2",
-// "podname": "POD0",
-// "zoneid": "04ccc336-d730-42fe-8ff6-5ae36e141e81",
-// "zonename": "SimZone1",
-// "hypervisortype": "KVM",
-// "clustertype": "CloudManaged",
-// "allocationstate": "Enabled",
-// "managedstate": "Managed",
-// "cpuovercommitratio": "1.0",
-// "memoryovercommitratio": "1.0",
-// "resourcedetails": {
-// "memoryOvercommitRatio": "1.0",
-// "cpuOvercommitRatio": "1.0"
-// }
-// }
-// ]
-// }
-// }`
-// fmt.Fprintf(writer, response)
-// }))
-// defer server.Close()
-//
-// client := newClient(server.URL, "APIKEY", "SECRETKEY", true, true)
-// params := client.Cluster.NewAddClusterParams(clusterName, clusterType, hypervisorType, podId, zoneId)
-// resp, err := client.Cluster.AddCluster(params)
-//
-// if err != nil {
-// t.Errorf("Failed to add cluster %s to zone %s, due to: %v", clusterName, zoneId, err)
-// }
-//
-// fmt.Printf("%v", resp)
-// if resp.Name != clusterName {
-// t.Errorf("Failed to add cluster")
-// }
-//}
-
-func TestClusterService_ListClusters(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "listClusters"
- resp, err := ReadData(apiName, "ClusterService")
- if err != nil {
- t.Errorf("Failed to parse response, due to: %v", err)
- }
- fmt.Fprintln(writer, resp[apiName])
- }))
- defer server.Close()
-
- client := newClient(server.URL, "APIKEY", "SECRETKEY", true, true)
- params := client.Cluster.NewListClustersParams()
- params.SetZoneid(zoneId)
- clusterResp, err := client.Cluster.ListClusters(params)
- if err != nil {
- t.Errorf("Failed to list clusters in zone %s due to: %v", zoneId, err)
- }
-
- if clusterResp.Count != 3 {
- t.Errorf("Failed to list all clusters in the zone")
- }
-}
-
-func TestClusterService_DisableHAForCluster(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "disableHAForCluster"
- responses, err := ParseAsyncResponse(apiName, "ClusterService", *request)
- if err != nil {
- t.Errorf("Failed to parse response, due to: %v", err)
- }
- fmt.Fprintf(writer, responses)
- }))
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.Cluster.NewDisableHAForClusterParams("f1f5a259-1b55-431d-ad7e-6d39c28f1b15")
- resp, err := client.Cluster.DisableHAForCluster(params)
- if err != nil {
- t.Errorf("Failed to disable HA for cluster due to %v", err)
- }
-
- if !resp.Success {
- t.Errorf("Failed to disable HA for cluster")
- }
-}
-
-func TestClusterService_EnableHAForCluster(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "enableHAForCluster"
- responses, err := ParseAsyncResponse(apiName, "ClusterService", *request)
- if err != nil {
- t.Errorf("Failed to parse response, due to: %v", err)
- }
- fmt.Fprintf(writer, responses)
- }))
-
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.Cluster.NewEnableHAForClusterParams("f1f5a259-1b55-431d-ad7e-6d39c28f1b15")
- resp, err := client.Cluster.EnableHAForCluster(params)
- if err != nil {
- t.Errorf("Failed to enable HA for cluster due to %v", err)
- }
-
- if !resp.Success {
- t.Errorf("Failed to enable HA for cluster")
- }
-}
-
-func TestClusterService_DisableOutOfBandManagementForCluster(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "disableOutOfBandManagementForCluster"
- responses, err := ParseAsyncResponse(apiName, "ClusterService", *request)
- if err != nil {
- t.Errorf("Failed to parse response, due to: %v", err)
- }
- fmt.Fprintf(writer, responses)
- }))
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.Cluster.NewDisableOutOfBandManagementForClusterParams("f1f5a259-1b55-431d-ad7e-6d39c28f1b15")
- resp, err := client.Cluster.DisableOutOfBandManagementForCluster(params)
- if err != nil {
- t.Errorf("Failed to disable Out of band management for cluster due to %v", err)
- }
-
- if resp.Enabled {
- t.Errorf("Failed to disable out of band management for cluster")
- }
-}
-
-func TestClusterService_EnableOutOfBandManagementForCluster(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "enableOutOfBandManagementForCluster"
- responses, err := ParseAsyncResponse(apiName, "ClusterService", *request)
- if err != nil {
- t.Errorf("Failed to parse response, due to: %v", err)
- }
- fmt.Fprintf(writer, responses)
- }))
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.Cluster.NewEnableOutOfBandManagementForClusterParams("f1f5a259-1b55-431d-ad7e-6d39c28f1b15")
- resp, err := client.Cluster.EnableOutOfBandManagementForCluster(params)
- if err != nil {
- t.Errorf("Failed to enable Out of band management for cluster due to %v", err)
- }
-
- if !resp.Enabled {
- t.Errorf("Failed to enable out of band management for cluster")
- }
-}
-
-func TestClusterService_DedicateCluster(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "dedicateCluster"
- responses, err := ParseAsyncResponse(apiName, "ClusterService", *request)
- if err != nil {
- t.Errorf("Failed to parse response, due to: %v", err)
- }
- fmt.Fprintf(writer, responses)
- }))
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.Cluster.NewDedicateClusterParams("f1f5a259-1b55-431d-ad7e-6d39c28f1b15", "e4874e10-5fdf-11ea-9a56-1e006800018c")
- resp, err := client.Cluster.DedicateCluster(params)
- if err != nil {
- t.Errorf("Failed to dedicate cluster to ROOT domain due to %v", err)
- }
-
- if resp.Domainid != "e4874e10-5fdf-11ea-9a56-1e006800018c" {
- t.Errorf("Failed to dedicate cluster to right domain")
- }
-}
-
-func TestClusterService_ReleaseDedicatedCluster(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "releaseDedicatedCluster"
- responses, err := ParseAsyncResponse(apiName, "ClusterService", *request)
- if err != nil {
- t.Errorf("Failed to parse response, due to: %v", err)
- }
- fmt.Fprintf(writer, responses)
- }))
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.Cluster.NewReleaseDedicatedClusterParams("f1f5a259-1b55-431d-ad7e-6d39c28f1b15")
- resp, err := client.Cluster.ReleaseDedicatedCluster(params)
- if err != nil {
- t.Errorf("Failed to release dedicated cluster to ROOT domain due to %v", err)
- }
-
- if !resp.Success {
- t.Errorf("Failed to release dedicated cluster to right domain")
- }
-}
-
-func TestClusterService_UpdateCluster(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "updateCluster"
- response, err := ReadData(apiName, "ClusterService")
- if err != nil {
- t.Errorf("Failed to read response data, due to: %v", err)
- }
- fmt.Fprintf(writer, response[apiName])
- }))
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.Cluster.NewUpdateClusterParams("f1f5a259-1b55-431d-ad7e-6d39c28f1b15")
- params.SetClustername("TestClusterUpdated")
- params.SetManagedstate("Unmanaged")
- resp, err := client.Cluster.UpdateCluster(params)
- if err != nil {
- t.Errorf("Failed to updated cluster details - name, due to: %v", err)
- }
-
- if resp.Name != "TestClusterUpdated" {
- t.Errorf("Failed to updated cluster name")
- }
-}
-
-func TestClusterService_DeleteCluster(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "deleteCluster"
- response, err := ReadData(apiName, "ClusterService")
- if err != nil {
- t.Errorf("Failed to read response data, due to: %v", err)
- }
- fmt.Fprintf(writer, response[apiName])
- }))
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.Cluster.NewDeleteClusterParams("f1f5a259-1b55-431d-ad7e-6d39c28f1b15")
- resp, err := client.Cluster.DeleteCluster(params)
- if err != nil {
- t.Errorf("Failed to delete cluster due to: %v", err)
- }
-
- if !resp.Success {
- t.Errorf("Failed to delete cluster")
- }
-
-}
diff --git a/cloudstack/ConfigurationService_test.go b/cloudstack/ConfigurationService_test.go
deleted file mode 100644
index 00d1053..0000000
--- a/cloudstack/ConfigurationService_test.go
+++ /dev/null
@@ -1,92 +0,0 @@
-//
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-//
-
-package cloudstack
-
-import (
- "fmt"
- "net/http"
- "net/http/httptest"
- "testing"
-)
-
-func TestConfigurationService_ListCapabilities(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
- apiName := "listCapabilities"
- resp, err := ReadData(apiName, "ConfigurationService")
- if err != nil {
- t.Errorf("Failed to read response data, due to: %v", err)
- }
- fmt.Fprintf(w, resp[apiName])
- }))
- defer server.Close()
-
- client := newClient(server.URL, "APIKEY", "SECRETKEY", true, true)
- p := client.Configuration.NewListCapabilitiesParams()
- resp, err := client.Configuration.ListCapabilities(p)
- if err != nil {
- t.Errorf("Failed to list capabilities due to: %v", err)
- }
-
- if resp == nil {
- t.Errorf("Failed to list capabilities")
- }
-}
-
-func TestConfigurationService_ListConfigurations(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
- apiName := "listConfigurations"
- resp, err := ReadData(apiName, "ConfigurationService")
- if err != nil {
- t.Errorf("Failed to read response data, due to: %v", err)
- }
- fmt.Fprintf(w, resp[apiName])
- }))
- client := newClient(server.URL, "APIKEY", "SECRETKEY", true, true)
- p := client.Configuration.NewListConfigurationsParams()
- p.SetName("allow.user.create.projects")
- resp, err := client.Configuration.ListConfigurations(p)
- if err != nil {
- t.Errorf("Failed to list configuration details due to: %v", err)
- }
- if resp.Count != 1 {
- t.Errorf("Failed to list configuration details")
- }
-}
-
-func TestConfigurationService_UpdateConfigurations(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
- apiName := "updateConfiguration"
- resp, err := ReadData(apiName, "ConfigurationService")
- if err != nil {
- t.Errorf("Failed to read response data, due to: %v", err)
- }
- fmt.Fprintf(w, resp[apiName])
- }))
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", false)
- p := client.Configuration.NewUpdateConfigurationParams("allow.user.create.projects")
- p.SetValue("false")
- resp, err := client.Configuration.UpdateConfiguration(p)
- if err != nil {
- t.Errorf("Failed to update configuration due to: %v", err)
- }
- if resp.Value != "false" {
- t.Errorf("Failed to update configuration")
- }
-}
diff --git a/cloudstack/DiskOfferingService_test.go b/cloudstack/DiskOfferingService_test.go
deleted file mode 100644
index 69cbfff..0000000
--- a/cloudstack/DiskOfferingService_test.go
+++ /dev/null
@@ -1,90 +0,0 @@
-//
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-//
-
-package cloudstack
-
-import (
- "fmt"
- "net/http"
- "net/http/httptest"
- "testing"
-)
-
-func TestDiskOfferingService_CreateDiskOffering(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "createDiskOffering"
- response, err := ReadData(apiName, "DiskOfferingService")
- if err != nil {
- t.Errorf("Failed to read response data due to: %v", err)
- }
- fmt.Fprintf(writer, response[apiName])
- }))
- client := NewClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.DiskOffering.NewCreateDiskOfferingParams("test", "test")
- resp, err := client.DiskOffering.CreateDiskOffering(params)
- if err != nil {
- t.Errorf("Failed to create disk offering due to: %v", err)
- }
-
- if resp == nil {
- t.Errorf("Failed to create disk offering")
- }
-}
-
-func TestDiskOfferingService_ListDiskOffering(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "listDiskOfferings"
- response, err := ReadData(apiName, "DiskOfferingService")
- if err != nil {
- t.Errorf("Failed to read response data due to: %v", err)
- }
- fmt.Fprintf(writer, response[apiName])
- }))
- client := NewClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.DiskOffering.NewListDiskOfferingsParams()
- params.SetId("7662b6ae-f00b-4268-973f-f3f87eaf82c5")
- resp, err := client.DiskOffering.ListDiskOfferings(params)
- if err != nil {
- t.Errorf("Failed to list disk offering due to: %v", err)
- }
-
- if resp.Count != 1 {
- t.Errorf("Failed to list disk offering")
- }
-}
-
-func TestDiskOfferingService_DeleteDiskOffering(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "deleteDiskOffering"
- response, err := ReadData(apiName, "DiskOfferingService")
- if err != nil {
- t.Errorf("Failed to read response data due to: %v", err)
- }
- fmt.Fprintf(writer, response[apiName])
- }))
- client := NewClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.DiskOffering.NewDeleteDiskOfferingParams("7662b6ae-f00b-4268-973f-f3f87eaf82c5")
- resp, err := client.DiskOffering.DeleteDiskOffering(params)
- if err != nil {
- t.Errorf("Failed to delete disk offering due to : %v", err)
- }
- if !resp.Success {
- t.Errorf("Failed to delete disk offering")
- }
-}
diff --git a/cloudstack/DomainService_test.go b/cloudstack/DomainService_test.go
deleted file mode 100644
index 0c34364..0000000
--- a/cloudstack/DomainService_test.go
+++ /dev/null
@@ -1,141 +0,0 @@
-//
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-//
-
-package cloudstack
-
-import (
- "fmt"
- "net/http"
- "net/http/httptest"
- "testing"
-)
-
-func TestDomainService_CreateDomain(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "createDomain"
- response, err := ReadData(apiName, "DomainService")
- if err != nil {
- t.Errorf("Failed to read response data due to: %v", err)
- }
- fmt.Fprintf(writer, response[apiName])
- }))
- defer server.Close()
- client := NewClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.Domain.NewCreateDomainParams("testDomain")
- params.SetParentdomainid("e4874e10-5fdf-11ea-9a56-1e006800018c")
- resp, err := client.Domain.CreateDomain(params)
- if err != nil {
- t.Errorf("Failed to create domain due to: %v", err)
- }
-
- if resp.Name != "testDomain" {
- t.Errorf("Failed to create domain")
- }
-}
-
-func TestDomainService_UpdateDomain(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "updateDomain"
- response, err := ReadData(apiName, "DomainService")
- if err != nil {
- t.Errorf("Failed to read response data due to: %v", err)
- }
- fmt.Fprintf(writer, response[apiName])
- }))
- defer server.Close()
- client := NewClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.Domain.NewUpdateDomainParams("ee05fd92-7365-4421-a15b-abfa11dfc4f6")
- params.SetName("testDomainUpdated")
- resp, err := client.Domain.UpdateDomain(params)
- if err != nil {
- t.Errorf("Failed to update domain name due to: %v", err)
- }
-
- if resp.Name != "testDomainUpdated" {
- t.Errorf("Failed to update domain name")
- }
-}
-
-func TestDomainService_ListDomains(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "listDomains"
- response, err := ReadData(apiName, "DomainService")
- if err != nil {
- t.Errorf("Failed to read response data due to: %v", err)
- }
- fmt.Fprintf(writer, response[apiName])
- }))
- defer server.Close()
- client := NewClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.Domain.NewListDomainsParams()
- params.SetId("097d3992-7a67-42e1-afb5-b4d2d81e280f")
- resp, err := client.Domain.ListDomains(params)
- if err != nil {
- t.Errorf("Failed to list specific domain details due to: %v", err)
- }
- if resp.Count != 1 {
- t.Errorf("Failed to list specific domain details")
- }
- if resp.Domains[0].Name != "DummyDomain" {
- t.Errorf("Failed to fetch details of specific domain")
- }
-}
-
-func TestDomainService_ListDomainChildren(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "listDomainChildren"
- response, err := ReadData(apiName, "DomainService")
- if err != nil {
- t.Errorf("Failed to read response data due to: %v", err)
- }
- fmt.Fprintf(writer, response[apiName])
- }))
- defer server.Close()
- client := NewClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.Domain.NewListDomainChildrenParams()
- params.SetId("99becf06-7f0f-4eb4-bdc3-44fecb8cb829")
- resp, err := client.Domain.ListDomainChildren(params)
- if err != nil {
- t.Errorf("Failed to list specific domain's children due to: %v", err)
- }
- if resp.Count != 1 {
- t.Errorf("Failed to list specific domain's children ")
- }
-}
-
-func TestDomainService_DeleteDomain(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "deleteDomain"
- response, err := ParseAsyncResponse(apiName, "DomainService", *request)
- if err != nil {
- t.Errorf("Failed to parse response, due to: %v", err)
- }
- fmt.Fprintln(writer, response)
- }))
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.Domain.NewDeleteDomainParams("ee05fd92-7365-4421-a15b-abfa11dfc4f6")
- resp, err := client.Domain.DeleteDomain(params)
- if err != nil {
- t.Errorf("Failed to delete domain due to: %v", err)
- }
- if !resp.Success {
- t.Errorf("Failed to delete domain")
- }
-}
diff --git a/cloudstack/ExtFirewallService.go b/cloudstack/ExtFirewallService.go
deleted file mode 100644
index 4676b3e..0000000
--- a/cloudstack/ExtFirewallService.go
+++ /dev/null
@@ -1,17 +0,0 @@
-//
-// Copyright 2018, Sander van Harmelen
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-
-package cloudstack
diff --git a/cloudstack/ExtFirewallService_mock.go b/cloudstack/ExtFirewallService_mock.go
deleted file mode 100644
index 601b0b4..0000000
--- a/cloudstack/ExtFirewallService_mock.go
+++ /dev/null
@@ -1,24 +0,0 @@
-//
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-//
-
-// Code generated by MockGen. DO NOT EDIT.
-// Source: ./cloudstack/ExtFirewallService.go
-
-// Package cloudstack is a generated GoMock package.
-package cloudstack
diff --git a/cloudstack/ExtLoadBalancerService.go b/cloudstack/ExtLoadBalancerService.go
deleted file mode 100644
index 4676b3e..0000000
--- a/cloudstack/ExtLoadBalancerService.go
+++ /dev/null
@@ -1,17 +0,0 @@
-//
-// Copyright 2018, Sander van Harmelen
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-
-package cloudstack
diff --git a/cloudstack/ExtLoadBalancerService_mock.go b/cloudstack/ExtLoadBalancerService_mock.go
deleted file mode 100644
index 245d4c1..0000000
--- a/cloudstack/ExtLoadBalancerService_mock.go
+++ /dev/null
@@ -1,24 +0,0 @@
-//
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-//
-
-// Code generated by MockGen. DO NOT EDIT.
-// Source: ./cloudstack/ExtLoadBalancerService.go
-
-// Package cloudstack is a generated GoMock package.
-package cloudstack
diff --git a/cloudstack/ExternalDeviceService.go b/cloudstack/ExternalDeviceService.go
deleted file mode 100644
index 4676b3e..0000000
--- a/cloudstack/ExternalDeviceService.go
+++ /dev/null
@@ -1,17 +0,0 @@
-//
-// Copyright 2018, Sander van Harmelen
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-
-package cloudstack
diff --git a/cloudstack/ExternalDeviceService_mock.go b/cloudstack/ExternalDeviceService_mock.go
deleted file mode 100644
index 7535c52..0000000
--- a/cloudstack/ExternalDeviceService_mock.go
+++ /dev/null
@@ -1,24 +0,0 @@
-//
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-//
-
-// Code generated by MockGen. DO NOT EDIT.
-// Source: ./cloudstack/ExternalDeviceService.go
-
-// Package cloudstack is a generated GoMock package.
-package cloudstack
diff --git a/cloudstack/FirewallService_test.go b/cloudstack/FirewallService_test.go
deleted file mode 100644
index abfd1af..0000000
--- a/cloudstack/FirewallService_test.go
+++ /dev/null
@@ -1,116 +0,0 @@
-//
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-//
-
-package cloudstack
-
-import (
- "fmt"
- "net/http"
- "net/http/httptest"
- "testing"
-)
-
-func TestFirewallService_CreateFirewallRule(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "createFirewallRule"
- response, err := ParseAsyncResponse(apiName, "FirewallService", *request)
- if err != nil {
- t.Errorf("Failed to parse response, due to: %v", err)
- }
- fmt.Fprintln(writer, response)
- }))
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.Firewall.NewCreateFirewallRuleParams("192.168.2.4", "tcp")
- resp, err := client.Firewall.CreateFirewallRule(params)
- if err != nil {
- t.Errorf("Failed to create firewall rule due to: %v", err)
- }
- if resp.Ipaddress != "192.168.2.4" {
- t.Errorf("Failed to create firewall rule")
- }
-
- if resp.State != "Active" {
- t.Errorf("Failed to create firewall rule")
- }
-}
-
-func TestFirewallService_DeleteFirewallRule(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "deleteFirewallRule"
- response, err := ParseAsyncResponse(apiName, "FirewallService", *request)
- if err != nil {
- t.Errorf("Failed to parse response, due to: %v", err)
- }
- fmt.Fprintln(writer, response)
- }))
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.Firewall.NewDeleteFirewallRuleParams("fb4ad2ee-02c8-433e-a769-6f18afddc750")
- resp, err := client.Firewall.DeleteFirewallRule(params)
- if err != nil {
- t.Errorf("Failed to delete firewall rule due to: %v", err)
- }
- if !resp.Success {
- t.Errorf("Failed to delete firewall rule")
- }
-}
-
-func TestFirewallService_CreateEgressFirewallRule(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "createEgressFirewallRule"
- response, err := ParseAsyncResponse(apiName, "FirewallService", *request)
- if err != nil {
- t.Errorf("Failed to parse response, due to: %v", err)
- }
- fmt.Fprintln(writer, response)
- }))
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.Firewall.NewCreateEgressFirewallRuleParams("c4a3303c-376d-4d56-b336-1bd91cb130b6", "tcp")
- resp, err := client.Firewall.CreateEgressFirewallRule(params)
- if err != nil {
- t.Errorf("Failed to create egress firewall rule due to: %v", err)
- }
-
- if resp.State != "Active" {
- t.Errorf("Failed to create egress firewall rule")
- }
-}
-
-func TestFirewallService_DeleteEgressFirewallRule(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "deleteEgressFirewallRule"
- response, err := ParseAsyncResponse(apiName, "FirewallService", *request)
- if err != nil {
- t.Errorf("Failed to parse response, due to: %v", err)
- }
- fmt.Fprintln(writer, response)
- }))
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.Firewall.NewDeleteEgressFirewallRuleParams("fb4ad2ee-02c8-433e-a769-6f18afddc750")
- resp, err := client.Firewall.DeleteEgressFirewallRule(params)
- if err != nil {
- t.Errorf("Failed to delete egress firewall rule due to: %v", err)
- }
- if !resp.Success {
- t.Errorf("Failed to delete egress firewall rule")
- }
-}
diff --git a/cloudstack/HostService_test.go b/cloudstack/HostService_test.go
deleted file mode 100644
index 6d4acc2..0000000
--- a/cloudstack/HostService_test.go
+++ /dev/null
@@ -1,181 +0,0 @@
-//
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-//
-
-package cloudstack
-
-import (
- "fmt"
- "net/http"
- "net/http/httptest"
- "testing"
-)
-
-func TestHostService_AddHost(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "addHost"
- response, err := ReadData(apiName, "HostService")
- if err != nil {
- t.Errorf("Failed to read response data due to: %v", err)
- }
- fmt.Fprintln(writer, response[apiName])
- }))
-
- defer server.Close()
- client := NewClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.Host.NewAddHostParams("Simulator", "5382edc2-e689-4074-bd67-0e1a236eb2bc", "http://sim/c0/h0",
- "d4a81f75-5d92-415e-ab59-e85cc2ce56d9")
- resp, err := client.Host.AddHost(params)
- if err != nil {
- t.Errorf("Failed to add host due to: %v", err)
- return
- }
-
- if resp == nil {
- t.Errorf("Failed to add host")
- }
-}
-
-func TestHostService_ListHosts(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "listHosts"
- response, err := ReadData(apiName, "HostService")
- if err != nil {
- t.Errorf("Failed to read response data due to: %v", err)
- }
- fmt.Fprintln(writer, response[apiName])
- }))
- defer server.Close()
- client := NewClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.Host.NewListHostsParams()
- resp, err := client.Host.ListHosts(params)
- if err != nil {
- t.Errorf("Failed to add host due to: %v", err)
- return
- }
- if resp.Count != 1 {
- t.Errorf("Failed to add host")
- }
-}
-
-func TestHostService_PrepareHostForMaintenance(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "prepareHostForMaintenance"
- response, err := ParseAsyncResponse(apiName, "HostService", *request)
- if err != nil {
- t.Errorf("Failed to parse response, due to: %v", err)
- }
- fmt.Fprintln(writer, response)
- }))
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.Host.NewPrepareHostForMaintenanceParams("8e8e68e7-19ea-4a78-bbdb-6e79d27729c9")
- resp, err := client.Host.PrepareHostForMaintenance(params)
- if err != nil {
- t.Errorf("Failed to prepare host for maintenance due to: %v", err)
- return
- }
- if resp.Resourcestate != "PrepareForMaintenance" {
- t.Errorf("Failed to prepare host for maintenance")
- }
-}
-
-func TestHostService_CancelHostForMaintenance(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "cancelHostForMaintenance"
- response, err := ParseAsyncResponse(apiName, "HostService", *request)
- if err != nil {
- t.Errorf("Failed to parse response, due to: %v", err)
- }
- fmt.Fprintln(writer, response)
- }))
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.Host.NewCancelHostMaintenanceParams("8e8e68e7-19ea-4a78-bbdb-6e79d27729c9")
- resp, err := client.Host.CancelHostMaintenance(params)
- if err != nil {
- t.Errorf("Failed to cancel host for maintenance due to: %v", err)
- return
- }
- if resp.Resourcestate != "Enabled" {
- t.Errorf("Failed to cancel host for maintenance")
- }
-}
-
-func TestHostService_EnableOutOfBandManagementForHost(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "enableOutOfBandManagementForHost"
- response, err := ParseAsyncResponse(apiName, "HostService", *request)
- if err != nil {
- t.Errorf("Failed to parse response, due to: %v", err)
- }
- fmt.Fprintln(writer, response)
- }))
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.Host.NewEnableOutOfBandManagementForHostParams("8e8e68e7-19ea-4a78-bbdb-6e79d27729c9")
- resp, err := client.Host.EnableOutOfBandManagementForHost(params)
- if err != nil {
- t.Errorf("Failed to enable out of band management for due to: %v", err)
- }
- if !resp.Enabled {
- t.Errorf("Failed to enable out of band management")
- }
-}
-
-func TestHostService_DisableOutOfBandManagementForHost(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "disableOutOfBandManagementForHost"
- response, err := ParseAsyncResponse(apiName, "HostService", *request)
- if err != nil {
- t.Errorf("Failed to parse response, due to: %v", err)
- }
- fmt.Fprintln(writer, response)
- }))
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.Host.NewDisableOutOfBandManagementForHostParams("8e8e68e7-19ea-4a78-bbdb-6e79d27729c9")
- resp, err := client.Host.DisableOutOfBandManagementForHost(params)
- if err != nil {
- t.Errorf("Failed to disable out of band management for due to: %v", err)
- }
- if resp.Enabled {
- t.Errorf("Failed to disable out of band management")
- }
-}
-
-func TestHostService_EnableHAForHost(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "enableHAForHost"
- response, err := ParseAsyncResponse(apiName, "HostService", *request)
- if err != nil {
- t.Errorf("Failed to parse response, due to: %v", err)
- }
- fmt.Fprintln(writer, response)
- }))
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.Host.NewEnableHAForHostParams("8e8e68e7-19ea-4a78-bbdb-6e79d27729c9")
- resp, err := client.Host.EnableHAForHost(params)
- if err != nil {
- t.Errorf("Failed to enable HA for due to: %v", err)
- }
- if !resp.Haenable {
- t.Errorf("Failed to enable HA for host")
- }
-}
diff --git a/cloudstack/HypervisorService_test.go b/cloudstack/HypervisorService_test.go
deleted file mode 100644
index 92ebf9e..0000000
--- a/cloudstack/HypervisorService_test.go
+++ /dev/null
@@ -1,51 +0,0 @@
-//
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-//
-
-package cloudstack
-
-import (
- "fmt"
- "net/http"
- "net/http/httptest"
- "testing"
-)
-
-func TestHypervisorService_ListSpecificHypervisorCapabilities(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "listHypervisorCapabilities"
- response, err := ReadData(apiName, "HypervisorService")
- if err != nil {
- t.Errorf("Failed to read response data due to: %v", err)
- }
- fmt.Fprintf(writer, response[apiName])
- }))
- defer server.Close()
- client := NewClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.Hypervisor.NewListHypervisorCapabilitiesParams()
- params.SetId("1")
- resp, err := client.Hypervisor.ListHypervisorCapabilities(params)
- if err != nil {
- t.Errorf("Failed to list hypervisor capabilities due to: %v", err)
- return
- }
-
- if resp.Count != 1 {
- t.Errorf("Failed list specific hypervisor capability")
- }
-}
diff --git a/cloudstack/ImageStoreService_test.go b/cloudstack/ImageStoreService_test.go
deleted file mode 100644
index 3c82e5f..0000000
--- a/cloudstack/ImageStoreService_test.go
+++ /dev/null
@@ -1,96 +0,0 @@
-//
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-//
-
-package cloudstack
-
-import (
- "fmt"
- "net/http"
- "net/http/httptest"
- "testing"
-)
-
-func TestImageStoreService_AddImageStore(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "addImageStore"
- response, err := ReadData(apiName, "ImageStoreService")
- if err != nil {
- t.Errorf("Failed to read response data due to: %v", err)
- }
- fmt.Fprintln(writer, response[apiName])
- }))
- defer server.Close()
- client := NewClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.ImageStore.NewAddImageStoreParams("NFS")
- resp, err := client.ImageStore.AddImageStore(params)
- if err != nil {
- t.Errorf("Failed to add image store due to: %v", err)
- return
- }
-
- if resp == nil || resp.Providername != "NFS" {
- t.Errorf(" Failed to add image store")
- }
-}
-
-func TestImageStoreService_ListImageStores(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "listImageStores"
- response, err := ReadData(apiName, "ImageStoreService")
- if err != nil {
- t.Errorf("Failed to read response data due to: %v", err)
- }
- fmt.Fprintln(writer, response[apiName])
- }))
- defer server.Close()
- client := NewClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.ImageStore.NewListImageStoresParams()
- resp, err := client.ImageStore.ListImageStores(params)
- if err != nil {
- t.Errorf("Failed to list image stores due to: %v", err)
- return
- }
-
- if resp == nil || resp.Count != 1 {
- t.Errorf(" Failed to list image stores")
- }
-}
-
-func TestImageStoreService_DeleteImageStore(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "deleteImageStore"
- response, err := ReadData(apiName, "ImageStoreService")
- if err != nil {
- t.Errorf("Failed to read response data due to: %v", err)
- }
- fmt.Fprintln(writer, response[apiName])
- }))
- defer server.Close()
- client := NewClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.ImageStore.NewDeleteImageStoreParams("0ac85364-e31a-4840-97a4-a237b4291dfa")
- resp, err := client.ImageStore.DeleteImageStore(params)
- if err != nil {
- t.Errorf("Failed to delete image store due to: %v", err)
- return
- }
-
- if resp == nil || !resp.Success {
- t.Errorf(" Failed to delete image store")
- }
-}
diff --git a/cloudstack/LoadBalancerService_test.go b/cloudstack/LoadBalancerService_test.go
deleted file mode 100644
index 6256fe9..0000000
--- a/cloudstack/LoadBalancerService_test.go
+++ /dev/null
@@ -1,78 +0,0 @@
-//
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-//
-
-package cloudstack
-
-import (
- "fmt"
- "net/http"
- "net/http/httptest"
- "testing"
-)
-
-func TestLoadBalancerService_CreateLoadBalancerRule(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "createLoadBalancerRule"
- response, err := ParseAsyncResponse(apiName, "LoadBalancerService", *request)
- if err != nil {
- t.Errorf("Failed to parse response, due to: %v", err)
- }
- fmt.Fprintf(writer, response)
- }))
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.LoadBalancer.NewCreateLoadBalancerRuleParams("roundrobin", "testLBRule", 9090, 9090)
- params.SetProtocol("tcp")
- params.SetNetworkid("cc39d938-5ea0-4d9c-b89d-421da3274e54")
- params.SetPublicipid("bab02a09-1244-4235-a938-150e75e04ce0")
- resp, err := client.LoadBalancer.CreateLoadBalancerRule(params)
- if err != nil {
- t.Errorf("Failed to create load balancer rule due to: %v", err)
- }
- if resp.Name != "testLBRule" {
- t.Errorf("Failed to create load balancer rule")
- }
-}
-
-func TestLoadBalancerService_AssignLoadBalancerRule(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "assignLoadBalancerRule"
- response, err := ParseAsyncResponse(apiName, "LoadBalancerService", *request)
- if err != nil {
- t.Errorf("Failed to parse response, due to: %v", err)
- }
- fmt.Fprintf(writer, response)
- }))
- defer server.Close()
- client := NewClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.LoadBalancer.NewAssignToLoadBalancerRuleParams("be6294cc-8f99-42c8-970d-f54c511972a3")
- vmIpMap := make(map[string]string)
- vmIpMap["vmid"] = "c7749abf-fadb-4658-9346-bbef95a2456f"
- vmIpMap["vmip"] = "10.1.1.178"
- params.SetVmidipmap(vmIpMap)
- resp, err := client.LoadBalancer.AssignToLoadBalancerRule(params)
- if err != nil {
- t.Errorf("Failed to assign vm to loadbalancer rule due to: %v", err)
- return
- }
-
- if resp == nil {
- t.Errorf("Failed to assign vm to loadbalancer rule")
- }
-}
diff --git a/cloudstack/NetworkACLService_test.go b/cloudstack/NetworkACLService_test.go
deleted file mode 100644
index b9023aa..0000000
--- a/cloudstack/NetworkACLService_test.go
+++ /dev/null
@@ -1,48 +0,0 @@
-//
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-//
-
-package cloudstack
-
-import (
- "fmt"
- "net/http"
- "net/http/httptest"
- "testing"
-)
-
-func TestNetworkACLService_UpdateNetworkACLList(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "updateNetworkACLList"
- response, err := ParseAsyncResponse(apiName, "NetworkACLService", *request)
- if err != nil {
- t.Errorf("Failed to parse response, due to: %v", err)
- }
- fmt.Fprintln(writer, response)
- }))
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.NetworkACL.NewUpdateNetworkACLListParams("a31e11a0-57fe-41df-be7a-34d359673061")
- resp, err := client.NetworkACL.UpdateNetworkACLList(params)
- if err != nil {
- t.Errorf("Failed to update Network ACL list due to: %v", err)
- }
- if resp == nil {
- t.Errorf("Failed to update Network ACL list ")
- }
-}
diff --git a/cloudstack/NetworkOfferingService_test.go b/cloudstack/NetworkOfferingService_test.go
deleted file mode 100644
index 98e5f00..0000000
--- a/cloudstack/NetworkOfferingService_test.go
+++ /dev/null
@@ -1,116 +0,0 @@
-//
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-//
-
-package cloudstack
-
-import (
- "fmt"
- "net/http"
- "net/http/httptest"
- "testing"
-)
-
-func TestNetworkOfferingService_CreateNetworkOffering(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "createNetworkOffering"
- response, err := ReadData(apiName, "NetworkOfferingService")
- if err != nil {
- t.Errorf("Failed to read response data due to: %v", err)
- }
- fmt.Fprintf(writer, response[apiName])
- }))
- defer server.Close()
- client := NewClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.NetworkOffering.NewCreateNetworkOfferingParams("testNetOffering", "L2", "testNetOffering", "Guest")
- resp, err := client.NetworkOffering.CreateNetworkOffering(params)
- if err != nil {
- t.Errorf("Failed to create network offering due to: %v", err)
- }
- if resp.Name != "testNetOffering" {
- t.Errorf("Failed to create network offering")
- }
-}
-
-func TestNetworkOfferingService_UpdateNetworkOffering(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "updateNetworkOffering"
- response, err := ReadData(apiName, "NetworkOfferingService")
- if err != nil {
- t.Errorf("Failed to read response data due to: %v", err)
- }
- fmt.Fprintf(writer, response[apiName])
- }))
- defer server.Close()
- client := NewClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.NetworkOffering.NewUpdateNetworkOfferingParams()
- params.SetState("Enabled")
- resp, err := client.NetworkOffering.UpdateNetworkOffering(params)
- if err != nil {
- t.Errorf("Failed to update network offering state due to: %v", err)
- }
-
- if resp.State != "Enabled" {
- t.Errorf("Failed to enable network offering")
- }
-}
-
-func TestNetworkOfferingService_ListNetworkOffering(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "listNetworkOfferings"
- response, err := ReadData(apiName, "NetworkOfferingService")
- if err != nil {
- t.Errorf("Failed to read response data due to: %v", err)
- }
- fmt.Fprintf(writer, response[apiName])
- }))
- defer server.Close()
- client := NewClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.NetworkOffering.NewListNetworkOfferingsParams()
- params.SetId("c2000683-68fd-437e-a4cf-f3676e1d18c1")
- resp, err := client.NetworkOffering.ListNetworkOfferings(params)
- if err != nil {
- t.Errorf("Failed to list network offering due to: %v", err)
- }
-
- if resp.Count != 1 {
- t.Errorf("Failed to list network offering")
- }
-}
-
-func TestNetworkOfferingService_DeleteNetworkOffering(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "deleteNetworkOffering"
- response, err := ReadData(apiName, "NetworkOfferingService")
- if err != nil {
- t.Errorf("Failed to read response data due to: %v", err)
- }
- fmt.Fprintf(writer, response[apiName])
- }))
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.NetworkOffering.NewDeleteNetworkOfferingParams("c2000683-68fd-437e-a4cf-f3676e1d18c1")
- resp, err := client.NetworkOffering.DeleteNetworkOffering(params)
- if err != nil {
- t.Errorf("Failed to delete network offering due to: %v", err)
- }
-
- if !resp.Success {
- t.Errorf("Failed to list network offering")
- }
-}
diff --git a/cloudstack/NetworkService_test.go b/cloudstack/NetworkService_test.go
deleted file mode 100644
index 18f7508..0000000
--- a/cloudstack/NetworkService_test.go
+++ /dev/null
@@ -1,156 +0,0 @@
-//
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-//
-
-package cloudstack
-
-import (
- "fmt"
- "net/http"
- "net/http/httptest"
- "testing"
-)
-
-func TestNetworkService_CreateNetwork(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "createNetwork"
- response, err := ReadData(apiName, "NetworkService")
- if err != nil {
- t.Errorf("Failed to read response data due to: %v", err)
- }
- fmt.Fprintf(writer, response[apiName])
- }))
- defer server.Close()
- client := NewClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.Network.NewCreateNetworkParams("testIsolatedNet", "testIsolatedNet", "69b7f746-208a-47c3-a940-4d3ebb720372", "04ccc336-d730-42fe-8ff6-5ae36e141e81")
- resp, err := client.Network.CreateNetwork(params)
- if err != nil {
- t.Errorf("Failed to create network due to: %v", err)
- }
- if resp == nil || resp.Name != "testIsolatedNet" {
- t.Errorf("Failed to create network")
- }
-}
-
-func TestNetworkService_ListNetworks(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "listNetworks"
- response, err := ReadData(apiName, "NetworkService")
- if err != nil {
- t.Errorf("Failed to read response data due to: %v", err)
- }
- fmt.Fprintf(writer, response[apiName])
- }))
- defer server.Close()
- client := NewClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.Network.NewListNetworksParams()
- params.SetId("eb9c270d-dd66-443b-9524-ada1eff4442a")
- resp, err := client.Network.ListNetworks(params)
- if err != nil {
- t.Errorf("Failed to list specific network details due to : %v", err)
- }
- if resp.Count != 1 {
- t.Errorf("Failed to list specific network details")
- }
- if resp.Networks[0].Id != "eb9c270d-dd66-443b-9524-ada1eff4442a" {
- t.Errorf("Failed to list specific network details")
- }
-}
-
-func TestNetworkService_DeleteNetwork(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "deleteNetwork"
- response, err := ParseAsyncResponse(apiName, "NetworkService", *request)
- if err != nil {
- t.Errorf("Failed to parse response, due to: %v", err)
- }
- fmt.Fprintf(writer, response)
- }))
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.Network.NewDeleteNetworkParams("eb9c270d-dd66-443b-9524-ada1eff4442a")
- resp, err := client.Network.DeleteNetwork(params)
- if err != nil {
- t.Errorf("Failed to delete network due to: %v", err)
- return
- }
- if resp == nil || !resp.Success {
- t.Errorf("Failed to delete network")
- }
-}
-
-//func TestNetworkService_RestartNetworkWithCleanUp(t *testing.T) {
-// server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
-// responses := map[string]string{
-// "restartNetwork": `{
-// "restartnetworkresponse": {
-// "jobid": "09b1ab5d-02d0-410f-b373-6520962b98eb"
-// }
-// }`,
-// "queryAsyncJobResult": `{
-// "queryasyncjobresultresponse": {
-// "accountid": "27ef5ba2-5fe0-11ea-9a56-1e006800018c",
-// "userid": "27f2484f-5fe0-11ea-9a56-1e006800018c",
-// "cmd": "org.apache.cloudstack.api.command.user.network.RestartNetworkCmd",
-// "jobstatus": 1,
-// "jobprocstatus": 0,
-// "jobresultcode": 0,
-// "jobresulttype": "object",
-// "jobresult": {
-// "success": true
-// },
-// "created": "2021-10-04T05:37:23+0000",
-// "completed": "2021-10-04T05:37:41+0000",
-// "jobid": "09b1ab5d-02d0-410f-b373-6520962b98eb"
-// }
-// }`,
-// }
-// fmt.Fprintf(writer, responses[request.FormValue("command")])
-// }))
-// defer server.Close()
-// client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", false)
-// params := client.Network.NewRestartNetworkParams("30358053-0f9d-4112-9948-976477896db6")
-// params.SetCleanup(true)
-// _, err := client.Network.RestartNetwork(params)
-// if err != nil {
-// t.Errorf("Failed to restart network with cleanup due to: %v", err)
-// return
-// }
-//}
-
-func TestNetworkService_CreatePhysicalNetwork(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "createPhysicalNetwork"
- response, err := ParseAsyncResponse(apiName, "NetworkService", *request)
- if err != nil {
- t.Errorf("Failed to parse response, due to: %v", err)
- }
- fmt.Fprintf(writer, response)
- }))
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.Network.NewCreatePhysicalNetworkParams("testPhyNet", "d4a81f75-5d92-415e-ab59-e85cc2ce56d9")
- resp, err := client.Network.CreatePhysicalNetwork(params)
- if err != nil {
- t.Errorf("Failed to create physical network due to: %v", err)
- return
- }
- if resp == nil || resp.Name != "testPhyNet" {
- t.Errorf("Failed to create physical network")
- }
-}
diff --git a/cloudstack/PoolService_test.go b/cloudstack/PoolService_test.go
deleted file mode 100644
index c0f8993..0000000
--- a/cloudstack/PoolService_test.go
+++ /dev/null
@@ -1,97 +0,0 @@
-//
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-//
-
-package cloudstack
-
-import (
- "fmt"
- "net/http"
- "net/http/httptest"
- "testing"
-)
-
-func TestPoolService_CreateStoragePool(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, r *http.Request) {
- apiName := "createStoragePool"
- response, err := ReadData(apiName, "PoolService")
- if err != nil {
- t.Errorf("Failed to read response data due to: %v", err)
- }
- fmt.Fprintf(writer, response[apiName])
- }))
- defer server.Close()
- client := NewClient(server.URL, "APIKEY", "SECRETKEY", true)
- params := client.Pool.NewCreateStoragePoolParams("testPrimary1", "nfs://10.1.1.2/export/primary1", "6ebc7a1c-ff98-425c-ac0d-b6c2e3ae6e33")
- resp, err := client.Pool.CreateStoragePool(params)
- if err != nil {
- t.Errorf("Failed to create storage pool due to %v", err)
- return
- }
-
- if resp == nil || resp.Name != "testPrimary1" {
- t.Errorf("Failed to create storage pool")
- }
-}
-
-func TestPoolService_ListStoragePools(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, r *http.Request) {
- apiName := "listStoragePools"
- response, err := ReadData(apiName, "PoolService")
- if err != nil {
- t.Errorf("Failed to read response data due to: %v", err)
- }
- fmt.Fprintf(writer, response[apiName])
- }))
- defer server.Close()
- client := NewClient(server.URL, "APIKEY", "SECRETKEY", true)
- params := client.Pool.NewListStoragePoolsParams()
- params.SetId("3fd44942-4881-3fb0-95f1-5d7b7ae64cfb")
- resp, err := client.Pool.ListStoragePools(params)
- if err != nil {
- t.Errorf("Failed to list storage pool details due to %v", err)
- return
- }
-
- if resp == nil || resp.Count != 1 {
- t.Errorf("Failed to list storage pool")
- }
-}
-
-func TestPoolService_DeleteStoragePool(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, r *http.Request) {
- apiName := "deleteStoragePool"
- response, err := ReadData(apiName, "PoolService")
- if err != nil {
- t.Errorf("Failed to read response data due to: %v", err)
- }
- fmt.Fprintf(writer, response[apiName])
- }))
- defer server.Close()
- client := NewClient(server.URL, "APIKEY", "SECRETKEY", true)
- params := client.Pool.NewDeleteStoragePoolParams("3fd44942-4881-3fb0-95f1-5d7b7ae64cfb")
- resp, err := client.Pool.DeleteStoragePool(params)
- if err != nil {
- t.Errorf("Failed to delete storage pool details due to %v", err)
- return
- }
-
- if resp == nil || !resp.Success {
- t.Errorf("Failed to delete storage pool")
- }
-}
diff --git a/cloudstack/ProjectService_test.go b/cloudstack/ProjectService_test.go
deleted file mode 100644
index 8d65869..0000000
--- a/cloudstack/ProjectService_test.go
+++ /dev/null
@@ -1,142 +0,0 @@
-//
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-//
-
-package cloudstack
-
-import (
- "fmt"
- "net/http"
- "net/http/httptest"
- "testing"
-)
-
-func TestProjectService_CreateProject(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "createProject"
- response, err := ParseAsyncResponse(apiName, "ProjectService", *request)
- if err != nil {
- t.Errorf("Failed to parse response, due to: %v", err)
- }
- fmt.Fprintf(writer, response)
- }))
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.Project.NewCreateProjectParams("testProject", "testProject")
- resp, err := client.Project.CreateProject(params)
- if err != nil {
- t.Errorf("Failed to create Project due to: %v", err)
- return
- }
- if resp == nil || resp.Name != "testProject" {
- t.Errorf("Failed to create project")
- }
-}
-
-func TestProjectService_ActivateProject(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "activateProject"
- response, err := ParseAsyncResponse(apiName, "ProjectService", *request)
- if err != nil {
- t.Errorf("Failed to parse response, due to: %v", err)
- }
- fmt.Fprintf(writer, response)
- }))
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.Project.NewActivateProjectParams("99a842a4-e50f-4265-8ca7-249959506c13")
- resp, err := client.Project.ActivateProject(params)
- if err != nil {
- t.Errorf("Failed to activate Project due to: %v", err)
- return
- }
- if resp == nil || resp.Id != "99a842a4-e50f-4265-8ca7-249959506c13" || resp.State != "Active" {
- t.Errorf("Failed to activate project")
- }
-}
-
-func TestProjectService_SuspendProject(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "suspendProject"
- response, err := ParseAsyncResponse(apiName, "ProjectService", *request)
- if err != nil {
- t.Errorf("Failed to parse response, due to: %v", err)
- }
- fmt.Fprintf(writer, response)
- }))
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.Project.NewSuspendProjectParams("99a842a4-e50f-4265-8ca7-249959506c13")
- resp, err := client.Project.SuspendProject(params)
- if err != nil {
- t.Errorf("Failed to suspend Project due to: %v", err)
- return
- }
- if resp == nil || resp.Id != "99a842a4-e50f-4265-8ca7-249959506c13" || resp.State != "Suspended" {
- t.Errorf("Failed to suspend project")
- }
-}
-
-func TestProjectService_UpdateProject(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "updateProject"
- response, err := ParseAsyncResponse(apiName, "ProjectService", *request)
- if err != nil {
- t.Errorf("Failed to parse response, due to: %v", err)
- }
- fmt.Fprintf(writer, response)
- }))
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.Project.NewUpdateProjectParams("99a842a4-e50f-4265-8ca7-249959506c13")
- params.SetDisplaytext("testProjectUpdated")
- resp, err := client.Project.UpdateProject(params)
- if err != nil {
- t.Errorf("Failed to update Project details due to: %v", err)
- return
- }
-
- if resp == nil || resp.Id != "69646881-8d7f-4800-987d-106698a42608" || resp.Displaytext != "testProjectUpdate" {
- t.Errorf("Failed to update project name")
- }
-}
-
-func TestProjectService_listProjectRolePermissions(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, r *http.Request) {
- apiName := "listProjectRolePermissions"
- response, err := ReadData(apiName, "ProjectService")
- if err != nil {
- t.Errorf("Failed to read response data due to: %v", err)
- }
- fmt.Fprintln(writer, response[apiName])
- }))
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", true)
- params := client.Project.NewListProjectRolePermissionsParams("69646881-8d7f-4800-987d-106698a42608")
- params.SetProjectroleid("fa089002-d055-46b5-aa0a-18f2eae2b4fc")
- resp, err := client.Project.ListProjectRolePermissions(params)
- if err != nil {
- t.Errorf("Failed to list project role permissions due to %v", err)
- return
- }
-
- fmt.Println(resp)
- if resp == nil || resp.Count != 1 {
- t.Errorf("Failed to list VM")
- }
-}
diff --git a/cloudstack/ResourcetagsService_test.go b/cloudstack/ResourcetagsService_test.go
deleted file mode 100644
index 30404d4..0000000
--- a/cloudstack/ResourcetagsService_test.go
+++ /dev/null
@@ -1,76 +0,0 @@
-//
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-//
-
-package cloudstack
-
-import (
- "fmt"
- "net/http"
- "net/http/httptest"
- "testing"
-)
-
-func TestResourcetagsService_CreateTags(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "createTags"
- response, err := ParseAsyncResponse(apiName, "ResourceTagsService", *request)
- if err != nil {
- t.Errorf("Failed to parse response, due to: %v", err)
- }
- fmt.Fprintf(writer, response)
- }))
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", false)
- tags := make(map[string]string)
- tags["key"] = "testKey"
- tags["value"] = "testValue"
- params := client.Resourcetags.NewCreateTagsParams([]string{"99a842a4-e50f-4265-8ca7-249959506c13"}, "Project", tags)
- resp, err := client.Resourcetags.CreateTags(params)
- if err != nil {
- t.Errorf("Failed to create tags for project due to: %v", err)
- return
- }
-
- if resp == nil || !resp.Success {
- t.Errorf("Failed to create project tags")
- }
-}
-
-func TestResourcetagsService_DeleteTags(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "deleteTags"
- response, err := ParseAsyncResponse(apiName, "ResourceTagsService", *request)
- if err != nil {
- t.Errorf("Failed to parse response, due to: %v", err)
- }
- fmt.Fprintf(writer, response)
- }))
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.Resourcetags.NewDeleteTagsParams([]string{"99a842a4-e50f-4265-8ca7-249959506c13"}, "Project")
- resp, err := client.Resourcetags.DeleteTags(params)
- if err != nil {
- t.Errorf("Failed to delete tags for project due to: %v", err)
- return
- }
-
- if resp == nil || !resp.Success {
- t.Errorf("Failed to delete project tags")
- }
-}
diff --git a/cloudstack/SSHService_test.go b/cloudstack/SSHService_test.go
deleted file mode 100644
index 6fd01f7..0000000
--- a/cloudstack/SSHService_test.go
+++ /dev/null
@@ -1,116 +0,0 @@
-//
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-//
-
-package cloudstack
-
-import (
- "fmt"
- "net/http"
- "net/http/httptest"
- "testing"
-)
-
-func TestSSHService_CreateSSHKeyPair(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, r *http.Request) {
- apiName := "createSSHKeyPair"
- response, err := ReadData(apiName, "SSHService")
- if err != nil {
- t.Errorf("Failed to read response data due to: %v", err)
- }
- fmt.Fprintf(writer, response[apiName])
- }))
- defer server.Close()
- client := NewClient(server.URL, "APIKEY", "SECRETKEY", true)
- params := client.SSH.NewCreateSSHKeyPairParams("testSSHKey")
- resp, err := client.SSH.CreateSSHKeyPair(params)
- if err != nil {
- t.Errorf("Failed to create SSH key pair due to %v", err)
- return
- }
- if resp == nil || resp.Name != "testSSHKey" {
- t.Errorf("Failed to create SSH key pair")
- }
-}
-
-func TestSSHService_ListSSHKeyPairs(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, r *http.Request) {
- apiName := "listSSHKeyPairs"
- response, err := ReadData(apiName, "SSHService")
- if err != nil {
- t.Errorf("Failed to read response data due to: %v", err)
- }
- fmt.Fprintf(writer, response[apiName])
- }))
- defer server.Close()
- client := NewClient(server.URL, "APIKEY", "SECRETKEY", true)
- params := client.SSH.NewListSSHKeyPairsParams()
- params.SetName("testSSHKey")
- resp, err := client.SSH.ListSSHKeyPairs(params)
- if err != nil {
- t.Errorf("Failed to list SSH key pair due to %v", err)
- return
- }
- if resp == nil || resp.Count != 1 {
- t.Errorf("Failed to list SSH key pair")
- }
-}
-
-func TestSSHService_ResetSSHKeyForVirtualMachine(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, r *http.Request) {
- apiName := "resetSSHKeyForVirtualMachine"
- response, err := ParseAsyncResponse(apiName, "SSHService", *r)
- if err != nil {
- t.Errorf("Failed to parse response, due to: %v", err)
- }
- fmt.Fprintln(writer, response)
- }))
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", true)
- params := client.SSH.NewResetSSHKeyForVirtualMachineParams("8aa29529-b238-45f3-8992-5befadcd8bb0", "testSSHKey")
- resp, err := client.SSH.ResetSSHKeyForVirtualMachine(params)
- if err != nil {
- t.Errorf("Failed to reset SSH key pair for VM due to %v", err)
- return
- }
- if resp == nil || resp.Keypair != "testSSHKey" {
- t.Errorf("Failed to reset SSH key pair for VM")
- }
-}
-
-func TestSSHService_DeleteSSHKeyPair(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, r *http.Request) {
- apiName := "deleteSSHKeyPair"
- response, err := ReadData(apiName, "SSHService")
- if err != nil {
- t.Errorf("Failed to read response data due to: %v", err)
- }
- fmt.Fprintf(writer, response[apiName])
- }))
- defer server.Close()
- client := NewClient(server.URL, "APIKEY", "SECRETKEY", true)
- params := client.SSH.NewDeleteSSHKeyPairParams("testSSHKey")
- resp, err := client.SSH.DeleteSSHKeyPair(params)
- if err != nil {
- t.Errorf("Failed to delete SSH key pair due to %v", err)
- return
- }
- if resp == nil || !resp.Success {
- t.Errorf("Failed to delete SSH key pair")
- }
-}
diff --git a/cloudstack/ServiceOfferingService_test.go b/cloudstack/ServiceOfferingService_test.go
deleted file mode 100644
index 0fa4a48..0000000
--- a/cloudstack/ServiceOfferingService_test.go
+++ /dev/null
@@ -1,96 +0,0 @@
-//
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-//
-
-package cloudstack
-
-import (
- "fmt"
- "net/http"
- "net/http/httptest"
- "testing"
-)
-
-func TestServiceOfferingService_CreateServiceOffering(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
- apiName := "createServiceOffering"
- response, err := ReadData(apiName, "ServiceOfferingService")
- if err != nil {
- t.Errorf("Failed to read response data due to: %v", err)
- }
- fmt.Fprintf(w, response[apiName])
- }))
- defer server.Close()
-
- client := NewClient(server.URL, "APIKEY", "SECRETKEY", true)
- p := client.ServiceOffering.NewCreateServiceOfferingParams("testServiceOffering", "testServiceOffering")
- resp, err := client.ServiceOffering.CreateServiceOffering(p)
- if err != nil {
- t.Errorf("Failed to create service offering due to %v", err)
- return
- }
- if resp == nil || resp.Name != "testServiceOffering" {
- t.Errorf("Failed to create service offering")
- }
-}
-
-func TestServiceOfferingService_UpdateServiceOffering(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
- apiName := "updateServiceOffering"
- response, err := ReadData(apiName, "ServiceOfferingService")
- if err != nil {
- t.Errorf("Failed to read response data due to: %v", err)
- }
- fmt.Fprintf(w, response[apiName])
- }))
- defer server.Close()
-
- client := NewClient(server.URL, "APIKEY", "SECRETKEY", true)
- p := client.ServiceOffering.NewUpdateServiceOfferingParams("efaeeab0-4b09-4729-8b6f-62645db41b37")
- p.SetName("testServiceOfferingUpdated")
- resp, err := client.ServiceOffering.UpdateServiceOffering(p)
- if err != nil {
- t.Errorf("Failed to update service offering due to %v", err)
- return
- }
-
- if resp == nil || resp.Name != "testServiceOfferingUpdated" {
- t.Errorf("Failed to create service offering name")
- }
-}
-
-func TestServiceOfferingService_DeleteServiceOffering(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
- apiName := "deleteServiceOffering"
- response, err := ReadData(apiName, "ServiceOfferingService")
- if err != nil {
- t.Errorf("Failed to read response data due to: %v", err)
- }
- fmt.Fprintf(w, response[apiName])
- }))
- client := NewClient(server.URL, "APIKEY", "SECRETKEY", true)
- p := client.ServiceOffering.NewDeleteServiceOfferingParams("efaeeab0-4b09-4729-8b6f-62645db41b37")
- resp, err := client.ServiceOffering.DeleteServiceOffering(p)
- if err != nil {
- t.Errorf("Failed to delete service offering due to %v", err)
- return
- }
- if resp == nil || !resp.Success {
- t.Errorf("Failed to delete service offering")
- }
-}
diff --git a/cloudstack/StoragePoolService_test.go b/cloudstack/StoragePoolService_test.go
deleted file mode 100644
index a83e87c..0000000
--- a/cloudstack/StoragePoolService_test.go
+++ /dev/null
@@ -1,70 +0,0 @@
-//
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-//
-
-package cloudstack
-
-import (
- "fmt"
- "net/http"
- "net/http/httptest"
- "testing"
-)
-
-func TestStoragePoolService_CancelStorageMaintenance(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, r *http.Request) {
- apiName := "cancelStorageMaintenance"
- response, err := ParseAsyncResponse(apiName, "StoragePoolService", *r)
- if err != nil {
- t.Errorf("Failed to parse response, due to: %v", err)
- }
- fmt.Fprintln(writer, response)
- }))
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", true)
- params := client.StoragePool.NewCancelStorageMaintenanceParams("44ad900d-785b-3eff-addc-a5e6bf4927ef")
- resp, err := client.StoragePool.CancelStorageMaintenance(params)
- if err != nil {
- t.Errorf("Failed to cancel storage maintenance due to %v", err)
- return
- }
- if resp == nil || resp.State != "Up" {
- t.Errorf("Failed to cancel Storage pool maintenance")
- }
-}
-func TestStoragePoolService_EnableStorageMaintenance(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, r *http.Request) {
- apiName := "enableStorageMaintenance"
- response, err := ParseAsyncResponse(apiName, "StoragePoolService", *r)
- if err != nil {
- t.Errorf("Failed to parse response, due to: %v", err)
- }
- fmt.Fprintln(writer, response)
- }))
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", true)
- params := client.StoragePool.NewEnableStorageMaintenanceParams("44ad900d-785b-3eff-addc-a5e6bf4927ef")
- resp, err := client.StoragePool.EnableStorageMaintenance(params)
- if err != nil {
- t.Errorf("Failed to enable storage maintenance due to %v", err)
- return
- }
- if resp == nil || resp.State != "Maintenance" {
- t.Errorf("Failed to enable Storage pool maintenance")
- }
-}
diff --git a/cloudstack/TemplateService_test.go b/cloudstack/TemplateService_test.go
deleted file mode 100644
index fa474a0..0000000
--- a/cloudstack/TemplateService_test.go
+++ /dev/null
@@ -1,95 +0,0 @@
-//
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-//
-
-package cloudstack
-
-import (
- "fmt"
- "net/http"
- "net/http/httptest"
- "testing"
-)
-
-func TestTemplateService_RegisterTemplate(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, r *http.Request) {
- apiName := "registerTemplate"
- response, err := ReadData(apiName, "TemplateService")
- if err != nil {
- t.Errorf("Failed to read response data due to: %v", err)
- }
- fmt.Fprintf(writer, response[apiName])
- }))
- defer server.Close()
- client := NewClient(server.URL, "APIKEY", "SECRETKEY", true)
- params := client.Template.NewRegisterTemplateParams("testTemplate", "VHD",
- "Simulator", "testTemplate", "http://dl.openvm.eu/cloudstack/macchinina/x86_64/macchinina-xen.vhd.bz2")
- resp, err := client.Template.RegisterTemplate(params)
- if err != nil {
- t.Errorf("Failed to register template due to %v", err)
- return
- }
-
- if resp == nil || resp.Count != 1 {
- t.Errorf("Failed to register template")
- }
-}
-
-func TestTemplateService_CreateTemplate(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, r *http.Request) {
- apiName := "createTemplate"
- response, err := ParseAsyncResponse(apiName, "TemplateService", *r)
- if err != nil {
- t.Errorf("Failed to parse response, due to: %v", err)
- }
- fmt.Fprintln(writer, response)
- }))
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", true)
- params := client.Template.NewCreateTemplateParams("createTempFromVol", "createTempFromVol", "e510f742-5fdf-11ea-9a56-1e006800018c")
- resp, err := client.Template.CreateTemplate(params)
- if err != nil {
- t.Errorf("Failed to create template from volume due to %v", err)
- return
- }
- if resp == nil || resp.Name != "createTempFromVol" {
- t.Errorf("Failed to create template from volume")
- }
-}
-
-func TestTemplateService_ExtractTemplate(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, r *http.Request) {
- apiName := "extractTemplate"
- response, err := ParseAsyncResponse(apiName, "TemplateService", *r)
- if err != nil {
- t.Errorf("Failed to parse response, due to: %v", err)
- }
- fmt.Fprintln(writer, response)
- }))
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", true)
- params := client.Template.NewExtractTemplateParams("5ce8f0b1-a910-4631-a8de-1e332bf3a6b7", "HTTP_DOWNLOAD")
- resp, err := client.Template.ExtractTemplate(params)
- if err != nil {
- t.Errorf("Failed to download template due to %v", err)
- return
- }
- if resp == nil || resp.Url == "" {
- t.Errorf("Failed to download template")
- }
-}
diff --git a/cloudstack/UserService_test.go b/cloudstack/UserService_test.go
deleted file mode 100644
index 50cdf2b..0000000
--- a/cloudstack/UserService_test.go
+++ /dev/null
@@ -1,188 +0,0 @@
-//
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-//
-
-package cloudstack
-
-import (
- "fmt"
- "net/http"
- "net/http/httptest"
- "testing"
-)
-
-func TestUserService_CreateUser(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "createUser"
- response, err := ReadData(apiName, "UserService")
- if err != nil {
- t.Errorf("Failed to read response data due to: %v", err)
- }
- fmt.Fprintf(writer, response[apiName])
- }))
- defer server.Close()
- client := NewClient(server.URL, "APIKEY", "SECRETKEY", true)
- params := client.User.NewCreateUserParams("admin", "user.xyz.com",
- "firstname", "lastname", "password", "dummyUser")
- resp, err := client.User.CreateUser(params)
- if err != nil {
- t.Errorf("Failed to create user due to %v", err)
- return
- }
- if resp == nil || resp.Username != "dummyUser" {
- t.Errorf("Failed to create user")
- }
-}
-
-func TestUserService_EnableUser(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "enableUser"
- response, err := ReadData(apiName, "UserService")
- if err != nil {
- t.Errorf("Failed to read response data due to: %v", err)
- }
- fmt.Fprintf(writer, response[apiName])
- }))
- defer server.Close()
- client := NewClient(server.URL, "APIKEY", "SECRETKEY", true)
- params := client.User.NewEnableUserParams("cd2b5afa-db4d-4532-88ec-1356a273e534")
- resp, err := client.User.EnableUser(params)
- if err != nil {
- t.Errorf("Failed to enable user due to %v", err)
- return
- }
-
- if resp == nil || resp.State != "enabled" {
- t.Errorf("Failed to enable user")
- }
-}
-
-func TestUserService_DisableUser(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "disableUser"
- response, err := ParseAsyncResponse(apiName, "UserService", *request)
- if err != nil {
- t.Errorf("Failed to read response data due to: %v", err)
- }
- fmt.Fprintf(writer, response)
- }))
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", true)
- params := client.User.NewDisableUserParams("cd2b5afa-db4d-4532-88ec-1356a273e534")
- resp, err := client.User.DisableUser(params)
- if err != nil {
- t.Errorf("Failed to disable user due to %v", err)
- return
- }
-
- if resp == nil || resp.State != "disabled" {
- t.Errorf("Failed to disable user")
- }
-}
-
-func TestUserService_ListUser(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "listUsers"
- response, err := ReadData(apiName, "UserService")
- if err != nil {
- t.Errorf("Failed to read response data due to: %v", err)
- }
- fmt.Fprintf(writer, response[apiName])
- }))
- defer server.Close()
- client := NewClient(server.URL, "APIKEY", "SECRETKEY", true)
- params := client.User.NewListUsersParams()
- params.SetId("cd2b5afa-db4d-4532-88ec-1356a273e534")
- resp, err := client.User.ListUsers(params)
- if err != nil {
- t.Errorf("Failed to list user details due to %v", err)
- return
- }
-
- if resp == nil || resp.Count != 1 {
- t.Errorf("Failed to list user details")
- }
-}
-
-func TestUserService_LockUser(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "lockUser"
- response, err := ReadData(apiName, "UserService")
- if err != nil {
- t.Errorf("Failed to read response data due to: %v", err)
- }
- fmt.Fprintf(writer, response[apiName])
- }))
- defer server.Close()
- client := NewClient(server.URL, "APIKEY", "SECRETKEY", true)
- params := client.User.NewLockUserParams("3b7325b3-849c-4314-ad19-dd3c483b6d1a")
- resp, err := client.User.LockUser(params)
- if err != nil {
- t.Errorf("Failed to lock user due to %v", err)
- return
- }
-
- if resp == nil || resp.State != "locked" {
- t.Errorf("Failed to lock user")
- }
-}
-
-func TestUserService_DeleteUser(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "deleteUser"
- response, err := ReadData(apiName, "UserService")
- if err != nil {
- t.Errorf("Failed to read response data due to: %v", err)
- }
- fmt.Fprintf(writer, response[apiName])
- }))
- defer server.Close()
- client := NewClient(server.URL, "APIKEY", "SECRETKEY", true)
- params := client.User.NewDeleteUserParams("cd2b5afa-db4d-4532-88ec-1356a273e534")
- resp, err := client.User.DeleteUser(params)
- if err != nil {
- t.Errorf("Failed to delete user due to %v", err)
- return
- }
-
- if resp == nil || !resp.Success {
- t.Errorf("Failed to delete user")
- }
-}
-
-func TestGetUserKeys(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "getUserKeys"
- response, err := ReadData(apiName, "UserService")
- if err != nil {
- t.Errorf("Failed to read response data due to: %v", err)
- }
- fmt.Fprintf(writer, response[apiName])
- }))
- defer server.Close()
- client := NewClient(server.URL, "APIKEY", "SECRETKEY", true)
- params := client.User.NewGetUserKeysParams("random-id")
- resp, err := client.User.GetUserKeys(params)
- if err != nil {
- t.Errorf("Failed to get user keys due to %v", err)
- return
- }
- if resp.Apikey == "" || resp.Secretkey == "" {
- t.Errorf("Parsing failure")
- }
-}
diff --git a/cloudstack/VLANService_test.go b/cloudstack/VLANService_test.go
deleted file mode 100644
index 82711a3..0000000
--- a/cloudstack/VLANService_test.go
+++ /dev/null
@@ -1,52 +0,0 @@
-//
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-//
-
-package cloudstack
-
-import (
- "fmt"
- "net/http"
- "net/http/httptest"
- "testing"
-)
-
-func TestNetworkService_DedicateGuestVLANRange(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "dedicateGuestVlanRange"
- response, err := ReadData(apiName, "VLANService")
- if err != nil {
- t.Errorf("Failed to read response data due to: %v", err)
- }
- fmt.Fprintln(writer, response[apiName])
- }))
- defer server.Close()
- client := NewClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.VLAN.NewDedicateGuestVlanRangeParams("8e27a637-7525-49ed-81ce-52bd5e5d9ea2", "100-110")
- params.SetAccount("admin")
- params.SetDomainid("e4874e10-5fdf-11ea-9a56-1e006800018c")
- resp, err := client.VLAN.DedicateGuestVlanRange(params)
- if err != nil {
- t.Errorf("Failed to dedicate guest VLAN range for physical network due to: %v", err)
- return
- }
-
- if resp == nil || resp.Guestvlanrange != "100-110" {
- t.Errorf("Failed to dedicate guest VLAN range for physical network")
- }
-}
diff --git a/cloudstack/VPCService_test.go b/cloudstack/VPCService_test.go
deleted file mode 100644
index 595ce1b..0000000
--- a/cloudstack/VPCService_test.go
+++ /dev/null
@@ -1,73 +0,0 @@
-//
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-//
-
-package cloudstack
-
-import (
- "fmt"
- "net/http"
- "net/http/httptest"
- "testing"
-)
-
-func TestVPCService_RestartVPC(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "restartVPC"
- response, err := ParseAsyncResponse(apiName, "VPCService", *request)
- if err != nil {
- t.Errorf("Failed to parse response, due to: %v", err)
- }
- fmt.Fprintln(writer, response)
- }))
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.VPC.NewRestartVPCParams("f9ec95f3-70be-448a-8ba2-cb6388dce55a")
-
- resp, err := client.VPC.RestartVPC(params)
- if err != nil {
- t.Errorf("Failed to restart VPC network due to: %v", err)
- }
- if resp == nil {
- t.Errorf("Failed to restart VPC network")
- }
-}
-
-func TestVPCService_ListVPCs(t *testing.T) {
-
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "listVPCs"
- response, err := ParseAsyncResponse(apiName, "VPCService", *request)
- if err != nil {
- t.Errorf("Failed to parse response, due to: %v", err)
- }
- fmt.Fprintln(writer, response)
- }))
- defer server.Close()
-
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.VPC.NewListVPCsParams()
- resp, err := client.VPC.ListVPCs(params)
-
- if err != nil {
- t.Errorf("Failed to list VPCs due to: %v", err)
- }
- if resp == nil {
- t.Errorf("Failed to list VPCs")
- }
-}
diff --git a/cloudstack/VirtualMachineService_test.go b/cloudstack/VirtualMachineService_test.go
deleted file mode 100644
index 3cc9cdc..0000000
--- a/cloudstack/VirtualMachineService_test.go
+++ /dev/null
@@ -1,170 +0,0 @@
-//
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-//
-
-package cloudstack
-
-import (
- "fmt"
- "net/http"
- "net/http/httptest"
- "testing"
-)
-
-func TestVirtualMachineService_DeployVirtualMachine(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, r *http.Request) {
- apiName := "deployVirtualMachine"
- response, err := ParseAsyncResponse(apiName, "VirtualMachineService", *r)
- if err != nil {
- t.Errorf("Failed to read response data due to: %v", err)
- }
- fmt.Fprintf(writer, response)
- }))
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", true)
- params := client.VirtualMachine.NewDeployVirtualMachineParams("498ce071-a077-4237-9492-e55c42553327",
- "50459b99-5fe0-11ea-9a56-1e006800018c", "1d8d87d4-1425-459c-8d81-c6f57dca2bd2")
- params.SetName("testDummyVM")
- params.SetNetworkids([]string{"87503ba2-d59d-4a5e-8f7f-b3f486cedbd8"})
- resp, err := client.VirtualMachine.DeployVirtualMachine(params)
- if err != nil {
- t.Errorf("Failed to deploy VM with given specs due to %v", err)
- return
- }
-
- if resp == nil || resp.Name != "testDummyVM" {
- t.Errorf("Failed to deploy VM with given specs")
- }
-}
-
-func TestVirtualMachineService_AddNicToVirtualMachine(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, r *http.Request) {
- apiName := "addNicToVirtualMachine"
- response, err := ParseAsyncResponse(apiName, "VirtualMachineService", *r)
- if err != nil {
- t.Errorf("Failed to read response data due to: %v", err)
- }
- fmt.Fprintf(writer, response)
- }))
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", true)
- params := client.VirtualMachine.NewAddNicToVirtualMachineParams("30358053-0f9d-4112-9948-976477896db6",
- "915653c4-298b-4d74-bdee-4ced282114f1")
- resp, err := client.VirtualMachine.AddNicToVirtualMachine(params)
- if err != nil {
- t.Errorf("Failed to add nic to VM due to %v", err)
- return
- }
-
- if resp == nil || len(resp.Nic) != 2 {
- t.Errorf("Failed to add nic to VM")
- }
-}
-
-func TestVirtualMachineService_StopVirtualMachine(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, r *http.Request) {
- apiName := "stopVirtualMachine"
- response, err := ParseAsyncResponse(apiName, "VirtualMachineService", *r)
- if err != nil {
- t.Errorf("Failed to read response data due to: %v", err)
- }
- fmt.Fprintln(writer, response)
- }))
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", true)
- params := client.VirtualMachine.NewStopVirtualMachineParams("915653c4-298b-4d74-bdee-4ced282114f1")
- resp, err := client.VirtualMachine.StopVirtualMachine(params)
- if err != nil {
- t.Errorf("Failed to stop VM due to %v", err)
- return
- }
-
- if resp == nil || resp.State != "Stopped" {
- t.Errorf("Failed to stop VM")
- }
-}
-
-func TestVirtualMachineService_StartVirtualMachine(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, r *http.Request) {
- apiName := "startVirtualMachine"
- response, err := ParseAsyncResponse(apiName, "VirtualMachineService", *r)
- if err != nil {
- t.Errorf("Failed to read response data due to: %v", err)
- }
- fmt.Fprintln(writer, response)
- }))
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", true)
- params := client.VirtualMachine.NewStartVirtualMachineParams("915653c4-298b-4d74-bdee-4ced282114f1")
- resp, err := client.VirtualMachine.StartVirtualMachine(params)
- if err != nil {
- t.Errorf("Failed to start VM due to %v", err)
- return
- }
-
- if resp == nil || resp.State != "Running" {
- t.Errorf("Failed to start VM")
- }
-}
-
-func TestVirtualMachineService_ListVirtualMachines(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, r *http.Request) {
- apiName := "listVirtualMachines"
- response, err := ReadData(apiName, "VirtualMachineService")
- if err != nil {
- t.Errorf("Failed to read response data due to: %v", err)
- }
- fmt.Fprintln(writer, response[apiName])
- }))
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", true)
- params := client.VirtualMachine.NewListVirtualMachinesParams()
- params.SetId("915653c4-298b-4d74-bdee-4ced282114f1")
- resp, err := client.VirtualMachine.ListVirtualMachines(params)
- if err != nil {
- t.Errorf("Failed to list VM due to %v", err)
- return
- }
-
- if resp == nil || resp.Count != 1 {
- t.Errorf("Failed to list VM")
- }
-}
-
-func TestVirtualMachineService_ScaleVirtualMachine(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, r *http.Request) {
- apiName := "scaleVirtualMachine"
- response, err := ParseAsyncResponse(apiName, "VirtualMachineService", *r)
- if err != nil {
- t.Errorf("Failed to read response data due to: %v", err)
- }
- fmt.Fprintln(writer, response)
- }))
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", true)
- params := client.VirtualMachine.NewScaleVirtualMachineParams("88dedd6b-4fc0-44bf-b76f-441a13bc1f99", "57aba75e-5567-44c9-bfcc-c2c14503a5a6")
- resp, err := client.VirtualMachine.ScaleVirtualMachine(params)
- if err != nil {
- t.Errorf("Failed to scale VM due to %v", err)
- return
- }
-
- if resp == nil {
- t.Errorf("Failed to list VM")
- }
-}
diff --git a/cloudstack/cloudstack.go b/cloudstack/cloudstack.go
index 4933845..0e30601 100644
--- a/cloudstack/cloudstack.go
+++ b/cloudstack/cloudstack.go
@@ -39,7 +39,7 @@ import (
"strings"
"time"
- gomock "github.com/golang/mock/gomock"
+ "github.com/golang/mock/gomock"
)
// UnlimitedResourceID is a special ID to define an unlimited resource
diff --git a/cloudstack/testdata/AccountServiceData.json b/cloudstack/testdata/AccountServiceData.json
deleted file mode 100644
index a673dc6..0000000
--- a/cloudstack/testdata/AccountServiceData.json
+++ /dev/null
@@ -1,154 +0,0 @@
-{
- "listAccountsResponse": {
- "listaccountsresponse": {
- "account": [
- {
- "accountdetails": {
- "key0": "value0",
- "key1": "value1"
- },
- "accounttype": 1,
- "cpuavailable": "Unlimited",
- "cpulimit": "Unlimited",
- "cputotal": 1,
- "domain": "ROOT",
- "domainid": "62f5fe2e-5f5a-11e5-bc86-0242ac11180a",
- "groups": [],
- "id": "62f61a73-5f5a-11e5-bc86-0242ac11180a",
- "ipavailable": "Unlimited",
- "iplimit": "Unlimited",
- "iptotal": 1,
- "isdefault": true,
- "memoryavailable": "Unlimited",
- "memorylimit": "Unlimited",
- "memorytotal": 512,
- "name": "admin",
- "networkavailable": "Unlimited",
- "networklimit": "Unlimited",
- "networktotal": 1,
- "primarystorageavailable": "Unlimited",
- "primarystoragelimit": "Unlimited",
- "primarystoragetotal": 2,
- "projectavailable": "Unlimited",
- "projectlimit": "Unlimited",
- "projecttotal": 1,
- "receivedbytes": 100,
- "secondarystorageavailable": "Unlimited",
- "secondarystoragelimit": "Unlimited",
- "secondarystoragetotal": 0,
- "sentbytes": 100,
- "snapshotavailable": "Unlimited",
- "snapshotlimit": "Unlimited",
- "snapshottotal": 0,
- "state": "enabled",
- "templateavailable": "Unlimited",
- "templatelimit": "Unlimited",
- "templatetotal": 0,
- "user": [
- {
- "account": "admin",
- "accountid": "62f61a73-5f5a-11e5-bc86-0242ac11180a",
- "accounttype": 1,
- "apikey": "BFCyYeY0HhhrvNWC7FBwHTlso52ow3XWZUzNuiv03jmJOQn-5UH5BTVRVheiBnaRfYFE9yOzjwiqkbahq9P-Rw",
- "created": "2015-09-20T05:42:31+0000",
- "domain": "ROOT",
- "domainid": "62f5fe2e-5f5a-11e5-bc86-0242ac11180a",
- "email": "admin@mailprovider.com",
- "firstname": "Admin",
- "id": "62f6394b-5f5a-11e5-bc86-0242ac11180a",
- "iscallerchilddomain": false,
- "isdefault": true,
- "lastname": "User",
- "secretkey": "Em1UPdKTYEDaUxPXKtpqy_1uYluHWU2ZHotPi-VnBi_-MOEUAANoFHg3ycDProluDzYAXmT3YRssk367ylr_4A",
- "state": "enabled",
- "username": "admin"
- }
- ],
- "vmavailable": "Unlimited",
- "vmlimit": "Unlimited",
- "vmrunning": 1,
- "vmtotal": 1,
- "volumeavailable": "Unlimited",
- "volumelimit": "Unlimited",
- "volumetotal": 1,
- "vpcavailable": "Unlimited",
- "vpclimit": "Unlimited",
- "vpctotal": 0
- }
- ],
- "count": 1
- }
- },
- "createAccountsResponse": {
- "createaccountresponse": {
- "account": {
- "accountdetails": {
- "key0": "value0",
- "key1": "value1"
- },
- "accounttype": 2,
- "cpuavailable": "40",
- "cpulimit": "40",
- "cputotal": 0,
- "domain": "ROOT",
- "domainid": "62f5fe2e-5f5a-11e5-bc86-0242ac11180a",
- "groups": [],
- "id": "c9cb9df8-dcd5-44c5-a40d-2e7d266669a6",
- "ipavailable": "20",
- "iplimit": "20",
- "iptotal": 0,
- "isdefault": false,
- "memoryavailable": "40960",
- "memorylimit": "40960",
- "memorytotal": 0,
- "name": "user01",
- "networkavailable": "20",
- "networklimit": "20",
- "networktotal": 0,
- "primarystorageavailable": "200",
- "primarystoragelimit": "200",
- "primarystoragetotal": 0,
- "projectavailable": "Unlimited",
- "projectlimit": "Unlimited",
- "projecttotal": 0,
- "secondarystorageavailable": "400",
- "secondarystoragelimit": "400",
- "secondarystoragetotal": 0,
- "snapshotavailable": "20",
- "snapshotlimit": "20",
- "snapshottotal": 0,
- "state": "enabled",
- "templateavailable": "20",
- "templatelimit": "20",
- "templatetotal": 0,
- "user": [
- {
- "account": "user01",
- "accountid": "c9cb9df8-dcd5-44c5-a40d-2e7d266669a6",
- "accounttype": 2,
- "created": "2016-07-26T02:17:17+0000",
- "domain": "ROOT",
- "domainid": "62f5fe2e-5f5a-11e5-bc86-0242ac11180a",
- "email": "user01@example.com",
- "firstname": "user01",
- "id": "1d69ac45-a8f7-469c-ab24-d2b0382fa8be",
- "iscallerchilddomain": false,
- "isdefault": false,
- "lastname": "user01",
- "state": "enabled",
- "username": "user01"
- }
- ],
- "vmavailable": "20",
- "vmlimit": "20",
- "vmtotal": 0,
- "volumeavailable": "20",
- "volumelimit": "20",
- "volumetotal": 0,
- "vpcavailable": "20",
- "vpclimit": "20",
- "vpctotal": 0
- }
- }
- }
-}
diff --git a/cloudstack/testdata/AddressServiceData.json b/cloudstack/testdata/AddressServiceData.json
deleted file mode 100644
index 5073dae..0000000
--- a/cloudstack/testdata/AddressServiceData.json
+++ /dev/null
@@ -1,80 +0,0 @@
-{
- "associateIpAddress": {
- "associateIpAddress": {
- "associateipaddressresponse": {
- "id": "dc51835f-b0e2-4a2e-91a4-6cccc44bdae3",
- "jobid": "8e805516-1729-46cf-a7d0-7289d523871e"
- }
- },
- "queryAsyncJobResult": {
- "queryasyncjobresultresponse": {
- "accountid": "27ef5ba2-5fe0-11ea-9a56-1e006800018c",
- "userid": "27f2484f-5fe0-11ea-9a56-1e006800018c",
- "cmd": "org.apache.cloudstack.api.command.admin.address.AssociateIPAddrCmdByAdmin",
- "jobstatus": 1,
- "jobprocstatus": 0,
- "jobresultcode": 0,
- "jobresulttype": "object",
- "jobresult": {
- "ipaddress": {
- "id": "dc51835f-b0e2-4a2e-91a4-6cccc44bdae3",
- "ipaddress": "10.70.3.100",
- "allocated": "2021-10-01T16:25:11+0000",
- "zoneid": "3fc049b0-87ae-4d77-90c1-cce70da17db6",
- "zonename": "testAdvZone2",
- "issourcenat": true,
- "account": "admin",
- "domainid": "e4874e10-5fdf-11ea-9a56-1e006800018c",
- "domain": "ROOT",
- "forvirtualnetwork": true,
- "vlanid": "2e86e486-b472-4f12-a9b2-bb73701241e0",
- "vlanname": "vlan://untagged",
- "isstaticnat": false,
- "issystem": false,
- "associatednetworkid": "cf8056db-25e1-49d1-b023-f13a717e5ecc",
- "associatednetworkname": "test-adv-network",
- "networkid": "f17d38db-4810-437e-be28-d38cd30e3034",
- "state": "Allocating",
- "physicalnetworkid": "0d6c1e76-2d83-459a-bbce-c133fbd732b7",
- "tags": [],
- "isportable": false,
- "fordisplay": true
- }
- },
- "jobinstancetype": "IpAddress",
- "jobinstanceid": "dc51835f-b0e2-4a2e-91a4-6cccc44bdae3",
- "created": "2021-10-01T16:25:12+0000",
- "completed": "2021-10-01T16:25:12+0000",
- "jobid": "8e805516-1729-46cf-a7d0-7289d523871e"
- }
- }
- },
- "disassociateIpAddress": {
- "disassociateIpAddress": {
- "disassociateipaddressresponse": {
- "jobid": "44fc961e-9d57-4313-9f11-7556508b319c"
- }
- },
- "queryAsyncJobResult": {
- "queryasyncjobresultresponse": {
- "accountid": "27ef5ba2-5fe0-11ea-9a56-1e006800018c",
- "userid": "27f2484f-5fe0-11ea-9a56-1e006800018c",
- "cmd": "org.apache.cloudstack.api.command.user.address.DisassociateIPAddrCmd",
- "jobstatus": 1,
- "jobprocstatus": 0,
- "jobresultcode": 0,
- "jobresulttype": "object",
- "jobresult": {
- "success": true
- },
- "jobinstancetype": "IpAddress",
- "jobinstanceid": "a767fbe1-ed7a-4d7c-8221-c7d736ca622d",
- "created": "2021-10-01T16:42:32+0000",
- "completed": "2021-10-01T16:42:33+0000",
- "jobid": "44fc961e-9d57-4313-9f11-7556508b319c"
- }
- }
- }
-}
-
-
diff --git a/cloudstack/testdata/AffinityGroupServiceData.json b/cloudstack/testdata/AffinityGroupServiceData.json
deleted file mode 100644
index a398e22..0000000
--- a/cloudstack/testdata/AffinityGroupServiceData.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- "createAffinityGroup": {
- "createAffinityGroup": {
- "createaffinitygroupresponse": {
- "id": "5059d7e3-9213-448d-9314-6ae4e1d95a33",
- "jobid": "58e969e8-768b-44d0-b278-fd1b2f236c00"
- }
- },
- "queryAsyncJobResult": {
- "queryasyncjobresultresponse": {
- "accountid": "27ef5ba2-5fe0-11ea-9a56-1e006800018c",
- "userid": "27f2484f-5fe0-11ea-9a56-1e006800018c",
- "cmd": "org.apache.cloudstack.api.command.user.affinitygroup.CreateAffinityGroupCmd",
- "jobstatus": 1,
- "jobprocstatus": 0,
- "jobresultcode": 0,
- "jobresulttype": "object",
- "jobresult": {
- "affinitygroup": {
- "id": "5059d7e3-9213-448d-9314-6ae4e1d95a33",
- "name": "testAffinityGroup",
- "description": "testAffinityGroup",
- "account": "admin",
- "domainid": "e4874e10-5fdf-11ea-9a56-1e006800018c",
- "domain": "ROOT",
- "type": "host affinity"
- }
- },
- "jobinstancetype": "AffinityGroup",
- "created": "2021-10-01T16:59:04+0000",
- "completed": "2021-10-01T16:59:04+0000",
- "jobid": "58e969e8-768b-44d0-b278-fd1b2f236c00"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/cloudstack/testdata/CertificateServiceData.json b/cloudstack/testdata/CertificateServiceData.json
deleted file mode 100644
index df1ef3e..0000000
--- a/cloudstack/testdata/CertificateServiceData.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "uploadCustomCertificate": {
- "uploadCustomCertificate": {
- "uploadcustomcertificateresponse": {
- "jobid": "bb14e24d-af95-4d9d-8ead-e4f42ccd83f7"
- }
- },
- "queryAsyncJobResult": {
- "queryasyncjobresultresponse": {
- "accountid": "3bcbd8be-19eb-11ec-83a0-1e00bd000159",
- "userid": "3bcd30ee-19eb-11ec-83a0-1e00bd000159",
- "cmd": "org.apache.cloudstack.api.command.admin.resource.UploadCustomCertificateCmd",
- "jobstatus": 1,
- "jobprocstatus": 0,
- "jobresultcode": 0,
- "jobresulttype": "object",
- "jobresult": {
- "customcertificate": {
- "message": "Certificate has been successfully updated, if its the server certificate we would reboot all running console proxy VMs and secondary storage VMs to propagate the new certificate, please give a few minutes for console access and storage services service to be up and working again"
- }
- },
- "created": "2021-10-02T07:43:59+0000",
- "completed": "2021-10-02T07:43:59+0000",
- "jobid": "bb14e24d-af95-4d9d-8ead-e4f42ccd83f7"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/cloudstack/testdata/FirewallServiceData.json b/cloudstack/testdata/FirewallServiceData.json
deleted file mode 100644
index 6edf39b..0000000
--- a/cloudstack/testdata/FirewallServiceData.json
+++ /dev/null
@@ -1,123 +0,0 @@
-{
- "createFirewallRule": {
- "createFirewallRule": {
- "createfirewallruleresponse": {
- "id": "fb4ad2ee-02c8-433e-a769-6f18afddc750",
- "jobid": "104d5139-91dc-40a1-af2b-a94730e42e89"
- }
- },
- "queryAsyncJobResult": {
- "queryasyncjobresultresponse": {
- "accountid": "bc1b501c-1d18-11ec-9173-50eb7122da94",
- "userid": "bc1b6b47-1d18-11ec-9173-50eb7122da94",
- "cmd": "org.apache.cloudstack.api.command.user.firewall.CreateFirewallRuleCmd",
- "jobstatus": 1,
- "jobprocstatus": 0,
- "jobresultcode": 0,
- "jobresulttype": "object",
- "jobresult": {
- "firewallrule": {
- "id": "fb4ad2ee-02c8-433e-a769-6f18afddc750",
- "protocol": "tcp",
- "ipaddressid": "a4aa35ef-34ad-4332-9247-378c83b8f927",
- "networkid": "c4a3303c-376d-4d56-b336-1bd91cb130b6",
- "ipaddress": "192.168.2.4",
- "state": "Active",
- "cidrlist": "0.0.0.0/0",
- "tags": [],
- "fordisplay": true
- }
- },
- "jobinstancetype": "FirewallRule",
- "jobinstanceid": "fb4ad2ee-02c8-433e-a769-6f18afddc750",
- "created": "2021-10-02T23:20:07+0530",
- "completed": "2021-10-02T23:20:07+0530",
- "jobid": "104d5139-91dc-40a1-af2b-a94730e42e89"
- }
- }
- },
- "deleteFirewallRule": {
- "deleteFirewallRule": {
- "deletefirewallruleresponse": {
- "jobid": "6ae96f78-1c28-45f9-a30b-761ac5f3a87b"
- }
- },
- "queryAsyncJobResult": {
- "queryasyncjobresultresponse": {
- "accountid": "bc1b501c-1d18-11ec-9173-50eb7122da94",
- "userid": "bc1b6b47-1d18-11ec-9173-50eb7122da94",
- "cmd": "org.apache.cloudstack.api.command.user.firewall.DeleteFirewallRuleCmd",
- "jobstatus": 1,
- "jobprocstatus": 0,
- "jobresultcode": 0,
- "jobresulttype": "object",
- "jobresult": {
- "success": true
- },
- "created": "2021-10-02T23:25:22+0530",
- "completed": "2021-10-02T23:25:22+0530",
- "jobid": "6ae96f78-1c28-45f9-a30b-761ac5f3a87b"
- }
- }
- },
- "createEgressFirewallRule": {
- "createEgressFirewallRule": {
- "createegressfirewallruleresponse": {
- "id": "b7d8b539-8c72-4d25-8539-625f665681ad",
- "jobid": "8841a004-eb50-4d4e-aed5-7bc2494dc856"
- }
- },
- "queryAsyncJobResult": {
- "queryasyncjobresultresponse": {
- "accountid": "bc1b501c-1d18-11ec-9173-50eb7122da94",
- "userid": "bc1b6b47-1d18-11ec-9173-50eb7122da94",
- "cmd": "org.apache.cloudstack.api.command.user.firewall.CreateEgressFirewallRuleCmd",
- "jobstatus": 1,
- "jobprocstatus": 0,
- "jobresultcode": 0,
- "jobresulttype": "object",
- "jobresult": {
- "firewallrule": {
- "id": "b7d8b539-8c72-4d25-8539-625f665681ad",
- "protocol": "tcp",
- "networkid": "c4a3303c-376d-4d56-b336-1bd91cb130b6",
- "state": "Active",
- "cidrlist": "10.1.1.0/24",
- "tags": [],
- "fordisplay": true,
- "destcidrlist": ""
- }
- },
- "jobinstancetype": "FirewallRule",
- "jobinstanceid": "b7d8b539-8c72-4d25-8539-625f665681ad",
- "created": "2021-10-02T23:29:41+0530",
- "completed": "2021-10-02T23:29:41+0530",
- "jobid": "8841a004-eb50-4d4e-aed5-7bc2494dc856"
- }
- }
- },
- "deleteEgressFirewallRule": {
- "deleteEgressFirewallRule": {
- "deleteegressfirewallruleresponse": {
- "jobid": "91b10008-2e9f-412d-afa6-3c54a0bb19f5"
- }
- },
- "queryAsyncJobResult": {
- "queryasyncjobresultresponse": {
- "accountid": "bc1b501c-1d18-11ec-9173-50eb7122da94",
- "userid": "bc1b6b47-1d18-11ec-9173-50eb7122da94",
- "cmd": "org.apache.cloudstack.api.command.user.firewall.DeleteEgressFirewallRuleCmd",
- "jobstatus": 1,
- "jobprocstatus": 0,
- "jobresultcode": 0,
- "jobresulttype": "object",
- "jobresult": {
- "success": true
- },
- "created": "2021-10-02T23:32:08+0530",
- "completed": "2021-10-02T23:32:08+0530",
- "jobid": "91b10008-2e9f-412d-afa6-3c54a0bb19f5"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/cloudstack/testdata/NetworkACLServiceData.json b/cloudstack/testdata/NetworkACLServiceData.json
deleted file mode 100644
index fffac7d..0000000
--- a/cloudstack/testdata/NetworkACLServiceData.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
- "updateNetworkACLList": {
- "updateNetworkACLList": {
- "updatenetworkacllistresponse": {
- "jobid": "6dd51379-b8cf-422c-a6ef-f96c07798c97"
- }
- },
- "queryAsyncJobResult": {
- "queryasyncjobresultresponse": {
- "accountid": "27ef5ba2-5fe0-11ea-9a56-1e006800018c",
- "userid": "27f2484f-5fe0-11ea-9a56-1e006800018c",
- "cmd": "org.apache.cloudstack.api.command.user.network.UpdateNetworkACLListCmd",
- "jobstatus": 1,
- "jobprocstatus": 0,
- "jobresultcode": 0,
- "jobresulttype": "object",
- "jobresult": {
- "networkacllist": {
- "id": "a31e11a0-57fe-41df-be7a-34d359673061",
- "name": "test",
- "description": "testtest",
- "vpcid": "40419d33-6d48-4c54-ae2e-5c312b401593",
- "fordisplay": true
- }
- },
- "created": "2021-10-13T04:46:30+0000",
- "completed": "2021-10-13T04:46:30+0000",
- "jobid": "6dd51379-b8cf-422c-a6ef-f96c07798c97"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/cloudstack/testdata/ProjectServiceData.json b/cloudstack/testdata/ProjectServiceData.json
deleted file mode 100644
index 907bff0..0000000
--- a/cloudstack/testdata/ProjectServiceData.json
+++ /dev/null
@@ -1,312 +0,0 @@
-{
- "createProject": {
- "createProject": {
- "createprojectresponse": {
- "id": "69646881-8d7f-4800-987d-106698a42608",
- "jobid": "0666daab-af9b-4001-ae70-78ac6bc697e8"
- }
- },
- "queryAsyncJobResult": {
- "queryasyncjobresultresponse": {
- "accountid": "27ef5ba2-5fe0-11ea-9a56-1e006800018c",
- "userid": "27f2484f-5fe0-11ea-9a56-1e006800018c",
- "cmd": "org.apache.cloudstack.api.command.user.project.CreateProjectCmd",
- "jobstatus": 1,
- "jobprocstatus": 0,
- "jobresultcode": 0,
- "jobresulttype": "object",
- "jobresult": {
- "project": {
- "id": "69646881-8d7f-4800-987d-106698a42608",
- "name": "testProject",
- "displaytext": "testProject",
- "domainid": "e4874e10-5fdf-11ea-9a56-1e006800018c",
- "domain": "ROOT",
- "owner": [
- {
- "account": "admin"
- }
- ],
- "projectaccountname": "PrjAcct-testProject-1",
- "state": "Active",
- "tags": [],
- "networklimit": "20",
- "networktotal": 0,
- "networkavailable": "20",
- "vpclimit": "20",
- "vpctotal": 0,
- "vpcavailable": "20",
- "cpulimit": "40",
- "cputotal": 0,
- "cpuavailable": "40",
- "memorylimit": "40960",
- "memorytotal": 0,
- "memoryavailable": "40960",
- "primarystoragelimit": "200",
- "primarystoragetotal": 0,
- "primarystorageavailable": "200",
- "secondarystoragelimit": "400",
- "secondarystoragetotal": 0,
- "secondarystorageavailable": "400.0",
- "vmlimit": "20",
- "vmtotal": 0,
- "vmavailable": "20",
- "iplimit": "20",
- "iptotal": 0,
- "ipavailable": "20",
- "volumelimit": "20",
- "volumetotal": 0,
- "volumeavailable": "20",
- "snapshotlimit": "20",
- "snapshottotal": 0,
- "snapshotavailable": "20",
- "templatelimit": "20",
- "templatetotal": 0,
- "templateavailable": "20",
- "vmstopped": 0,
- "vmrunning": 0
- }
- },
- "jobinstancetype": "None",
- "created": "2021-10-04T06:21:54+0000",
- "completed": "2021-10-04T06:21:54+0000",
- "jobid": "0666daab-af9b-4001-ae70-78ac6bc697e8"
- }
- }
- },
- "activateProject": {
- "activateProject": {
- "activaterojectresponse": {
- "jobid": "fa12a90a-29fc-43c0-8cbd-5be49b72ed22"
- }
- },
- "queryAsyncJobResult": {
- "queryasyncjobresultresponse": {
- "accountid": "27ef5ba2-5fe0-11ea-9a56-1e006800018c",
- "userid": "27f2484f-5fe0-11ea-9a56-1e006800018c",
- "cmd": "org.apache.cloudstack.api.command.user.project.ActivateProjectCmd",
- "jobstatus": 1,
- "jobprocstatus": 0,
- "jobresultcode": 0,
- "jobresulttype": "object",
- "jobresult": {
- "project": {
- "id": "99a842a4-e50f-4265-8ca7-249959506c13",
- "name": "Admin Project",
- "displaytext": "Admin Project",
- "domainid": "e4874e10-5fdf-11ea-9a56-1e006800018c",
- "domain": "ROOT",
- "owner": [
- {
- "account": "admin"
- }
- ],
- "projectaccountname": "PrjAcct-Admin Project-1",
- "state": "Active",
- "tags": [],
- "networklimit": "20",
- "networktotal": 0,
- "networkavailable": "20",
- "vpclimit": "20",
- "vpctotal": 0,
- "vpcavailable": "20",
- "cpulimit": "40",
- "cputotal": 0,
- "cpuavailable": "40",
- "memorylimit": "40960",
- "memorytotal": 0,
- "memoryavailable": "40960",
- "primarystoragelimit": "200",
- "primarystoragetotal": 0,
- "primarystorageavailable": "200",
- "secondarystoragelimit": "400",
- "secondarystoragetotal": 0,
- "secondarystorageavailable": "400.0",
- "vmlimit": "20",
- "vmtotal": 0,
- "vmavailable": "20",
- "iplimit": "20",
- "iptotal": 0,
- "ipavailable": "20",
- "volumelimit": "20",
- "volumetotal": 0,
- "volumeavailable": "20",
- "snapshotlimit": "20",
- "snapshottotal": 0,
- "snapshotavailable": "20",
- "templatelimit": "20",
- "templatetotal": 0,
- "templateavailable": "20",
- "vmstopped": 0,
- "vmrunning": 0
- }
- },
- "created": "2021-10-04T06:30:39+0000",
- "completed": "2021-10-04T06:30:39+0000",
- "jobid": "fa12a90a-29fc-43c0-8cbd-5be49b72ed22"
- }
- }
- },
- "suspendProject": {
- "suspendProject": {
- "suspendprojectresponse": {
- "jobid": "608f4d53-ceae-4747-9c0d-e8c15fc52135"
- }
- },
- "queryAsyncJobResult": {
- "queryasyncjobresultresponse": {
- "accountid": "27ef5ba2-5fe0-11ea-9a56-1e006800018c",
- "userid": "27f2484f-5fe0-11ea-9a56-1e006800018c",
- "cmd": "org.apache.cloudstack.api.command.user.project.SuspendProjectCmd",
- "jobstatus": 1,
- "jobprocstatus": 0,
- "jobresultcode": 0,
- "jobresulttype": "object",
- "jobresult": {
- "project": {
- "id": "99a842a4-e50f-4265-8ca7-249959506c13",
- "name": "Admin Project",
- "displaytext": "Admin Project",
- "domainid": "e4874e10-5fdf-11ea-9a56-1e006800018c",
- "domain": "ROOT",
- "owner": [
- {
- "account": "admin"
- }
- ],
- "projectaccountname": "PrjAcct-Admin Project-1",
- "state": "Suspended",
- "tags": [],
- "networklimit": "20",
- "networktotal": 0,
- "networkavailable": "20",
- "vpclimit": "20",
- "vpctotal": 0,
- "vpcavailable": "20",
- "cpulimit": "40",
- "cputotal": 0,
- "cpuavailable": "40",
- "memorylimit": "40960",
- "memorytotal": 0,
- "memoryavailable": "40960",
- "primarystoragelimit": "200",
- "primarystoragetotal": 0,
- "primarystorageavailable": "200",
- "secondarystoragelimit": "400",
- "secondarystoragetotal": 0,
- "secondarystorageavailable": "400.0",
- "vmlimit": "20",
- "vmtotal": 0,
- "vmavailable": "20",
- "iplimit": "20",
- "iptotal": 0,
- "ipavailable": "20",
- "volumelimit": "20",
- "volumetotal": 0,
- "volumeavailable": "20",
- "snapshotlimit": "20",
- "snapshottotal": 0,
- "snapshotavailable": "20",
- "templatelimit": "20",
- "templatetotal": 0,
- "templateavailable": "20",
- "vmstopped": 0,
- "vmrunning": 0
- }
- },
- "created": "2021-10-04T06:34:01+0000",
- "completed": "2021-10-04T06:34:01+0000",
- "jobid": "608f4d53-ceae-4747-9c0d-e8c15fc52135"
- }
- }
- },
- "updateProject": {
- "updateProject": {
- "updateprojectresponse": {
- "jobid": "1330d540-c099-4943-ac22-3fd5846c0e5b"
- }
- },
- "queryAsyncJobResult": {
- "queryasyncjobresultresponse": {
- "accountid": "27ef5ba2-5fe0-11ea-9a56-1e006800018c",
- "userid": "27f2484f-5fe0-11ea-9a56-1e006800018c",
- "cmd": "org.apache.cloudstack.api.command.user.project.UpdateProjectCmd",
- "jobstatus": 1,
- "jobprocstatus": 0,
- "jobresultcode": 0,
- "jobresulttype": "object",
- "jobresult": {
- "project": {
- "id": "69646881-8d7f-4800-987d-106698a42608",
- "name": "testProject",
- "displaytext": "testProjectUpdate",
- "domainid": "e4874e10-5fdf-11ea-9a56-1e006800018c",
- "domain": "ROOT",
- "owner": [
- {
- "account": "admin"
- }
- ],
- "projectaccountname": "PrjAcct-testProject-1",
- "state": "Active",
- "tags": [],
- "networklimit": "20",
- "networktotal": 0,
- "networkavailable": "20",
- "vpclimit": "20",
- "vpctotal": 0,
- "vpcavailable": "20",
- "cpulimit": "40",
- "cputotal": 0,
- "cpuavailable": "40",
- "memorylimit": "40960",
- "memorytotal": 0,
- "memoryavailable": "40960",
- "primarystoragelimit": "200",
- "primarystoragetotal": 0,
- "primarystorageavailable": "200",
- "secondarystoragelimit": "400",
- "secondarystoragetotal": 0,
- "secondarystorageavailable": "400.0",
- "vmlimit": "20",
- "vmtotal": 0,
- "vmavailable": "20",
- "iplimit": "20",
- "iptotal": 0,
- "ipavailable": "20",
- "volumelimit": "20",
- "volumetotal": 0,
- "volumeavailable": "20",
- "snapshotlimit": "20",
- "snapshottotal": 0,
- "snapshotavailable": "20",
- "templatelimit": "20",
- "templatetotal": 0,
- "templateavailable": "20",
- "vmstopped": 0,
- "vmrunning": 0
- }
- },
- "created": "2021-10-04T06:35:29+0000",
- "completed": "2021-10-04T06:35:29+0000",
- "jobid": "1330d540-c099-4943-ac22-3fd5846c0e5b"
- }
- }
- },
- "listProjectRolePermissions": {
- "listprojectrolepermissionsresponse": {
- "count": 1,
- "projectrolepermission": [
- {
- "id": "e68daeca-556f-4fd2-b4ee-378cb994ef76",
- "projectroleid": "fa089002-d055-46b5-aa0a-18f2eae2b4fc",
- "projectid": "69646881-8d7f-4800-987d-106698a42608",
- "projectrolename": "testProjectPerm",
- "rule": "activateProject",
- "permission": "deny",
- "description": ""
- }
- ]
- }
- }
-}
\ No newline at end of file
diff --git a/cloudstack/testdata/ResourceTagsServiceData.json b/cloudstack/testdata/ResourceTagsServiceData.json
deleted file mode 100644
index e8419e0..0000000
--- a/cloudstack/testdata/ResourceTagsServiceData.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{
- "createTags": {
- "createTags": {
- "createtagsresponse": {
- "jobid": "fb96bb6b-c192-492d-9671-42cea59a3709"
- }
- },
- "queryAsyncJobResult": {
- "queryasyncjobresultresponse": {
- "accountid": "27ef5ba2-5fe0-11ea-9a56-1e006800018c",
- "cmd": "org.apache.cloudstack.api.command.user.tag.CreateTagsCmd",
- "completed": "2021-10-04T06:58:35+0000",
- "created": "2021-10-04T06:58:35+0000",
- "jobid": "4901a56e-60aa-4385-8ab6-8f9591ef0469",
- "jobprocstatus": 0,
- "jobresult": {
- "success": true
- },
- "jobresultcode": 0,
- "jobresulttype": "object",
- "jobstatus": 1,
- "userid": "27f2484f-5fe0-11ea-9a56-1e006800018c"
- }
- }
- },
- "deleteTags": {
- "deleteTags": {
- "deletetagsresponse": {
- "jobid": "494d0f35-057a-4cc7-bf5d-b52d3b803a36"
- }
- },
- "queryAsyncJobResult": {
- "queryasyncjobresultresponse": {
- "accountid": "27ef5ba2-5fe0-11ea-9a56-1e006800018c",
- "cmd": "org.apache.cloudstack.api.command.user.tag.DeleteTagsCmd",
- "completed": "2021-10-04T07:07:22+0000",
- "created": "2021-10-04T07:07:22+0000",
- "jobid": "494d0f35-057a-4cc7-bf5d-b52d3b803a36",
- "jobprocstatus": 0,
- "jobresult": {
- "success": true
- },
- "jobresultcode": 0,
- "jobresulttype": "object",
- "jobstatus": 1,
- "userid": "27f2484f-5fe0-11ea-9a56-1e006800018c"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/cloudstack/testdata/SSHServiceData.json b/cloudstack/testdata/SSHServiceData.json
deleted file mode 100644
index b782bf2..0000000
--- a/cloudstack/testdata/SSHServiceData.json
+++ /dev/null
@@ -1,145 +0,0 @@
-{
- "createSSHKeyPair": {
- "createsshkeypairresponse": {
- "keypair": {
- "privatekey": "-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAlMDlCrzlmEBwmPmQBhvD4PeRdEUV2tyoEuLLwkg7FkZFrjdd\nZaC8+N82Jm/lr27sqq5xVoo6n54k3hG9HVxNZjQBY5IiRNeQIF30Ye5c6TzboCCH\nAJVZYf4Dj5ucJvxg+V1+rZMNNJs6y2tMRGfmQ9zdrHZwOutKBeWTlGLtXyMabc5o\nVVe4hjngxh7s+CbEAA8oE9KFk1ZyhJ7SDj6G9vrMoBYNgqNGG6DHF/NM0A0yaEnj\nZU5MECXnw9qT7W8ggy5UM9AYtfzAyWBrS3jDwFgOjEZ+TW7vvC1Q3lnGkzpTHlye\nRppPm/7Xa8xapIdDV2UdEXnChHj9+Jwpa5nBJQIDAQABAoIBABaReW56oD7MMAkV\ne+NhXQOJq/i+7oTpC1rqK83LFaPYf4PiBHqBu4nq [...]
- "name": "testSSHKey",
- "account": "admin",
- "domainid": "e4874e10-5fdf-11ea-9a56-1e006800018c",
- "domain": "ROOT",
- "fingerprint": "3b:f7:0b:34:40:0d:a5:3c:2a:75:f8:82:1d:88:99:36"
- }
- }
- },
- "listSSHKeyPairs": {
- "listsshkeypairsresponse": {
- "count": 1,
- "sshkeypair": [
- {
- "account": "admin",
- "domain": "ROOT",
- "domainid": "e4874e10-5fdf-11ea-9a56-1e006800018c",
- "fingerprint": "3b:f7:0b:34:40:0d:a5:3c:2a:75:f8:82:1d:88:99:36",
- "name": "testSSHKey"
- }
- ]
- }
- },
- "resetSSHKeyForVirtualMachine": {
- "resetSSHKeyForVirtualMachine": {
- "resetSSHKeyforvirtualmachineresponse": {
- "jobid": "da766971-3902-4675-9cf2-8bcb2398aba3"
- }
- },
- "queryAsyncJobResult": {
- "queryasyncjobresultresponse": {
- "accountid": "27ef5ba2-5fe0-11ea-9a56-1e006800018c",
- "userid": "27f2484f-5fe0-11ea-9a56-1e006800018c",
- "cmd": "org.apache.cloudstack.api.command.admin.vm.ResetVMSSHKeyCmdByAdmin",
- "jobstatus": 1,
- "jobprocstatus": 0,
- "jobresultcode": 0,
- "jobresulttype": "object",
- "jobresult": {
- "virtualmachine": {
- "id": "8aa29529-b238-45f3-8992-5befadcd8bb0",
- "name": "Admin-VPC-T3-VM",
- "displayname": "abc12",
- "account": "admin",
- "userid": "27f2484f-5fe0-11ea-9a56-1e006800018c",
- "username": "admin",
- "domainid": "e4874e10-5fdf-11ea-9a56-1e006800018c",
- "domain": "ROOT",
- "created": "2021-07-05T09:16:22+0000",
- "state": "Stopped",
- "haenable": false,
- "zoneid": "1d8d87d4-1425-459c-8d81-c6f57dca2bd2",
- "zonename": "shouldwork",
- "templateid": "50459b99-5fe0-11ea-9a56-1e006800018c",
- "templatename": "CentOS 5.6 (64-bit)",
- "templatedisplaytext": "CentOS 5.6 (64-bit) no GUI",
- "passwordenabled": false,
- "serviceofferingid": "79802d1a-186b-4e34-a550-220987cb03c2",
- "serviceofferingname": "const1",
- "diskofferingid": "3d321179-f9c6-4a77-8f47-6fae3a8126d1",
- "diskofferingname": "Medium",
- "backupofferingid": "7c42d74e-c029-4431-9025-6caa8b903472",
- "backupofferingname": "BackupGoldDummy",
- "cpunumber": 1,
- "cpuspeed": 1000,
- "memory": 256,
- "cpuused": "10%",
- "networkkbsread": 209485824,
- "networkkbswrite": 104742912,
- "diskkbsread": 0,
- "diskkbswrite": 0,
- "memorykbs": 0,
- "memoryintfreekbs": 0,
- "memorytargetkbs": 0,
- "diskioread": 0,
- "diskiowrite": 0,
- "guestosid": "e53f7606-5fdf-11ea-9a56-1e006800018c",
- "rootdeviceid": 1,
- "rootdevicetype": "DATADISK",
- "securitygroup": [],
- "nic": [
- {
- "id": "511941ff-229d-4a3b-8b09-f83b0608ed6b",
- "networkid": "30358053-0f9d-4112-9948-976477896db6",
- "networkname": "test-network-2",
- "netmask": "255.255.255.0",
- "gateway": "10.1.2.1",
- "ipaddress": "10.1.2.71",
- "traffictype": "Guest",
- "type": "Isolated",
- "isdefault": true,
- "macaddress": "02:00:35:ff:00:0c",
- "secondaryip": [],
- "extradhcpoption": []
- },
- {
- "id": "186e56ee-8de8-4869-ac00-dc91dc51d6f2",
- "networkid": "6463e120-c36a-4569-aaa7-729922a55825",
- "networkname": "sw1",
- "traffictype": "Guest",
- "type": "L2",
- "isdefault": false,
- "macaddress": "02:00:3d:a2:00:02",
- "secondaryip": [],
- "extradhcpoption": []
- }
- ],
- "hypervisor": "Simulator",
- "instancename": "i-2-613-QA",
- "details": {
- "cpuNumber": "1",
- "memory": "256",
- "Message.ReservedCapacityFreed.Flag": "true",
- "SSH.PublicKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCUwOUKvOWYQHCY+ZAGG8Pg95F0RRXa3KgS4svCSDsWRkWuN11loLz43zYmb+WvbuyqrnFWijqfniTeEb0dXE1mNAFjkiJE15AgXfRh7lzpPNugIIcAlVlh/gOPm5wm/GD5XX6tkw00mzrLa0xEZ+ZD3N2sdnA660oF5ZOUYu1fIxptzmhVV7iGOeDGHuz4JsQADygT0oWTVnKEntIOPob2+sygFg2Co0YboMcX80zQDTJoSeNlTkwQJefD2pPtbyCDLlQz0Bi1/MDJYGtLeMPAWA6MRn5Nbu+8LVDeWcaTOlMeXJ5Gmk+b/tdrzFqkh0NXZR0RecKEeP34nClrmcEl \n",
- "Encrypted.Password": "YcyvikAL5LHq4gXwGVE3yW0j7iuuTWcxnMpYQDqHn+6R1agzIibv3eoF1onUFgHYQ0XtJUzMR4QfZDzlHnqYDTB+rKjjc9YcZzWhVSoVKQ45bUqAKFBXJTfDLQ3ZmvULxJ2VXf/HuuOh5Th5S62bP68QrrVCMPUArUYRRFPw0EkQVdvjwF1raNXpKWDAtcwITaroxW0pL9S8ome5R7JHKPxyK9G8/lqC4ywodvPaG+vGV0eHTiQeUab/dQ8Pxze6Ny88uwv8oH2vu+zMbs91uDDL9lMl7WV5Rq6RucKRAjOBLfPj+f+8jq3xnCG8JzUa63G2lAvP9qIzk3eYzoeYkw=="
- },
- "keypair": "testSSHKey",
- "affinitygroup": [],
- "displayvm": true,
- "isdynamicallyscalable": false,
- "ostypeid": "e53f7606-5fdf-11ea-9a56-1e006800018c",
- "osdisplayname": "CentOS 5.6 (64-bit)",
- "tags": [],
- "jobid": "da766971-3902-4675-9cf2-8bcb2398aba3",
- "jobstatus": 0
- }
- },
- "jobinstancetype": "VirtualMachine",
- "jobinstanceid": "8aa29529-b238-45f3-8992-5befadcd8bb0",
- "created": "2021-10-04T07:39:55+0000",
- "completed": "2021-10-04T07:39:55+0000",
- "jobid": "da766971-3902-4675-9cf2-8bcb2398aba3"
- }
- }
- },
- "deleteSSHKeyPair": {
- "deletesshkeypairresponse": {
- "success": true
- }
- }
-}
\ No newline at end of file
diff --git a/cloudstack/testdata/VPCServiceData.json b/cloudstack/testdata/VPCServiceData.json
deleted file mode 100644
index 595f832..0000000
--- a/cloudstack/testdata/VPCServiceData.json
+++ /dev/null
@@ -1,336 +0,0 @@
-{
- "restartVPC": {
- "restartVPC": {
- "restartvpcresponse": {
- "jobid": "98272f42-917c-4286-8c05-4e38d85d32e0"
- }
- },
- "queryAsyncJobResult": {
- "queryasyncjobresultresponse": {
- "accountid": "0644f184-269b-11ec-ad12-1e00bc0003a5",
- "userid": "06466ac0-269b-11ec-ad12-1e00bc0003a5",
- "cmd": "org.apache.cloudstack.api.command.user.vpc.RestartVPCCmd",
- "jobstatus": 1,
- "jobprocstatus": 0,
- "jobresultcode": 0,
- "jobresulttype": "object",
- "jobresult": {
- "success": true
- },
- "created": "2021-10-13T04:36:30+0000",
- "completed": "2021-10-13T04:36:30+0000",
- "jobid": "98272f42-917c-4286-8c05-4e38d85d32e0"
- }
- }
- },
- "listVPCs": {
- "listVPCs": {
- "listvpcresponse": {
- "count": 2,
- "vpc": [
- {
- "id": "49b5fa29-e98f-4078-b407-7e7928105ec0",
- "name": "my-vpc",
- "displaytext": "my-vpc-text",
- "state": "Enabled",
- "zoneid": "04ccc336-d730-42fe-8ff6-5ae36e141e81",
- "zonename": "SimZone1",
- "service": [
- { "name": "Dns", "provider": [{ "name": "VpcVirtualRouter" }] },
- { "name": "Dhcp", "provider": [{ "name": "VpcVirtualRouter" }] },
- {
- "name": "PortForwarding",
- "provider": [{ "name": "VpcVirtualRouter" }]
- },
- {
- "name": "StaticNat",
- "provider": [{ "name": "VpcVirtualRouter" }]
- },
- { "name": "Vpn", "provider": [{ "name": "VpcVirtualRouter" }] },
- {
- "name": "SourceNat",
- "provider": [{ "name": "VpcVirtualRouter" }]
- },
- {
- "name": "NetworkACL",
- "provider": [{ "name": "VpcVirtualRouter" }]
- },
- {
- "name": "UserData",
- "provider": [{ "name": "VpcVirtualRouter" }]
- },
- {
- "name": "Lb",
- "provider": [
- { "name": "VpcVirtualRouter" },
- { "name": "InternalLbVm" }
- ]
- }
- ],
- "cidr": "10.0.0.0/8",
- "vpcofferingid": "8142b164-0fa2-40c6-9067-2a90ae526df5",
- "vpcofferingname": "Default VPC offering",
- "created": "2021-12-26T22:26:18+0000",
- "account": "admin",
- "domainid": "bbae9696-627f-11ec-8fb6-0242ac110002",
- "domain": "ROOT",
- "network": [],
- "restartrequired": false,
- "networkdomain": "my-domain",
- "tags": [{ "key": "my-tag", "value": "true" }],
- "fordisplay": true,
- "distributedvpcrouter": false,
- "regionlevelvpc": false,
- "redundantvpcrouter": false,
- "hasannotations": false
- },
- {
- "id": "78d49100-e4af-4692-9a49-284fa2444eb9",
- "name": "my-vpc",
- "displaytext": "my-vpc",
- "state": "Enabled",
- "zoneid": "04ccc336-d730-42fe-8ff6-5ae36e141e81",
- "zonename": "SimZone1",
- "service": [
- { "name": "Dns", "provider": [{ "name": "VpcVirtualRouter" }] },
- { "name": "Dhcp", "provider": [{ "name": "VpcVirtualRouter" }] },
- {
- "name": "PortForwarding",
- "provider": [{ "name": "VpcVirtualRouter" }]
- },
- {
- "name": "StaticNat",
- "provider": [{ "name": "VpcVirtualRouter" }]
- },
- { "name": "Vpn", "provider": [{ "name": "VpcVirtualRouter" }] },
- {
- "name": "SourceNat",
- "provider": [{ "name": "VpcVirtualRouter" }]
- },
- {
- "name": "NetworkACL",
- "provider": [{ "name": "VpcVirtualRouter" }]
- },
- {
- "name": "UserData",
- "provider": [{ "name": "VpcVirtualRouter" }]
- },
- {
- "name": "Lb",
- "provider": [
- { "name": "VpcVirtualRouter" },
- { "name": "InternalLbVm" }
- ]
- }
- ],
- "cidr": "10.0.0.0/8",
- "vpcofferingid": "8142b164-0fa2-40c6-9067-2a90ae526df5",
- "vpcofferingname": "Default VPC offering",
- "created": "2021-12-26T22:28:44+0000",
- "account": "admin",
- "domainid": "bbae9696-627f-11ec-8fb6-0242ac110002",
- "domain": "ROOT",
- "network": [
- {
- "id": "e22cab07-58ac-4a1b-b0a8-fcee1bbecc7d",
- "name": "my-network",
- "displaytext": "my-network",
- "broadcastdomaintype": "Vlan",
- "traffictype": "Guest",
- "gateway": "10.1.1.1",
- "netmask": "255.255.255.0",
- "cidr": "10.1.1.0/24",
- "zoneid": "04ccc336-d730-42fe-8ff6-5ae36e141e81",
- "zonename": "SimZone1",
- "networkofferingid": "f26a1059-24df-4f76-9daf-16d42ce9df11",
- "networkofferingname": "DefaultIsolatedNetworkOfferingForVpcNetworks",
- "networkofferingdisplaytext": "Offering for Isolated Vpc networks with Source Nat service enabled",
- "networkofferingconservemode": false,
- "networkofferingavailability": "Optional",
- "issystem": false,
- "state": "Allocated",
- "related": "e22cab07-58ac-4a1b-b0a8-fcee1bbecc7d",
- "dns1": "10.147.28.6",
- "type": "Isolated",
- "acltype": "Account",
- "account": "admin",
- "domainid": "bbae9696-627f-11ec-8fb6-0242ac110002",
- "domain": "ROOT",
- "service": [
- {
- "name": "Dns",
- "provider": [{ "name": "VpcVirtualRouter" }],
- "capability": [
- {
- "name": "AllowDnsSuffixModification",
- "value": "true",
- "canchooseservicecapability": false
- }
- ]
- },
- {
- "name": "Dhcp",
- "provider": [{ "name": "VpcVirtualRouter" }],
- "capability": [
- {
- "name": "DhcpAccrossMultipleSubnets",
- "value": "true",
- "canchooseservicecapability": false
- }
- ]
- },
- {
- "name": "PortForwarding",
- "provider": [{ "name": "VpcVirtualRouter" }],
- "capability": [
- {
- "name": "SupportedProtocols",
- "value": "tcp,udp",
- "canchooseservicecapability": false
- }
- ]
- },
- {
- "name": "StaticNat",
- "provider": [{ "name": "VpcVirtualRouter" }],
- "capability": [
- {
- "name": "ElasticIp",
- "value": "false",
- "canchooseservicecapability": false
- },
- {
- "name": "AssociatePublicIP",
- "value": "true",
- "canchooseservicecapability": false
- }
- ]
- },
- {
- "name": "Vpn",
- "provider": [{ "name": "VpcVirtualRouter" }],
- "capability": [
- {
- "name": "SupportedVpnTypes",
- "value": "pptp,l2tp,ipsec",
- "canchooseservicecapability": false
- },
- {
- "name": "VpnTypes",
- "value": "s2svpn",
- "canchooseservicecapability": false
- }
- ]
- },
- {
- "name": "SourceNat",
- "provider": [{ "name": "VpcVirtualRouter" }],
- "capability": [
- {
- "name": "SupportedSourceNatTypes",
- "value": "peraccount",
- "canchooseservicecapability": true
- },
- {
- "name": "RedundantRouter",
- "value": "false",
- "canchooseservicecapability": true
- }
- ]
- },
- {
- "name": "NetworkACL",
- "provider": [{ "name": "VpcVirtualRouter" }],
- "capability": [
- {
- "name": "SupportedProtocols",
- "value": "tcp,udp,icmp",
- "canchooseservicecapability": false
- }
- ]
- },
- {
- "name": "UserData",
- "provider": [{ "name": "VpcVirtualRouter" }],
- "capability": []
- },
- {
- "name": "Lb",
- "provider": [{ "name": "VpcVirtualRouter" }],
- "capability": [
- {
- "name": "SupportedStickinessMethods",
- "value": "[{\"methodname\":\"LbCookie\",\"paramlist\":[{\"paramname\":\"cookie-name\",\"required\":false,\"isflag\":false,\"description\":\" \"},{\"paramname\":\"mode\",\"required\":false,\"isflag\":false,\"description\":\" \"},{\"paramname\":\"nocache\",\"required\":false,\"isflag\":true,\"description\":\" \"},{\"paramname\":\"indirect\",\"required\":false,\"isflag\":true,\"description\":\" \"},{\"paramname\":\"postonly\",\"required\":false,\"isflag\":true,\"desc [...]
- "canchooseservicecapability": false
- },
- {
- "name": "SupportedLbAlgorithms",
- "value": "roundrobin,leastconn,source",
- "canchooseservicecapability": false
- },
- {
- "name": "LbSchemes",
- "value": "Public",
- "canchooseservicecapability": false
- },
- {
- "name": "SupportedProtocols",
- "value": "tcp, udp, tcp-proxy",
- "canchooseservicecapability": false
- },
- {
- "name": "SupportedLBIsolation",
- "value": "dedicated",
- "canchooseservicecapability": true
- },
- {
- "name": "AutoScaleCounters",
- "value": "[{\"methodname\":\"cpu\",\"paramlist\":[]},{\"methodname\":\"memory\",\"paramlist\":[]}]",
- "canchooseservicecapability": false
- },
- {
- "name": "ElasticLb",
- "value": "false",
- "canchooseservicecapability": false
- },
- {
- "name": "InlineMode",
- "value": "false",
- "canchooseservicecapability": false
- }
- ]
- }
- ],
- "networkdomain": "my-domain",
- "physicalnetworkid": "ffcffe07-5cbf-4862-9c52-8e7153a5239a",
- "restartrequired": false,
- "specifyipranges": false,
- "vpcid": "78d49100-e4af-4692-9a49-284fa2444eb9",
- "vpcname": "my-vpc",
- "canusefordeploy": true,
- "ispersistent": false,
- "tags": [],
- "details": {},
- "displaynetwork": true,
- "strechedl2subnet": false,
- "redundantrouter": false,
- "created": "2021-12-26T22:28:52+0000",
- "receivedbytes": 0,
- "sentbytes": 0,
- "hasannotations": false
- }
- ],
- "restartrequired": false,
- "networkdomain": "my-domain",
- "tags": [{ "key": "my-tag", "value": "true" }],
- "fordisplay": true,
- "distributedvpcrouter": false,
- "regionlevelvpc": false,
- "redundantvpcrouter": false,
- "hasannotations": false
- }
- ]
- }
- }
- }
-}
diff --git a/cloudstack/testdata/VPNServiceData.json b/cloudstack/testdata/VPNServiceData.json
deleted file mode 100644
index 790ede9..0000000
--- a/cloudstack/testdata/VPNServiceData.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "deleteRemoteAccessVpn": {
- "deleteRemoteAccessVpn": {
- "deleteremoteaccessvpnresponse": {
- "jobid": "3697537c-f796-44f2-b997-0b71ff4f4e07"
- }
- },
- "queryAsyncJobResult": {
- "queryasyncjobresultresponse": {
- "accountid": "7a2fad8f-2bde-11ec-b173-1e0086000207",
- "cmd": "org.apache.cloudstack.api.command.user.vpn.DeleteRemoteAccessVpnCmd",
- "completed": "2021-10-13T07:38:53+0000",
- "created": "2021-10-13T07:38:51+0000",
- "jobid": "50bdd6c2-6958-48ba-94fe-3e6ec410dcce",
- "jobprocstatus": 0,
- "jobresult": {
- "success": true
- },
- "jobresultcode": 0,
- "jobresulttype": "object",
- "jobstatus": 1,
- "userid": "7a309dc2-2bde-11ec-b173-1e0086000207"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/cloudstack/testdata/VirtualMachineServiceData.json b/cloudstack/testdata/VirtualMachineServiceData.json
deleted file mode 100644
index 918a8b1..0000000
--- a/cloudstack/testdata/VirtualMachineServiceData.json
+++ /dev/null
@@ -1,545 +0,0 @@
-{
- "deployVirtualMachine": {
- "deployVirtualMachine": {
- "deployvirtualmachineresponse": {
- "id": "915653c4-298b-4d74-bdee-4ced282114f1",
- "jobid": "74bbb422-fb74-47ac-a22a-ad86a7831d3f"
- }
- },
- "queryAsyncJobResult": {
- "queryasyncjobresultresponse": {
- "accountid": "27ef5ba2-5fe0-11ea-9a56-1e006800018c",
- "userid": "27f2484f-5fe0-11ea-9a56-1e006800018c",
- "cmd": "org.apache.cloudstack.api.command.admin.vm.DeployVMCmdByAdmin",
- "jobstatus": 1,
- "jobprocstatus": 0,
- "jobresultcode": 0,
- "jobresulttype": "object",
- "jobresult": {
- "virtualmachine": {
- "id": "915653c4-298b-4d74-bdee-4ced282114f1",
- "name": "testDummyVM",
- "displayname": "testDummyVM",
- "account": "admin",
- "userid": "27f2484f-5fe0-11ea-9a56-1e006800018c",
- "username": "admin",
- "domainid": "e4874e10-5fdf-11ea-9a56-1e006800018c",
- "domain": "ROOT",
- "created": "2021-10-04T09:24:38+0000",
- "state": "Running",
- "haenable": false,
- "zoneid": "1d8d87d4-1425-459c-8d81-c6f57dca2bd2",
- "zonename": "shouldwork",
- "hostid": "8e8e68e7-19ea-4a78-bbdb-6e79d27729c9",
- "hostname": "SimulatedAgent.4234d24b-37fd-42bf-9184-874889001baf",
- "templateid": "50459b99-5fe0-11ea-9a56-1e006800018c",
- "templatename": "CentOS 5.6 (64-bit)",
- "templatedisplaytext": "CentOS 5.6 (64-bit) no GUI",
- "passwordenabled": false,
- "serviceofferingid": "498ce071-a077-4237-9492-e55c42553327",
- "serviceofferingname": "Very small instance",
- "cpunumber": 1,
- "cpuspeed": 100,
- "memory": 256,
- "guestosid": "e53f7606-5fdf-11ea-9a56-1e006800018c",
- "rootdeviceid": 0,
- "rootdevicetype": "ROOT",
- "securitygroup": [],
- "nic": [
- {
- "id": "47d79da1-2fe1-4a44-a503-523055714a72",
- "networkid": "87503ba2-d59d-4a5e-8f7f-b3f486cedbd8",
- "networkname": "test",
- "netmask": "255.255.255.0",
- "gateway": "10.1.1.1",
- "ipaddress": "10.1.1.62",
- "isolationuri": "vlan://1850",
- "broadcasturi": "vlan://1850",
- "traffictype": "Guest",
- "type": "Isolated",
- "isdefault": true,
- "macaddress": "02:00:34:fb:00:01",
- "secondaryip": [],
- "extradhcpoption": []
- }
- ],
- "hypervisor": "Simulator",
- "instancename": "i-2-683-QA",
- "details": {},
- "affinitygroup": [],
- "displayvm": true,
- "isdynamicallyscalable": false,
- "ostypeid": "e53f7606-5fdf-11ea-9a56-1e006800018c",
- "osdisplayname": "CentOS 5.6 (64-bit)",
- "bootmode": "legacy",
- "boottype": "Bios",
- "tags": [],
- "jobid": "74bbb422-fb74-47ac-a22a-ad86a7831d3f",
- "jobstatus": 0
- }
- },
- "jobinstancetype": "VirtualMachine",
- "jobinstanceid": "915653c4-298b-4d74-bdee-4ced282114f1",
- "created": "2021-10-04T09:24:38+0000",
- "completed": "2021-10-04T09:24:42+0000",
- "jobid": "74bbb422-fb74-47ac-a22a-ad86a7831d3f"
- }
- }
- },
- "addNicToVirtualMachine": {
- "addNicToVirtualMachine": {
- "addnictovirtualmachineresponse": {
- "jobid": "ec9d4711-b334-4750-868b-fb4d79d5801c"
- }
- },
- "queryAsyncJobResult": {
- "queryasyncjobresultresponse": {
- "accountid": "27ef5ba2-5fe0-11ea-9a56-1e006800018c",
- "userid": "27f2484f-5fe0-11ea-9a56-1e006800018c",
- "cmd": "org.apache.cloudstack.api.command.admin.vm.AddNicToVMCmdByAdmin",
- "jobstatus": 1,
- "jobprocstatus": 0,
- "jobresultcode": 0,
- "jobresulttype": "object",
- "jobresult": {
- "virtualmachine": {
- "id": "915653c4-298b-4d74-bdee-4ced282114f1",
- "name": "testDummyVM",
- "displayname": "testDummyVM",
- "account": "admin",
- "userid": "27f2484f-5fe0-11ea-9a56-1e006800018c",
- "username": "admin",
- "domainid": "e4874e10-5fdf-11ea-9a56-1e006800018c",
- "domain": "ROOT",
- "created": "2021-10-04T09:24:38+0000",
- "state": "Running",
- "haenable": false,
- "zoneid": "1d8d87d4-1425-459c-8d81-c6f57dca2bd2",
- "zonename": "shouldwork",
- "hostid": "8e8e68e7-19ea-4a78-bbdb-6e79d27729c9",
- "hostname": "SimulatedAgent.4234d24b-37fd-42bf-9184-874889001baf",
- "guestosid": "e53f7606-5fdf-11ea-9a56-1e006800018c",
- "securitygroup": [],
- "nic": [
- {
- "id": "0921d201-f7ac-4f49-bf09-ffe9497fdab0",
- "networkid": "30358053-0f9d-4112-9948-976477896db6",
- "networkname": "test-network-2",
- "netmask": "255.255.255.0",
- "gateway": "10.1.2.1",
- "ipaddress": "10.1.2.102",
- "isolationuri": "vlan://1955",
- "broadcasturi": "vlan://1955",
- "traffictype": "Guest",
- "type": "Isolated",
- "isdefault": false,
- "macaddress": "02:00:13:a4:00:21",
- "secondaryip": [],
- "extradhcpoption": []
- },
- {
- "id": "47d79da1-2fe1-4a44-a503-523055714a72",
- "networkid": "87503ba2-d59d-4a5e-8f7f-b3f486cedbd8",
- "networkname": "test",
- "netmask": "255.255.255.0",
- "gateway": "10.1.1.1",
- "ipaddress": "10.1.1.62",
- "isolationuri": "vlan://1850",
- "broadcasturi": "vlan://1850",
- "traffictype": "Guest",
- "type": "Isolated",
- "isdefault": true,
- "macaddress": "02:00:34:fb:00:01",
- "secondaryip": [],
- "extradhcpoption": []
- }
- ],
- "hypervisor": "Simulator",
- "instancename": "i-2-683-QA",
- "details": {},
- "affinitygroup": [],
- "displayvm": true,
- "isdynamicallyscalable": false,
- "ostypeid": "e53f7606-5fdf-11ea-9a56-1e006800018c",
- "osdisplayname": "CentOS 5.6 (64-bit)",
- "bootmode": "legacy",
- "boottype": "Bios",
- "tags": []
- }
- },
- "created": "2021-10-04T09:29:51+0000",
- "completed": "2021-10-04T09:29:54+0000",
- "jobid": "ec9d4711-b334-4750-868b-fb4d79d5801c"
- }
- }
- },
- "stopVirtualMachine": {
- "stopVirtualMachine": {
- "stopvirtualmachineresponse": {
- "jobid": "604bc5ed-1b7e-4d63-abc8-a55077a4c2c1"
- }
- },
- "queryAsyncJobResult": {
- "queryasyncjobresultresponse": {
- "accountid": "27ef5ba2-5fe0-11ea-9a56-1e006800018c",
- "userid": "27f2484f-5fe0-11ea-9a56-1e006800018c",
- "cmd": "org.apache.cloudstack.api.command.admin.vm.StopVMCmdByAdmin",
- "jobstatus": 1,
- "jobprocstatus": 0,
- "jobresultcode": 0,
- "jobresulttype": "object",
- "jobresult": {
- "virtualmachine": {
- "id": "915653c4-298b-4d74-bdee-4ced282114f1",
- "name": "testDummyVM",
- "displayname": "testDummyVM",
- "account": "admin",
- "userid": "27f2484f-5fe0-11ea-9a56-1e006800018c",
- "username": "admin",
- "domainid": "e4874e10-5fdf-11ea-9a56-1e006800018c",
- "domain": "ROOT",
- "created": "2021-10-04T09:24:38+0000",
- "state": "Stopped",
- "haenable": false,
- "zoneid": "1d8d87d4-1425-459c-8d81-c6f57dca2bd2",
- "zonename": "shouldwork",
- "templateid": "50459b99-5fe0-11ea-9a56-1e006800018c",
- "templatename": "CentOS 5.6 (64-bit)",
- "templatedisplaytext": "CentOS 5.6 (64-bit) no GUI",
- "passwordenabled": false,
- "serviceofferingid": "498ce071-a077-4237-9492-e55c42553327",
- "serviceofferingname": "Very small instance",
- "cpunumber": 1,
- "cpuspeed": 100,
- "memory": 256,
- "cpuused": "10%",
- "networkkbsread": 917504,
- "networkkbswrite": 458752,
- "diskkbsread": 0,
- "diskkbswrite": 0,
- "memorykbs": 0,
- "memoryintfreekbs": 0,
- "memorytargetkbs": 0,
- "diskioread": 0,
- "diskiowrite": 0,
- "guestosid": "e53f7606-5fdf-11ea-9a56-1e006800018c",
- "rootdeviceid": 0,
- "rootdevicetype": "ROOT",
- "securitygroup": [],
- "nic": [
- {
- "id": "47d79da1-2fe1-4a44-a503-523055714a72",
- "networkid": "87503ba2-d59d-4a5e-8f7f-b3f486cedbd8",
- "networkname": "test",
- "netmask": "255.255.255.0",
- "gateway": "10.1.1.1",
- "ipaddress": "10.1.1.62",
- "traffictype": "Guest",
- "type": "Isolated",
- "isdefault": true,
- "macaddress": "02:00:34:fb:00:01",
- "secondaryip": [],
- "extradhcpoption": []
- }
- ],
- "hypervisor": "Simulator",
- "instancename": "i-2-683-QA",
- "details": {
- "Message.ReservedCapacityFreed.Flag": "false"
- },
- "affinitygroup": [],
- "displayvm": true,
- "isdynamicallyscalable": false,
- "ostypeid": "e53f7606-5fdf-11ea-9a56-1e006800018c",
- "osdisplayname": "CentOS 5.6 (64-bit)",
- "tags": [],
- "jobid": "604bc5ed-1b7e-4d63-abc8-a55077a4c2c1",
- "jobstatus": 0
- }
- },
- "jobinstancetype": "VirtualMachine",
- "jobinstanceid": "915653c4-298b-4d74-bdee-4ced282114f1",
- "created": "2021-10-04T09:53:06+0000",
- "completed": "2021-10-04T09:53:08+0000",
- "jobid": "604bc5ed-1b7e-4d63-abc8-a55077a4c2c1"
- }
- }
- },
- "startVirtualMachine": {
- "startVirtualMachine": {
- "startvirtualmachineresponse": {
- "jobid": "468d69d7-f327-4105-bec2-0e43107ae956"
- }
- },
- "queryAsyncJobResult": {
- "queryasyncjobresultresponse": {
- "accountid": "27ef5ba2-5fe0-11ea-9a56-1e006800018c",
- "userid": "27f2484f-5fe0-11ea-9a56-1e006800018c",
- "cmd": "org.apache.cloudstack.api.command.admin.vm.StartVMCmdByAdmin",
- "jobstatus": 1,
- "jobprocstatus": 0,
- "jobresultcode": 0,
- "jobresulttype": "object",
- "jobresult": {
- "virtualmachine": {
- "id": "915653c4-298b-4d74-bdee-4ced282114f1",
- "name": "testDummyVM",
- "displayname": "testDummyVM",
- "account": "admin",
- "userid": "27f2484f-5fe0-11ea-9a56-1e006800018c",
- "username": "admin",
- "domainid": "e4874e10-5fdf-11ea-9a56-1e006800018c",
- "domain": "ROOT",
- "created": "2021-10-04T09:24:38+0000",
- "state": "Running",
- "haenable": false,
- "zoneid": "1d8d87d4-1425-459c-8d81-c6f57dca2bd2",
- "zonename": "shouldwork",
- "hostid": "8e8e68e7-19ea-4a78-bbdb-6e79d27729c9",
- "hostname": "SimulatedAgent.4234d24b-37fd-42bf-9184-874889001baf",
- "templateid": "50459b99-5fe0-11ea-9a56-1e006800018c",
- "templatename": "CentOS 5.6 (64-bit)",
- "templatedisplaytext": "CentOS 5.6 (64-bit) no GUI",
- "passwordenabled": false,
- "serviceofferingid": "498ce071-a077-4237-9492-e55c42553327",
- "serviceofferingname": "Very small instance",
- "cpunumber": 1,
- "cpuspeed": 100,
- "memory": 256,
- "cpuused": "10%",
- "networkkbsread": 917504,
- "networkkbswrite": 458752,
- "diskkbsread": 0,
- "diskkbswrite": 0,
- "memorykbs": 0,
- "memoryintfreekbs": 0,
- "memorytargetkbs": 0,
- "diskioread": 0,
- "diskiowrite": 0,
- "guestosid": "e53f7606-5fdf-11ea-9a56-1e006800018c",
- "rootdeviceid": 0,
- "rootdevicetype": "ROOT",
- "securitygroup": [],
- "nic": [
- {
- "id": "47d79da1-2fe1-4a44-a503-523055714a72",
- "networkid": "87503ba2-d59d-4a5e-8f7f-b3f486cedbd8",
- "networkname": "test",
- "netmask": "255.255.255.0",
- "gateway": "10.1.1.1",
- "ipaddress": "10.1.1.62",
- "isolationuri": "vlan://1994",
- "broadcasturi": "vlan://1994",
- "traffictype": "Guest",
- "type": "Isolated",
- "isdefault": true,
- "macaddress": "02:00:34:fb:00:01",
- "secondaryip": [],
- "extradhcpoption": []
- }
- ],
- "hypervisor": "Simulator",
- "instancename": "i-2-683-QA",
- "details": {
- "Message.ReservedCapacityFreed.Flag": "false"
- },
- "affinitygroup": [],
- "displayvm": true,
- "isdynamicallyscalable": false,
- "ostypeid": "e53f7606-5fdf-11ea-9a56-1e006800018c",
- "osdisplayname": "CentOS 5.6 (64-bit)",
- "tags": [],
- "jobid": "468d69d7-f327-4105-bec2-0e43107ae956",
- "jobstatus": 0
- }
- },
- "jobinstancetype": "VirtualMachine",
- "jobinstanceid": "915653c4-298b-4d74-bdee-4ced282114f1",
- "created": "2021-10-04T09:57:19+0000",
- "completed": "2021-10-04T09:57:22+0000",
- "jobid": "468d69d7-f327-4105-bec2-0e43107ae956"
- }
- }
- },
- "listVirtualMachines": {
- "listVirtualMachines": {
- "count": 1,
- "virtualmachine": [
- {
- "account": "admin",
- "affinitygroup": [],
- "cpunumber": 1,
- "cpuspeed": 100,
- "cpuused": "10%",
- "created": "2021-10-04T09:24:38+0000",
- "details": {
- "Message.ReservedCapacityFreed.Flag": "false"
- },
- "diskioread": 0,
- "diskiowrite": 0,
- "diskkbsread": 0,
- "diskkbswrite": 0,
- "displayname": "testDummyVM",
- "displayvm": true,
- "domain": "ROOT",
- "domainid": "e4874e10-5fdf-11ea-9a56-1e006800018c",
- "guestosid": "e53f7606-5fdf-11ea-9a56-1e006800018c",
- "haenable": false,
- "hostid": "8e8e68e7-19ea-4a78-bbdb-6e79d27729c9",
- "hostname": "SimulatedAgent.4234d24b-37fd-42bf-9184-874889001baf",
- "hypervisor": "Simulator",
- "id": "915653c4-298b-4d74-bdee-4ced282114f1",
- "instancename": "i-2-683-QA",
- "isdynamicallyscalable": false,
- "memory": 256,
- "memoryintfreekbs": 0,
- "memorykbs": 0,
- "memorytargetkbs": 0,
- "name": "testDummyVM",
- "networkkbsread": 1015808,
- "networkkbswrite": 507904,
- "nic": [
- {
- "broadcasturi": "vlan://1994",
- "extradhcpoption": [],
- "gateway": "10.1.1.1",
- "id": "47d79da1-2fe1-4a44-a503-523055714a72",
- "ipaddress": "10.1.1.62",
- "isdefault": true,
- "isolationuri": "vlan://1994",
- "macaddress": "02:00:34:fb:00:01",
- "netmask": "255.255.255.0",
- "networkid": "87503ba2-d59d-4a5e-8f7f-b3f486cedbd8",
- "networkname": "test",
- "secondaryip": [],
- "traffictype": "Guest",
- "type": "Isolated"
- }
- ],
- "osdisplayname": "CentOS 5.6 (64-bit)",
- "ostypeid": "e53f7606-5fdf-11ea-9a56-1e006800018c",
- "passwordenabled": false,
- "rootdeviceid": 0,
- "rootdevicetype": "ROOT",
- "securitygroup": [],
- "serviceofferingid": "498ce071-a077-4237-9492-e55c42553327",
- "serviceofferingname": "Very small instance",
- "state": "Running",
- "tags": [],
- "templatedisplaytext": "CentOS 5.6 (64-bit) no GUI",
- "templateid": "50459b99-5fe0-11ea-9a56-1e006800018c",
- "templatename": "CentOS 5.6 (64-bit)",
- "userid": "27f2484f-5fe0-11ea-9a56-1e006800018c",
- "username": "admin",
- "zoneid": "1d8d87d4-1425-459c-8d81-c6f57dca2bd2",
- "zonename": "shouldwork"
- }
- ]
- }
- },
- "scaleVirtualMachine": {
- "scaleVirtualMachine": {
- "scalevirtualmachineresponse": {
- "jobid": "f9a9af61-47ea-4fb7-acc9-93ea50f12042"
- }
- },
- "queryAsyncJobResult": {
- "queryasyncjobresultresponse": {
- "accountid": "27ef5ba2-5fe0-11ea-9a56-1e006800018c",
- "userid": "27f2484f-5fe0-11ea-9a56-1e006800018c",
- "cmd": "org.apache.cloudstack.api.command.admin.vm.ScaleVMCmdByAdmin",
- "jobstatus": 1,
- "jobprocstatus": 0,
- "jobresultcode": 0,
- "jobresulttype": "object",
- "jobresult": {
- "virtualmachine": {
- "id": "88dedd6b-4fc0-44bf-b76f-441a13bc1f99",
- "name": "QA-88dedd6b-4fc0-44bf-b76f-441a13bc1f99",
- "displayname": "QA-88dedd6b-4fc0-44bf-b76f-441a13bc1f99",
- "account": "admin",
- "userid": "27f2484f-5fe0-11ea-9a56-1e006800018c",
- "username": "admin",
- "domainid": "e4874e10-5fdf-11ea-9a56-1e006800018c",
- "domain": "ROOT",
- "created": "2020-05-22T19:52:22+0000",
- "lastupdated": "2021-10-06T09:57:19+0000",
- "state": "Stopped",
- "haenable": false,
- "zoneid": "04ccc336-d730-42fe-8ff6-5ae36e141e81",
- "zonename": "SimZone1",
- "templateid": "56217438-4f36-450b-9246-850a10a3e57b",
- "templatename": "macha-sim1",
- "templatedisplaytext": "macha-simm",
- "passwordenabled": true,
- "isoid": "169fe81d-47e0-4119-b38c-f6ce42dcf451",
- "isoname": "k8s-1.16.3-Kubernetes-Binaries-ISO",
- "isodisplaytext": "k8s-1.16.3-Kubernetes-Binaries-IS",
- "serviceofferingid": "57aba75e-5567-44c9-bfcc-c2c14503a5a6",
- "serviceofferingname": "Medium Instanc",
- "backupofferingid": "7c42d74e-c029-4431-9025-6caa8b903472",
- "backupofferingname": "BackupGoldDummy",
- "cpunumber": 1,
- "cpuspeed": 1000,
- "memory": 1024,
- "guestosid": "12fea95b-5fe0-11ea-9a56-1e006800018c",
- "rootdeviceid": 0,
- "rootdevicetype": "ROOT",
- "securitygroup": [],
- "nic": [
- {
- "id": "c26193a6-9b41-4149-b836-e48bc46fc5c8",
- "networkid": "b9bb5ef5-16cd-413c-996e-3671d8a2bc20",
- "networkname": "test",
- "netmask": "255.255.255.0",
- "gateway": "10.1.1.1",
- "ipaddress": "10.1.1.208",
- "traffictype": "Guest",
- "type": "Isolated",
- "isdefault": false,
- "macaddress": "02:00:63:59:00:05",
- "secondaryip": [],
- "extradhcpoption": [],
- "deviceid": "1"
- },
- {
- "id": "d9f8203d-e680-438a-86b6-327c69271011",
- "networkid": "cc39d938-5ea0-4d9c-b89d-421da3274e54",
- "networkname": "testNet2",
- "netmask": "255.255.255.0",
- "gateway": "10.1.1.1",
- "ipaddress": "10.1.1.177",
- "traffictype": "Guest",
- "type": "Isolated",
- "isdefault": true,
- "macaddress": "02:00:22:f7:00:08",
- "secondaryip": [],
- "extradhcpoption": [],
- "deviceid": "0"
- }
- ],
- "hypervisor": "Simulator",
- "instancename": "i-2-101-QA",
- "details": {
- "keyboard": "us",
- "Message.ReservedCapacityFreed.Flag": "true"
- },
- "affinitygroup": [],
- "displayvm": true,
- "isdynamicallyscalable": false,
- "ostypeid": "12fea95b-5fe0-11ea-9a56-1e006800018c",
- "osdisplayname": "CentOS 6 (64-bit)",
- "pooltype": "NetworkFilesystem",
- "receivedbytes": 0,
- "sentbytes": 0,
- "tags": [],
- "hasannotations": true
- }
- },
- "created": "2021-10-13T04:54:55+0000",
- "completed": "2021-10-13T04:54:56+0000",
- "jobid": "f9a9af61-47ea-4fb7-acc9-93ea50f12042"
- }
- }
- }
-}
\ No newline at end of file
diff --git a/generate/generate.go b/generate/generate.go
index 1fc5f38..b50dc62 100644
--- a/generate/generate.go
+++ b/generate/generate.go
@@ -226,6 +226,15 @@ func main() {
errors = append(errors, &goimportError{string(out)})
}
+ testdir, err := testDir()
+ if err != nil {
+ log.Fatal(err)
+ }
+ out, err = exec.Command("goimports", "-w", testdir).CombinedOutput()
+ if err != nil {
+ errors = append(errors, &goimportError{string(out)})
+ }
+
if len(errors) > 0 {
log.Printf("%d API(s) failed to generate:", len(errors))
for _, ce := range errors {
@@ -769,6 +778,16 @@ func (s *service) WriteGeneratedCode() error {
return err
}
+ if s.name != "CustomService" {
+ tests, err := s.GenerateTestCode()
+ if err != nil {
+ return err
+ }
+ testdir, err := testDir()
+ file := path.Join(testdir, s.name+"_test.go")
+ ioutil.WriteFile(file, tests, 0644)
+ }
+
file := path.Join(outdir, s.name+".go")
return ioutil.WriteFile(file, code, 0644)
}
@@ -974,6 +993,105 @@ func (s *service) GenerateCode() ([]byte, error) {
return clean, nil
}
+func (s *service) GenerateTestCode() ([]byte, error) {
+ var buf bytes.Buffer
+ s.p = func(format string, args ...interface{}) {
+ _, err := fmt.Fprintf(&buf, format, args...)
+ if err != nil {
+ panic(err)
+ }
+ }
+ s.pn = func(format string, args ...interface{}) {
+ s.p(format+"\n", args...)
+ }
+ pn := s.pn
+
+ pn("//")
+ pn("// Licensed to the Apache Software Foundation (ASF) under one")
+ pn("// or more contributor license agreements. See the NOTICE file")
+ pn("// distributed with this work for additional information")
+ pn("// regarding copyright ownership. The ASF licenses this file")
+ pn("// to you under the Apache License, Version 2.0 (the")
+ pn("// \"License\"); you may not use this file except in compliance")
+ pn("// with the License. You may obtain a copy of the License at")
+ pn("//")
+ pn("// http://www.apache.org/licenses/LICENSE-2.0")
+ pn("//")
+ pn("// Unless required by applicable law or agreed to in writing,")
+ pn("// software distributed under the License is distributed on an")
+ pn("// \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY")
+ pn("// KIND, either express or implied. See the License for the")
+ pn("// specific language governing permissions and limitations")
+ pn("// under the License.")
+ pn("//")
+ pn("")
+ pn("package test")
+ pn("")
+
+ pn("func Test%s(t *testing.T) {", s.name)
+ pn(" service := \"%s\"", s.name)
+ pn(" response, err := readData(service)")
+ pn(" if err != nil {")
+ pn(" t.Skipf(\"Skipping test as %%v\", err)")
+ pn(" }")
+ pn(" server := CreateTestServer(t, response)")
+ pn(" client := cloudstack.NewClient(server.URL, \"APIKEY\", \"SECRETKEY\", true)")
+ pn(" defer server.Close()")
+ pn("")
+
+ for _, a := range s.apis {
+ s.generateAPITest(a)
+ }
+ pn("}")
+
+ clean, err := format.Source(buf.Bytes())
+ if err != nil {
+ buf.WriteTo(os.Stdout)
+ return buf.Bytes(), err
+ }
+ return clean, nil
+}
+
+func (s *service) generateAPITest(a *API) {
+ p, pn := s.p, s.pn
+ tn := capitalize(a.Name + "Params")
+ rp := APIParams{}
+ pn(" test%s := func(t *testing.T) {", a.Name)
+ pn(" if _, ok := response[\"%s\"]; !ok {", a.Name)
+ pn(" t.Skipf(\"Skipping as no json response is provided in testdata\")")
+ pn(" }")
+ p(" p := client.%s.New%s(", strings.TrimSuffix(s.name, "Service"), tn)
+ for _, ap := range a.Params {
+ if ap.Required {
+ rp = append(rp, ap)
+ p("%s, ", getDefaultValueForType(a.Name, ap.Name, ap.Type))
+ }
+ }
+ pn(")")
+ pn(" _, err := client.%s.%s(p)", strings.TrimSuffix(s.name, "Service"), capitalize(a.Name))
+ pn(" if err != nil {")
+ pn(" t.Errorf(err.Error())")
+ pn(" }")
+ pn(" }")
+ pn(" t.Run(\"%s\", test%s)", capitalize(a.Name), a.Name)
+ pn("")
+}
+
+func getDefaultValueForType(aName string, pName string, pType string) string {
+ switch pType {
+ case "boolean":
+ return "true"
+ case "short", "int", "integer", "long", "float", "double":
+ return "0"
+ case "list":
+ return "[]string{}"
+ case "map":
+ return "map[string]string{}"
+ default:
+ return fmt.Sprintf("\"%s\"", pName)
+ }
+}
+
func (s *service) generateParamType(a *API) {
pn := s.pn
@@ -1831,6 +1949,20 @@ func sourceDir() (string, error) {
return outdir, nil
}
+func testDir() (string, error) {
+ wd, err := os.Getwd()
+ if err != nil {
+ return "", err
+ }
+ testdir := path.Join(wd, "test")
+
+ if err := os.MkdirAll(testdir, 0755); err != nil {
+ return "", fmt.Errorf("Failed to Mkdir %s: %v", testdir, err)
+ }
+ return testdir, nil
+
+}
+
func mapType(aName string, pName string, pType string) string {
if _, ok := longToStringConvertedParams[pName]; ok {
pType = "UUID"
diff --git a/cloudstack/LimitService_test.go b/test/APIDiscoveryService_test.go
similarity index 56%
copy from cloudstack/LimitService_test.go
copy to test/APIDiscoveryService_test.go
index 81aa2e0..ccd60d1 100644
--- a/cloudstack/LimitService_test.go
+++ b/test/APIDiscoveryService_test.go
@@ -17,34 +17,34 @@
// under the License.
//
-package cloudstack
+package test
import (
- "fmt"
- "net/http"
- "net/http/httptest"
"testing"
+
+ "github.com/apache/cloudstack-go/v2/cloudstack"
)
-func TestLimitService_ResetApiLimit(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "resetApiLimit"
- response, err := ReadData(apiName, "LimitService")
- if err != nil {
- t.Errorf("Failed to read response data due to: %v", err)
- }
- fmt.Fprintln(writer, response[apiName])
- }))
- defer server.Close()
- client := NewClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.Limit.NewResetApiLimitParams()
- resp, err := client.Limit.ResetApiLimit(params)
+func TestAPIDiscoveryService(t *testing.T) {
+ service := "APIDiscoveryService"
+ response, err := readData(service)
if err != nil {
- t.Errorf("Failed to reset API Params limit due to: %v", err)
- return
+ t.Skipf("Skipping test as %v", err)
}
+ server := CreateTestServer(t, response)
+ client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true)
+ defer server.Close()
- if resp == nil {
- t.Errorf("Failed to register template")
+ testlistApis := func(t *testing.T) {
+ if _, ok := response["listApis"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.APIDiscovery.NewListApisParams()
+ _, err := client.APIDiscovery.ListApis(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
}
+ t.Run("ListApis", testlistApis)
+
}
diff --git a/test/AccountService_test.go b/test/AccountService_test.go
new file mode 100644
index 0000000..7810e9d
--- /dev/null
+++ b/test/AccountService_test.go
@@ -0,0 +1,182 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+package test
+
+import (
+ "testing"
+
+ "github.com/apache/cloudstack-go/v2/cloudstack"
+)
+
+func TestAccountService(t *testing.T) {
+ service := "AccountService"
+ response, err := readData(service)
+ if err != nil {
+ t.Skipf("Skipping test as %v", err)
+ }
+ server := CreateTestServer(t, response)
+ client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true)
+ defer server.Close()
+
+ testaddAccountToProject := func(t *testing.T) {
+ if _, ok := response["addAccountToProject"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Account.NewAddAccountToProjectParams("projectid")
+ _, err := client.Account.AddAccountToProject(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("AddAccountToProject", testaddAccountToProject)
+
+ testcreateAccount := func(t *testing.T) {
+ if _, ok := response["createAccount"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Account.NewCreateAccountParams("email", "firstname", "lastname", "password", "username")
+ _, err := client.Account.CreateAccount(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("CreateAccount", testcreateAccount)
+
+ testdeleteAccount := func(t *testing.T) {
+ if _, ok := response["deleteAccount"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Account.NewDeleteAccountParams("id")
+ _, err := client.Account.DeleteAccount(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("DeleteAccount", testdeleteAccount)
+
+ testdeleteAccountFromProject := func(t *testing.T) {
+ if _, ok := response["deleteAccountFromProject"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Account.NewDeleteAccountFromProjectParams("account", "projectid")
+ _, err := client.Account.DeleteAccountFromProject(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("DeleteAccountFromProject", testdeleteAccountFromProject)
+
+ testdisableAccount := func(t *testing.T) {
+ if _, ok := response["disableAccount"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Account.NewDisableAccountParams(true)
+ _, err := client.Account.DisableAccount(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("DisableAccount", testdisableAccount)
+
+ testenableAccount := func(t *testing.T) {
+ if _, ok := response["enableAccount"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Account.NewEnableAccountParams()
+ _, err := client.Account.EnableAccount(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("EnableAccount", testenableAccount)
+
+ testgetSolidFireAccountId := func(t *testing.T) {
+ if _, ok := response["getSolidFireAccountId"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Account.NewGetSolidFireAccountIdParams("accountid", "storageid")
+ _, err := client.Account.GetSolidFireAccountId(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("GetSolidFireAccountId", testgetSolidFireAccountId)
+
+ testlistAccounts := func(t *testing.T) {
+ if _, ok := response["listAccounts"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Account.NewListAccountsParams()
+ _, err := client.Account.ListAccounts(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListAccounts", testlistAccounts)
+
+ testlistProjectAccounts := func(t *testing.T) {
+ if _, ok := response["listProjectAccounts"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Account.NewListProjectAccountsParams("projectid")
+ _, err := client.Account.ListProjectAccounts(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListProjectAccounts", testlistProjectAccounts)
+
+ testlockAccount := func(t *testing.T) {
+ if _, ok := response["lockAccount"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Account.NewLockAccountParams("account", "domainid")
+ _, err := client.Account.LockAccount(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("LockAccount", testlockAccount)
+
+ testmarkDefaultZoneForAccount := func(t *testing.T) {
+ if _, ok := response["markDefaultZoneForAccount"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Account.NewMarkDefaultZoneForAccountParams("account", "domainid", "zoneid")
+ _, err := client.Account.MarkDefaultZoneForAccount(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("MarkDefaultZoneForAccount", testmarkDefaultZoneForAccount)
+
+ testupdateAccount := func(t *testing.T) {
+ if _, ok := response["updateAccount"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Account.NewUpdateAccountParams()
+ _, err := client.Account.UpdateAccount(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("UpdateAccount", testupdateAccount)
+
+}
diff --git a/test/AddressService_test.go b/test/AddressService_test.go
new file mode 100644
index 0000000..5a71b71
--- /dev/null
+++ b/test/AddressService_test.go
@@ -0,0 +1,86 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+package test
+
+import (
+ "testing"
+
+ "github.com/apache/cloudstack-go/v2/cloudstack"
+)
+
+func TestAddressService(t *testing.T) {
+ service := "AddressService"
+ response, err := readData(service)
+ if err != nil {
+ t.Skipf("Skipping test as %v", err)
+ }
+ server := CreateTestServer(t, response)
+ client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true)
+ defer server.Close()
+
+ testassociateIpAddress := func(t *testing.T) {
+ if _, ok := response["associateIpAddress"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Address.NewAssociateIpAddressParams()
+ _, err := client.Address.AssociateIpAddress(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("AssociateIpAddress", testassociateIpAddress)
+
+ testdisassociateIpAddress := func(t *testing.T) {
+ if _, ok := response["disassociateIpAddress"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Address.NewDisassociateIpAddressParams("id")
+ _, err := client.Address.DisassociateIpAddress(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("DisassociateIpAddress", testdisassociateIpAddress)
+
+ testlistPublicIpAddresses := func(t *testing.T) {
+ if _, ok := response["listPublicIpAddresses"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Address.NewListPublicIpAddressesParams()
+ _, err := client.Address.ListPublicIpAddresses(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListPublicIpAddresses", testlistPublicIpAddresses)
+
+ testupdateIpAddress := func(t *testing.T) {
+ if _, ok := response["updateIpAddress"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Address.NewUpdateIpAddressParams("id")
+ _, err := client.Address.UpdateIpAddress(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("UpdateIpAddress", testupdateIpAddress)
+
+}
diff --git a/test/AffinityGroupService_test.go b/test/AffinityGroupService_test.go
new file mode 100644
index 0000000..e841b4a
--- /dev/null
+++ b/test/AffinityGroupService_test.go
@@ -0,0 +1,98 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+package test
+
+import (
+ "testing"
+
+ "github.com/apache/cloudstack-go/v2/cloudstack"
+)
+
+func TestAffinityGroupService(t *testing.T) {
+ service := "AffinityGroupService"
+ response, err := readData(service)
+ if err != nil {
+ t.Skipf("Skipping test as %v", err)
+ }
+ server := CreateTestServer(t, response)
+ client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true)
+ defer server.Close()
+
+ testcreateAffinityGroup := func(t *testing.T) {
+ if _, ok := response["createAffinityGroup"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.AffinityGroup.NewCreateAffinityGroupParams("name", "type")
+ _, err := client.AffinityGroup.CreateAffinityGroup(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("CreateAffinityGroup", testcreateAffinityGroup)
+
+ testdeleteAffinityGroup := func(t *testing.T) {
+ if _, ok := response["deleteAffinityGroup"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.AffinityGroup.NewDeleteAffinityGroupParams()
+ _, err := client.AffinityGroup.DeleteAffinityGroup(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("DeleteAffinityGroup", testdeleteAffinityGroup)
+
+ testlistAffinityGroupTypes := func(t *testing.T) {
+ if _, ok := response["listAffinityGroupTypes"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.AffinityGroup.NewListAffinityGroupTypesParams()
+ _, err := client.AffinityGroup.ListAffinityGroupTypes(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListAffinityGroupTypes", testlistAffinityGroupTypes)
+
+ testlistAffinityGroups := func(t *testing.T) {
+ if _, ok := response["listAffinityGroups"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.AffinityGroup.NewListAffinityGroupsParams()
+ _, err := client.AffinityGroup.ListAffinityGroups(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListAffinityGroups", testlistAffinityGroups)
+
+ testupdateVMAffinityGroup := func(t *testing.T) {
+ if _, ok := response["updateVMAffinityGroup"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.AffinityGroup.NewUpdateVMAffinityGroupParams("id")
+ _, err := client.AffinityGroup.UpdateVMAffinityGroup(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("UpdateVMAffinityGroup", testupdateVMAffinityGroup)
+
+}
diff --git a/test/AlertService_test.go b/test/AlertService_test.go
new file mode 100644
index 0000000..e409fe2
--- /dev/null
+++ b/test/AlertService_test.go
@@ -0,0 +1,86 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+package test
+
+import (
+ "testing"
+
+ "github.com/apache/cloudstack-go/v2/cloudstack"
+)
+
+func TestAlertService(t *testing.T) {
+ service := "AlertService"
+ response, err := readData(service)
+ if err != nil {
+ t.Skipf("Skipping test as %v", err)
+ }
+ server := CreateTestServer(t, response)
+ client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true)
+ defer server.Close()
+
+ testarchiveAlerts := func(t *testing.T) {
+ if _, ok := response["archiveAlerts"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Alert.NewArchiveAlertsParams()
+ _, err := client.Alert.ArchiveAlerts(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ArchiveAlerts", testarchiveAlerts)
+
+ testdeleteAlerts := func(t *testing.T) {
+ if _, ok := response["deleteAlerts"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Alert.NewDeleteAlertsParams()
+ _, err := client.Alert.DeleteAlerts(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("DeleteAlerts", testdeleteAlerts)
+
+ testgenerateAlert := func(t *testing.T) {
+ if _, ok := response["generateAlert"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Alert.NewGenerateAlertParams("description", "name", 0)
+ _, err := client.Alert.GenerateAlert(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("GenerateAlert", testgenerateAlert)
+
+ testlistAlerts := func(t *testing.T) {
+ if _, ok := response["listAlerts"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Alert.NewListAlertsParams()
+ _, err := client.Alert.ListAlerts(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListAlerts", testlistAlerts)
+
+}
diff --git a/test/AsyncjobService_test.go b/test/AsyncjobService_test.go
new file mode 100644
index 0000000..e89c2bf
--- /dev/null
+++ b/test/AsyncjobService_test.go
@@ -0,0 +1,62 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+package test
+
+import (
+ "testing"
+
+ "github.com/apache/cloudstack-go/v2/cloudstack"
+)
+
+func TestAsyncjobService(t *testing.T) {
+ service := "AsyncjobService"
+ response, err := readData(service)
+ if err != nil {
+ t.Skipf("Skipping test as %v", err)
+ }
+ server := CreateTestServer(t, response)
+ client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true)
+ defer server.Close()
+
+ testlistAsyncJobs := func(t *testing.T) {
+ if _, ok := response["listAsyncJobs"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Asyncjob.NewListAsyncJobsParams()
+ _, err := client.Asyncjob.ListAsyncJobs(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListAsyncJobs", testlistAsyncJobs)
+
+ testqueryAsyncJobResult := func(t *testing.T) {
+ if _, ok := response["queryAsyncJobResult"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Asyncjob.NewQueryAsyncJobResultParams("jobid")
+ _, err := client.Asyncjob.QueryAsyncJobResult(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("QueryAsyncJobResult", testqueryAsyncJobResult)
+
+}
diff --git a/test/AuthenticationService_test.go b/test/AuthenticationService_test.go
new file mode 100644
index 0000000..891b0a5
--- /dev/null
+++ b/test/AuthenticationService_test.go
@@ -0,0 +1,62 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+package test
+
+import (
+ "testing"
+
+ "github.com/apache/cloudstack-go/v2/cloudstack"
+)
+
+func TestAuthenticationService(t *testing.T) {
+ service := "AuthenticationService"
+ response, err := readData(service)
+ if err != nil {
+ t.Skipf("Skipping test as %v", err)
+ }
+ server := CreateTestServer(t, response)
+ client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true)
+ defer server.Close()
+
+ testlogin := func(t *testing.T) {
+ if _, ok := response["login"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Authentication.NewLoginParams("password", "username")
+ _, err := client.Authentication.Login(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("Login", testlogin)
+
+ testlogout := func(t *testing.T) {
+ if _, ok := response["logout"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Authentication.NewLogoutParams()
+ _, err := client.Authentication.Logout(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("Logout", testlogout)
+
+}
diff --git a/test/AutoScaleService_test.go b/test/AutoScaleService_test.go
new file mode 100644
index 0000000..0eb73f8
--- /dev/null
+++ b/test/AutoScaleService_test.go
@@ -0,0 +1,278 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+package test
+
+import (
+ "testing"
+
+ "github.com/apache/cloudstack-go/v2/cloudstack"
+)
+
+func TestAutoScaleService(t *testing.T) {
+ service := "AutoScaleService"
+ response, err := readData(service)
+ if err != nil {
+ t.Skipf("Skipping test as %v", err)
+ }
+ server := CreateTestServer(t, response)
+ client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true)
+ defer server.Close()
+
+ testcreateAutoScalePolicy := func(t *testing.T) {
+ if _, ok := response["createAutoScalePolicy"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.AutoScale.NewCreateAutoScalePolicyParams("action", []string{}, 0)
+ _, err := client.AutoScale.CreateAutoScalePolicy(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("CreateAutoScalePolicy", testcreateAutoScalePolicy)
+
+ testcreateAutoScaleVmGroup := func(t *testing.T) {
+ if _, ok := response["createAutoScaleVmGroup"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.AutoScale.NewCreateAutoScaleVmGroupParams("lbruleid", 0, 0, []string{}, []string{}, "vmprofileid")
+ _, err := client.AutoScale.CreateAutoScaleVmGroup(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("CreateAutoScaleVmGroup", testcreateAutoScaleVmGroup)
+
+ testcreateAutoScaleVmProfile := func(t *testing.T) {
+ if _, ok := response["createAutoScaleVmProfile"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.AutoScale.NewCreateAutoScaleVmProfileParams("serviceofferingid", "templateid", "zoneid")
+ _, err := client.AutoScale.CreateAutoScaleVmProfile(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("CreateAutoScaleVmProfile", testcreateAutoScaleVmProfile)
+
+ testcreateCondition := func(t *testing.T) {
+ if _, ok := response["createCondition"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.AutoScale.NewCreateConditionParams("counterid", "relationaloperator", 0)
+ _, err := client.AutoScale.CreateCondition(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("CreateCondition", testcreateCondition)
+
+ testcreateCounter := func(t *testing.T) {
+ if _, ok := response["createCounter"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.AutoScale.NewCreateCounterParams("name", "source", "value")
+ _, err := client.AutoScale.CreateCounter(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("CreateCounter", testcreateCounter)
+
+ testdeleteAutoScalePolicy := func(t *testing.T) {
+ if _, ok := response["deleteAutoScalePolicy"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.AutoScale.NewDeleteAutoScalePolicyParams("id")
+ _, err := client.AutoScale.DeleteAutoScalePolicy(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("DeleteAutoScalePolicy", testdeleteAutoScalePolicy)
+
+ testdeleteAutoScaleVmGroup := func(t *testing.T) {
+ if _, ok := response["deleteAutoScaleVmGroup"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.AutoScale.NewDeleteAutoScaleVmGroupParams("id")
+ _, err := client.AutoScale.DeleteAutoScaleVmGroup(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("DeleteAutoScaleVmGroup", testdeleteAutoScaleVmGroup)
+
+ testdeleteAutoScaleVmProfile := func(t *testing.T) {
+ if _, ok := response["deleteAutoScaleVmProfile"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.AutoScale.NewDeleteAutoScaleVmProfileParams("id")
+ _, err := client.AutoScale.DeleteAutoScaleVmProfile(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("DeleteAutoScaleVmProfile", testdeleteAutoScaleVmProfile)
+
+ testdeleteCondition := func(t *testing.T) {
+ if _, ok := response["deleteCondition"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.AutoScale.NewDeleteConditionParams("id")
+ _, err := client.AutoScale.DeleteCondition(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("DeleteCondition", testdeleteCondition)
+
+ testdeleteCounter := func(t *testing.T) {
+ if _, ok := response["deleteCounter"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.AutoScale.NewDeleteCounterParams("id")
+ _, err := client.AutoScale.DeleteCounter(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("DeleteCounter", testdeleteCounter)
+
+ testdisableAutoScaleVmGroup := func(t *testing.T) {
+ if _, ok := response["disableAutoScaleVmGroup"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.AutoScale.NewDisableAutoScaleVmGroupParams("id")
+ _, err := client.AutoScale.DisableAutoScaleVmGroup(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("DisableAutoScaleVmGroup", testdisableAutoScaleVmGroup)
+
+ testenableAutoScaleVmGroup := func(t *testing.T) {
+ if _, ok := response["enableAutoScaleVmGroup"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.AutoScale.NewEnableAutoScaleVmGroupParams("id")
+ _, err := client.AutoScale.EnableAutoScaleVmGroup(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("EnableAutoScaleVmGroup", testenableAutoScaleVmGroup)
+
+ testlistAutoScalePolicies := func(t *testing.T) {
+ if _, ok := response["listAutoScalePolicies"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.AutoScale.NewListAutoScalePoliciesParams()
+ _, err := client.AutoScale.ListAutoScalePolicies(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListAutoScalePolicies", testlistAutoScalePolicies)
+
+ testlistAutoScaleVmGroups := func(t *testing.T) {
+ if _, ok := response["listAutoScaleVmGroups"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.AutoScale.NewListAutoScaleVmGroupsParams()
+ _, err := client.AutoScale.ListAutoScaleVmGroups(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListAutoScaleVmGroups", testlistAutoScaleVmGroups)
+
+ testlistAutoScaleVmProfiles := func(t *testing.T) {
+ if _, ok := response["listAutoScaleVmProfiles"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.AutoScale.NewListAutoScaleVmProfilesParams()
+ _, err := client.AutoScale.ListAutoScaleVmProfiles(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListAutoScaleVmProfiles", testlistAutoScaleVmProfiles)
+
+ testlistConditions := func(t *testing.T) {
+ if _, ok := response["listConditions"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.AutoScale.NewListConditionsParams()
+ _, err := client.AutoScale.ListConditions(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListConditions", testlistConditions)
+
+ testlistCounters := func(t *testing.T) {
+ if _, ok := response["listCounters"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.AutoScale.NewListCountersParams()
+ _, err := client.AutoScale.ListCounters(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListCounters", testlistCounters)
+
+ testupdateAutoScalePolicy := func(t *testing.T) {
+ if _, ok := response["updateAutoScalePolicy"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.AutoScale.NewUpdateAutoScalePolicyParams("id")
+ _, err := client.AutoScale.UpdateAutoScalePolicy(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("UpdateAutoScalePolicy", testupdateAutoScalePolicy)
+
+ testupdateAutoScaleVmGroup := func(t *testing.T) {
+ if _, ok := response["updateAutoScaleVmGroup"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.AutoScale.NewUpdateAutoScaleVmGroupParams("id")
+ _, err := client.AutoScale.UpdateAutoScaleVmGroup(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("UpdateAutoScaleVmGroup", testupdateAutoScaleVmGroup)
+
+ testupdateAutoScaleVmProfile := func(t *testing.T) {
+ if _, ok := response["updateAutoScaleVmProfile"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.AutoScale.NewUpdateAutoScaleVmProfileParams("id")
+ _, err := client.AutoScale.UpdateAutoScaleVmProfile(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("UpdateAutoScaleVmProfile", testupdateAutoScaleVmProfile)
+
+}
diff --git a/test/BaremetalService_test.go b/test/BaremetalService_test.go
new file mode 100644
index 0000000..77a53ba
--- /dev/null
+++ b/test/BaremetalService_test.go
@@ -0,0 +1,146 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+package test
+
+import (
+ "testing"
+
+ "github.com/apache/cloudstack-go/v2/cloudstack"
+)
+
+func TestBaremetalService(t *testing.T) {
+ service := "BaremetalService"
+ response, err := readData(service)
+ if err != nil {
+ t.Skipf("Skipping test as %v", err)
+ }
+ server := CreateTestServer(t, response)
+ client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true)
+ defer server.Close()
+
+ testaddBaremetalDhcp := func(t *testing.T) {
+ if _, ok := response["addBaremetalDhcp"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Baremetal.NewAddBaremetalDhcpParams("dhcpservertype", "password", "physicalnetworkid", "url", "username")
+ _, err := client.Baremetal.AddBaremetalDhcp(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("AddBaremetalDhcp", testaddBaremetalDhcp)
+
+ testaddBaremetalPxeKickStartServer := func(t *testing.T) {
+ if _, ok := response["addBaremetalPxeKickStartServer"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Baremetal.NewAddBaremetalPxeKickStartServerParams("password", "physicalnetworkid", "pxeservertype", "tftpdir", "url", "username")
+ _, err := client.Baremetal.AddBaremetalPxeKickStartServer(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("AddBaremetalPxeKickStartServer", testaddBaremetalPxeKickStartServer)
+
+ testaddBaremetalPxePingServer := func(t *testing.T) {
+ if _, ok := response["addBaremetalPxePingServer"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Baremetal.NewAddBaremetalPxePingServerParams("password", "physicalnetworkid", "pingdir", "pingstorageserverip", "pxeservertype", "tftpdir", "url", "username")
+ _, err := client.Baremetal.AddBaremetalPxePingServer(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("AddBaremetalPxePingServer", testaddBaremetalPxePingServer)
+
+ testaddBaremetalRct := func(t *testing.T) {
+ if _, ok := response["addBaremetalRct"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Baremetal.NewAddBaremetalRctParams("baremetalrcturl")
+ _, err := client.Baremetal.AddBaremetalRct(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("AddBaremetalRct", testaddBaremetalRct)
+
+ testdeleteBaremetalRct := func(t *testing.T) {
+ if _, ok := response["deleteBaremetalRct"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Baremetal.NewDeleteBaremetalRctParams("id")
+ _, err := client.Baremetal.DeleteBaremetalRct(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("DeleteBaremetalRct", testdeleteBaremetalRct)
+
+ testlistBaremetalDhcp := func(t *testing.T) {
+ if _, ok := response["listBaremetalDhcp"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Baremetal.NewListBaremetalDhcpParams("physicalnetworkid")
+ _, err := client.Baremetal.ListBaremetalDhcp(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListBaremetalDhcp", testlistBaremetalDhcp)
+
+ testlistBaremetalPxeServers := func(t *testing.T) {
+ if _, ok := response["listBaremetalPxeServers"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Baremetal.NewListBaremetalPxeServersParams("physicalnetworkid")
+ _, err := client.Baremetal.ListBaremetalPxeServers(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListBaremetalPxeServers", testlistBaremetalPxeServers)
+
+ testlistBaremetalRct := func(t *testing.T) {
+ if _, ok := response["listBaremetalRct"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Baremetal.NewListBaremetalRctParams()
+ _, err := client.Baremetal.ListBaremetalRct(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListBaremetalRct", testlistBaremetalRct)
+
+ testnotifyBaremetalProvisionDone := func(t *testing.T) {
+ if _, ok := response["notifyBaremetalProvisionDone"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Baremetal.NewNotifyBaremetalProvisionDoneParams("mac")
+ _, err := client.Baremetal.NotifyBaremetalProvisionDone(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("NotifyBaremetalProvisionDone", testnotifyBaremetalProvisionDone)
+
+}
diff --git a/test/BigSwitchBCFService_test.go b/test/BigSwitchBCFService_test.go
new file mode 100644
index 0000000..87d377f
--- /dev/null
+++ b/test/BigSwitchBCFService_test.go
@@ -0,0 +1,74 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+package test
+
+import (
+ "testing"
+
+ "github.com/apache/cloudstack-go/v2/cloudstack"
+)
+
+func TestBigSwitchBCFService(t *testing.T) {
+ service := "BigSwitchBCFService"
+ response, err := readData(service)
+ if err != nil {
+ t.Skipf("Skipping test as %v", err)
+ }
+ server := CreateTestServer(t, response)
+ client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true)
+ defer server.Close()
+
+ testaddBigSwitchBcfDevice := func(t *testing.T) {
+ if _, ok := response["addBigSwitchBcfDevice"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.BigSwitchBCF.NewAddBigSwitchBcfDeviceParams("hostname", true, "password", "physicalnetworkid", "username")
+ _, err := client.BigSwitchBCF.AddBigSwitchBcfDevice(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("AddBigSwitchBcfDevice", testaddBigSwitchBcfDevice)
+
+ testdeleteBigSwitchBcfDevice := func(t *testing.T) {
+ if _, ok := response["deleteBigSwitchBcfDevice"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.BigSwitchBCF.NewDeleteBigSwitchBcfDeviceParams("bcfdeviceid")
+ _, err := client.BigSwitchBCF.DeleteBigSwitchBcfDevice(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("DeleteBigSwitchBcfDevice", testdeleteBigSwitchBcfDevice)
+
+ testlistBigSwitchBcfDevices := func(t *testing.T) {
+ if _, ok := response["listBigSwitchBcfDevices"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.BigSwitchBCF.NewListBigSwitchBcfDevicesParams()
+ _, err := client.BigSwitchBCF.ListBigSwitchBcfDevices(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListBigSwitchBcfDevices", testlistBigSwitchBcfDevices)
+
+}
diff --git a/test/BrocadeVCSService_test.go b/test/BrocadeVCSService_test.go
new file mode 100644
index 0000000..bbd6685
--- /dev/null
+++ b/test/BrocadeVCSService_test.go
@@ -0,0 +1,86 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+package test
+
+import (
+ "testing"
+
+ "github.com/apache/cloudstack-go/v2/cloudstack"
+)
+
+func TestBrocadeVCSService(t *testing.T) {
+ service := "BrocadeVCSService"
+ response, err := readData(service)
+ if err != nil {
+ t.Skipf("Skipping test as %v", err)
+ }
+ server := CreateTestServer(t, response)
+ client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true)
+ defer server.Close()
+
+ testaddBrocadeVcsDevice := func(t *testing.T) {
+ if _, ok := response["addBrocadeVcsDevice"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.BrocadeVCS.NewAddBrocadeVcsDeviceParams("hostname", "password", "physicalnetworkid", "username")
+ _, err := client.BrocadeVCS.AddBrocadeVcsDevice(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("AddBrocadeVcsDevice", testaddBrocadeVcsDevice)
+
+ testdeleteBrocadeVcsDevice := func(t *testing.T) {
+ if _, ok := response["deleteBrocadeVcsDevice"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.BrocadeVCS.NewDeleteBrocadeVcsDeviceParams("vcsdeviceid")
+ _, err := client.BrocadeVCS.DeleteBrocadeVcsDevice(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("DeleteBrocadeVcsDevice", testdeleteBrocadeVcsDevice)
+
+ testlistBrocadeVcsDeviceNetworks := func(t *testing.T) {
+ if _, ok := response["listBrocadeVcsDeviceNetworks"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.BrocadeVCS.NewListBrocadeVcsDeviceNetworksParams("vcsdeviceid")
+ _, err := client.BrocadeVCS.ListBrocadeVcsDeviceNetworks(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListBrocadeVcsDeviceNetworks", testlistBrocadeVcsDeviceNetworks)
+
+ testlistBrocadeVcsDevices := func(t *testing.T) {
+ if _, ok := response["listBrocadeVcsDevices"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.BrocadeVCS.NewListBrocadeVcsDevicesParams()
+ _, err := client.BrocadeVCS.ListBrocadeVcsDevices(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListBrocadeVcsDevices", testlistBrocadeVcsDevices)
+
+}
diff --git a/cloudstack/VPNService_test.go b/test/CertificateService_test.go
similarity index 53%
rename from cloudstack/VPNService_test.go
rename to test/CertificateService_test.go
index 41acffc..1a6caae 100644
--- a/cloudstack/VPNService_test.go
+++ b/test/CertificateService_test.go
@@ -17,34 +17,34 @@
// under the License.
//
-package cloudstack
+package test
import (
- "fmt"
- "net/http"
- "net/http/httptest"
"testing"
+
+ "github.com/apache/cloudstack-go/v2/cloudstack"
)
-func TestVPNService_DeleteRemoteAccessVpn(t *testing.T) {
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- apiName := "deleteRemoteAccessVpn"
- response, err := ParseAsyncResponse(apiName, "VPNService", *request)
- if err != nil {
- t.Errorf("Failed to parse response, due to: %v", err)
- }
- fmt.Fprintf(writer, response)
- }))
- defer server.Close()
- client := NewAsyncClient(server.URL, "APIKEY", "SECRETKEY", false)
- params := client.VPN.NewDeleteRemoteAccessVpnParams("8dcd19e9-dbe6-4576-9602-4c3350918983")
- resp, err := client.VPN.DeleteRemoteAccessVpn(params)
+func TestCertificateService(t *testing.T) {
+ service := "CertificateService"
+ response, err := readData(service)
if err != nil {
- t.Errorf("Failed to delete remote access VPN due to: %v", err)
- return
+ t.Skipf("Skipping test as %v", err)
}
+ server := CreateTestServer(t, response)
+ client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true)
+ defer server.Close()
- if resp == nil {
- t.Errorf("Failed to update project name")
+ testuploadCustomCertificate := func(t *testing.T) {
+ if _, ok := response["uploadCustomCertificate"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Certificate.NewUploadCustomCertificateParams("certificate", "domainsuffix")
+ _, err := client.Certificate.UploadCustomCertificate(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
}
+ t.Run("UploadCustomCertificate", testuploadCustomCertificate)
+
}
diff --git a/cloudstack/AsyncJobService_test.go b/test/CloudIdentifierService_test.go
similarity index 55%
rename from cloudstack/AsyncJobService_test.go
rename to test/CloudIdentifierService_test.go
index 7e55029..6173ff8 100644
--- a/cloudstack/AsyncJobService_test.go
+++ b/test/CloudIdentifierService_test.go
@@ -17,36 +17,34 @@
// under the License.
//
-package cloudstack
+package test
import (
- "fmt"
- "net/http"
- "net/http/httptest"
"testing"
-)
-
-func TestListAsyncJobs(t *testing.T) {
- apiName := "listAsyncJobs"
- server := httptest.NewServer(http.HandlerFunc(func(writer http.ResponseWriter, request *http.Request) {
- response, err := ReadData(apiName, "AsyncJobService")
- if err != nil {
- t.Errorf("Failed to parse response, due to: %v", err)
- }
- fmt.Fprintf(writer, response[apiName])
- }))
- defer server.Close()
+ "github.com/apache/cloudstack-go/v2/cloudstack"
+)
- client := newClient(server.URL, "APIKEY", "SECRETKEY", true, true)
- p := client.Asyncjob.NewListAsyncJobsParams()
- p.SetListall(true)
- resp, err := client.Asyncjob.ListAsyncJobs(p)
+func TestCloudIdentifierService(t *testing.T) {
+ service := "CloudIdentifierService"
+ response, err := readData(service)
if err != nil {
- t.Errorf("Failed to fetch listAsyncJobs response, due to: %v", err)
+ t.Skipf("Skipping test as %v", err)
}
+ server := CreateTestServer(t, response)
+ client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true)
+ defer server.Close()
- if resp.Count != 1 {
- t.Errorf("Failed to fetch listAsyncJobs response")
+ testgetCloudIdentifier := func(t *testing.T) {
+ if _, ok := response["getCloudIdentifier"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.CloudIdentifier.NewGetCloudIdentifierParams("userid")
+ _, err := client.CloudIdentifier.GetCloudIdentifier(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
}
+ t.Run("GetCloudIdentifier", testgetCloudIdentifier)
+
}
diff --git a/test/ClusterService_test.go b/test/ClusterService_test.go
new file mode 100644
index 0000000..d08f0b1
--- /dev/null
+++ b/test/ClusterService_test.go
@@ -0,0 +1,182 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+package test
+
+import (
+ "testing"
+
+ "github.com/apache/cloudstack-go/v2/cloudstack"
+)
+
+func TestClusterService(t *testing.T) {
+ service := "ClusterService"
+ response, err := readData(service)
+ if err != nil {
+ t.Skipf("Skipping test as %v", err)
+ }
+ server := CreateTestServer(t, response)
+ client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true)
+ defer server.Close()
+
+ testaddCluster := func(t *testing.T) {
+ if _, ok := response["addCluster"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Cluster.NewAddClusterParams("clustername", "clustertype", "hypervisor", "podid", "zoneid")
+ _, err := client.Cluster.AddCluster(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("AddCluster", testaddCluster)
+
+ testdedicateCluster := func(t *testing.T) {
+ if _, ok := response["dedicateCluster"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Cluster.NewDedicateClusterParams("clusterid", "domainid")
+ _, err := client.Cluster.DedicateCluster(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("DedicateCluster", testdedicateCluster)
+
+ testdeleteCluster := func(t *testing.T) {
+ if _, ok := response["deleteCluster"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Cluster.NewDeleteClusterParams("id")
+ _, err := client.Cluster.DeleteCluster(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("DeleteCluster", testdeleteCluster)
+
+ testdisableOutOfBandManagementForCluster := func(t *testing.T) {
+ if _, ok := response["disableOutOfBandManagementForCluster"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Cluster.NewDisableOutOfBandManagementForClusterParams("clusterid")
+ _, err := client.Cluster.DisableOutOfBandManagementForCluster(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("DisableOutOfBandManagementForCluster", testdisableOutOfBandManagementForCluster)
+
+ testenableOutOfBandManagementForCluster := func(t *testing.T) {
+ if _, ok := response["enableOutOfBandManagementForCluster"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Cluster.NewEnableOutOfBandManagementForClusterParams("clusterid")
+ _, err := client.Cluster.EnableOutOfBandManagementForCluster(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("EnableOutOfBandManagementForCluster", testenableOutOfBandManagementForCluster)
+
+ testenableHAForCluster := func(t *testing.T) {
+ if _, ok := response["enableHAForCluster"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Cluster.NewEnableHAForClusterParams("clusterid")
+ _, err := client.Cluster.EnableHAForCluster(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("EnableHAForCluster", testenableHAForCluster)
+
+ testdisableHAForCluster := func(t *testing.T) {
+ if _, ok := response["disableHAForCluster"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Cluster.NewDisableHAForClusterParams("clusterid")
+ _, err := client.Cluster.DisableHAForCluster(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("DisableHAForCluster", testdisableHAForCluster)
+
+ testlistClusters := func(t *testing.T) {
+ if _, ok := response["listClusters"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Cluster.NewListClustersParams()
+ _, err := client.Cluster.ListClusters(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListClusters", testlistClusters)
+
+ testlistClustersMetrics := func(t *testing.T) {
+ if _, ok := response["listClustersMetrics"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Cluster.NewListClustersMetricsParams()
+ _, err := client.Cluster.ListClustersMetrics(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListClustersMetrics", testlistClustersMetrics)
+
+ testlistDedicatedClusters := func(t *testing.T) {
+ if _, ok := response["listDedicatedClusters"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Cluster.NewListDedicatedClustersParams()
+ _, err := client.Cluster.ListDedicatedClusters(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListDedicatedClusters", testlistDedicatedClusters)
+
+ testreleaseDedicatedCluster := func(t *testing.T) {
+ if _, ok := response["releaseDedicatedCluster"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Cluster.NewReleaseDedicatedClusterParams("clusterid")
+ _, err := client.Cluster.ReleaseDedicatedCluster(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ReleaseDedicatedCluster", testreleaseDedicatedCluster)
+
+ testupdateCluster := func(t *testing.T) {
+ if _, ok := response["updateCluster"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Cluster.NewUpdateClusterParams("id")
+ _, err := client.Cluster.UpdateCluster(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("UpdateCluster", testupdateCluster)
+
+}
diff --git a/test/ConfigurationService_test.go b/test/ConfigurationService_test.go
new file mode 100644
index 0000000..355fb73
--- /dev/null
+++ b/test/ConfigurationService_test.go
@@ -0,0 +1,86 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+package test
+
+import (
+ "testing"
+
+ "github.com/apache/cloudstack-go/v2/cloudstack"
+)
+
+func TestConfigurationService(t *testing.T) {
+ service := "ConfigurationService"
+ response, err := readData(service)
+ if err != nil {
+ t.Skipf("Skipping test as %v", err)
+ }
+ server := CreateTestServer(t, response)
+ client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true)
+ defer server.Close()
+
+ testlistCapabilities := func(t *testing.T) {
+ if _, ok := response["listCapabilities"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Configuration.NewListCapabilitiesParams()
+ _, err := client.Configuration.ListCapabilities(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListCapabilities", testlistCapabilities)
+
+ testlistConfigurations := func(t *testing.T) {
+ if _, ok := response["listConfigurations"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Configuration.NewListConfigurationsParams()
+ _, err := client.Configuration.ListConfigurations(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListConfigurations", testlistConfigurations)
+
+ testlistDeploymentPlanners := func(t *testing.T) {
+ if _, ok := response["listDeploymentPlanners"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Configuration.NewListDeploymentPlannersParams()
+ _, err := client.Configuration.ListDeploymentPlanners(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListDeploymentPlanners", testlistDeploymentPlanners)
+
+ testupdateConfiguration := func(t *testing.T) {
+ if _, ok := response["updateConfiguration"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Configuration.NewUpdateConfigurationParams("name")
+ _, err := client.Configuration.UpdateConfiguration(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("UpdateConfiguration", testupdateConfiguration)
+
+}
diff --git a/test/DiskOfferingService_test.go b/test/DiskOfferingService_test.go
new file mode 100644
index 0000000..87ed9a9
--- /dev/null
+++ b/test/DiskOfferingService_test.go
@@ -0,0 +1,86 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+package test
+
+import (
+ "testing"
+
+ "github.com/apache/cloudstack-go/v2/cloudstack"
+)
+
+func TestDiskOfferingService(t *testing.T) {
+ service := "DiskOfferingService"
+ response, err := readData(service)
+ if err != nil {
+ t.Skipf("Skipping test as %v", err)
+ }
+ server := CreateTestServer(t, response)
+ client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true)
+ defer server.Close()
+
+ testcreateDiskOffering := func(t *testing.T) {
+ if _, ok := response["createDiskOffering"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.DiskOffering.NewCreateDiskOfferingParams("displaytext", "name")
+ _, err := client.DiskOffering.CreateDiskOffering(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("CreateDiskOffering", testcreateDiskOffering)
+
+ testdeleteDiskOffering := func(t *testing.T) {
+ if _, ok := response["deleteDiskOffering"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.DiskOffering.NewDeleteDiskOfferingParams("id")
+ _, err := client.DiskOffering.DeleteDiskOffering(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("DeleteDiskOffering", testdeleteDiskOffering)
+
+ testlistDiskOfferings := func(t *testing.T) {
+ if _, ok := response["listDiskOfferings"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.DiskOffering.NewListDiskOfferingsParams()
+ _, err := client.DiskOffering.ListDiskOfferings(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListDiskOfferings", testlistDiskOfferings)
+
+ testupdateDiskOffering := func(t *testing.T) {
+ if _, ok := response["updateDiskOffering"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.DiskOffering.NewUpdateDiskOfferingParams("id")
+ _, err := client.DiskOffering.UpdateDiskOffering(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("UpdateDiskOffering", testupdateDiskOffering)
+
+}
diff --git a/test/DomainService_test.go b/test/DomainService_test.go
new file mode 100644
index 0000000..cd8dfa5
--- /dev/null
+++ b/test/DomainService_test.go
@@ -0,0 +1,98 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+package test
+
+import (
+ "testing"
+
+ "github.com/apache/cloudstack-go/v2/cloudstack"
+)
+
+func TestDomainService(t *testing.T) {
+ service := "DomainService"
+ response, err := readData(service)
+ if err != nil {
+ t.Skipf("Skipping test as %v", err)
+ }
+ server := CreateTestServer(t, response)
+ client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true)
+ defer server.Close()
+
+ testcreateDomain := func(t *testing.T) {
+ if _, ok := response["createDomain"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Domain.NewCreateDomainParams("name")
+ _, err := client.Domain.CreateDomain(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("CreateDomain", testcreateDomain)
+
+ testdeleteDomain := func(t *testing.T) {
+ if _, ok := response["deleteDomain"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Domain.NewDeleteDomainParams("id")
+ _, err := client.Domain.DeleteDomain(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("DeleteDomain", testdeleteDomain)
+
+ testlistDomainChildren := func(t *testing.T) {
+ if _, ok := response["listDomainChildren"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Domain.NewListDomainChildrenParams()
+ _, err := client.Domain.ListDomainChildren(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListDomainChildren", testlistDomainChildren)
+
+ testlistDomains := func(t *testing.T) {
+ if _, ok := response["listDomains"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Domain.NewListDomainsParams()
+ _, err := client.Domain.ListDomains(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListDomains", testlistDomains)
+
+ testupdateDomain := func(t *testing.T) {
+ if _, ok := response["updateDomain"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Domain.NewUpdateDomainParams("id")
+ _, err := client.Domain.UpdateDomain(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("UpdateDomain", testupdateDomain)
+
+}
diff --git a/test/EventService_test.go b/test/EventService_test.go
new file mode 100644
index 0000000..a38ad53
--- /dev/null
+++ b/test/EventService_test.go
@@ -0,0 +1,86 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+package test
+
+import (
+ "testing"
+
+ "github.com/apache/cloudstack-go/v2/cloudstack"
+)
+
+func TestEventService(t *testing.T) {
+ service := "EventService"
+ response, err := readData(service)
+ if err != nil {
+ t.Skipf("Skipping test as %v", err)
+ }
+ server := CreateTestServer(t, response)
+ client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true)
+ defer server.Close()
+
+ testarchiveEvents := func(t *testing.T) {
+ if _, ok := response["archiveEvents"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Event.NewArchiveEventsParams()
+ _, err := client.Event.ArchiveEvents(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ArchiveEvents", testarchiveEvents)
+
+ testdeleteEvents := func(t *testing.T) {
+ if _, ok := response["deleteEvents"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Event.NewDeleteEventsParams()
+ _, err := client.Event.DeleteEvents(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("DeleteEvents", testdeleteEvents)
+
+ testlistEventTypes := func(t *testing.T) {
+ if _, ok := response["listEventTypes"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Event.NewListEventTypesParams()
+ _, err := client.Event.ListEventTypes(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListEventTypes", testlistEventTypes)
+
+ testlistEvents := func(t *testing.T) {
+ if _, ok := response["listEvents"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Event.NewListEventsParams()
+ _, err := client.Event.ListEvents(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListEvents", testlistEvents)
+
+}
diff --git a/test/FirewallService_test.go b/test/FirewallService_test.go
new file mode 100644
index 0000000..f49ef89
--- /dev/null
+++ b/test/FirewallService_test.go
@@ -0,0 +1,230 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+package test
+
+import (
+ "testing"
+
+ "github.com/apache/cloudstack-go/v2/cloudstack"
+)
+
+func TestFirewallService(t *testing.T) {
+ service := "FirewallService"
+ response, err := readData(service)
+ if err != nil {
+ t.Skipf("Skipping test as %v", err)
+ }
+ server := CreateTestServer(t, response)
+ client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true)
+ defer server.Close()
+
+ testaddPaloAltoFirewall := func(t *testing.T) {
+ if _, ok := response["addPaloAltoFirewall"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Firewall.NewAddPaloAltoFirewallParams("networkdevicetype", "password", "physicalnetworkid", "url", "username")
+ _, err := client.Firewall.AddPaloAltoFirewall(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("AddPaloAltoFirewall", testaddPaloAltoFirewall)
+
+ testconfigurePaloAltoFirewall := func(t *testing.T) {
+ if _, ok := response["configurePaloAltoFirewall"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Firewall.NewConfigurePaloAltoFirewallParams("fwdeviceid")
+ _, err := client.Firewall.ConfigurePaloAltoFirewall(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ConfigurePaloAltoFirewall", testconfigurePaloAltoFirewall)
+
+ testcreateEgressFirewallRule := func(t *testing.T) {
+ if _, ok := response["createEgressFirewallRule"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Firewall.NewCreateEgressFirewallRuleParams("networkid", "protocol")
+ _, err := client.Firewall.CreateEgressFirewallRule(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("CreateEgressFirewallRule", testcreateEgressFirewallRule)
+
+ testcreateFirewallRule := func(t *testing.T) {
+ if _, ok := response["createFirewallRule"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Firewall.NewCreateFirewallRuleParams("ipaddressid", "protocol")
+ _, err := client.Firewall.CreateFirewallRule(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("CreateFirewallRule", testcreateFirewallRule)
+
+ testcreatePortForwardingRule := func(t *testing.T) {
+ if _, ok := response["createPortForwardingRule"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Firewall.NewCreatePortForwardingRuleParams("ipaddressid", 0, "protocol", 0, "virtualmachineid")
+ _, err := client.Firewall.CreatePortForwardingRule(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("CreatePortForwardingRule", testcreatePortForwardingRule)
+
+ testdeleteEgressFirewallRule := func(t *testing.T) {
+ if _, ok := response["deleteEgressFirewallRule"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Firewall.NewDeleteEgressFirewallRuleParams("id")
+ _, err := client.Firewall.DeleteEgressFirewallRule(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("DeleteEgressFirewallRule", testdeleteEgressFirewallRule)
+
+ testdeleteFirewallRule := func(t *testing.T) {
+ if _, ok := response["deleteFirewallRule"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Firewall.NewDeleteFirewallRuleParams("id")
+ _, err := client.Firewall.DeleteFirewallRule(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("DeleteFirewallRule", testdeleteFirewallRule)
+
+ testdeletePaloAltoFirewall := func(t *testing.T) {
+ if _, ok := response["deletePaloAltoFirewall"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Firewall.NewDeletePaloAltoFirewallParams("fwdeviceid")
+ _, err := client.Firewall.DeletePaloAltoFirewall(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("DeletePaloAltoFirewall", testdeletePaloAltoFirewall)
+
+ testdeletePortForwardingRule := func(t *testing.T) {
+ if _, ok := response["deletePortForwardingRule"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Firewall.NewDeletePortForwardingRuleParams("id")
+ _, err := client.Firewall.DeletePortForwardingRule(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("DeletePortForwardingRule", testdeletePortForwardingRule)
+
+ testlistEgressFirewallRules := func(t *testing.T) {
+ if _, ok := response["listEgressFirewallRules"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Firewall.NewListEgressFirewallRulesParams()
+ _, err := client.Firewall.ListEgressFirewallRules(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListEgressFirewallRules", testlistEgressFirewallRules)
+
+ testlistFirewallRules := func(t *testing.T) {
+ if _, ok := response["listFirewallRules"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Firewall.NewListFirewallRulesParams()
+ _, err := client.Firewall.ListFirewallRules(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListFirewallRules", testlistFirewallRules)
+
+ testlistPaloAltoFirewalls := func(t *testing.T) {
+ if _, ok := response["listPaloAltoFirewalls"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Firewall.NewListPaloAltoFirewallsParams()
+ _, err := client.Firewall.ListPaloAltoFirewalls(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListPaloAltoFirewalls", testlistPaloAltoFirewalls)
+
+ testlistPortForwardingRules := func(t *testing.T) {
+ if _, ok := response["listPortForwardingRules"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Firewall.NewListPortForwardingRulesParams()
+ _, err := client.Firewall.ListPortForwardingRules(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListPortForwardingRules", testlistPortForwardingRules)
+
+ testupdateEgressFirewallRule := func(t *testing.T) {
+ if _, ok := response["updateEgressFirewallRule"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Firewall.NewUpdateEgressFirewallRuleParams("id")
+ _, err := client.Firewall.UpdateEgressFirewallRule(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("UpdateEgressFirewallRule", testupdateEgressFirewallRule)
+
+ testupdateFirewallRule := func(t *testing.T) {
+ if _, ok := response["updateFirewallRule"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Firewall.NewUpdateFirewallRuleParams("id")
+ _, err := client.Firewall.UpdateFirewallRule(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("UpdateFirewallRule", testupdateFirewallRule)
+
+ testupdatePortForwardingRule := func(t *testing.T) {
+ if _, ok := response["updatePortForwardingRule"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Firewall.NewUpdatePortForwardingRuleParams("id")
+ _, err := client.Firewall.UpdatePortForwardingRule(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("UpdatePortForwardingRule", testupdatePortForwardingRule)
+
+}
diff --git a/test/GuestOSService_test.go b/test/GuestOSService_test.go
new file mode 100644
index 0000000..7877db2
--- /dev/null
+++ b/test/GuestOSService_test.go
@@ -0,0 +1,146 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+package test
+
+import (
+ "testing"
+
+ "github.com/apache/cloudstack-go/v2/cloudstack"
+)
+
+func TestGuestOSService(t *testing.T) {
+ service := "GuestOSService"
+ response, err := readData(service)
+ if err != nil {
+ t.Skipf("Skipping test as %v", err)
+ }
+ server := CreateTestServer(t, response)
+ client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true)
+ defer server.Close()
+
+ testaddGuestOs := func(t *testing.T) {
+ if _, ok := response["addGuestOs"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.GuestOS.NewAddGuestOsParams(map[string]string{}, "oscategoryid", "osdisplayname")
+ _, err := client.GuestOS.AddGuestOs(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("AddGuestOs", testaddGuestOs)
+
+ testaddGuestOsMapping := func(t *testing.T) {
+ if _, ok := response["addGuestOsMapping"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.GuestOS.NewAddGuestOsMappingParams("hypervisor", "hypervisorversion", "osnameforhypervisor")
+ _, err := client.GuestOS.AddGuestOsMapping(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("AddGuestOsMapping", testaddGuestOsMapping)
+
+ testlistGuestOsMapping := func(t *testing.T) {
+ if _, ok := response["listGuestOsMapping"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.GuestOS.NewListGuestOsMappingParams()
+ _, err := client.GuestOS.ListGuestOsMapping(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListGuestOsMapping", testlistGuestOsMapping)
+
+ testlistOsCategories := func(t *testing.T) {
+ if _, ok := response["listOsCategories"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.GuestOS.NewListOsCategoriesParams()
+ _, err := client.GuestOS.ListOsCategories(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListOsCategories", testlistOsCategories)
+
+ testlistOsTypes := func(t *testing.T) {
+ if _, ok := response["listOsTypes"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.GuestOS.NewListOsTypesParams()
+ _, err := client.GuestOS.ListOsTypes(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListOsTypes", testlistOsTypes)
+
+ testremoveGuestOs := func(t *testing.T) {
+ if _, ok := response["removeGuestOs"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.GuestOS.NewRemoveGuestOsParams("id")
+ _, err := client.GuestOS.RemoveGuestOs(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("RemoveGuestOs", testremoveGuestOs)
+
+ testremoveGuestOsMapping := func(t *testing.T) {
+ if _, ok := response["removeGuestOsMapping"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.GuestOS.NewRemoveGuestOsMappingParams("id")
+ _, err := client.GuestOS.RemoveGuestOsMapping(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("RemoveGuestOsMapping", testremoveGuestOsMapping)
+
+ testupdateGuestOs := func(t *testing.T) {
+ if _, ok := response["updateGuestOs"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.GuestOS.NewUpdateGuestOsParams(map[string]string{}, "id", "osdisplayname")
+ _, err := client.GuestOS.UpdateGuestOs(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("UpdateGuestOs", testupdateGuestOs)
+
+ testupdateGuestOsMapping := func(t *testing.T) {
+ if _, ok := response["updateGuestOsMapping"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.GuestOS.NewUpdateGuestOsMappingParams("id", "osnameforhypervisor")
+ _, err := client.GuestOS.UpdateGuestOsMapping(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("UpdateGuestOsMapping", testupdateGuestOsMapping)
+
+}
diff --git a/test/HostService_test.go b/test/HostService_test.go
new file mode 100644
index 0000000..1ad6e25
--- /dev/null
+++ b/test/HostService_test.go
@@ -0,0 +1,302 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+package test
+
+import (
+ "testing"
+
+ "github.com/apache/cloudstack-go/v2/cloudstack"
+)
+
+func TestHostService(t *testing.T) {
+ service := "HostService"
+ response, err := readData(service)
+ if err != nil {
+ t.Skipf("Skipping test as %v", err)
+ }
+ server := CreateTestServer(t, response)
+ client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true)
+ defer server.Close()
+
+ testaddBaremetalHost := func(t *testing.T) {
+ if _, ok := response["addBaremetalHost"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Host.NewAddBaremetalHostParams("hypervisor", "podid", "url", "zoneid")
+ _, err := client.Host.AddBaremetalHost(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("AddBaremetalHost", testaddBaremetalHost)
+
+ testaddGloboDnsHost := func(t *testing.T) {
+ if _, ok := response["addGloboDnsHost"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Host.NewAddGloboDnsHostParams("password", "physicalnetworkid", "url", "username")
+ _, err := client.Host.AddGloboDnsHost(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("AddGloboDnsHost", testaddGloboDnsHost)
+
+ testaddHost := func(t *testing.T) {
+ if _, ok := response["addHost"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Host.NewAddHostParams("hypervisor", "podid", "url", "zoneid")
+ _, err := client.Host.AddHost(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("AddHost", testaddHost)
+
+ testaddSecondaryStorage := func(t *testing.T) {
+ if _, ok := response["addSecondaryStorage"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Host.NewAddSecondaryStorageParams("url")
+ _, err := client.Host.AddSecondaryStorage(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("AddSecondaryStorage", testaddSecondaryStorage)
+
+ testcancelHostMaintenance := func(t *testing.T) {
+ if _, ok := response["cancelHostMaintenance"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Host.NewCancelHostMaintenanceParams("id")
+ _, err := client.Host.CancelHostMaintenance(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("CancelHostMaintenance", testcancelHostMaintenance)
+
+ testconfigureHAForHost := func(t *testing.T) {
+ if _, ok := response["configureHAForHost"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Host.NewConfigureHAForHostParams("hostid", "provider")
+ _, err := client.Host.ConfigureHAForHost(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ConfigureHAForHost", testconfigureHAForHost)
+
+ testenableHAForHost := func(t *testing.T) {
+ if _, ok := response["enableHAForHost"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Host.NewEnableHAForHostParams("hostid")
+ _, err := client.Host.EnableHAForHost(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("EnableHAForHost", testenableHAForHost)
+
+ testdedicateHost := func(t *testing.T) {
+ if _, ok := response["dedicateHost"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Host.NewDedicateHostParams("domainid", "hostid")
+ _, err := client.Host.DedicateHost(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("DedicateHost", testdedicateHost)
+
+ testdeleteHost := func(t *testing.T) {
+ if _, ok := response["deleteHost"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Host.NewDeleteHostParams("id")
+ _, err := client.Host.DeleteHost(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("DeleteHost", testdeleteHost)
+
+ testdisableOutOfBandManagementForHost := func(t *testing.T) {
+ if _, ok := response["disableOutOfBandManagementForHost"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Host.NewDisableOutOfBandManagementForHostParams("hostid")
+ _, err := client.Host.DisableOutOfBandManagementForHost(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("DisableOutOfBandManagementForHost", testdisableOutOfBandManagementForHost)
+
+ testenableOutOfBandManagementForHost := func(t *testing.T) {
+ if _, ok := response["enableOutOfBandManagementForHost"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Host.NewEnableOutOfBandManagementForHostParams("hostid")
+ _, err := client.Host.EnableOutOfBandManagementForHost(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("EnableOutOfBandManagementForHost", testenableOutOfBandManagementForHost)
+
+ testfindHostsForMigration := func(t *testing.T) {
+ if _, ok := response["findHostsForMigration"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Host.NewFindHostsForMigrationParams("virtualmachineid")
+ _, err := client.Host.FindHostsForMigration(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("FindHostsForMigration", testfindHostsForMigration)
+
+ testlistDedicatedHosts := func(t *testing.T) {
+ if _, ok := response["listDedicatedHosts"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Host.NewListDedicatedHostsParams()
+ _, err := client.Host.ListDedicatedHosts(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListDedicatedHosts", testlistDedicatedHosts)
+
+ testlistHostTags := func(t *testing.T) {
+ if _, ok := response["listHostTags"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Host.NewListHostTagsParams()
+ _, err := client.Host.ListHostTags(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListHostTags", testlistHostTags)
+
+ testlistHosts := func(t *testing.T) {
+ if _, ok := response["listHosts"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Host.NewListHostsParams()
+ _, err := client.Host.ListHosts(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListHosts", testlistHosts)
+
+ testlistHostsMetrics := func(t *testing.T) {
+ if _, ok := response["listHostsMetrics"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Host.NewListHostsMetricsParams()
+ _, err := client.Host.ListHostsMetrics(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListHostsMetrics", testlistHostsMetrics)
+
+ testprepareHostForMaintenance := func(t *testing.T) {
+ if _, ok := response["prepareHostForMaintenance"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Host.NewPrepareHostForMaintenanceParams("id")
+ _, err := client.Host.PrepareHostForMaintenance(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("PrepareHostForMaintenance", testprepareHostForMaintenance)
+
+ testreconnectHost := func(t *testing.T) {
+ if _, ok := response["reconnectHost"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Host.NewReconnectHostParams("id")
+ _, err := client.Host.ReconnectHost(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ReconnectHost", testreconnectHost)
+
+ testreleaseDedicatedHost := func(t *testing.T) {
+ if _, ok := response["releaseDedicatedHost"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Host.NewReleaseDedicatedHostParams("hostid")
+ _, err := client.Host.ReleaseDedicatedHost(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ReleaseDedicatedHost", testreleaseDedicatedHost)
+
+ testreleaseHostReservation := func(t *testing.T) {
+ if _, ok := response["releaseHostReservation"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Host.NewReleaseHostReservationParams("id")
+ _, err := client.Host.ReleaseHostReservation(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ReleaseHostReservation", testreleaseHostReservation)
+
+ testupdateHost := func(t *testing.T) {
+ if _, ok := response["updateHost"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Host.NewUpdateHostParams("id")
+ _, err := client.Host.UpdateHost(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("UpdateHost", testupdateHost)
+
+ testupdateHostPassword := func(t *testing.T) {
+ if _, ok := response["updateHostPassword"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Host.NewUpdateHostPasswordParams("password", "username")
+ _, err := client.Host.UpdateHostPassword(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("UpdateHostPassword", testupdateHostPassword)
+
+}
diff --git a/test/HypervisorService_test.go b/test/HypervisorService_test.go
new file mode 100644
index 0000000..e0ec6ca
--- /dev/null
+++ b/test/HypervisorService_test.go
@@ -0,0 +1,74 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+package test
+
+import (
+ "testing"
+
+ "github.com/apache/cloudstack-go/v2/cloudstack"
+)
+
+func TestHypervisorService(t *testing.T) {
+ service := "HypervisorService"
+ response, err := readData(service)
+ if err != nil {
+ t.Skipf("Skipping test as %v", err)
+ }
+ server := CreateTestServer(t, response)
+ client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true)
+ defer server.Close()
+
+ testlistHypervisorCapabilities := func(t *testing.T) {
+ if _, ok := response["listHypervisorCapabilities"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Hypervisor.NewListHypervisorCapabilitiesParams()
+ _, err := client.Hypervisor.ListHypervisorCapabilities(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListHypervisorCapabilities", testlistHypervisorCapabilities)
+
+ testlistHypervisors := func(t *testing.T) {
+ if _, ok := response["listHypervisors"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Hypervisor.NewListHypervisorsParams()
+ _, err := client.Hypervisor.ListHypervisors(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListHypervisors", testlistHypervisors)
+
+ testupdateHypervisorCapabilities := func(t *testing.T) {
+ if _, ok := response["updateHypervisorCapabilities"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Hypervisor.NewUpdateHypervisorCapabilitiesParams()
+ _, err := client.Hypervisor.UpdateHypervisorCapabilities(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("UpdateHypervisorCapabilities", testupdateHypervisorCapabilities)
+
+}
diff --git a/test/ISOService_test.go b/test/ISOService_test.go
new file mode 100644
index 0000000..01d397c
--- /dev/null
+++ b/test/ISOService_test.go
@@ -0,0 +1,158 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+package test
+
+import (
+ "testing"
+
+ "github.com/apache/cloudstack-go/v2/cloudstack"
+)
+
+func TestISOService(t *testing.T) {
+ service := "ISOService"
+ response, err := readData(service)
+ if err != nil {
+ t.Skipf("Skipping test as %v", err)
+ }
+ server := CreateTestServer(t, response)
+ client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true)
+ defer server.Close()
+
+ testattachIso := func(t *testing.T) {
+ if _, ok := response["attachIso"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.ISO.NewAttachIsoParams("id", "virtualmachineid")
+ _, err := client.ISO.AttachIso(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("AttachIso", testattachIso)
+
+ testcopyIso := func(t *testing.T) {
+ if _, ok := response["copyIso"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.ISO.NewCopyIsoParams("id")
+ _, err := client.ISO.CopyIso(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("CopyIso", testcopyIso)
+
+ testdeleteIso := func(t *testing.T) {
+ if _, ok := response["deleteIso"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.ISO.NewDeleteIsoParams("id")
+ _, err := client.ISO.DeleteIso(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("DeleteIso", testdeleteIso)
+
+ testdetachIso := func(t *testing.T) {
+ if _, ok := response["detachIso"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.ISO.NewDetachIsoParams("virtualmachineid")
+ _, err := client.ISO.DetachIso(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("DetachIso", testdetachIso)
+
+ testextractIso := func(t *testing.T) {
+ if _, ok := response["extractIso"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.ISO.NewExtractIsoParams("id", "mode")
+ _, err := client.ISO.ExtractIso(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ExtractIso", testextractIso)
+
+ testlistIsoPermissions := func(t *testing.T) {
+ if _, ok := response["listIsoPermissions"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.ISO.NewListIsoPermissionsParams("id")
+ _, err := client.ISO.ListIsoPermissions(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListIsoPermissions", testlistIsoPermissions)
+
+ testlistIsos := func(t *testing.T) {
+ if _, ok := response["listIsos"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.ISO.NewListIsosParams()
+ _, err := client.ISO.ListIsos(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListIsos", testlistIsos)
+
+ testregisterIso := func(t *testing.T) {
+ if _, ok := response["registerIso"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.ISO.NewRegisterIsoParams("displaytext", "name", "url", "zoneid")
+ _, err := client.ISO.RegisterIso(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("RegisterIso", testregisterIso)
+
+ testupdateIso := func(t *testing.T) {
+ if _, ok := response["updateIso"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.ISO.NewUpdateIsoParams("id")
+ _, err := client.ISO.UpdateIso(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("UpdateIso", testupdateIso)
+
+ testupdateIsoPermissions := func(t *testing.T) {
+ if _, ok := response["updateIsoPermissions"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.ISO.NewUpdateIsoPermissionsParams("id")
+ _, err := client.ISO.UpdateIsoPermissions(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("UpdateIsoPermissions", testupdateIsoPermissions)
+
+}
diff --git a/test/ImageStoreService_test.go b/test/ImageStoreService_test.go
new file mode 100644
index 0000000..31fee6a
--- /dev/null
+++ b/test/ImageStoreService_test.go
@@ -0,0 +1,134 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+package test
+
+import (
+ "testing"
+
+ "github.com/apache/cloudstack-go/v2/cloudstack"
+)
+
+func TestImageStoreService(t *testing.T) {
+ service := "ImageStoreService"
+ response, err := readData(service)
+ if err != nil {
+ t.Skipf("Skipping test as %v", err)
+ }
+ server := CreateTestServer(t, response)
+ client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true)
+ defer server.Close()
+
+ testaddImageStore := func(t *testing.T) {
+ if _, ok := response["addImageStore"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.ImageStore.NewAddImageStoreParams("provider")
+ _, err := client.ImageStore.AddImageStore(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("AddImageStore", testaddImageStore)
+
+ testaddImageStoreS3 := func(t *testing.T) {
+ if _, ok := response["addImageStoreS3"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.ImageStore.NewAddImageStoreS3Params("accesskey", "bucket", "endpoint", "secretkey")
+ _, err := client.ImageStore.AddImageStoreS3(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("AddImageStoreS3", testaddImageStoreS3)
+
+ testcreateSecondaryStagingStore := func(t *testing.T) {
+ if _, ok := response["createSecondaryStagingStore"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.ImageStore.NewCreateSecondaryStagingStoreParams("url")
+ _, err := client.ImageStore.CreateSecondaryStagingStore(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("CreateSecondaryStagingStore", testcreateSecondaryStagingStore)
+
+ testdeleteImageStore := func(t *testing.T) {
+ if _, ok := response["deleteImageStore"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.ImageStore.NewDeleteImageStoreParams("id")
+ _, err := client.ImageStore.DeleteImageStore(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("DeleteImageStore", testdeleteImageStore)
+
+ testdeleteSecondaryStagingStore := func(t *testing.T) {
+ if _, ok := response["deleteSecondaryStagingStore"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.ImageStore.NewDeleteSecondaryStagingStoreParams("id")
+ _, err := client.ImageStore.DeleteSecondaryStagingStore(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("DeleteSecondaryStagingStore", testdeleteSecondaryStagingStore)
+
+ testlistImageStores := func(t *testing.T) {
+ if _, ok := response["listImageStores"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.ImageStore.NewListImageStoresParams()
+ _, err := client.ImageStore.ListImageStores(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListImageStores", testlistImageStores)
+
+ testlistSecondaryStagingStores := func(t *testing.T) {
+ if _, ok := response["listSecondaryStagingStores"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.ImageStore.NewListSecondaryStagingStoresParams()
+ _, err := client.ImageStore.ListSecondaryStagingStores(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListSecondaryStagingStores", testlistSecondaryStagingStores)
+
+ testupdateCloudToUseObjectStore := func(t *testing.T) {
+ if _, ok := response["updateCloudToUseObjectStore"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.ImageStore.NewUpdateCloudToUseObjectStoreParams("provider")
+ _, err := client.ImageStore.UpdateCloudToUseObjectStore(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("UpdateCloudToUseObjectStore", testupdateCloudToUseObjectStore)
+
+}
diff --git a/test/InternalLBService_test.go b/test/InternalLBService_test.go
new file mode 100644
index 0000000..7477127
--- /dev/null
+++ b/test/InternalLBService_test.go
@@ -0,0 +1,110 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+package test
+
+import (
+ "testing"
+
+ "github.com/apache/cloudstack-go/v2/cloudstack"
+)
+
+func TestInternalLBService(t *testing.T) {
+ service := "InternalLBService"
+ response, err := readData(service)
+ if err != nil {
+ t.Skipf("Skipping test as %v", err)
+ }
+ server := CreateTestServer(t, response)
+ client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true)
+ defer server.Close()
+
+ testconfigureInternalLoadBalancerElement := func(t *testing.T) {
+ if _, ok := response["configureInternalLoadBalancerElement"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.InternalLB.NewConfigureInternalLoadBalancerElementParams(true, "id")
+ _, err := client.InternalLB.ConfigureInternalLoadBalancerElement(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ConfigureInternalLoadBalancerElement", testconfigureInternalLoadBalancerElement)
+
+ testcreateInternalLoadBalancerElement := func(t *testing.T) {
+ if _, ok := response["createInternalLoadBalancerElement"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.InternalLB.NewCreateInternalLoadBalancerElementParams("nspid")
+ _, err := client.InternalLB.CreateInternalLoadBalancerElement(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("CreateInternalLoadBalancerElement", testcreateInternalLoadBalancerElement)
+
+ testlistInternalLoadBalancerElements := func(t *testing.T) {
+ if _, ok := response["listInternalLoadBalancerElements"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.InternalLB.NewListInternalLoadBalancerElementsParams()
+ _, err := client.InternalLB.ListInternalLoadBalancerElements(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListInternalLoadBalancerElements", testlistInternalLoadBalancerElements)
+
+ testlistInternalLoadBalancerVMs := func(t *testing.T) {
+ if _, ok := response["listInternalLoadBalancerVMs"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.InternalLB.NewListInternalLoadBalancerVMsParams()
+ _, err := client.InternalLB.ListInternalLoadBalancerVMs(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListInternalLoadBalancerVMs", testlistInternalLoadBalancerVMs)
+
+ teststartInternalLoadBalancerVM := func(t *testing.T) {
+ if _, ok := response["startInternalLoadBalancerVM"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.InternalLB.NewStartInternalLoadBalancerVMParams("id")
+ _, err := client.InternalLB.StartInternalLoadBalancerVM(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("StartInternalLoadBalancerVM", teststartInternalLoadBalancerVM)
+
+ teststopInternalLoadBalancerVM := func(t *testing.T) {
+ if _, ok := response["stopInternalLoadBalancerVM"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.InternalLB.NewStopInternalLoadBalancerVMParams("id")
+ _, err := client.InternalLB.StopInternalLoadBalancerVM(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("StopInternalLoadBalancerVM", teststopInternalLoadBalancerVM)
+
+}
diff --git a/test/LDAPService_test.go b/test/LDAPService_test.go
new file mode 100644
index 0000000..15e852d
--- /dev/null
+++ b/test/LDAPService_test.go
@@ -0,0 +1,158 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+package test
+
+import (
+ "testing"
+
+ "github.com/apache/cloudstack-go/v2/cloudstack"
+)
+
+func TestLDAPService(t *testing.T) {
+ service := "LDAPService"
+ response, err := readData(service)
+ if err != nil {
+ t.Skipf("Skipping test as %v", err)
+ }
+ server := CreateTestServer(t, response)
+ client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true)
+ defer server.Close()
+
+ testaddLdapConfiguration := func(t *testing.T) {
+ if _, ok := response["addLdapConfiguration"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.LDAP.NewAddLdapConfigurationParams("hostname", 0)
+ _, err := client.LDAP.AddLdapConfiguration(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("AddLdapConfiguration", testaddLdapConfiguration)
+
+ testdeleteLdapConfiguration := func(t *testing.T) {
+ if _, ok := response["deleteLdapConfiguration"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.LDAP.NewDeleteLdapConfigurationParams("hostname")
+ _, err := client.LDAP.DeleteLdapConfiguration(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("DeleteLdapConfiguration", testdeleteLdapConfiguration)
+
+ testimportLdapUsers := func(t *testing.T) {
+ if _, ok := response["importLdapUsers"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.LDAP.NewImportLdapUsersParams()
+ _, err := client.LDAP.ImportLdapUsers(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ImportLdapUsers", testimportLdapUsers)
+
+ testldapConfig := func(t *testing.T) {
+ if _, ok := response["ldapConfig"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.LDAP.NewLdapConfigParams()
+ _, err := client.LDAP.LdapConfig(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("LdapConfig", testldapConfig)
+
+ testldapCreateAccount := func(t *testing.T) {
+ if _, ok := response["ldapCreateAccount"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.LDAP.NewLdapCreateAccountParams("username")
+ _, err := client.LDAP.LdapCreateAccount(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("LdapCreateAccount", testldapCreateAccount)
+
+ testldapRemove := func(t *testing.T) {
+ if _, ok := response["ldapRemove"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.LDAP.NewLdapRemoveParams()
+ _, err := client.LDAP.LdapRemove(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("LdapRemove", testldapRemove)
+
+ testlinkDomainToLdap := func(t *testing.T) {
+ if _, ok := response["linkDomainToLdap"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.LDAP.NewLinkDomainToLdapParams(0, "domainid", "type")
+ _, err := client.LDAP.LinkDomainToLdap(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("LinkDomainToLdap", testlinkDomainToLdap)
+
+ testlistLdapConfigurations := func(t *testing.T) {
+ if _, ok := response["listLdapConfigurations"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.LDAP.NewListLdapConfigurationsParams()
+ _, err := client.LDAP.ListLdapConfigurations(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListLdapConfigurations", testlistLdapConfigurations)
+
+ testlistLdapUsers := func(t *testing.T) {
+ if _, ok := response["listLdapUsers"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.LDAP.NewListLdapUsersParams()
+ _, err := client.LDAP.ListLdapUsers(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListLdapUsers", testlistLdapUsers)
+
+ testsearchLdap := func(t *testing.T) {
+ if _, ok := response["searchLdap"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.LDAP.NewSearchLdapParams("query")
+ _, err := client.LDAP.SearchLdap(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("SearchLdap", testsearchLdap)
+
+}
diff --git a/test/LimitService_test.go b/test/LimitService_test.go
new file mode 100644
index 0000000..57d1991
--- /dev/null
+++ b/test/LimitService_test.go
@@ -0,0 +1,98 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+package test
+
+import (
+ "testing"
+
+ "github.com/apache/cloudstack-go/v2/cloudstack"
+)
+
+func TestLimitService(t *testing.T) {
+ service := "LimitService"
+ response, err := readData(service)
+ if err != nil {
+ t.Skipf("Skipping test as %v", err)
+ }
+ server := CreateTestServer(t, response)
+ client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true)
+ defer server.Close()
+
+ testgetApiLimit := func(t *testing.T) {
+ if _, ok := response["getApiLimit"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Limit.NewGetApiLimitParams()
+ _, err := client.Limit.GetApiLimit(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("GetApiLimit", testgetApiLimit)
+
+ testlistResourceLimits := func(t *testing.T) {
+ if _, ok := response["listResourceLimits"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Limit.NewListResourceLimitsParams()
+ _, err := client.Limit.ListResourceLimits(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListResourceLimits", testlistResourceLimits)
+
+ testresetApiLimit := func(t *testing.T) {
+ if _, ok := response["resetApiLimit"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Limit.NewResetApiLimitParams()
+ _, err := client.Limit.ResetApiLimit(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ResetApiLimit", testresetApiLimit)
+
+ testupdateResourceCount := func(t *testing.T) {
+ if _, ok := response["updateResourceCount"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Limit.NewUpdateResourceCountParams("domainid")
+ _, err := client.Limit.UpdateResourceCount(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("UpdateResourceCount", testupdateResourceCount)
+
+ testupdateResourceLimit := func(t *testing.T) {
+ if _, ok := response["updateResourceLimit"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.Limit.NewUpdateResourceLimitParams(0)
+ _, err := client.Limit.UpdateResourceLimit(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("UpdateResourceLimit", testupdateResourceLimit)
+
+}
diff --git a/test/LoadBalancerService_test.go b/test/LoadBalancerService_test.go
new file mode 100644
index 0000000..00131f1
--- /dev/null
+++ b/test/LoadBalancerService_test.go
@@ -0,0 +1,446 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+package test
+
+import (
+ "testing"
+
+ "github.com/apache/cloudstack-go/v2/cloudstack"
+)
+
+func TestLoadBalancerService(t *testing.T) {
+ service := "LoadBalancerService"
+ response, err := readData(service)
+ if err != nil {
+ t.Skipf("Skipping test as %v", err)
+ }
+ server := CreateTestServer(t, response)
+ client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true)
+ defer server.Close()
+
+ testaddNetscalerLoadBalancer := func(t *testing.T) {
+ if _, ok := response["addNetscalerLoadBalancer"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.LoadBalancer.NewAddNetscalerLoadBalancerParams("networkdevicetype", "password", "physicalnetworkid", "url", "username")
+ _, err := client.LoadBalancer.AddNetscalerLoadBalancer(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("AddNetscalerLoadBalancer", testaddNetscalerLoadBalancer)
+
+ testassignCertToLoadBalancer := func(t *testing.T) {
+ if _, ok := response["assignCertToLoadBalancer"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.LoadBalancer.NewAssignCertToLoadBalancerParams("certid", "lbruleid")
+ _, err := client.LoadBalancer.AssignCertToLoadBalancer(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("AssignCertToLoadBalancer", testassignCertToLoadBalancer)
+
+ testassignToGlobalLoadBalancerRule := func(t *testing.T) {
+ if _, ok := response["assignToGlobalLoadBalancerRule"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.LoadBalancer.NewAssignToGlobalLoadBalancerRuleParams("id", []string{})
+ _, err := client.LoadBalancer.AssignToGlobalLoadBalancerRule(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("AssignToGlobalLoadBalancerRule", testassignToGlobalLoadBalancerRule)
+
+ testassignToLoadBalancerRule := func(t *testing.T) {
+ if _, ok := response["assignToLoadBalancerRule"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.LoadBalancer.NewAssignToLoadBalancerRuleParams("id")
+ _, err := client.LoadBalancer.AssignToLoadBalancerRule(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("AssignToLoadBalancerRule", testassignToLoadBalancerRule)
+
+ testconfigureNetscalerLoadBalancer := func(t *testing.T) {
+ if _, ok := response["configureNetscalerLoadBalancer"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.LoadBalancer.NewConfigureNetscalerLoadBalancerParams("lbdeviceid")
+ _, err := client.LoadBalancer.ConfigureNetscalerLoadBalancer(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ConfigureNetscalerLoadBalancer", testconfigureNetscalerLoadBalancer)
+
+ testcreateGlobalLoadBalancerRule := func(t *testing.T) {
+ if _, ok := response["createGlobalLoadBalancerRule"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.LoadBalancer.NewCreateGlobalLoadBalancerRuleParams("gslbdomainname", "gslbservicetype", "name", 0)
+ _, err := client.LoadBalancer.CreateGlobalLoadBalancerRule(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("CreateGlobalLoadBalancerRule", testcreateGlobalLoadBalancerRule)
+
+ testcreateLBHealthCheckPolicy := func(t *testing.T) {
+ if _, ok := response["createLBHealthCheckPolicy"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.LoadBalancer.NewCreateLBHealthCheckPolicyParams("lbruleid")
+ _, err := client.LoadBalancer.CreateLBHealthCheckPolicy(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("CreateLBHealthCheckPolicy", testcreateLBHealthCheckPolicy)
+
+ testcreateLBStickinessPolicy := func(t *testing.T) {
+ if _, ok := response["createLBStickinessPolicy"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.LoadBalancer.NewCreateLBStickinessPolicyParams("lbruleid", "methodname", "name")
+ _, err := client.LoadBalancer.CreateLBStickinessPolicy(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("CreateLBStickinessPolicy", testcreateLBStickinessPolicy)
+
+ testcreateLoadBalancer := func(t *testing.T) {
+ if _, ok := response["createLoadBalancer"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.LoadBalancer.NewCreateLoadBalancerParams("algorithm", 0, "name", "networkid", "scheme", "sourceipaddressnetworkid", 0)
+ _, err := client.LoadBalancer.CreateLoadBalancer(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("CreateLoadBalancer", testcreateLoadBalancer)
+
+ testcreateLoadBalancerRule := func(t *testing.T) {
+ if _, ok := response["createLoadBalancerRule"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.LoadBalancer.NewCreateLoadBalancerRuleParams("algorithm", "name", 0, 0)
+ _, err := client.LoadBalancer.CreateLoadBalancerRule(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("CreateLoadBalancerRule", testcreateLoadBalancerRule)
+
+ testdeleteGlobalLoadBalancerRule := func(t *testing.T) {
+ if _, ok := response["deleteGlobalLoadBalancerRule"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.LoadBalancer.NewDeleteGlobalLoadBalancerRuleParams("id")
+ _, err := client.LoadBalancer.DeleteGlobalLoadBalancerRule(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("DeleteGlobalLoadBalancerRule", testdeleteGlobalLoadBalancerRule)
+
+ testdeleteLBHealthCheckPolicy := func(t *testing.T) {
+ if _, ok := response["deleteLBHealthCheckPolicy"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.LoadBalancer.NewDeleteLBHealthCheckPolicyParams("id")
+ _, err := client.LoadBalancer.DeleteLBHealthCheckPolicy(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("DeleteLBHealthCheckPolicy", testdeleteLBHealthCheckPolicy)
+
+ testdeleteLBStickinessPolicy := func(t *testing.T) {
+ if _, ok := response["deleteLBStickinessPolicy"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.LoadBalancer.NewDeleteLBStickinessPolicyParams("id")
+ _, err := client.LoadBalancer.DeleteLBStickinessPolicy(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("DeleteLBStickinessPolicy", testdeleteLBStickinessPolicy)
+
+ testdeleteLoadBalancer := func(t *testing.T) {
+ if _, ok := response["deleteLoadBalancer"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.LoadBalancer.NewDeleteLoadBalancerParams("id")
+ _, err := client.LoadBalancer.DeleteLoadBalancer(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("DeleteLoadBalancer", testdeleteLoadBalancer)
+
+ testdeleteLoadBalancerRule := func(t *testing.T) {
+ if _, ok := response["deleteLoadBalancerRule"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.LoadBalancer.NewDeleteLoadBalancerRuleParams("id")
+ _, err := client.LoadBalancer.DeleteLoadBalancerRule(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("DeleteLoadBalancerRule", testdeleteLoadBalancerRule)
+
+ testdeleteNetscalerLoadBalancer := func(t *testing.T) {
+ if _, ok := response["deleteNetscalerLoadBalancer"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.LoadBalancer.NewDeleteNetscalerLoadBalancerParams("lbdeviceid")
+ _, err := client.LoadBalancer.DeleteNetscalerLoadBalancer(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("DeleteNetscalerLoadBalancer", testdeleteNetscalerLoadBalancer)
+
+ testdeleteSslCert := func(t *testing.T) {
+ if _, ok := response["deleteSslCert"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.LoadBalancer.NewDeleteSslCertParams("id")
+ _, err := client.LoadBalancer.DeleteSslCert(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("DeleteSslCert", testdeleteSslCert)
+
+ testlistGlobalLoadBalancerRules := func(t *testing.T) {
+ if _, ok := response["listGlobalLoadBalancerRules"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.LoadBalancer.NewListGlobalLoadBalancerRulesParams()
+ _, err := client.LoadBalancer.ListGlobalLoadBalancerRules(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListGlobalLoadBalancerRules", testlistGlobalLoadBalancerRules)
+
+ testlistLBHealthCheckPolicies := func(t *testing.T) {
+ if _, ok := response["listLBHealthCheckPolicies"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.LoadBalancer.NewListLBHealthCheckPoliciesParams()
+ _, err := client.LoadBalancer.ListLBHealthCheckPolicies(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListLBHealthCheckPolicies", testlistLBHealthCheckPolicies)
+
+ testlistLBStickinessPolicies := func(t *testing.T) {
+ if _, ok := response["listLBStickinessPolicies"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.LoadBalancer.NewListLBStickinessPoliciesParams()
+ _, err := client.LoadBalancer.ListLBStickinessPolicies(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListLBStickinessPolicies", testlistLBStickinessPolicies)
+
+ testlistLoadBalancerRuleInstances := func(t *testing.T) {
+ if _, ok := response["listLoadBalancerRuleInstances"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.LoadBalancer.NewListLoadBalancerRuleInstancesParams("id")
+ _, err := client.LoadBalancer.ListLoadBalancerRuleInstances(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListLoadBalancerRuleInstances", testlistLoadBalancerRuleInstances)
+
+ testlistLoadBalancerRules := func(t *testing.T) {
+ if _, ok := response["listLoadBalancerRules"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.LoadBalancer.NewListLoadBalancerRulesParams()
+ _, err := client.LoadBalancer.ListLoadBalancerRules(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListLoadBalancerRules", testlistLoadBalancerRules)
+
+ testlistLoadBalancers := func(t *testing.T) {
+ if _, ok := response["listLoadBalancers"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.LoadBalancer.NewListLoadBalancersParams()
+ _, err := client.LoadBalancer.ListLoadBalancers(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListLoadBalancers", testlistLoadBalancers)
+
+ testlistNetscalerLoadBalancers := func(t *testing.T) {
+ if _, ok := response["listNetscalerLoadBalancers"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.LoadBalancer.NewListNetscalerLoadBalancersParams()
+ _, err := client.LoadBalancer.ListNetscalerLoadBalancers(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListNetscalerLoadBalancers", testlistNetscalerLoadBalancers)
+
+ testlistSslCerts := func(t *testing.T) {
+ if _, ok := response["listSslCerts"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.LoadBalancer.NewListSslCertsParams()
+ _, err := client.LoadBalancer.ListSslCerts(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListSslCerts", testlistSslCerts)
+
+ testremoveCertFromLoadBalancer := func(t *testing.T) {
+ if _, ok := response["removeCertFromLoadBalancer"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.LoadBalancer.NewRemoveCertFromLoadBalancerParams("lbruleid")
+ _, err := client.LoadBalancer.RemoveCertFromLoadBalancer(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("RemoveCertFromLoadBalancer", testremoveCertFromLoadBalancer)
+
+ testremoveFromGlobalLoadBalancerRule := func(t *testing.T) {
+ if _, ok := response["removeFromGlobalLoadBalancerRule"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.LoadBalancer.NewRemoveFromGlobalLoadBalancerRuleParams("id", []string{})
+ _, err := client.LoadBalancer.RemoveFromGlobalLoadBalancerRule(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("RemoveFromGlobalLoadBalancerRule", testremoveFromGlobalLoadBalancerRule)
+
+ testremoveFromLoadBalancerRule := func(t *testing.T) {
+ if _, ok := response["removeFromLoadBalancerRule"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.LoadBalancer.NewRemoveFromLoadBalancerRuleParams("id")
+ _, err := client.LoadBalancer.RemoveFromLoadBalancerRule(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("RemoveFromLoadBalancerRule", testremoveFromLoadBalancerRule)
+
+ testupdateGlobalLoadBalancerRule := func(t *testing.T) {
+ if _, ok := response["updateGlobalLoadBalancerRule"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.LoadBalancer.NewUpdateGlobalLoadBalancerRuleParams("id")
+ _, err := client.LoadBalancer.UpdateGlobalLoadBalancerRule(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("UpdateGlobalLoadBalancerRule", testupdateGlobalLoadBalancerRule)
+
+ testupdateLBHealthCheckPolicy := func(t *testing.T) {
+ if _, ok := response["updateLBHealthCheckPolicy"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.LoadBalancer.NewUpdateLBHealthCheckPolicyParams("id")
+ _, err := client.LoadBalancer.UpdateLBHealthCheckPolicy(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("UpdateLBHealthCheckPolicy", testupdateLBHealthCheckPolicy)
+
+ testupdateLBStickinessPolicy := func(t *testing.T) {
+ if _, ok := response["updateLBStickinessPolicy"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.LoadBalancer.NewUpdateLBStickinessPolicyParams("id")
+ _, err := client.LoadBalancer.UpdateLBStickinessPolicy(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("UpdateLBStickinessPolicy", testupdateLBStickinessPolicy)
+
+ testupdateLoadBalancer := func(t *testing.T) {
+ if _, ok := response["updateLoadBalancer"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.LoadBalancer.NewUpdateLoadBalancerParams("id")
+ _, err := client.LoadBalancer.UpdateLoadBalancer(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("UpdateLoadBalancer", testupdateLoadBalancer)
+
+ testupdateLoadBalancerRule := func(t *testing.T) {
+ if _, ok := response["updateLoadBalancerRule"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.LoadBalancer.NewUpdateLoadBalancerRuleParams("id")
+ _, err := client.LoadBalancer.UpdateLoadBalancerRule(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("UpdateLoadBalancerRule", testupdateLoadBalancerRule)
+
+ testuploadSslCert := func(t *testing.T) {
+ if _, ok := response["uploadSslCert"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.LoadBalancer.NewUploadSslCertParams("certificate", "name", "privatekey")
+ _, err := client.LoadBalancer.UploadSslCert(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("UploadSslCert", testuploadSslCert)
+
+}
diff --git a/test/NATService_test.go b/test/NATService_test.go
new file mode 100644
index 0000000..b57322a
--- /dev/null
+++ b/test/NATService_test.go
@@ -0,0 +1,98 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+package test
+
+import (
+ "testing"
+
+ "github.com/apache/cloudstack-go/v2/cloudstack"
+)
+
+func TestNATService(t *testing.T) {
+ service := "NATService"
+ response, err := readData(service)
+ if err != nil {
+ t.Skipf("Skipping test as %v", err)
+ }
+ server := CreateTestServer(t, response)
+ client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true)
+ defer server.Close()
+
+ testcreateIpForwardingRule := func(t *testing.T) {
+ if _, ok := response["createIpForwardingRule"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.NAT.NewCreateIpForwardingRuleParams("ipaddressid", "protocol", 0)
+ _, err := client.NAT.CreateIpForwardingRule(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("CreateIpForwardingRule", testcreateIpForwardingRule)
+
+ testdeleteIpForwardingRule := func(t *testing.T) {
+ if _, ok := response["deleteIpForwardingRule"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.NAT.NewDeleteIpForwardingRuleParams("id")
+ _, err := client.NAT.DeleteIpForwardingRule(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("DeleteIpForwardingRule", testdeleteIpForwardingRule)
+
+ testdisableStaticNat := func(t *testing.T) {
+ if _, ok := response["disableStaticNat"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.NAT.NewDisableStaticNatParams("ipaddressid")
+ _, err := client.NAT.DisableStaticNat(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("DisableStaticNat", testdisableStaticNat)
+
+ testenableStaticNat := func(t *testing.T) {
+ if _, ok := response["enableStaticNat"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.NAT.NewEnableStaticNatParams("ipaddressid", "virtualmachineid")
+ _, err := client.NAT.EnableStaticNat(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("EnableStaticNat", testenableStaticNat)
+
+ testlistIpForwardingRules := func(t *testing.T) {
+ if _, ok := response["listIpForwardingRules"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.NAT.NewListIpForwardingRulesParams()
+ _, err := client.NAT.ListIpForwardingRules(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListIpForwardingRules", testlistIpForwardingRules)
+
+}
diff --git a/test/NetworkACLService_test.go b/test/NetworkACLService_test.go
new file mode 100644
index 0000000..4364ecf
--- /dev/null
+++ b/test/NetworkACLService_test.go
@@ -0,0 +1,146 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+package test
+
+import (
+ "testing"
+
+ "github.com/apache/cloudstack-go/v2/cloudstack"
+)
+
+func TestNetworkACLService(t *testing.T) {
+ service := "NetworkACLService"
+ response, err := readData(service)
+ if err != nil {
+ t.Skipf("Skipping test as %v", err)
+ }
+ server := CreateTestServer(t, response)
+ client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true)
+ defer server.Close()
+
+ testcreateNetworkACL := func(t *testing.T) {
+ if _, ok := response["createNetworkACL"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.NetworkACL.NewCreateNetworkACLParams("protocol")
+ _, err := client.NetworkACL.CreateNetworkACL(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("CreateNetworkACL", testcreateNetworkACL)
+
+ testcreateNetworkACLList := func(t *testing.T) {
+ if _, ok := response["createNetworkACLList"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.NetworkACL.NewCreateNetworkACLListParams("name", "vpcid")
+ _, err := client.NetworkACL.CreateNetworkACLList(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("CreateNetworkACLList", testcreateNetworkACLList)
+
+ testdeleteNetworkACL := func(t *testing.T) {
+ if _, ok := response["deleteNetworkACL"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.NetworkACL.NewDeleteNetworkACLParams("id")
+ _, err := client.NetworkACL.DeleteNetworkACL(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("DeleteNetworkACL", testdeleteNetworkACL)
+
+ testdeleteNetworkACLList := func(t *testing.T) {
+ if _, ok := response["deleteNetworkACLList"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.NetworkACL.NewDeleteNetworkACLListParams("id")
+ _, err := client.NetworkACL.DeleteNetworkACLList(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("DeleteNetworkACLList", testdeleteNetworkACLList)
+
+ testlistNetworkACLLists := func(t *testing.T) {
+ if _, ok := response["listNetworkACLLists"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.NetworkACL.NewListNetworkACLListsParams()
+ _, err := client.NetworkACL.ListNetworkACLLists(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListNetworkACLLists", testlistNetworkACLLists)
+
+ testlistNetworkACLs := func(t *testing.T) {
+ if _, ok := response["listNetworkACLs"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.NetworkACL.NewListNetworkACLsParams()
+ _, err := client.NetworkACL.ListNetworkACLs(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ListNetworkACLs", testlistNetworkACLs)
+
+ testreplaceNetworkACLList := func(t *testing.T) {
+ if _, ok := response["replaceNetworkACLList"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.NetworkACL.NewReplaceNetworkACLListParams("aclid")
+ _, err := client.NetworkACL.ReplaceNetworkACLList(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("ReplaceNetworkACLList", testreplaceNetworkACLList)
+
+ testupdateNetworkACLItem := func(t *testing.T) {
+ if _, ok := response["updateNetworkACLItem"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.NetworkACL.NewUpdateNetworkACLItemParams("id")
+ _, err := client.NetworkACL.UpdateNetworkACLItem(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("UpdateNetworkACLItem", testupdateNetworkACLItem)
+
+ testupdateNetworkACLList := func(t *testing.T) {
+ if _, ok := response["updateNetworkACLList"]; !ok {
+ t.Skipf("Skipping as no json response is provided in testdata")
+ }
+ p := client.NetworkACL.NewUpdateNetworkACLListParams("id")
+ _, err := client.NetworkACL.UpdateNetworkACLList(p)
+ if err != nil {
+ t.Errorf(err.Error())
+ }
+ }
+ t.Run("UpdateNetworkACLList", testupdateNetworkACLList)
+
+}
diff --git a/test/NetworkDeviceService_test.go b/test/NetworkDeviceService_test.go
new file mode 100644
index 0000000..47b8613
--- /dev/null
+++ b/test/NetworkDeviceService_test.go
@@ -0,0 +1,74 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements. See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership. The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied. See the License for the
+// specific language governing permissions and limitations
+// under the License.
+//
+
+package test
+
+import (
+ "testing"
+
+ "github.com/apache/cloudstack-go/v2/cloudstack"
+)
+
+func TestNetworkDeviceService(t *testing.T) {
+ service := "NetworkDeviceService"
+ response, err := readData(service)
+ if err != nil {
+ t.Skipf("Skipping test as %v", err)
+ }
+ server := CreateTestServer(t, response)
+ client := cloudstack.NewClient(server.URL, "APIKEY", "SECRETKEY", true)
+ defer server.Close()
+
+ testaddNetworkDevice := func(t *testing.T) {
... 7962 lines suppressed ...