1/*
2Package secgroups provides the ability to manage security groups through the
3Nova API.
4
5This API has been deprecated and will be removed from a future release of the
6Nova API service.
7
8For environments that support this extension, this package can be used
9regardless of if either Neutron or nova-network is used as the cloud's network
10service.
11
12Example to List Security Groups
13
14	allPages, err := secroups.List(computeClient).AllPages()
15	if err != nil {
16		panic(err)
17	}
18
19	allSecurityGroups, err := secgroups.ExtractSecurityGroups(allPages)
20	if err != nil {
21		panic(err)
22	}
23
24	for _, sg := range allSecurityGroups {
25		fmt.Printf("%+v\n", sg)
26	}
27
28Example to List Security Groups by Server
29
30	serverID := "aab3ad01-9956-4623-a29b-24afc89a7d36"
31
32	allPages, err := secroups.ListByServer(computeClient, serverID).AllPages()
33	if err != nil {
34		panic(err)
35	}
36
37	allSecurityGroups, err := secgroups.ExtractSecurityGroups(allPages)
38	if err != nil {
39		panic(err)
40	}
41
42	for _, sg := range allSecurityGroups {
43		fmt.Printf("%+v\n", sg)
44	}
45
46Example to Create a Security Group
47
48	createOpts := secgroups.CreateOpts{
49		Name:        "group_name",
50		Description: "A Security Group",
51	}
52
53	sg, err := secgroups.Create(computeClient, createOpts).Extract()
54	if err != nil {
55		panic(err)
56	}
57
58Example to Create a Security Group Rule
59
60	sgID := "37d94f8a-d136-465c-ae46-144f0d8ef141"
61
62	createOpts := secgroups.CreateRuleOpts{
63		ParentGroupID: sgID,
64		FromPort:      22,
65		ToPort:        22,
66		IPProtocol:    "tcp",
67		CIDR:          "0.0.0.0/0",
68	}
69
70	rule, err := secgroups.CreateRule(computeClient, createOpts).Extract()
71	if err != nil {
72		panic(err)
73	}
74
75Example to Add a Security Group to a Server
76
77	serverID := "aab3ad01-9956-4623-a29b-24afc89a7d36"
78	sgID := "37d94f8a-d136-465c-ae46-144f0d8ef141"
79
80	err := secgroups.AddServer(computeClient, serverID, sgID).ExtractErr()
81	if err != nil {
82		panic(err)
83	}
84
85Example to Remove a Security Group from a Server
86
87	serverID := "aab3ad01-9956-4623-a29b-24afc89a7d36"
88	sgID := "37d94f8a-d136-465c-ae46-144f0d8ef141"
89
90	err := secgroups.RemoveServer(computeClient, serverID, sgID).ExtractErr()
91	if err != nil {
92		panic(err)
93	}
94
95Example to Delete a Security Group
96
97
98	sgID := "37d94f8a-d136-465c-ae46-144f0d8ef141"
99	err := secgroups.Delete(computeClient, sgID).ExtractErr()
100	if err != nil {
101		panic(err)
102	}
103
104Example to Delete a Security Group Rule
105
106	ruleID := "6221fe3e-383d-46c9-a3a6-845e66c1e8b4"
107	err := secgroups.DeleteRule(computeClient, ruleID).ExtractErr()
108	if err != nil {
109		panic(err)
110	}
111*/
112package secgroups
113