# HG changeset patch # User ethanzonca # Date 2009-04-30 15:55:21 # Node ID 44cdeb8081e15958cca153c892625e19e3420d84 # Parent 2fb2e6cf02cd787e478bd360ee5251a73d62a7eb Commenting, pruning of client code, questions. diff --git a/etc/distren.conf b/etc/distren.conf --- a/etc/distren.conf +++ b/etc/distren.conf @@ -5,6 +5,8 @@ /* currently, server's are only supported rudimentarily. If a job has n frames and there are s servers, n / (s + 1) frames will be sent to each individual server and also rendered on the machine the job was submitted to. There will be no recursive distribution of jobs, but I want to make that possible in the future. AND, I want job IDs to have significance based on 1: the files, 2: the versions of software used to render just like git, mercurial, or bazaar's commit IDs have significance. This will allow global distribution of renderjobs without requiring central servers to coordinate the jobs - a network only need be distributed. And complex algorithms based on timeouts and completion of jobs should allow slow servers to reassign jobs to fast ones and, possibly, find shorter routes to return the resulting images to the original job submitter. + + Just a pointer, for the multiple server architecture, we would need to designate one server as a "master" server to avoid obvious issues. We can code it flexibly though. --Normaldotcom */ server protofusion { @@ -12,6 +14,7 @@ server protofusion username = "distrenc" /* method's use is not implemented, ssh is the only option atm ' */ method = "ssh" + type = "backend" } server ohnopublishing @@ -19,6 +22,7 @@ server ohnopublishing hostname = "ohnopublishing.net" username = "distrenc" method = "ssh" + type = "working-mirror" /* Or frame processor, storage, webinterface, etc. */ } client diff --git a/src/client/distren.c b/src/client/distren.c --- a/src/client/distren.c +++ b/src/client/distren.c @@ -40,9 +40,9 @@ int main(int argc, char *argv[]) { struct options_common *options; - + cfg_t *cfg; - + cfg_opt_t cfg_opts[] = { CFG_STR_LIST("render_types", NULL, 0), @@ -55,7 +55,7 @@ int main(int argc, char *argv[]) int i; i = 1; - + if(options_init(argc, argv, &cfg, cfg_opts, "client", &options)) { fprintf(stderr, "error getting configuration\n"); @@ -71,16 +71,14 @@ int main(int argc, char *argv[]) //strcat(username, hostname); - if( i == 1 ){ - // Create new account on the server if no username exists - // THIS no longer SEGFAULTS!! YAY + // SSH's to client machine with the username speficied. char buf[10]; struct execio *testrem; char *execargv[] = { "ssh", "username", //cfg_getstr(cfg, "username") . "@" . cfg_getstr(cfg, "hostname"), - "-i guest.rsa", //yeaaaah enay better ideas? + "-i guest.rsa", //yeaaaah any better ideas? "sh", "-c", "\"echo hello from ${HOSTNAME}\"", // "\"useradd -M -c" strcat( cfg_getstr(cfg, "name") cfg_getstr(cfg, "email")) "-d /home/distren --gid 537" cfg_getstr(cfg, "username") "\"", @@ -103,13 +101,9 @@ int main(int argc, char *argv[]) } execio_close(testrem); } - - else - { - printf("Well now, you must have registered!\n"); - /* put code here to ssh to zserver2 w/ execio as the user from the conf file */ - } - + // Can we prune off some of this code up here^? I'm not exactly sure how execio returns output, but it seems like more could be happening in execio itself, and less happening where it is actually called. + // We need some code to ssh, and if the SSH fails, tell the user to register. + // Killed the user reg code, as the php interface will take care of this. Although it should check for users... options_free(options); return 0;