forked from cerc-io/plugeth
c76ad94492
This commit adds a build step to travis to auto-delete unstable archives older than 14 days (our regular release schedule) from Azure via ci.go purge. The commit also pulls in the latest Azure storage code, also switching over from the old import path (github.com/Azure/azure-sdk-for-go) to the new split one (github.com/Azure/azure-storage-go).
48 lines
1.4 KiB
Go
48 lines
1.4 KiB
Go
package storage
|
|
|
|
import (
|
|
"strings"
|
|
"time"
|
|
)
|
|
|
|
// AccessPolicyDetailsXML has specifics about an access policy
|
|
// annotated with XML details.
|
|
type AccessPolicyDetailsXML struct {
|
|
StartTime time.Time `xml:"Start"`
|
|
ExpiryTime time.Time `xml:"Expiry"`
|
|
Permission string `xml:"Permission"`
|
|
}
|
|
|
|
// SignedIdentifier is a wrapper for a specific policy
|
|
type SignedIdentifier struct {
|
|
ID string `xml:"Id"`
|
|
AccessPolicy AccessPolicyDetailsXML `xml:"AccessPolicy"`
|
|
}
|
|
|
|
// SignedIdentifiers part of the response from GetPermissions call.
|
|
type SignedIdentifiers struct {
|
|
SignedIdentifiers []SignedIdentifier `xml:"SignedIdentifier"`
|
|
}
|
|
|
|
// AccessPolicy is the response type from the GetPermissions call.
|
|
type AccessPolicy struct {
|
|
SignedIdentifiersList SignedIdentifiers `xml:"SignedIdentifiers"`
|
|
}
|
|
|
|
// convertAccessPolicyToXMLStructs converts between AccessPolicyDetails which is a struct better for API usage to the
|
|
// AccessPolicy struct which will get converted to XML.
|
|
func convertAccessPolicyToXMLStructs(id string, startTime time.Time, expiryTime time.Time, permissions string) SignedIdentifier {
|
|
return SignedIdentifier{
|
|
ID: id,
|
|
AccessPolicy: AccessPolicyDetailsXML{
|
|
StartTime: startTime.UTC().Round(time.Second),
|
|
ExpiryTime: expiryTime.UTC().Round(time.Second),
|
|
Permission: permissions,
|
|
},
|
|
}
|
|
}
|
|
|
|
func updatePermissions(permissions, permission string) bool {
|
|
return strings.Contains(permissions, permission)
|
|
}
|