end
['', ' asc', ' desc'].each do |direction|
- test "projects#show tab partial orders correctly by #{direction}" do
+ test "projects#show tab partial orders correctly by created_at#{direction}" do
_test_tab_content_order direction
end
end
// Apply the default/implied order, "modified_at desc"
sort.Slice(merged.Items, func(i, j int) bool {
mi, mj := merged.Items[i].ModifiedAt, merged.Items[j].ModifiedAt
- if mi == nil || mj == nil {
- return false
- } else {
- return mj.Before(*mi)
- }
+ return mj.Before(mi)
})
}
return merged, err
// Apply the default/implied order, "modified_at desc"
sort.Slice(merged.Items, func(i, j int) bool {
mi, mj := merged.Items[i].ModifiedAt, merged.Items[j].ModifiedAt
- if mi == nil || mj == nil {
- return false
- } else {
- return mj.Before(*mi)
- }
+ return mj.Before(mi)
})
}
return merged, err
// Apply the default/implied order, "modified_at desc"
sort.Slice(merged.Items, func(i, j int) bool {
mi, mj := merged.Items[i].ModifiedAt, merged.Items[j].ModifiedAt
- if mi == nil || mj == nil {
- return false
- } else {
- return mj.Before(*mi)
- }
+ return mj.Before(mi)
})
}
return merged, err
ManifestText string `json:"manifest_text"`
UnsignedManifestText string `json:"unsigned_manifest_text"`
Name string `json:"name"`
- CreatedAt *time.Time `json:"created_at"`
- ModifiedAt *time.Time `json:"modified_at"`
+ CreatedAt time.Time `json:"created_at"`
+ ModifiedAt time.Time `json:"modified_at"`
+ ModifiedByClientUUID string `json:"modified_by_client_uuid"`
+ ModifiedByUserUUID string `json:"modified_by_user_uuid"`
PortableDataHash string `json:"portable_data_hash"`
ReplicationConfirmed *int `json:"replication_confirmed"`
ReplicationConfirmedAt *time.Time `json:"replication_confirmed_at"`
ReplicationDesired *int `json:"replication_desired"`
StorageClassesDesired []string `json:"storage_classes_desired"`
StorageClassesConfirmed []string `json:"storage_classes_confirmed"`
- StorageClassesConfirmedAt *time.Time `json:"storage_classes_confirmed_at"`
+ StorageClassesConfirmedAt time.Time `json:"storage_classes_confirmed_at"`
DeleteAt *time.Time `json:"delete_at"`
IsTrashed bool `json:"is_trashed"`
Properties map[string]interface{} `json:"properties"`
// Container is an arvados#container resource.
type Container struct {
UUID string `json:"uuid"`
- CreatedAt *time.Time `json:"created_at"`
+ CreatedAt time.Time `json:"created_at"`
ModifiedByClientUUID string `json:"modified_by_client_uuid"`
ModifiedByUserUUID string `json:"modified_by_user_uuid"`
- ModifiedAt *time.Time `json:"modified_at"`
+ ModifiedAt time.Time `json:"modified_at"`
Command []string `json:"command"`
ContainerImage string `json:"container_image"`
Cwd string `json:"cwd"`
// FileSystem returns a CollectionFileSystem for the collection.
func (c *Collection) FileSystem(client apiClient, kc keepClient) (CollectionFileSystem, error) {
- var modTime time.Time
- if c.ModifiedAt == nil {
+ modTime := c.ModifiedAt
+ if modTime.IsZero() {
modTime = time.Now()
- } else {
- modTime = *c.ModifiedAt
}
fs := &collectionFileSystem{
uuid: c.UUID,
)
func deferredCollectionFS(fs FileSystem, parent inode, coll Collection) inode {
- var modTime time.Time
- if coll.ModifiedAt != nil {
- modTime = *coll.ModifiedAt
- } else {
+ modTime := coll.ModifiedAt
+ if modTime.IsZero() {
modTime = time.Now()
}
placeholder := &treenode{
import "time"
type Specimen struct {
- UUID string `json:"uuid"`
- OwnerUUID string `json:"owner_uuid"`
- CreatedAt *time.Time `json:"created_at"`
- ModifiedAt *time.Time `json:"modified_at"`
- Properties map[string]interface{} `json:"properties"`
+ UUID string `json:"uuid"`
+ OwnerUUID string `json:"owner_uuid"`
+ CreatedAt time.Time `json:"created_at"`
+ ModifiedAt time.Time `json:"modified_at"`
+ ModifiedByClientUUID string `json:"modified_by_client_uuid"`
+ ModifiedByUserUUID string `json:"modified_by_user_uuid"`
+ Properties map[string]interface{} `json:"properties"`
}
type SpecimenList struct {
return err
}
for _, coll := range page.Items {
- if last.ModifiedAt != nil && *last.ModifiedAt == *coll.ModifiedAt && last.UUID >= coll.UUID {
+ if last.ModifiedAt == coll.ModifiedAt && last.UUID >= coll.UUID {
continue
}
callCount++
}
if len(page.Items) == 0 && !gettingExactTimestamp {
break
- } else if last.ModifiedAt == nil {
+ } else if last.ModifiedAt.IsZero() {
return fmt.Errorf("BUG: Last collection on the page (%s) has no modified_at timestamp; cannot make progress", last.UUID)
- } else if len(page.Items) > 0 && *last.ModifiedAt == filterTime {
+ } else if len(page.Items) > 0 && last.ModifiedAt == filterTime {
// If we requested time>=X and never got a
// time>X then we might not have received all
// items with time==X yet. Switch to
// avoiding that would add overhead in the
// overwhelmingly common cases, so we don't
// bother.
- filterTime = *last.ModifiedAt
+ filterTime = last.ModifiedAt
params.Filters = []arvados.Filter{{
Attr: "modified_at",
Operator: ">=",
var lastMod time.Time
sawUUID := make(map[string]bool)
err := EachCollection(s.client, pageSize, func(c arvados.Collection) error {
- if c.ModifiedAt == nil {
+ if c.ModifiedAt.IsZero() {
return nil
}
if sawUUID[c.UUID] {
}
got[trial] = append(got[trial], c.UUID)
sawUUID[c.UUID] = true
- if lastMod == *c.ModifiedAt {
+ if lastMod == c.ModifiedAt {
streak++
if streak > longestStreak {
longestStreak = streak
}
} else {
streak = 0
- lastMod = *c.ModifiedAt
+ lastMod = c.ModifiedAt
}
return nil
}, nil)