def save_model(self, request, obj, form, change): if not form.cleaned_data.get('labels_autodetection'): return super(HostAdmin, self).save_model(request, obj, form, change) # Get submitted info from form. web_server = rpc.get_autotest_server() hostname = form.cleaned_data['hostname'] hosts = [str(hostname)] platform = None locked = form.cleaned_data['locked'] lock_reason = form.cleaned_data['lock_reason'] labels = [label.name for label in form.cleaned_data['labels']] protection = form.cleaned_data['protection'] acls = [] # Pipe to cli to perform autodetection and create host. host_create_obj = site_host.site_host_create.construct_without_parse( web_server, hosts, platform, locked, lock_reason, labels, acls, protection) try: self.successful_hosts = host_create_obj.execute() except SystemExit: # Invalid server name. messages.error(request, 'Invalid server name %s.' % web_server) # Successful_hosts is an empty list if there's time out, # server error, or JSON error. if not self.successful_hosts: messages.error( request, 'Label autodetection failed. ' 'Host created with selected labels.') super(HostAdmin, self).save_model(request, obj, form, change)
def test_get_autotest_server_environ_precedence(self): os.environ['AUTOTEST_WEB'] = 'foo-dev' self.assertEqual('http://foo', rpc.get_autotest_server('foo')) del os.environ['AUTOTEST_WEB']
def test_get_autotest_server_none(self): GLOBAL_CONFIG.override_config_value('SERVER', 'hostname', 'Prince') self.assertEqual('http://Prince', rpc.get_autotest_server(None))
def test_get_autotest_server_environ(self): os.environ['AUTOTEST_WEB'] = 'foo-dev' self.assertEqual('http://foo-dev', rpc.get_autotest_server(None)) del os.environ['AUTOTEST_WEB']
from autotest_lib.client.common_lib import host_queue_entry_states parser = optparse.OptionParser( usage='Usage: %prog [options] <job id> [<hostname>]\n\n' 'Describes why the given job on the given host has not started.') parser.add_option('-w', '--web', help='Autotest server to use (i.e. "autotest")') options, args = parser.parse_args() if len(args) < 1: parser.print_help() sys.exit(1) job_id = int(args[0]) autotest_host = rpc.get_autotest_server(options.web) proxy = rpc.afe_comm(autotest_host) # job exists? jobs = proxy.run('get_jobs', id=job_id) if not jobs: print 'No such job', job_id sys.exit(1) job = jobs[0] owner = job['owner'] RUNNING_HQE_STATUSES = host_queue_entry_states.ACTIVE_STATUSES # any entry eligible for this host? queue_entries = proxy.run('get_host_queue_entries', job__id=job_id)
def test_get_autotest_server_specific(self): self.assertEqual('http://foo', rpc.get_autotest_server('foo'))
parser = optparse.OptionParser( usage='Usage: %prog [options] <job id> [<hostname>]\n\n' 'Describes why the given job on the given host has not started.') parser.add_option('-w', '--web', help='Autotest server to use (i.e. "autotest")') options, args = parser.parse_args() if len(args) < 1: parser.print_help() sys.exit(1) job_id = int(args[0]) autotest_host = rpc.get_autotest_server(options.web) proxy = rpc.afe_comm(autotest_host) # job exists? jobs = proxy.run('get_jobs', id=job_id) if not jobs: print 'No such job', job_id sys.exit(1) job = jobs[0] owner = job['owner'] RUNNING_HQE_STATUSES = host_queue_entry_states.ACTIVE_STATUSES # any entry eligible for this host? queue_entries = proxy.run('get_host_queue_entries', job__id=job_id)