def _InstallIpfw(self):
        ipfw_bin = binary_manager.FindPath('ipfw', self.GetArchName(),
                                           self.GetOSName())
        ipfw_mod = binary_manager.FindPath('ipfw_mod.ko', self.GetArchName(),
                                           self.GetOSName())

        try:
            changed = cloud_storage.GetIfChanged(ipfw_bin,
                                                 cloud_storage.INTERNAL_BUCKET)
            changed |= cloud_storage.GetIfChanged(
                ipfw_mod, cloud_storage.INTERNAL_BUCKET)
        except cloud_storage.CloudStorageError as e:
            logging.error(str(e))
            logging.error('You may proceed by manually building and installing'
                          'dummynet for your kernel. See: '
                          'http://info.iet.unipi.it/~luigi/dummynet/')
            sys.exit(1)

        if changed or not self.CanLaunchApplication('ipfw'):
            if not self._IsIpfwKernelModuleInstalled():
                subprocess.check_call(['/usr/bin/sudo', 'insmod', ipfw_mod])
            os.chmod(ipfw_bin, 0o755)
            subprocess.check_call(
                ['/usr/bin/sudo', 'cp', ipfw_bin, '/usr/local/sbin'])

        assert self.CanLaunchApplication('ipfw'), 'Failed to install ipfw. ' \
            'ipfw provided binaries are not supported for linux kernel < 3.13. ' \
            'You may proceed by manually building and installing dummynet for ' \
            'your kernel. See: http://info.iet.unipi.it/~luigi/dummynet/'
    def _InstallIpfw(self):
        ipfw_bin = binary_manager.FindPath('ipfw', self.GetArchName(),
                                           self.GetOSName())
        ipfw_mod = binary_manager.FindPath('ipfw_mod.ko', self.GetArchName(),
                                           self.GetOSName())

        try:
            changed = cloud_storage.GetIfChanged(ipfw_bin,
                                                 cloud_storage.INTERNAL_BUCKET)
            changed |= cloud_storage.GetIfChanged(
                ipfw_mod, cloud_storage.INTERNAL_BUCKET)
        except cloud_storage.CloudStorageError, e:
            logging.error(str(e))
            logging.error('You may proceed by manually building and installing'
                          'dummynet for your kernel. See: '
                          'http://info.iet.unipi.it/~luigi/dummynet/')
            sys.exit(1)