@@ -486,6 +486,52 @@ func (gsp *genericServersProvider) DeleteSecurityGroupById(id int) error {
486
486
return err
487
487
}
488
488
489
+ // See the CloudServersProvider interface for details.
490
+ func (gsp * genericServersProvider ) ListDefaultSGRules () ([]SGRule , error ) {
491
+ var sgrs []SGRule
492
+ err := gsp .context .WithReauth (gsp .access , func () error {
493
+ ep := fmt .Sprintf ("%s/os-security-group-default-rules" , gsp .endpoint )
494
+ return perigee .Get (ep , perigee.Options {
495
+ MoreHeaders : map [string ]string {
496
+ "X-Auth-Token" : gsp .access .AuthToken (),
497
+ },
498
+ Results : & struct {Security_group_default_rules * []SGRule }{& sgrs },
499
+ })
500
+ })
501
+ return sgrs , err
502
+ }
503
+
504
+ // See the CloudServersProvider interface for details.
505
+ func (gsp * genericServersProvider ) CreateDefaultSGRule (r SGRule ) (* SGRule , error ) {
506
+ var sgr * SGRule
507
+ err := gsp .context .WithReauth (gsp .access , func () error {
508
+ ep := fmt .Sprintf ("%s/os-security-group-default-rules" , gsp .endpoint )
509
+ return perigee .Post (ep , perigee.Options {
510
+ MoreHeaders : map [string ]string {
511
+ "X-Auth-Token" : gsp .access .AuthToken (),
512
+ },
513
+ Results : & struct {Security_group_default_rule * * SGRule }{& sgr },
514
+ ReqBody : struct {Security_group_default_rule SGRule `json:"security_group_default_rule"` }{r },
515
+ })
516
+ })
517
+ return sgr , err
518
+ }
519
+
520
+ // See the CloudServersProvider interface for details.
521
+ func (gsp * genericServersProvider ) GetSGRule (id string ) (* SGRule , error ) {
522
+ var sgr * SGRule
523
+ err := gsp .context .WithReauth (gsp .access , func () error {
524
+ ep := fmt .Sprintf ("%s/os-security-group-default-rules/%s" , gsp .endpoint , id )
525
+ return perigee .Get (ep , perigee.Options {
526
+ MoreHeaders : map [string ]string {
527
+ "X-Auth-Token" : gsp .access .AuthToken (),
528
+ },
529
+ Results : & struct {Security_group_default_rule * * SGRule }{& sgr },
530
+ })
531
+ })
532
+ return sgr , err
533
+ }
534
+
489
535
// SecurityGroup provides a description of a security group, including all its rules.
490
536
type SecurityGroup struct {
491
537
Description string `json:"description,omitempty"`
0 commit comments