func (command *commandCreate) Execute(resource *handler.Resource) { opts := resource.Params.(*paramsCreate).opts network, err := networks.Create(command.Ctx.ServiceClient, opts).Extract() if err != nil { resource.Err = err return } resource.Result = networkSingle(network) }
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 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 createSecGroupPort(t *testing.T, groupID string) (string, string) { n, err := rsNetworks.Create(Client, osNetworks.CreateOpts{Name: "tmp_network"}).Extract() th.AssertNoErr(t, err) t.Logf("Created network %s", n.ID) opts := osPorts.CreateOpts{ NetworkID: n.ID, Name: "my_port", SecurityGroups: []string{groupID}, } p, err := rsPorts.Create(Client, opts).Extract() th.AssertNoErr(t, err) t.Logf("Created port %s with security group %s", p.ID, groupID) return n.ID, p.ID }
func createNetwork() (string, error) { res, err := networks.Create(Client, osNetworks.CreateOpts{Name: "tmp_network", AdminStateUp: osNetworks.Up}).Extract() return res.ID, err }