func TestNetworkCRUDOperations(t *testing.T) { Setup(t) defer Teardown() // Create a network n, err := networks.Create(Client, os.CreateOpts{Name: "sample_network", AdminStateUp: os.Up}).Extract() th.AssertNoErr(t, err) defer networks.Delete(Client, n.ID) th.AssertEquals(t, "sample_network", n.Name) th.AssertEquals(t, true, n.AdminStateUp) networkID := n.ID // List networks pager := networks.List(Client, os.ListOpts{Limit: 2}) err = pager.EachPage(func(page pagination.Page) (bool, error) { t.Logf("--- Page ---") networkList, err := os.ExtractNetworks(page) th.AssertNoErr(t, err) for _, n := range networkList { t.Logf("Network: ID [%s] Name [%s] Status [%s] Is shared? [%s]", n.ID, n.Name, n.Status, strconv.FormatBool(n.Shared)) } return true, nil }) th.CheckNoErr(t, err) // Get a network if networkID == "" { t.Fatalf("In order to retrieve a network, the NetworkID must be set") } n, err = networks.Get(Client, networkID).Extract() th.AssertNoErr(t, err) th.AssertEquals(t, "ACTIVE", n.Status) th.AssertDeepEquals(t, []string{}, n.Subnets) th.AssertEquals(t, "sample_network", n.Name) th.AssertEquals(t, true, n.AdminStateUp) th.AssertEquals(t, false, n.Shared) th.AssertEquals(t, networkID, n.ID) // Update network n, err = networks.Update(Client, networkID, os.UpdateOpts{Name: "new_network_name"}).Extract() th.AssertNoErr(t, err) th.AssertEquals(t, "new_network_name", n.Name) // Delete network res := networks.Delete(Client, networkID) th.AssertNoErr(t, res.Err) }
func (command *commandDelete) Execute(resource *handler.Resource) { networkID := resource.Params.(*paramsDelete).networkID err := networks.Delete(command.Ctx.ServiceClient, networkID).ExtractErr() if err != nil { resource.Err = err return } resource.Result = fmt.Sprintf("Successfully deleted network [%s] \n", networkID) }
func TestSubnetCRUD(t *testing.T) { Setup(t) defer Teardown() // Setup network t.Log("Setting up network") n, err := networks.Create(Client, osNetworks.CreateOpts{Name: "tmp_network", AdminStateUp: osNetworks.Up}).Extract() th.AssertNoErr(t, err) networkID := n.ID defer networks.Delete(Client, networkID) // Create subnet t.Log("Create subnet") enable := false opts := osSubnets.CreateOpts{ NetworkID: networkID, CIDR: "192.168.199.0/24", IPVersion: osSubnets.IPv4, Name: "my_subnet", EnableDHCP: &enable, } s, err := subnets.Create(Client, opts).Extract() th.AssertNoErr(t, err) th.AssertEquals(t, networkID, s.NetworkID) th.AssertEquals(t, "192.168.199.0/24", s.CIDR) th.AssertEquals(t, 4, s.IPVersion) th.AssertEquals(t, "my_subnet", s.Name) th.AssertEquals(t, false, s.EnableDHCP) subnetID := s.ID // Get subnet t.Log("Getting subnet") s, err = subnets.Get(Client, subnetID).Extract() th.AssertNoErr(t, err) th.AssertEquals(t, subnetID, s.ID) // Update subnet t.Log("Update subnet") s, err = subnets.Update(Client, subnetID, osSubnets.UpdateOpts{Name: "new_subnet_name"}).Extract() th.AssertNoErr(t, err) th.AssertEquals(t, "new_subnet_name", s.Name) // Delete subnet t.Log("Delete subnet") res := subnets.Delete(Client, subnetID) th.AssertNoErr(t, res.Err) }
func TestPortCRUD(t *testing.T) { Setup(t) defer Teardown() // Setup network t.Log("Setting up network") networkID, err := createNetwork() th.AssertNoErr(t, err) defer networks.Delete(Client, networkID) // Setup subnet t.Logf("Setting up subnet on network %s", networkID) subnetID, err := createSubnet(networkID) th.AssertNoErr(t, err) defer subnets.Delete(Client, subnetID) // Create port t.Logf("Create port based on subnet %s", subnetID) portID := createPort(t, networkID, subnetID) // List ports t.Logf("Listing all ports") listPorts(t) // Get port if portID == "" { t.Fatalf("In order to retrieve a port, the portID must be set") } p, err := ports.Get(Client, portID).Extract() th.AssertNoErr(t, err) th.AssertEquals(t, portID, p.ID) // Update port p, err = ports.Update(Client, portID, osPorts.UpdateOpts{Name: "new_port_name"}).Extract() th.AssertNoErr(t, err) th.AssertEquals(t, "new_port_name", p.Name) // Delete port res := ports.Delete(Client, portID) th.AssertNoErr(t, res.Err) }