fu: Close-up of Fu, bringing a scoop of water to her mouth (Default)
fu ([personal profile] fu) wrote in [site community profile] changelog2011-10-03 05:51 am

[dw-free] better organization of LJ functions

[commit: http://hg.dwscoalition.org/dw-free/rev/70869e7cfca3]

http://bugs.dwscoalition.org/show_bug.cgi?id=3965

Move new_account_cluster and random_cluster from package LJ in LJ/User.pm to

Patch by [personal profile] kareila.

Files modified:
  • cgi-bin/LJ/DB.pm
  • cgi-bin/LJ/User.pm
  • cgi-bin/ljlib.pl
--------------------------------------------------------------------------------
diff -r 4852ffcec614 -r 70869e7cfca3 cgi-bin/LJ/DB.pm
--- a/cgi-bin/LJ/DB.pm	Mon Oct 03 13:47:53 2011 +0800
+++ b/cgi-bin/LJ/DB.pm	Mon Oct 03 13:50:36 2011 +0800
@@ -397,6 +397,48 @@
     $LJ::DBIRole->use_diff_db(@_);
 }
 
+# <LJFUNC>
+# name: LJ::DB::new_account_cluster
+# des: Which cluster to put a new account on.  $DEFAULT_CLUSTER if it's
+#      a scalar, random element from [ljconfig[default_cluster]] if it's arrayref.
+#      also verifies that the database seems to be available.
+# returns: clusterid where the new account should be created; 0 on error
+#          (such as no clusters available).
+# </LJFUNC>
+sub new_account_cluster
+{
+    # if it's not an arrayref, put it in an array ref so we can use it below
+    my $clusters = ref $LJ::DEFAULT_CLUSTER ? $LJ::DEFAULT_CLUSTER : [ $LJ::DEFAULT_CLUSTER+0 ];
+
+    # select a random cluster from the set we've chosen in $LJ::DEFAULT_CLUSTER
+    return LJ::DB::random_cluster(@$clusters);
+}
+
+# returns the clusterid of a random cluster which is up
+# -- accepts @clusters as an arg to enforce a subset, otherwise
+#    uses @LJ::CLUSTERS
+sub random_cluster {
+    my @clusters = @_ ? @_ : @LJ::CLUSTERS;
+
+    # iterate through the new clusters from a random point
+    my $size = @clusters;
+    my $start = int(rand() * $size);
+    foreach (1..$size) {
+        my $cid = $clusters[$start++ % $size];
+
+        # verify that this cluster is in @LJ::CLUSTERS
+        my @check = grep { $_ == $cid } @LJ::CLUSTERS;
+        next unless scalar(@check) >= 1 && $check[0] == $cid;
+
+        # try this cluster to see if we can use it, return if so
+        my $dbcm = LJ::get_cluster_master($cid);
+        return $cid if $dbcm;
+    }
+
+    # if we get here, we found no clusters that were up...
+    return 0;
+}
+
 
 package LJ;
 
diff -r 4852ffcec614 -r 70869e7cfca3 cgi-bin/LJ/User.pm
--- a/cgi-bin/LJ/User.pm	Mon Oct 03 13:47:53 2011 +0800
+++ b/cgi-bin/LJ/User.pm	Mon Oct 03 13:50:36 2011 +0800
@@ -128,7 +128,7 @@
 
     my $username = LJ::canonical_username($opts{user}) or return;
 
-    my $cluster     = $opts{cluster} || LJ::new_account_cluster();
+    my $cluster     = $opts{cluster} || LJ::DB::new_account_cluster();
     my $caps        = $opts{caps} || $LJ::NEWUSER_CAPS;
     my $journaltype = $opts{journaltype} || "P";
 
@@ -7118,7 +7118,6 @@
 ### to match the sections above -- please check up there if adding.
 ###
 ### Categories:
-###  1. Creating and Deleting Accounts
 ###  3. Working with All Types of Accounts
 ###  4. Login, Session, and Rename Functions
 ###  5. Database and Memcache Functions
@@ -7130,58 +7129,6 @@
 ###  24. Styles and S2-Related Functions
 
 ########################################################################
-###  1. Creating and Deleting Accounts
-
-=head1 LJ Methods
-
-=head2 Creating and Deleting Accounts (LJ)
-=cut
-
-# <LJFUNC>
-# name: LJ::new_account_cluster
-# des: Which cluster to put a new account on.  $DEFAULT_CLUSTER if it's
-#      a scalar, random element from [ljconfig[default_cluster]] if it's arrayref.
-#      also verifies that the database seems to be available.
-# returns: clusterid where the new account should be created; 0 on error
-#          (such as no clusters available).
-# </LJFUNC>
-sub new_account_cluster
-{
-    # if it's not an arrayref, put it in an array ref so we can use it below
-    my $clusters = ref $LJ::DEFAULT_CLUSTER ? $LJ::DEFAULT_CLUSTER : [ $LJ::DEFAULT_CLUSTER+0 ];
-
-    # select a random cluster from the set we've chosen in $LJ::DEFAULT_CLUSTER
-    return LJ::random_cluster(@$clusters);
-}
-
-
-# returns the clusterid of a random cluster which is up
-# -- accepts @clusters as an arg to enforce a subset, otherwise
-#    uses @LJ::CLUSTERS
-sub random_cluster {
-    my @clusters = @_ ? @_ : @LJ::CLUSTERS;
-
-    # iterate through the new clusters from a random point
-    my $size = @clusters;
-    my $start = int(rand() * $size);
-    foreach (1..$size) {
-        my $cid = $clusters[$start++ % $size];
-
-        # verify that this cluster is in @LJ::CLUSTERS
-        my @check = grep { $_ == $cid } @LJ::CLUSTERS;
-        next unless scalar(@check) >= 1 && $check[0] == $cid;
-
-        # try this cluster to see if we can use it, return if so
-        my $dbcm = LJ::get_cluster_master($cid);
-        return $cid if $dbcm;
-    }
-
-    # if we get here, we found no clusters that were up...
-    return 0;
-}
-
-
-########################################################################
 ###  2. Working with All Types of Accounts
 
 =head2 Working with All Types of Accounts (LJ)
diff -r 4852ffcec614 -r 70869e7cfca3 cgi-bin/ljlib.pl
--- a/cgi-bin/ljlib.pl	Mon Oct 03 13:47:53 2011 +0800
+++ b/cgi-bin/ljlib.pl	Mon Oct 03 13:50:36 2011 +0800
@@ -2008,7 +2008,7 @@
     my ($cid, $action) = @_;
 
     # fall back to selecting a random cluster
-    $cid = LJ::random_cluster() unless defined $cid;
+    $cid = LJ::DB::random_cluster() unless defined $cid;
 
     # accept a user object
     $cid = ref $cid ? $cid->{clusterid}+0 : $cid+0;
--------------------------------------------------------------------------------

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org