[Rt-commit] rt branch, 4.4/dump-and-merge-initialdata, repushed
? sunnavy
sunnavy at bestpractical.com
Mon Aug 20 16:04:39 EDT 2018
The branch 4.4/dump-and-merge-initialdata was deleted and repushed:
was 095ea6e672d9516c46db38daaf43461b087d83b6
now 95de5b37167c3aa9c6693611794a77f5c21c18ec
1: 819a7b31e = 1: 819a7b31e Fix typo to make @Assets really work
2: 88e298039 = 2: 88e298039 Add support for asset and catalog attributes for initialdata
3: 8e0dd77be = 3: 8e0dd77be Add support for OCFVs in initialdata
4: 6dbe32935 = 4: 6dbe32935 Insert @Members later, after queues, assets, custom roles etc have been created
5: b913d8ec6 = 5: b913d8ec6 Support all the role group domains for @ACL
6: cd9a04b07 = 6: cd9a04b07 initialdata support for @Articles
7: 6a5e96997 = 7: 6a5e96997 Defer setting BasedOn for CFs later in the @CustomFields list
8: 1de0a488e = 8: 1de0a488e Handle ObjectScrip Stage in initialdata
9: ee902438a = 9: ee902438a Handle passing a hash with Stage as first param to Queue
10: c21aab9bd = 10: c21aab9bd Fixing up ObjectScrip sort order
11: 33edad4e6 = 11: 33edad4e6 Support GroupDomain for item in @Members
12: b9eab0387 = 12: b9eab0387 NoAutoGlobal option for @Scrips
13: 984db7969 = 13: 984db7969 Support import of queue watcher groups
14: 05d21ca3a = 14: 05d21ca3a Handle explicit ApplyTo => 0 to make a CF which is global
15: c92316ec9 = 15: c92316ec9 Handle RightName in initialdata
16: c84eb72e7 = 16: c84eb72e7 Handle global Class records more consistently in initialdata
17: a713a7b5a = 17: a713a7b5a Correctly load ACLs granted on user-defined groups
18: db9ee856c = 18: db9ee856c Avoid creating duplicate SystemInternal and RT::Role-System groups
19: 41d321072 = 19: 41d321072 Allow passing SortOrder to CustomField->Create
20: 0ae4036e4 = 20: 0ae4036e4 Avoid undef warnings when checking a new queue for name uniqueness
21: 5896c8acc = 21: 5896c8acc When serializing an ACE, make sure its user is too
22: 8308c70e1 = 22: 8308c70e1 Make sure queue-specific templates get serialized
23: dbb9fd851 = 23: dbb9fd851 Skip tickets ASAP as an optimization
24: 01e4fdd19 = 24: 01e4fdd19 Migrate Storable-related concerns from Serializer to File
25: 522fcee95 = 25: 522fcee95 First pass at initialdata.json serializer export format
26: 66df5d7d8 = 26: 66df5d7d8 Sort JSON keys so its output can be versioned
27: d6a0f6f8a = 27: d6a0f6f8a Store records by id
28: 6f7163d21 = 28: 6f7163d21 For now, rather than deleting references, dereference them
29: 5a009e56e = 29: 5a009e56e Use initialdata's type names rather than RT class names
30: 56f3d4b97 = 30: 56f3d4b97 Defer canonicalizing away "RT::" from class names
31: 68a8ac9ca = 31: 68a8ac9ca Canonicalize references by name
32: 66db10a45 = 32: 66db10a45 Canonicalize OCFs as CF.ApplyTo
33: f89c2196a = 33: f89c2196a Canonicalize ObjectClass into Class.ApplyTo
34: ab6de43c9 = 34: ab6de43c9 Factor out _GetRecordByRef
35: 6024bcc9b = 35: 6024bcc9b Canonicalize ObjectScrips as Scrips.Queue
36: fe0e99f43 = 36: fe0e99f43 Handle ObjectScrip Stage in serializer importer
37: e350e59b7 = 37: e350e59b7 Canonicalize ObjectCustomRole as CustomRole.ApplyTo
38: 8f17953f0 = 38: 8f17953f0 Avoid serializing attributes (for now)
39: d33b6ad9e = 39: d33b6ad9e Only serialize user-defined groups for initialdata
40: 7cb1f3459 = 40: 7cb1f3459 Have _GetRecordByRef dereference if needed
41: c40f76ca1 = 41: c40f76ca1 Try harder to load references
42: 45243d74a = 42: 45243d74a Canonicalize ACLs the way initialdata needs them
43: 3db856210 = 43: 3db856210 Disambiguate _GetSerializedByRef from _GetObjectByRef
44: 30f78bcbf = 44: 30f78bcbf Handle systemuser
45: 6ebadd606 = 45: 6ebadd606 Creator and LastUpdatedBy are always user ids
46: 2b8d4b9cc = 46: 2b8d4b9cc Avoid uniqueness violations (for now) by skipping id from initialdata output
47: 67663b950 = 47: 67663b950 CanonicalizeUsers
48: 6f166613e = 48: 6f166613e Fix serialized OCFs for queues
49: 6bb58b4f9 = 49: 6bb58b4f9 Roundtrip CFVs
50: ab3d46496 = 50: ab3d46496 Roundtrip group members
51: 7e21d67a7 = 51: 7e21d67a7 Fixing up ObjectScrip sort order
52: 98b5f0bc1 = 52: 98b5f0bc1 Round-trip unapplied scrips using a NoAutoGlobal key
53: ce4bb242f = 53: ce4bb242f Export OCFVs as CustomFields key on object for initialdata
54: a7dbcdf24 = 54: a7dbcdf24 No need to rewrite LargeContent as Content
55: 2081fc158 = 55: 2081fc158 Remove create/update metadata on initialdata export
56: a0bbc30b3 = 56: a0bbc30b3 Remove spurious Principal and PrincipalId fields on Groups
57: 64113d416 = 57: 64113d416 Remove spurious NoAutoGlobal
58: 80f8a8b00 = 58: 80f8a8b00 ACLs without object type are for RT::System
59: 727320200 = 59: 727320200 ACL PrincipalType is implicit
60: cb83c6b79 = 60: cb83c6b79 Instance doesn't make sense for UserDefined or SystemInternal groups
61: 2e1a00b3c = 61: 2e1a00b3c Avoid serializing some empty keys for CFs
62: 9c9d6e06b = 62: 9c9d6e06b Avoid serializing Disabled:0 for all objects
63: 2b0a32ebd = 63: 2b0a32ebd Avoid exporting crucial system objects like RT_System user
64: 779787d31 = 64: 779787d31 Improve export of group membership
65: c54abcd5c = 65: c54abcd5c Refactor ShouldExcludeObject for clarity
66: 751e44ab9 = 66: 751e44ab9 Serialize role members but not role groups
67: 0798a710c = 67: 0798a710c Support export of queue watcher groups
68: 3b1efa0e0 = 68: 3b1efa0e0 Handle group, role, and user ACLs
69: 18efb3178 = 69: 18efb3178 Round-trip articles
70: e4b810ecc = 70: e4b810ecc Avoid throwing errors on disabled many-to-many relationships
71: e4672182d = 71: e4672182d Avoid undef warnings on CFs without a pattern
72: 4ca88f8d4 = 72: 4ca88f8d4 Skip serializing OCFVs on live objects for disabled CFs
73: b1dff1024 = 73: b1dff1024 For stability, sort records consistently
74: 9b8a088c1 = 74: 9b8a088c1 Clear user passwords and authtokens
75: 60590ae9c = 75: 60590ae9c Remove more empty fields
76: 1f624c94f = 76: 1f624c94f Handle disabled OCFVs by skipping them
77: d9f8bf98f = 77: d9f8bf98f Remove empty user keys
78: 759ad60da = 78: 759ad60da Avoid undef warnings with sorting by sortorder
79: f6ad69b91 = 79: f6ad69b91 Sort ObjectScrips by queue name for stability
80: 7048bee5b = 80: 7048bee5b Don't serialized disabled OCFVs
81: cd50567a3 = 81: cd50567a3 Factor out repeated deep hash lookups
82: 99b8357c4 = 82: 99b8357c4 No need to include nobody member for single-member groups
83: a6910b6d0 = 83: a6910b6d0 Add Sync option for JSON serializer
84: 4acf32f76 = 84: 4acf32f76 Delete empty Values => [] from custom fields
85: db38a18d7 = 85: db38a18d7 Default FollowTickets and FollowTransactions to 0 for initialdata
86: f2abed891 = 86: f2abed891 Default to exporting scrips and ACLs
87: de00f1109 = 87: de00f1109 Add FollowDisabled option to serializer
88: 846d2a979 = 88: 846d2a979 Avoid serializing ACLs and GroupMembers if either parent is disabled
89: 907847003 = 89: 907847003 Avoid error on broken ACLEquivalence principals
90: 5ce7c84c7 = 90: 5ce7c84c7 Sort OCFV values to keep the original id order
91: da4a2279e = 91: da4a2279e Add a --no-disabled flag to serializer
92: 3341a6510 = 92: 3341a6510 Add --no-transactions flag to rt-serializer
93: 816e1e892 = 93: 816e1e892 Initial rt-dump-initialdata
94: fdf741074 = 94: fdf741074 Make label column a bit wider considering we have ObjectCustomFieldValues now
95: c4f4df2ad = 95: c4f4df2ad Fix plural of words like "Class" in the progress bar of migration
96: 42a5b5e07 = 96: 42a5b5e07 Fix plural of "ACE" in the progress bar of migration
97: 43a17b797 = 97: 43a17b797 First initialdata roundtrip tests
98: 7b35ecf83 = 98: 7b35ecf83 Skip tests if required RT::Extension::Initialdata::JSON is not available
99: 59b1a1267 = 99: 59b1a1267 Make sure RT::Extension::Initialdata::JSON is available for perls prior to 5.14
100: ca42b410e = 100: ca42b410e Support more string formats for Object in @Attributes
101: d2c7fbe98 = 101: d2c7fbe98 Support import/export of @Attribute for JSON serializer
102: 289733ae5 = 102: 289733ae5 Support @Topics and @ObjectTopics in initialdata
103: e5206f656 = 103: e5206f656 Support Topics for json serializer
104: 6b88728eb = 104: 6b88728eb Support disabled CustomRoles creation in initialdata
105: e853c699e = 105: e853c699e Encode LargeContent to base64 for upload custom fields in json serializer
106: fdc64d83d ! 106: b691ef49d Support update/delete actions in initialdata
@@ -493,11 +493,6 @@
+ my $old_value = $object->can( $field ) ? $object->$field : $object->_Value( $field );
+
+ if ( ( $old_value // '' ) ne ( $values->{$field} // '' ) ) {
-+
-+ if ( ( $object->$field // '' ) ne ( $original->{$field} // '' ) ) {
-+ # TODO conflict found, need to ask, for now, just do the changes.
-+ }
-+
+ my $set_method = "Set$field";
+ if ( $object->can( $set_method ) || $object->_Accessible( $field, 'write' ) ) {
+ my ( $ret, $msg );
@@ -568,7 +563,7 @@
+ $principal_type = 'User';
+ }
+ else {
-+ die "Couldn't load user $values->{_Original}{UserId}";
++ RT->Logger->error( "Couldn't load user $values->{_Original}{UserId}" );
+ return;
+ }
+ }
@@ -580,11 +575,13 @@
+ $principal_type = 'Group';
+ }
+ else {
-+ die "Couldn't load group $values->{_Original}{UserId}";
++ RT->Logger->error( "Couldn't load group $values->{_Original}{UserId}" );
++ return;
+ }
+ }
+ else {
-+ die "Invalid principal type in $class";
++ RT->Logger->error( "Invalid principal type in $class" );
++ return;
+ }
+
+ $object->LoadByValues(
@@ -596,27 +593,32 @@
+ elsif ( $class eq 'RT::GroupMember' ) {
+ my $group = RT::Group->new( RT->SystemUser );
+ $group->LoadUserDefinedGroup( $values->{_Original}{Group} );
-+ die "Couldn't load group $values->{_Original}{Group}" unless $group->id;
++ unless ( $group->id ) {
++ RT->Logger->error( "Couldn't load group $values->{_Original}{Group}" );
++ return;
++ }
+
+ my $member;
+ if ( $values->{_Original}{Class} eq 'RT::User' ) {
+ $member = RT::User->new( RT->SystemUser );
+ $member->Load( $values->{_Original}{Name} );
-+ die "Couldn't load user $values->{_Original}{Name}" unless $member->id;
++ unless ( $member->id ) {
++ RT->Logger->error( "Couldn't load user $values->{_Original}{Name}" );
++ return;
++ }
+ }
+ else {
+ $member = RT::Group->new( RT->SystemUser );
+ $member->LoadUserDefinedGroup( $values->{_Original}{Name} );
-+ die "Couldn't load group $values->{_Original}{Name}" unless $member->id;
++ unless ( $member->id ) {
++ RT->Logger->error( "Couldn't load group $values->{_Original}{Name}" );
++ return;
++ }
+ }
+ $object->LoadByCols( Group => $group->PrincipalObj, Member => $member->PrincipalObj );
+ }
+ elsif ( $class eq 'RT::Scrip' ) {
+ $object->LoadByCols( Description => $values->{_Original}{Description} );
-+ }
-+ elsif ( $class eq 'RT::ObjectCustomFieldValue' ) {
-+ my $cf = RT::CustomField->new( RT->SystemUser );
-+ # TODO
}
else {
- $object->Load( $id );
@@ -639,6 +641,7 @@
+ }
+ if ( !$obj->id ) {
+ $RT::Logger->error( "Failed to load object $class-$id" );
++ return;
+ }
+ }
+ else {
107: 095ea6e67 = 107: 95de5b371 Add --base option to generate changes between 2 initialdata.json files
More information about the rt-commit
mailing list