On Wed, Nov 11, 2009 at 9:16 AM, Lucas Meneghel Rodrigues <lmr@xxxxxxxxxx> wrote: > On Wed, 2009-11-11 at 07:32 -0800, John Admanski wrote: >> I don't think this is sufficient. It works in the simple cases, but >> what about when you're using packaging to install the clients and not >> rsync? I guess that still technically works...assuming that you >> rebuild the client package whenever you need to change the .ini. >> >> While not strictly wrong, this solution strikes me as really >> inelegant. Its interaction with client installs is messy, and it >> changes what is a very user-facing component (the ini file) in a very >> dramatic way. At the very least we'd need to update all the >> documentation on the website that refers to the global config. > > Ok, then let's revert the original patches that turn drop_caches into a > global config option. Later I will think of a more elegant solution. > I thought about it a bit more: Maybe a better approach would be to have the global_config module find the ini file in job.autodir (so on a client it would show up in the client/ dir, and on the server in the "true" top-level dir) and then add support to Autotest.run so that it copies over the server's copy of the config to the client before launching a client job? So that way it would "just work", and changes to the server config would automatically get pushed out to client jobs. All without moving the file that users running a server need to edit. And it's not too complex of a design; the Autotest.run code already needs to copy over a few files by hand like control files so copying over the config too isn't too much of a burden. The only concern I have is that this still might not play well with a multi-server setup. If the servers have different configs I'm not sure that it works all that well (although I still don't know that this introduces any "new" problems, so I don't think it makes things any messier in that case then they already are). I cc'ed Scott and Steve in case they can comment on that. -- John >> -- John >> >> On Wed, Nov 11, 2009 at 3:24 AM, Lucas Meneghel Rodrigues >> <lmr@xxxxxxxxxx> wrote: >> > So this way the client can also benefit from settings >> > defined on the configuration files. >> > >> > Signed-off-by: Lucas Meneghel Rodrigues <lmr@xxxxxxxxxx> >> > --- >> > client/common_lib/global_config.py | 4 +- >> > client/global_config.ini | 90 ++++++++++++++++++++++++++++++++++++ >> > client/shadow_config.ini | 3 + >> > global_config.ini | 90 ------------------------------------ >> > shadow_config.ini | 3 - >> > 5 files changed, 95 insertions(+), 95 deletions(-) >> > create mode 100644 client/global_config.ini >> > create mode 100644 client/shadow_config.ini >> > delete mode 100644 global_config.ini >> > delete mode 100644 shadow_config.ini >> > >> > diff --git a/client/common_lib/global_config.py b/client/common_lib/global_config.py >> > index 2bbeca0..1ced7db 100644 >> > --- a/client/common_lib/global_config.py >> > +++ b/client/common_lib/global_config.py >> > @@ -10,9 +10,9 @@ from autotest_lib.client.common_lib import error >> > >> > dirname = os.path.dirname(sys.modules[__name__].__file__) >> > DEFAULT_CONFIG_FILE = os.path.abspath(os.path.join(dirname, >> > - "../../global_config.ini")) >> > + "../global_config.ini")) >> > DEFAULT_SHADOW_FILE = os.path.abspath(os.path.join(dirname, >> > - "../../shadow_config.ini")) >> > + "../shadow_config.ini")) >> > >> > >> > class ConfigError(error.AutotestError): >> > diff --git a/client/global_config.ini b/client/global_config.ini >> > new file mode 100644 >> > index 0000000..149c4c4 >> > --- /dev/null >> > +++ b/client/global_config.ini >> > @@ -0,0 +1,90 @@ >> > +[TKO] >> > +host: localhost >> > +database: tko >> > +db_type: mysql >> > +user: autotest >> > +password: please_set_this_password >> > +readonly_host: localhost >> > +readonly_user: nobody >> > +readonly_password: >> > +query_timeout: 3600 >> > +min_retry_delay: 20 >> > +max_retry_delay: 60 >> > +graph_cache_creation_timeout_minutes: 10 >> > + >> > +[AUTOTEST_WEB] >> > +host: localhost >> > +database: autotest_web >> > +db_type: mysql >> > +user: autotest >> > +password: please_set_this_password >> > +job_timeout_default: 72 >> > +job_max_runtime_hrs_default: 72 >> > +parse_failed_repair_default: 0 >> > +# Only set this if your server is not 'http://[SERVER] hostname/afe/' >> > +#base_url: http://your_autotest_server/afe/ >> > + >> > +[AUTOSERV] >> > +# Autotest potential install paths >> > +client_autodir_paths: /usr/local/autotest,/home/autotest >> > + >> > +[SERVER] >> > +hostname: autotest >> > +# Turn on RPC Logging >> > +rpc_logging: False >> > +# Note the user that is running the webserver has to be able to write >> > +# to the below directory/file otherwise the frontend will not work with logging >> > +rpc_log_path: /usr/local/autotest/logs/rpcserver.log >> > +# Number of old logs to keep around >> > +rpc_num_old_logs: 5 >> > +rpc_max_log_size_mb: 20 >> > +# If for some reason you don't want to rely on the Mail Transport Agent >> > +# installed on this machine, you can provide an SMTP server directly here. >> > +# If none provided, defaults to 'localhost', which tries to use the MTA >> > +# configured on the machine to send the messages. >> > +smtp_server: >> > +smtp_port: >> > +smtp_user: >> > +smtp_password: >> > + >> > +[CLIENT] >> > +# Drop test client caches between every test execution >> > +drop_caches: True >> > +# Drop test client caches between every test iteration execution >> > +drop_caches_between_iterations: True >> > + >> > +[SCHEDULER] >> > +die_on_orphans: False >> > +enable_scheduler: True >> > +notify_email: >> > +notify_email_from: >> > +notify_email_statuses: Completed,Failed,Aborted >> > +max_processes_per_drone: 1000 >> > +max_jobs_started_per_cycle: 100 >> > +max_parse_processes: 5 >> > +max_transfer_processes: 50 >> > +tick_pause_sec: 5 >> > +clean_interval_minutes: 60 >> > +drones: localhost >> > +drone_installation_directory: /usr/local/autotest >> > +results_host: localhost >> > +results_host_installation_directory: >> > +secs_to_wait_for_atomic_group_hosts: 600 >> > +pidfile_timeout_mins: 300 >> > +max_pidfile_refreshes: 2000 >> > + >> > +[HOSTS] >> > +wait_up_processes: >> > +default_protection: NO_PROTECTION >> > + >> > +[AUTOSERV] >> > +# Autotest has 2 implementations of SSH based hosts, the default (raw_ssh), and >> > +# another one based on the python SSH library paramiko (paramiko). >> > +# You can change the default 'raw_ssh' to 'paramiko' if you want to. >> > +ssh_engine: raw_ssh >> > +# Autotest server operators *really should* set this to True, specially if >> > +# using ssh_engine 'paramiko'. >> > +require_atfork_module: False >> > + >> > +[PACKAGES] >> > +serve_packages_from_autoserv: True >> > diff --git a/client/shadow_config.ini b/client/shadow_config.ini >> > new file mode 100644 >> > index 0000000..12b00a5 >> > --- /dev/null >> > +++ b/client/shadow_config.ini >> > @@ -0,0 +1,3 @@ >> > +#[TKO] >> > +#user: autotest >> > +#password: mypassword >> > diff --git a/global_config.ini b/global_config.ini >> > deleted file mode 100644 >> > index 149c4c4..0000000 >> > --- a/global_config.ini >> > +++ /dev/null >> > @@ -1,90 +0,0 @@ >> > -[TKO] >> > -host: localhost >> > -database: tko >> > -db_type: mysql >> > -user: autotest >> > -password: please_set_this_password >> > -readonly_host: localhost >> > -readonly_user: nobody >> > -readonly_password: >> > -query_timeout: 3600 >> > -min_retry_delay: 20 >> > -max_retry_delay: 60 >> > -graph_cache_creation_timeout_minutes: 10 >> > - >> > -[AUTOTEST_WEB] >> > -host: localhost >> > -database: autotest_web >> > -db_type: mysql >> > -user: autotest >> > -password: please_set_this_password >> > -job_timeout_default: 72 >> > -job_max_runtime_hrs_default: 72 >> > -parse_failed_repair_default: 0 >> > -# Only set this if your server is not 'http://[SERVER] hostname/afe/' >> > -#base_url: http://your_autotest_server/afe/ >> > - >> > -[AUTOSERV] >> > -# Autotest potential install paths >> > -client_autodir_paths: /usr/local/autotest,/home/autotest >> > - >> > -[SERVER] >> > -hostname: autotest >> > -# Turn on RPC Logging >> > -rpc_logging: False >> > -# Note the user that is running the webserver has to be able to write >> > -# to the below directory/file otherwise the frontend will not work with logging >> > -rpc_log_path: /usr/local/autotest/logs/rpcserver.log >> > -# Number of old logs to keep around >> > -rpc_num_old_logs: 5 >> > -rpc_max_log_size_mb: 20 >> > -# If for some reason you don't want to rely on the Mail Transport Agent >> > -# installed on this machine, you can provide an SMTP server directly here. >> > -# If none provided, defaults to 'localhost', which tries to use the MTA >> > -# configured on the machine to send the messages. >> > -smtp_server: >> > -smtp_port: >> > -smtp_user: >> > -smtp_password: >> > - >> > -[CLIENT] >> > -# Drop test client caches between every test execution >> > -drop_caches: True >> > -# Drop test client caches between every test iteration execution >> > -drop_caches_between_iterations: True >> > - >> > -[SCHEDULER] >> > -die_on_orphans: False >> > -enable_scheduler: True >> > -notify_email: >> > -notify_email_from: >> > -notify_email_statuses: Completed,Failed,Aborted >> > -max_processes_per_drone: 1000 >> > -max_jobs_started_per_cycle: 100 >> > -max_parse_processes: 5 >> > -max_transfer_processes: 50 >> > -tick_pause_sec: 5 >> > -clean_interval_minutes: 60 >> > -drones: localhost >> > -drone_installation_directory: /usr/local/autotest >> > -results_host: localhost >> > -results_host_installation_directory: >> > -secs_to_wait_for_atomic_group_hosts: 600 >> > -pidfile_timeout_mins: 300 >> > -max_pidfile_refreshes: 2000 >> > - >> > -[HOSTS] >> > -wait_up_processes: >> > -default_protection: NO_PROTECTION >> > - >> > -[AUTOSERV] >> > -# Autotest has 2 implementations of SSH based hosts, the default (raw_ssh), and >> > -# another one based on the python SSH library paramiko (paramiko). >> > -# You can change the default 'raw_ssh' to 'paramiko' if you want to. >> > -ssh_engine: raw_ssh >> > -# Autotest server operators *really should* set this to True, specially if >> > -# using ssh_engine 'paramiko'. >> > -require_atfork_module: False >> > - >> > -[PACKAGES] >> > -serve_packages_from_autoserv: True >> > diff --git a/shadow_config.ini b/shadow_config.ini >> > deleted file mode 100644 >> > index 12b00a5..0000000 >> > --- a/shadow_config.ini >> > +++ /dev/null >> > @@ -1,3 +0,0 @@ >> > -#[TKO] >> > -#user: autotest >> > -#password: mypassword >> > -- >> > 1.6.2.5 >> > >> > _______________________________________________ >> > Autotest mailing list >> > Autotest@xxxxxxxxxxxxxxx >> > http://test.kernel.org/cgi-bin/mailman/listinfo/autotest >> > > > -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html