def initialize(self): super(simple, self).initialize() config.none_if_empty(self.config) # Get free name docker_containers = DockerContainers(self) name = docker_containers.get_unique_name() self.sub_stuff['container_name'] = name
def initialize(self): super(stop_base, self).initialize() # Prepare a container docker_containers = DockerContainers(self.parent_subtest) prefix = self.config["stop_name_prefix"] name = docker_containers.get_unique_name(prefix, length=4) self.sub_stuff['container_name'] = name config.none_if_empty(self.config) if self.config.get('run_options_csv'): subargs = [arg for arg in self.config['run_options_csv'].split(',')] subargs.append("--name %s" % name) fin = DockerImage.full_name_from_defaults(self.config) subargs.append(fin) subargs.append("bash") subargs.append("-c") subargs.append(self.config['exec_cmd']) container = AsyncDockerCmd(self, 'run', subargs) self.sub_stuff['container_cmd'] = container container.execute() time.sleep(self.config['wait_start']) # Prepare the "stop" command if self.config.get('stop_options_csv'): subargs = [arg for arg in self.config['stop_options_csv'].split(',')] subargs.append(name) self.sub_stuff['stop_cmd'] = DockerCmd(self, 'stop', subargs)
def _init_container(self): """ Create, store in self.stuff and execute container """ try: fin = DockerImage.full_name_from_defaults(self.config) except ValueError: raise DockerTestNAError("Empty test image name configured," "did you set one for this test?") docker_containers = DockerContainers(self) name = docker_containers.get_unique_name() self.stuff['container_name'] = name if self.config.get('run_options_csv'): subargs = [arg for arg in self.config['run_options_csv'].split(',')] else: subargs = [] subargs.append("--name %s" % name) subargs.append(fin) subargs.append("bash") container = NoFailDockerCmd(self, 'run', subargs) self.stuff['container_cmd'] = container container.execute() if self.config.get('attach_options_csv'): subargs = [arg for arg in self.config['attach_options_csv'].split(',')] else: subargs = [] subargs.append(name) container = AsyncDockerCmd(self, 'attach', subargs) self.stuff['container_cmd'] = container # overwrites finished cmd stdin = os.pipe() self.stuff['container_stdin'] = stdin[1] container.execute(stdin[0])
def initialize(self): super(stop_base, self).initialize() # Prepare a container docker_containers = DockerContainers(self) name = docker_containers.get_unique_name() self.sub_stuff['container_name'] = name config.none_if_empty(self.config) if self.config.get('run_options_csv'): subargs = [ arg for arg in self.config['run_options_csv'].split(',') ] subargs.append("--name %s" % name) fin = DockerImage.full_name_from_defaults(self.config) subargs.append(fin) subargs.append("bash") subargs.append("-c") subargs.append(self.config['exec_cmd']) container = AsyncDockerCmd(self, 'run', subargs) self.sub_stuff['container_cmd'] = container container.execute() container.wait_for_ready() # Prepare the "stop" command if self.config.get('stop_options_csv'): subargs = [ arg for arg in self.config['stop_options_csv'].split(',') ] subargs.append(name) self.sub_stuff['stop_cmd'] = DockerCmd(self, 'stop', subargs)
def initialize(self): super(run_memory_base, self).initialize() docker_containers = DockerContainers(self.parent_subtest) image = DockerImage.full_name_from_defaults(self.config) unit_list = ['', 'b', 'B', 'k', 'K', 'm', 'M', 'g', 'G'] memory_list = [] self.sub_stuff['name'] = [] args = [] if self.config['expect_success'] == "PASS": memory_value = str(self.config['memory_value']) if memory_value is not '0': for unit in unit_list: memory_list.append(memory_value + unit) else: memory_list.append('0') else: memory_list.append(self.config['memory_min_invalid']) memory_list.append(self.config['memory_max_invalid']) memory_list.append(self.config['memory_invalid']) for memory in memory_list: prefix = self.config['memory_name_prefix'] name = docker_containers.get_unique_name(prefix, length=4) if self.config['expect_success'] == "PASS": self.sub_stuff['name'].append(name) args.append(self.combine_subargs(name, memory, image, '/bin/bash')) self.sub_stuff['subargs'] = args self.sub_stuff['container_memory'] = memory_list self.sub_stuff['cgroup_memory'] = [] self.sub_stuff['result'] = []
def _init_container(self): """ Create, store in self.stuff and execute container """ docker_containers = DockerContainers(self) prefix = self.config["container_name_prefix"] name = docker_containers.get_unique_name(prefix, length=4) self.stuff['container_name'] = name if self.config.get('run_options_csv'): subargs = [arg for arg in self.config['run_options_csv'].split(',')] else: subargs = [] subargs.append("--name %s" % name) fin = DockerImage.full_name_from_defaults(self.config) subargs.append(fin) subargs.append("bash") container = NoFailDockerCmd(self, 'run', subargs) self.stuff['container_cmd'] = container container.execute() if self.config.get('attach_options_csv'): subargs = [arg for arg in self.config['attach_options_csv'].split(',')] else: subargs = [] subargs.append(name) container = AsyncDockerCmd(self, 'attach', subargs) self.stuff['container_cmd'] = container # overwrites finished cmd stdin = os.pipe() self.stuff['container_stdin'] = stdin[1] container.execute(stdin[0])
def initialize(self): super(flag, self).initialize() self.stuff["containter_name"] = [] self.stuff["subargs"] = [] self.stuff["cmdresult"] = [] docker_containers = DockerContainers(self) self.logdebug("Generating ramdom name will take 1 minute") cname = docker_containers.get_unique_name() self.stuff["containter_name"] = cname
def initialize(self): super(simple, self).initialize() self._init_stuff() config.none_if_empty(self.config) # Get free name prefix = self.config["container_name_prefix"] docker_containers = DockerContainers(self.parent_subtest) name = docker_containers.get_unique_name(prefix, length=4) self.sub_stuff['container_name'] = name
def initialize(self): super(flag, self).initialize() self.stuff["containter_name"] = [] self.stuff["subargs"] = [] self.stuff["cmdresult"] = [] docker_containers = DockerContainers(self) self.logdebug("Generating ramdom name will take 1 minute") cname = docker_containers.get_unique_name("docker", "test", 4) self.stuff["containter_name"] = cname
def initialize(self): super(diff_base, self).initialize() dc = DockerContainers(self) name = self.sub_stuff['name'] = dc.get_unique_name() fin = DockerImage.full_name_from_defaults(self.config) subargs = ['--name=%s' % (name), fin] subargs = subargs + self.config['command'].split(',') nfdc = DockerCmd(self, 'run', subargs) mustpass(nfdc.execute())
def initialize(self): super(run_attach_stdout, self).initialize() dc = DockerContainers(self.parent_subtest) self.sub_stuff["rand_name"] = rand_name = dc.get_unique_name() self.sub_stuff["rand_data"] = utils.generate_random_string(8) self.sub_stuff["subargs"].insert(0, "--name=\"%s\"" % rand_name) attach_options = self.config['attach_options_csv'].split(',') attach_options.append(rand_name) self.sub_stuff['attach_options'] = attach_options self.sub_stuff["rpipe"], self.sub_stuff["wpipe"] = os.pipe()
def initialize(self): super(diff_base, self).initialize() dc = DockerContainers(self.parent_subtest) scn = self.__class__.__name__ name = self.sub_stuff['name'] = dc.get_unique_name(prefix=scn) fin = DockerImage.full_name_from_defaults(self.config) subargs = ['--name=%s' % (name), fin] subargs = subargs + self.config['command'].split(',') nfdc = NoFailDockerCmd(self, 'run', subargs) nfdc.execute()
def initialize(self): """ Runs one container """ super(kill_bad_base, self).initialize() config.none_if_empty(self.config) # Prepare a container docker_containers = DockerContainers(self) name = docker_containers.get_unique_name() self.sub_stuff['container_name'] = name self._init_container(name) time.sleep(self.config.get('wait_start', 3))
def initialize(self): super(syslog, self).initialize() dc = DockerContainers(self) scn = self.__class__.__name__ name = self.stuff["container_name"] = dc.get_unique_name(prefix=scn) self.stuff['name'] = '--name=%s' % name self.stuff['fin'] = DockerImage.full_name_from_defaults(self.config) self.stuff['params'] = '-v /dev/log:/dev/log' now = datetime.datetime.now() time = now.strftime("%Y-%m-%d %H:%M:%S") self.stuff["msg"] = "SYSLOGTEST at time: %s" % time self.stuff['testcmds'] = 'logger %s' % self.stuff["msg"]
def initialize(self): """ Runs one container """ super(kill_bad_base, self).initialize() # Prepare a container docker_containers = DockerContainers(self.parent_subtest) name = docker_containers.get_unique_name() self.sub_stuff['container_name'] = name config.none_if_empty(self.config) self._init_container(name) time.sleep(self.config.get('wait_start', 3))
def initialize(self): super(syslog, self).initialize() if not os.path.isfile(self.config['syslogfile']): raise DockerTestNAError("Couldn't find system log: %s" % self.config['syslogfile']) dc = DockerContainers(self) name = self.stuff["container_name"] = dc.get_unique_name() self.stuff['name'] = '--name=%s' % name self.stuff['fin'] = DockerImage.full_name_from_defaults(self.config) self.stuff['params'] = '-v /dev/log:/dev/log' now = datetime.datetime.now() time = now.strftime("%Y-%m-%d %H:%M:%S") self.stuff["msg"] = "SYSLOGTEST at time: %s" % time self.stuff['testcmds'] = 'logger %s' % self.stuff["msg"]
def init_subargs(self): """ Initialize basic arguments that will use for start container Will return a list 'args' """ docker_containers = DockerContainers(self) image = DockerImage.full_name_from_defaults(self.config) name = docker_containers.get_unique_name() self.sub_stuff['name'] = name bash_cmd = self.config['bash_cmd'] args = ["--name=%s" % name] args += get_as_list(self.config['run_args_csv']) args += [image, bash_cmd] return args
def initialize(self): super(simple, self).initialize() # Test container setup dc = DockerContainers(self) c_name = dc.get_unique_name() self.sub_stuff["containers"].append(c_name) self.init_test_container(c_name) # export/import command setup di = DockerImages(self) i_name = di.get_unique_name(c_name) # easier debugging self.sub_stuff["images"].append(i_name) subdct = {"container": c_name, "image": i_name} export_cmd_args = self.config['export_cmd_args'].strip() % subdct import_cmd_args = self.config['import_cmd_args'].strip() % subdct self.init_ei_dockercmd(export_cmd_args, import_cmd_args)
def _init_subargs(self): """ Initialize basic arguments that will use for start container Will return a list 'args' """ docker_containers = DockerContainers(self.parent_subtest) image = DockerImage.full_name_from_defaults(self.config) prefix = self.config['name_prefix'] name = docker_containers.get_unique_name(prefix, length=4) self.sub_stuff['name'] = name bash_cmd = self.config['bash_cmd'] args = ["--name=%s" % name, image, bash_cmd] return args
def run_once(self): """ Main test body """ super(kill_bad_base, self).run_once() self.logdebug("Executing couple of bad kill signals.") self.failif(self.sub_stuff["container_cmd"].done, "Testing container " "died unexpectadly.") for signal in self.config["bad_signals"].split(","): mustfail(DockerCmd(self, "kill", ["-s", signal, self.sub_stuff["container_name"]]).execute(), 1) self.failif( self.sub_stuff["container_cmd"].done, "Testing " "container died after using signal %s." % signal ) dkrcnt = DockerContainers(self) nonexisting_name = dkrcnt.get_unique_name() self.logdebug("Killing nonexisting containe.") mustfail(DockerCmd(self, "kill", [nonexisting_name]).execute(), 1)
def initialize(self): if self.config["remote_image_fqin"] == "": raise error.TestNAError("Unable to prepare env for test:" "run_remote_tag/remote_image_fqin have to " "be filled by functional repo address.") comp = DockerImage.split_to_component(self.config["remote_image_fqin"]) (self.config["docker_repo_name"], self.config["docker_repo_tag"], self.config["docker_registry_host"], self.config["docker_registry_user"]) = comp super(run_remote_tag, self).initialize() dc = DockerContainers(self.parent_subtest) rand_name = dc.get_unique_name() self.sub_stuff["rand_name"] = rand_name self.sub_stuff["subargs"].insert(0, "--name=%s " % rand_name)
def run_once(self): """ Main test body """ super(kill_bad_base, self).run_once() self.logdebug("Executing couple of bad kill signals.") self.failif(self.sub_stuff['container_cmd'].done, "Testing container " "died unexpectadly.") for signal in self.config['bad_signals'].split(','): MustFailDockerCmd(self, 'kill', ['-s', signal, self.sub_stuff['container_name']], verbose=False).execute() self.failif(self.sub_stuff['container_cmd'].done, "Testing " "container died after using signal %s." % signal) dkrcnt = DockerContainers(self.parent_subtest) nonexisting_name = dkrcnt.get_unique_name() self.logdebug("Killing nonexisting containe.") MustFailDockerCmd(self, 'kill', [nonexisting_name], verbose=False).execute()
def run_once(self): """ Main test body """ super(kill_bad_base, self).run_once() self.logdebug("Executing couple of bad kill signals.") self.failif(self.sub_stuff['container_cmd'].done, "Testing container " "died unexpectadly.") for signal in self.config['bad_signals'].split(','): mustfail( DockerCmd(self, 'kill', ['-s', signal, self.sub_stuff['container_name'] ]).execute(), 1) self.failif( self.sub_stuff['container_cmd'].done, "Testing " "container died after using signal %s." % signal) dkrcnt = DockerContainers(self) nonexisting_name = dkrcnt.get_unique_name() self.logdebug("Killing nonexisting containe.") mustfail(DockerCmd(self, 'kill', [nonexisting_name]).execute(), 1)
def initialize(self): super(kill_base, self).initialize() # Prepare a container docker_containers = DockerContainers(self) name = docker_containers.get_unique_name("test", length=4) self.sub_stuff["container_name"] = name config.none_if_empty(self.config) if self.config.get("run_container_attached"): self._init_container_attached(name) else: self._init_container_normal(name) time.sleep(self.config["wait_start"]) # Prepare the "kill" command if self.config.get("kill_options_csv"): subargs = [arg for arg in self.config["kill_options_csv"].split(",")] else: subargs = [] subargs.append(name) self._populate_kill_cmds(subargs)
def initialize(self): super(sigproxy_base, self).initialize() self.init_test_specific_variables() self.sub_stuff['container_name'] = None # tested container name self.sub_stuff['container_cmd'] = None # tested container cmd self.sub_stuff['kill_signals'] = None # testing kill signal self.sub_stuff['negative_test'] = None # sigproxy enabled/disabled self.sub_stuff['check_stdout'] = self.config['check_stdout'] config.none_if_empty(self.config) # Prepare a container docker_containers = DockerContainers(self) name = docker_containers.get_unique_name() self.sub_stuff['container_name'] = name if self.sub_stuff['attached']: self._init_container_attached(name) else: self._init_container_normal(name) time.sleep(self.config['wait_start']) # Prepare the "sigproxy" command kill_sigs = [int(sig) for sig in self.config['kill_signals'].split()] self.sub_stuff['kill_signals'] = kill_sigs self.sub_stuff['negative_test'] = self.config.get('negative_test')
def initialize(self): super(sigproxy_base, self).initialize() self.init_test_specific_variables() self.sub_stuff["container_name"] = None # tested container name self.sub_stuff["container_cmd"] = None # tested container cmd self.sub_stuff["kill_signals"] = None # testing kill signal self.sub_stuff["negative_test"] = None # sigproxy enabled/disabled self.sub_stuff["check_stdout"] = self.config["check_stdout"] config.none_if_empty(self.config) # Prepare a container docker_containers = DockerContainers(self) name = docker_containers.get_unique_name() self.sub_stuff["container_name"] = name if self.sub_stuff["attached"]: self._init_container_attached(name) else: self._init_container_normal(name) self._wait_for_ready() # Prepare the "sigproxy" command kill_sigs = [int(sig) for sig in self.config["kill_signals"].split()] self.sub_stuff["kill_signals"] = kill_sigs self.sub_stuff["negative_test"] = self.config.get("negative_test")
def initialize(self): super(kill_base, self).initialize() # Prepare a container docker_containers = DockerContainers(self) name = docker_containers.get_unique_name("test", length=4) self.sub_stuff['container_name'] = name config.none_if_empty(self.config) if self.config.get('run_container_attached'): self._init_container_attached(name) else: self._init_container_normal(name) cmd = self.sub_stuff['container_cmd'] cmd.wait_for_ready() # Prepare the "kill" command if self.config.get('kill_options_csv'): subargs = [arg for arg in self.config['kill_options_csv'].split(',')] else: subargs = [] subargs.append(name) self._populate_kill_cmds(subargs)