func createTenant(server *mocks.Server, client *Client) string { mockTask := createMockTask("CREATE_TENANT", "COMPLETED") server.SetResponseJson(200, mockTask) tenantSpec := &TenantCreateSpec{Name: randomString(10, "go-sdk-tenant-")} task, err := client.Tenants.Create(tenantSpec) GinkgoT().Log(err) Expect(err).Should(BeNil()) return task.Entity.ID }
func createResTicket(server *mocks.Server, client *Client, tenantID string) string { resTicketName := randomString(10) spec := &ResourceTicketCreateSpec{ Name: resTicketName, Limits: []QuotaLineItem{QuotaLineItem{Unit: "GB", Value: 16, Key: "vm.memory"}}, } mockTask := createMockTask("CREATE_RESOURCE_TICKET", "COMPLETED") server.SetResponseJson(200, mockTask) _, err := client.Tenants.CreateResourceTicket(tenantID, spec) GinkgoT().Log(err) Expect(err).Should(BeNil()) return resTicketName }
func createImage(server *mocks.Server, client *Client) string { mockTask := createMockTask("CREATE_IMAGE", "COMPLETED", createMockStep("UPLOAD_IMAGE", "COMPLETED")) server.SetResponseJson(200, mockTask) // create image from file imagePath := "../testdata/tty_tiny.ova" task, err := client.Images.CreateFromFile(imagePath, &ImageCreateOptions{ReplicationType: "ON_DEMAND"}) task, err = client.Tasks.Wait(task.ID) GinkgoT().Log(err) Expect(err).Should(BeNil()) return task.Entity.ID }
// Returns flavorName, flavorID func createFlavor(server *mocks.Server, client *Client) (string, string) { mockTask := createMockTask("CREATE_FLAVOR", "COMPLETED") server.SetResponseJson(200, mockTask) flavorName := randomString(10, "go-sdk-flavor-") flavorSpec := &FlavorCreateSpec{ []QuotaLineItem{QuotaLineItem{"COUNT", 1, "persistent-disk.cost"}}, "persistent-disk", flavorName, } task, err := client.Flavors.Create(flavorSpec) GinkgoT().Log(err) Expect(err).Should(BeNil()) return flavorName, task.Entity.ID }
func createProject(server *mocks.Server, client *Client, tenantID string, resName string) string { mockTask := createMockTask("CREATE_PROJECT", "COMPLETED") server.SetResponseJson(200, mockTask) projSpec := &ProjectCreateSpec{ ResourceTicket: ResourceTicketReservation{ resName, []QuotaLineItem{QuotaLineItem{"GB", 2, "vm.memory"}}, }, Name: randomString(10, "go-sdk-project-"), } task, err := client.Tenants.CreateProject(tenantID, projSpec) GinkgoT().Log(err) Expect(err).Should(BeNil()) return task.Entity.ID }
func createMockAuthInfo(server *mocks.Server) (mock *AuthInfo) { mock = &AuthInfo{ Enabled: false, } if server == nil { return } address, port, err := server.GetAddressAndPort() if err != nil { return } mock.Enabled = true mock.Endpoint = address mock.Port = port return }
// // This product may include a number of subcomponents with separate copyright notices and // license terms. Your use of these subcomponents is subject to the terms and conditions // of the subcomponent's license, as noted in the LICENSE file. package photon import ( "github.com/onsi/ginkgo" "github.com/onsi/gomega" "github.com/vmware/photon-controller-go-sdk/photon/internal/mocks" ) var _ = ginkgo.Describe("Info", func() { var ( server *mocks.Server client *Client ) ginkgo.BeforeEach(func() { server, client = testSetup() }) ginkgo.AfterEach(func() { server.Close() }) ginkgo.Describe("Get", func() { ginkgo.It("Get deployment info successfully", func() { baseVersion := "1.1.0" fullVersion := "1.1.0-bcea65f" gitCommitHash := "bcea65f"
// of the subcomponent's license, as noted in the LICENSE file. package photon import ( . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" "github.com/vmware/photon-controller-go-sdk/photon/internal/mocks" ) var _ = Describe("Cluster", func() { var ( server *mocks.Server client *Client kubernetesClusterSpec *ClusterCreateSpec mesosClusterSpec *ClusterCreateSpec tenantID string resName string projID string ) BeforeEach(func() { if isIntegrationTest() { Skip("Skipping cluster test on integration mode. Need to set extendedProperties to use real IPs and masks") } server, client = testSetup() tenantID = createTenant(server, client) resName = createResTicket(server, client, tenantID) projID = createProject(server, client, tenantID, resName) kubernetesMap := map[string]string{"dns": "1.1.1.1", "gateway": "1.1.1.2", "netmask": "255.255.255.128", "master_ip": "1.1.1.3", "container_network": "1.2.0.0/16"}
// license terms. Your use of these subcomponents is subject to the terms and conditions // of the subcomponent's license, as noted in the LICENSE file. package photon import ( "time" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" "github.com/vmware/photon-controller-go-sdk/photon/internal/mocks" ) var _ = Describe("ErrorTesting", func() { var ( server *mocks.Server client *Client ) BeforeEach(func() { server, client = testSetup() }) AfterEach(func() { server.Close() }) It("TaskError", func() { // Unit test only if isIntegrationTest() { return }
package photon import ( "fmt" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" "github.com/vmware/photon-controller-go-sdk/photon/internal/mocks" "github.com/vmware/photon-controller-go-sdk/photon/lightwave" ) var _ = Describe("Auth", func() { var ( server *mocks.Server authServer *mocks.Server client *Client ) BeforeEach(func() { if isIntegrationTest() { Skip("Skipping auth test as we don't know if auth is on or off.") } server, client = testSetup() authServer = mocks.NewTlsTestServer() }) AfterEach(func() { server.Close() authServer.Close()
// This product may include a number of subcomponents with separate copyright notices and // license terms. Your use of these subcomponents is subject to the terms and conditions // of the subcomponent's license, as noted in the LICENSE file. package photon import ( . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" "github.com/vmware/photon-controller-go-sdk/photon/internal/mocks" ) var _ = Describe("Host", func() { var ( server *mocks.Server client *Client hostSpec *HostCreateSpec ) BeforeEach(func() { if isIntegrationTest() { Skip("Skipping Host test on integration mode. Unable to prevent address host collision") } server, client = testSetup() hostSpec = &HostCreateSpec{ Username: randomString(10), Password: randomString(10), Address: randomAddress(), Tags: []string{"CLOUD"}, Metadata: map[string]string{"Test": "go-sdk-host"}, }
package photon import ( "fmt" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" "github.com/vmware/photon-controller-go-sdk/photon/internal/mocks" ) var _ = Describe("Project", func() { var ( server *mocks.Server client *Client tenantID string resName string projID string flavorName string flavorID string ) BeforeEach(func() { server, client = testSetup() tenantID = createTenant(server, client) resName = createResTicket(server, client, tenantID) projID = createProject(server, client, tenantID, resName) flavorName, flavorID = createFlavor(server, client) }) AfterEach(func() {
package photon import ( . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" "github.com/vmware/photon-controller-go-sdk/photon/internal/mocks" "os" ) var _ = Describe("VM", func() { var ( server *mocks.Server client *Client tenantID string resName string projID string imageID string flavorSpec *FlavorCreateSpec vmFlavorSpec *FlavorCreateSpec vmSpec *VmCreateSpec ) BeforeEach(func() { server, client = testSetup() tenantID = createTenant(server, client) resName = createResTicket(server, client, tenantID) projID = createProject(server, client, tenantID, resName) imageID = createImage(server, client) flavorSpec = &FlavorCreateSpec{ []QuotaLineItem{QuotaLineItem{"COUNT", 1, "ephemeral-disk.cost"}}, "ephemeral-disk",
// This product may include a number of subcomponents with separate copyright notices and // license terms. Your use of these subcomponents is subject to the terms and conditions // of the subcomponent's license, as noted in the LICENSE file. package photon import ( . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" "github.com/vmware/photon-controller-go-sdk/photon/internal/mocks" ) var _ = Describe("Flavor", func() { var ( server *mocks.Server client *Client flavorSpec *FlavorCreateSpec ) BeforeEach(func() { server, client = testSetup() flavorSpec = &FlavorCreateSpec{ Name: randomString(10, "go-sdk-flavor-"), Kind: "vm", Cost: []QuotaLineItem{QuotaLineItem{"GB", 16, "vm.memory"}}, } }) AfterEach(func() { cleanFlavors(client) server.Close()
// of the subcomponent's license, as noted in the LICENSE file. package photon import ( "reflect" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" "github.com/vmware/photon-controller-go-sdk/photon/internal/mocks" ) var _ = Describe("Deployment", func() { var ( server *mocks.Server client *Client deploymentSpec *DeploymentCreateSpec ) BeforeEach(func() { if isIntegrationTest() { Skip("Skipping deployment test on integration mode. Need undeployed environment") } server, client = testSetup() deploymentSpec = &DeploymentCreateSpec{ ImageDatastores: []string{randomString(10, "go-sdk-deployment-")}, UseImageDatastoreForVms: true, Auth: &AuthInfo{ Enabled: false, }, }
// license terms. Your use of these subcomponents is subject to the terms and conditions // of the subcomponent's license, as noted in the LICENSE file. package photon import ( "fmt" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" "github.com/vmware/photon-controller-go-sdk/photon/internal/mocks" ) var _ = Describe("Tenant", func() { var ( server *mocks.Server client *Client ) BeforeEach(func() { server, client = testSetup() }) AfterEach(func() { cleanTenants(client) server.Close() }) Describe("CreateAndDeleteTenant", func() { It("Tenant create and delete succeeds", func() { mockTask := createMockTask("CREATE_TENANT", "COMPLETED") server.SetResponseJson(200, mockTask)
// This product may include a number of subcomponents with separate copyright notices and // license terms. Your use of these subcomponents is subject to the terms and conditions // of the subcomponent's license, as noted in the LICENSE file. package photon import ( "github.com/onsi/ginkgo" "github.com/onsi/gomega" "github.com/vmware/photon-controller-go-sdk/photon/internal/mocks" ) var _ = ginkgo.Describe("VirtualSubnet", func() { var ( server *mocks.Server client *Client networkSpec *VirtualSubnetCreateSpec ) var projectId = "project1" ginkgo.BeforeEach(func() { server, client = testSetup() networkSpec = &VirtualSubnetCreateSpec{ Name: randomString(10, "go-sdk-virtual-network-"), Description: "a test virtual network", RoutingType: "ROUTED", Size: 256, ReservedStaticIpSize: 20, } })
// This product may include a number of subcomponents with separate copyright notices and // license terms. Your use of these subcomponents is subject to the terms and conditions // of the subcomponent's license, as noted in the LICENSE file. package photon import ( . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" "github.com/vmware/photon-controller-go-sdk/photon/internal/mocks" ) var _ = Describe("ResourceTicket", func() { var ( server *mocks.Server client *Client tenantID string ) BeforeEach(func() { server, client = testSetup() tenantID = createTenant(server, client) }) AfterEach(func() { cleanTenants(client) server.Close() }) Describe("GetResourceTicketTasks", func() { It("GetTasks returns a completed task", func() {
// license terms. Your use of these subcomponents is subject to the terms and conditions // of the subcomponent's license, as noted in the LICENSE file. package photon import ( "os" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" "github.com/vmware/photon-controller-go-sdk/photon/internal/mocks" ) var _ = Describe("Image", func() { var ( server *mocks.Server client *Client ) BeforeEach(func() { server, client = testSetup() }) AfterEach(func() { cleanImages(client) server.Close() }) Describe("CreateAndDeleteImage", func() { It("Image create from file and delete succeeds", func() { mockTask := createMockTask("CREATE_IMAGE", "COMPLETED", createMockStep("UPLOAD_IMAGE", "COMPLETED")) server.SetResponseJson(200, mockTask)
"crypto/rand" "crypto/rsa" "crypto/x509" "crypto/x509/pkix" "encoding/pem" "math/big" "time" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" "github.com/vmware/photon-controller-go-sdk/photon/internal/mocks" ) var _ = Describe("OIDCClient", func() { var ( client *OIDCClient server *mocks.Server ) AfterEach(func() { if server != nil { server.Close() server = nil } }) Describe("NewOIDCClient", func() { It("Trims trailing '/' from endpoint", func() { endpointList := []string{ "http://10.146.1.0/", "http://10.146.1.0", }
// // This product may include a number of subcomponents with separate copyright notices and // license terms. Your use of these subcomponents is subject to the terms and conditions // of the subcomponent's license, as noted in the LICENSE file. package photon import ( . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" "github.com/vmware/photon-controller-go-sdk/photon/internal/mocks" ) var _ = Describe("AvailabilityZone", func() { var ( server *mocks.Server client *Client ) BeforeEach(func() { server, client = testSetup() }) AfterEach(func() { server.Close() }) Describe("CreateAndDeleteAvailabilityZone", func() { It("AvailabilityZone create and delete succeeds", func() { mockTask := createMockTask("CREATE_AVAILABILITYZONE", "COMPLETED") server.SetResponseJson(200, mockTask) availabilityzoneSpec := &AvailabilityZoneCreateSpec{Name: randomString(10, "go-sdk-availabilityzone-")}
// of the subcomponent's license, as noted in the LICENSE file. package photon import ( . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" "github.com/vmware/photon-controller-go-sdk/photon/internal/mocks" ) var _ = Describe("Disk", func() { var ( server *mocks.Server client *Client tenantID string resName string projID string flavorName string flavorID string diskSpec *DiskCreateSpec ) BeforeEach(func() { server, client = testSetup() tenantID = createTenant(server, client) resName = createResTicket(server, client, tenantID) projID = createProject(server, client, tenantID, resName) flavorName, flavorID = createFlavor(server, client) diskSpec = &DiskCreateSpec{ Flavor: flavorName, Kind: "persistent-disk", CapacityGB: 2,
// // This product may include a number of subcomponents with separate copyright notices and // license terms. Your use of these subcomponents is subject to the terms and conditions // of the subcomponent's license, as noted in the LICENSE file. package photon import ( . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" "github.com/vmware/photon-controller-go-sdk/photon/internal/mocks" ) var _ = Describe("Status", func() { var ( server *mocks.Server client *Client ) BeforeEach(func() { server, client = testSetup() }) AfterEach(func() { server.Close() }) // Simple preliminary test. Make sure status API correctly deserializes the response It("GetStatus200", func() { expectedStruct := Status{"READY", []Component{{"chairman", "", "READY"}, {"housekeeper", "", "READY"}}} server.SetResponseJson(200, expectedStruct)