def test_has_image_multiple(self): with patch("Atomic.util.image_by_name") as mockobj: mockobj.return_value = _multiple_images db = DockerBackend() db._get_images = MagicMock(return_value=d_images) db._inspect_image = MagicMock(return_value=None) self.assertRaises(ValueError, db.has_image, "registry.access.redhat.com/rhel7")
def test_has_image_multiple(self): with patch('Atomic.util.image_by_name') as mockobj: mockobj.return_value = _multiple_images db = DockerBackend() db._get_images = MagicMock(return_value=d_images) db._inspect_image = MagicMock(return_value=None) self.assertRaises(ValueError, db.has_image, 'registry.access.redhat.com/rhel7')
def test_has_image_by_inspect(self): db = DockerBackend() db._inspect_image = MagicMock(return_value=_rsyslog_image_inspect) img_object = db.has_image( 'registry.access.redhat.com/rhel7/rsyslog:latest') self.assertEqual( img_object.id, '04f7e9543b939537000296e38c11d5d422653f74a6dd2a3905b931bb8f4c3265')
def test_has_image_by_name(self): with patch("Atomic.util.image_by_name") as mockobj: mockobj.return_value = _centos_name_search db = DockerBackend() db.inspect_image = MagicMock(return_value=None) db._inspect_image = MagicMock(return_value=_centos_inspect_image) img_obj = db.has_image("centos") self.assertEqual(img_obj.id, "0584b3d2cf6d235ee310cf14b54667d889887b838d3f3d3033acd70fc3c48b8a")
def test_image_not_installed(self): MockIO.reset_data() args = self.Args() args.storage = 'docker' args.image = 'registry.access.redhat.com/rhel7' db = DockerBackend() db._inspect_image = MagicMock(return_value=rhel_docker_inspect) local_image_object = db.inspect_image(args.image) self.assertFalse(util.InstallData.image_installed(local_image_object))
def test_image_installed_name(self): MockIO.reset_data() MockIO.grow_data('new_data_fq', 'docker.io/library/centos:latest') args = self.Args() args.storage = 'docker' args.image = 'docker.io/library/centos:latest' db = DockerBackend() db._inspect_image = MagicMock(return_value=local_centos_inspect) local_image_object = db.inspect_image(args.image) self.assertTrue(util.InstallData.image_installed(local_image_object))
def test_image_installed_id(self): MockIO.reset_data() MockIO.grow_data('new_data_fq', '16e9fdecc1febc87fb1ca09271009cf5f28eb8d4aec5515922ef298c145a6726') args = self.Args() args.storage = 'docker' args.image = 'docker.io/library/centos:latest' db = DockerBackend() db._inspect_image = MagicMock(return_value=local_centos_inspect) local_image_object = db.inspect_image(args.image) self.assertTrue(util.InstallData.image_installed(local_image_object))
def test_container_obj_id(self): db = DockerBackend() db._inspect_container = MagicMock( return_value=_rsyslog_container_inspect) con_obj = db.inspect_container('3e014f35a7d0') self.assertEqual( con_obj.id, '3e014f35a7d0a22579cdad033edefd287fe01cac0e52dd68162e477fc150dc64') self.assertEqual( con_obj.image, '04f7e9543b939537000296e38c11d5d422653f74a6dd2a3905b931bb8f4c3265')
def test_docker_info(self): db = DockerBackend() db._inspect_image = MagicMock(return_value=_centos_inspect_image) img_obj = db.inspect_image('docker.io/library/centos:latest') info = Info() args = self.Args() args.storage = 'docker' info.set_args(args) info.beu.get_backend_and_image_obj = MagicMock(return_value=(db, img_obj)) result = info.info() self.assertEqual(result, _docker_centos_result)
def test_docker_info(self): db = DockerBackend() db._inspect_image = MagicMock(return_value=_centos_inspect_image) img_obj = db.inspect_image('docker.io/library/centos:latest') info = Info() args = self.Args() args.storage = 'docker' info.set_args(args) info.beu.get_backend_and_image = MagicMock(return_value=(db, img_obj)) result = info.info() self.assertEqual(result, _docker_centos_result)
def test_has_image_by_name(self): with patch('Atomic.util.image_by_name') as mockobj: mockobj.return_value = _centos_name_search db = DockerBackend() db.inspect_image = MagicMock(return_value=None) db._inspect_image = MagicMock(return_value=_centos_inspect_image) img_obj = db.has_image('centos') self.assertEqual( img_obj.id, '0584b3d2cf6d235ee310cf14b54667d889887b838d3f3d3033acd70fc3c48b8a' )
def test_version_json_docker(self): db = DockerBackend() db._inspect_image = MagicMock(return_value=_rhel_docker_inspect) img_obj = db.inspect_image('registry.access.redhat.com/rhel7') info = Info() info.get_layer_objects = MagicMock(return_value=img_obj.layers) args = self.Args() args.storage = 'docker' args.images = 'registry.access.redhat.com/rhel7' info.set_args(args) results = info.dbus_version() self.assertEqual(results, _rhel_version_json)
def test_images(self): db = DockerBackend() db._inspect_image = MagicMock(return_value=_docker_images) ob = OSTreeBackend() ob.syscontainers.get_system_images = MagicMock(return_value=_system_images) images = Images() args = self.Args() args.storage = 'docker' args.json = True images.set_args(args) return_value = images.display_all_image_info() self.assertEqual(return_value, 0)
def test_verify_docker_diff(self): with patch('Atomic.backendutils.BackendUtils.get_backend_and_image_obj') as mockobj: args = self.Args() args.storage = 'docker' args.image = 'docker.io/library/centos:centos7.0.1406' db = DockerBackend() db._inspect_image = MagicMock(return_value=local_centos_inspect_old) local_image_object = db.inspect_image(args.image) mockobj.return_value = (db, local_image_object) v = Verify() v.set_args(args) Image.remote_inspect = MagicMock(return_value=remote_centos_inspect_latest) self.assertNotEqual(v.verify_dbus(), docker_dbus_result)
def test_images(self): db = DockerBackend() db._inspect_image = MagicMock(return_value=_docker_images) ob = OSTreeBackend() ob.syscontainers.get_system_images = MagicMock( return_value=_system_images) images = Images() args = self.Args() args.storage = 'docker' args.json = True images.set_args(args) return_value = images.display_all_image_info() self.assertEqual(return_value, 0)
def test_pull_by_digest(self): image_name = "docker.io/busybox@sha256:29f5d56d12684887bdfa50dcd29fc31eea4aaf4ad3bec43daf19026a7ce69912" db = DockerBackend() img_obj = db._make_remote_image(image_name) img_obj.remote_inspect = MagicMock(return_value=remote_inspect_info) img_obj.populate_remote_inspect_info() db.make_remote_image = MagicMock(return_value=img_obj) db.has_image = MagicMock(return_value=None) util.skopeo_inspect = MagicMock(return_value=remote_inspect_info) args = self.Args() args.image = image_name args.storage = 'docker' pull = Pull() pull.set_args(args) pull.be_utils.get_backend_from_string = MagicMock(return_value=db) util.skopeo_copy = MagicMock(return_value=None) pull.pull_image()
def run(self): storage_set = False if self.args.storage is None else True storage = _storage if not storage_set else self.args.storage be_utils = BackendUtils() if self.name: try: be, con_obj = be_utils.get_backend_and_container_obj(self.name) return be.run(con_obj, atomic=self, args=self.args) except ValueError: pass be = be_utils.get_backend_from_string(storage) db = DockerBackend() img_object = be.has_image(self.image) if img_object is None and storage == 'docker': self.display("Need to pull %s" % self.image) remote_image_obj = db.make_remote_image(self.args.image) # If the image has a atomic.type of system, then we need to land # this in the ostree backend. Install it and then start it # because this is run if remote_image_obj.is_system_type and not storage_set: be = be_utils.get_backend_from_string('ostree') be_utils.message_backend_change('docker', 'ostree') be.install(self.image, self.name) con_obj = be.has_container(self.name) return be.run(con_obj) if self.args.display: return 0 try: db.pull_image(self.image, remote_image_obj) img_object = db.has_image(self.image) except RegistryInspectError: raise ValueError("Unable to find image {}".format(self.image)) if storage == 'ostree': if img_object is None: be.pull_image(self.args.image, None) # For system containers, the run method really needs a container obj con_obj = be.has_container(self.name) if con_obj is None: be.install(self.image, self.name) img_object = be.has_container(self.name) return be.run(img_object, atomic=self, args=self.args)
def run(self): storage_set = False if self.args.storage is None else True storage = _storage if not storage_set else self.args.storage be_utils = BackendUtils() if self.name: try: be, con_obj = be_utils.get_backend_and_container_obj(self.name) return be.run(con_obj, atomic=self, args=self.args) except ValueError: pass be = be_utils.get_backend_from_string(storage) db = DockerBackend() img_object = be.has_image(self.image) if img_object is None and storage == 'docker': self.display("Need to pull %s" % self.image) remote_image_obj = db.make_remote_image(self.args.image) # If the image has a atomic.type of system, then we need to land # this in the ostree backend. Install it and then start it # because this is run if remote_image_obj.is_system_type and not storage_set: be = be_utils.get_backend_from_string('ostree') be_utils.message_backend_change('docker', 'ostree') be.install(self.image, self.name) con_obj = be.has_container(self.name) return be.run(con_obj) if self.args.display: return 0 try: db.pull_image(self.image, remote_image_obj) img_object = db.has_image(self.image) except RegistryInspectError: raise ValueError("Unable to find image {}".format(self.image)) return be.run(img_object, atomic=self, args=self.args)
def run(self): if self.name: be_utils = BackendUtils() try: be, con_obj = be_utils.get_backend_and_container_obj(self.name) return be.run(con_obj, atomic=self, args=self.args) except ValueError: pass db = DockerBackend() img_object = db.has_image(self.image) if img_object is None: self.display("Need to pull %s" % self.image) if self.args.display: return 0 try: db.pull_image(self.image) img_object = db.has_image(self.image) except RegistryInspectError: raise ValueError("Unable to find image {}".format(self.image)) db.run(img_object, atomic=self, args=self.args)
def run(self): if self.name: be_utils = BackendUtils() try: be, con_obj = be_utils.get_backend_and_container_obj(self.name) return be.run(con_obj, atomic=self, args=self.args) except ValueError: pass db = DockerBackend() img_object = db.has_image(self.image) if img_object is None: self.display("Need to pull %s" % self.image) if self.args.display: return 0 try: db.pull_image(self.image) img_object = db.has_image(self.image) except RegistryInspectError: util.write_err("Unable to find image {}".format(self.image)) db.run(img_object, atomic=self, args=self.args)
def run_scanner(image): run_object = run.Run() run_object.image = image return DockerBackend.check_args(run_object.get_label("RUN"))
def test_inspect_image(self): db = DockerBackend() db._inspect_image = MagicMock(return_value=_rsyslog_image_inspect) img_obj = db.inspect_image( 'registry.access.redhat.com/rhel7/rsyslog:latest') self.assertIsNotNone(img_obj)
def test_get_images(self): db = DockerBackend() db.d.images = MagicMock(return_value=d_images) images = db.get_images() self.assertTrue(len(images) > 0)
def test_inspect_container(self): db = DockerBackend() db._inspect_container = MagicMock( return_value=_rsyslog_container_inspect) con_obj = db.inspect_container('3e014f35a7d0') self.assertIsNotNone(con_obj)
def test_long_version(self): db = DockerBackend() db._inspect_image = MagicMock(return_value=_rsyslog_image_inspect) img_obj = db.inspect_image( 'registry.access.redhat.com/rhel7/rsyslog:latest') self.assertEqual(img_obj.long_version, "rhel7/rsyslog-7.3-8")
def test_has_image_not_found(self): with patch('Atomic.util.image_by_name') as mockobj: mockobj.return_value = [] db = DockerBackend() db._inspect_image = MagicMock(return_value=None) self.assertIsNone(db.has_image('foobar'))
def test_inspect_image(self): db = DockerBackend() db._inspect_image = MagicMock(return_value=_rsyslog_image_inspect) img_obj = db.inspect_image("registry.access.redhat.com/rhel7/rsyslog:latest") self.assertIsNotNone(img_obj)
def test_long_version(self): db = DockerBackend() db._inspect_image = MagicMock(return_value=_rsyslog_image_inspect) img_obj = db.inspect_image("registry.access.redhat.com/rhel7/rsyslog:latest") self.assertEqual(img_obj.long_version, "rhel7/rsyslog-7.3-8")
def test_has_image_not_found(self): with patch("Atomic.util.image_by_name") as mockobj: mockobj.return_value = [] db = DockerBackend() db._inspect_image = MagicMock(return_value=None) self.assertIsNone(db.has_image("foobar"))
def test_inspect_container(self): db = DockerBackend() db._inspect_container = MagicMock(return_value=_rsyslog_container_inspect) con_obj = db.inspect_container("3e014f35a7d0") self.assertIsNotNone(con_obj)
def test_has_image_by_inspect(self): db = DockerBackend() db._inspect_image = MagicMock(return_value=_rsyslog_image_inspect) img_object = db.has_image("registry.access.redhat.com/rhel7/rsyslog:latest") self.assertEqual(img_object.id, "04f7e9543b939537000296e38c11d5d422653f74a6dd2a3905b931bb8f4c3265")
def test_container_obj_id(self): db = DockerBackend() db._inspect_container = MagicMock(return_value=_rsyslog_container_inspect) con_obj = db.inspect_container("3e014f35a7d0") self.assertEqual(con_obj.id, "3e014f35a7d0a22579cdad033edefd287fe01cac0e52dd68162e477fc150dc64") self.assertEqual(con_obj.image, "04f7e9543b939537000296e38c11d5d422653f74a6dd2a3905b931bb8f4c3265")