The following pull request was submitted through Github. It can be accessed and reviewed at: https://github.com/lxc/pylxd/pull/245
This e-mail was sent by the LXC bot, direct replies will not reach the author unless they happen to be subscribed to this list. === Description (from pull-request) === Existing version load image into memory when non-unified image used (with separate tarball with manifest). Added ability for stream based image upload without loading them to memory. requests-toolbelt external package required for streaming multipart HTTP image upload. Additional parameter added to identify if streams are/can be passed - this will allow pylxd client to identify via introspection if pylxd library supports stream based upload and fallback to old non-stream behavior if old version of pylxd is installed.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <link rel="dns-prefetch" href="https://assets-cdn.github.com"> <link rel="dns-prefetch" href="https://avatars0.githubusercontent.com"> <link rel="dns-prefetch" href="https://avatars1.githubusercontent.com"> <link rel="dns-prefetch" href="https://avatars2.githubusercontent.com"> <link rel="dns-prefetch" href="https://avatars3.githubusercontent.com"> <link rel="dns-prefetch" href="https://github-cloud.s3.amazonaws.com"> <link rel="dns-prefetch" href="https://user-images.githubusercontent.com/"> <link crossorigin="anonymous" href="https://assets-cdn.github.com/assets/frameworks-bedfc518345498ab3204d330c1727cde7e733526a09cd7df6867f6a231565091.css" media="all" rel="stylesheet" /> <link crossorigin="anonymous" href="https://assets-cdn.github.com/assets/github-794ddde646dd1791582965df2f5d1936d07f155e9fb08f86df99a2043d48408a.css" media="all" rel="stylesheet" /> <link crossorigin="anonymous" href="https://assets-cdn.github.com/assets/site-877643c520258c4fa15ac8d1664d84efd0e3db56f5e544ccac58da0e50489904.css" media="all" rel="stylesheet" /> <meta name="viewport" content="width=device-width"> <title>Fix memory hog during image import by shurkaxaa · Pull Request #245 · lxc/pylxd · GitHub</title> <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub"> <link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub"> <meta property="fb:app_id" content="1401488693436528"> <meta content="https://avatars0.githubusercontent.com/u/20762983?v=4&s=400" property="og:image" /><meta content="GitHub" property="og:site_name" /><meta content="object" property="og:type" /><meta content="Fix memory hog during image import by shurkaxaa · Pull Request #245 · lxc/pylxd" property="og:title" /><meta content="https://github.com/lxc/pylxd/pull/245" property="og:url" /><meta content="Existing version load image into memory when non-unified image used (with separate tarball with manifest). Added ability for stream based image upload without loading them to memory. requests-toolb..." property="og:description" /> <link rel="assets" href="https://assets-cdn.github.com/"> <meta name="pjax-timeout" content="1000"> <meta name="request-id" content="8B78:2143:CDE6547:16A2D981:59C32B13" data-pjax-transient> <meta name="selected-link" value="repo_pulls" data-pjax-transient> <meta name="google-site-verification" content="KT5gs8h0wvaagLKAVWq8bbeNwnZZK1r1XQysX3xurLU"> <meta name="google-site-verification" content="ZzhVyEFwb7w3e0-uOTltm8Jsck2F5StVihD0exw2fsA"> <meta name="google-analytics" content="UA-3769691-2"> <meta content="collector.githubapp.com" name="octolytics-host" /><meta content="github" name="octolytics-app-id" /><meta content="https://collector.githubapp.com/github-external/browser_event" name="octolytics-event-url" /><meta content="8B78:2143:CDE6547:16A2D981:59C32B13" name="octolytics-dimension-request_id" /><meta content="iad" name="octolytics-dimension-region_edge" /><meta content="iad" name="octolytics-dimension-region_render" /> <meta content="/<user-name>/<repo-name>/pull_requests/show" data-pjax-transient="true" name="analytics-location" /> <meta class="js-ga-set" name="dimension1" content="Logged Out"> <meta name="hostname" content="github.com"> <meta name="user-login" content=""> <meta name="expected-hostname" content="github.com"> <meta name="js-proxy-site-detection-payload" content="YWE0MzA0ZDEzZTllMjJlYTdjODBkOTI2MWVjNzM5MWM4N2M2NjU0NWVjOGE1NjQ3YjVjNDNiYWU5MTVmMTIxM3x7InJlbW90ZV9hZGRyZXNzIjoiMTQ5LjU2LjE0OC4wIiwicmVxdWVzdF9pZCI6IjhCNzg6MjE0MzpDREU2NTQ3OjE2QTJEOTgxOjU5QzMyQjEzIiwidGltZXN0YW1wIjoxNTA1OTYyNzcxLCJob3N0IjoiZ2l0aHViLmNvbSJ9"> <meta name="html-safe-nonce" content="54dc78fc0b757914cf7fa299326823baa1b85078"> <meta http-equiv="x-pjax-version" content="3a8fade524c4f83157a05c394e2a0753"> <style type="text/css" media="screen" id="issue-labels-style"> span.labelstyle-fc2929, .linked-labelstyle-fc2929 { background-color: #fc2929 !important; color: #fff !important;}.labelstyle-fc2929.selected { background-color: #fc2929 !important; color: #fff !important;}.label-select-menu .labelstyle-fc2929.selected { background:rgba(252, 41, 41, 0.12) !important; color: #991818 !important;} span.labelstyle-cccccc, .linked-labelstyle-cccccc { background-color: #cccccc !important; color: #333333 !important;}.labelstyle-cccccc.selected { background-color: #cccccc !important; color: #333333 !important;}.label-select-menu .labelstyle-cccccc.selected { background:rgba(204, 204, 204, 0.12) !important; color: #999999 !important;} span.labelstyle-84b6eb, .linked-labelstyle-84b6eb { background-color: #84b6eb !important; color: #1c2733 !important;}.labelstyle-84b6eb.selected { background-color: #84b6eb !important; color: #1c2733 !important;}.label-select-menu .labelstyle-84b6eb.selected { background:rgba(132, 182, 235, 0.12) !important; color: #557699 !important;} span.labelstyle-0052cc, .linked-labelstyle-0052cc { background-color: #0052cc !important; color: #fff !important;}.labelstyle-0052cc.selected { background-color: #0052cc !important; color: #fff !important;}.label-select-menu .labelstyle-0052cc.selected { background:rgba(0, 82, 204, 0.12) !important; color: #003d99 !important;} span.labelstyle-159818, .linked-labelstyle-159818 { background-color: #159818 !important; color: #fff !important;}.labelstyle-159818.selected { background-color: #159818 !important; color: #fff !important;}.label-select-menu .labelstyle-159818.selected { background:rgba(21, 152, 24, 0.12) !important; color: #159918 !important;} span.labelstyle-e6e6e6, .linked-labelstyle-e6e6e6 { background-color: #e6e6e6 !important; color: #333333 !important;}.labelstyle-e6e6e6.selected { background-color: #e6e6e6 !important; color: #333333 !important;}.label-select-menu .labelstyle-e6e6e6.selected { background:rgba(230, 230, 230, 0.12) !important; color: #999999 !important;} span.labelstyle-cc317c, .linked-labelstyle-cc317c { background-color: #cc317c !important; color: #fff !important;}.labelstyle-cc317c.selected { background-color: #cc317c !important; color: #fff !important;}.label-select-menu .labelstyle-cc317c.selected { background:rgba(204, 49, 124, 0.12) !important; color: #99245c !important;} span.labelstyle-ffffff, .linked-labelstyle-ffffff { background-color: #ffffff !important; color: #333333 !important;}.labelstyle-ffffff.selected { background-color: #ffffff !important; color: #333333 !important;}.label-select-menu .labelstyle-ffffff.selected { background:rgba(255, 255, 255, 0.12) !important; color: #999999 !important;} </style> <link href="https://github.com/lxc/pylxd/commits/fix_memory_hog.atom" rel="alternate" title="Recent Commits to pylxd:fix_memory_hog" type="application/atom+xml"> <meta name="description" content="pylxd - Python module for LXD"> <meta name="go-import" content="github.com/lxc/pylxd git https://github.com/lxc/pylxd.git"> <meta content="2301756" name="octolytics-dimension-user_id" /><meta content="lxc" name="octolytics-dimension-user_login" /><meta content="36316984" name="octolytics-dimension-repository_id" /><meta content="lxc/pylxd" name="octolytics-dimension-repository_nwo" /><meta content="true" name="octolytics-dimension-repository_public" /><meta content="false" name="octolytics-dimension-repository_is_fork" /><meta content="36316984" name="octolytics-dimension-repository_network_root_id" /><meta content="lxc/pylxd" name="octolytics-dimension-repository_network_root_nwo" /><meta content="false" name="octolytics-dimension-repository_explore_github_marketplace_ci_cta_shown" /> <meta name="browser-stats-url" content="https://api.github.com/_private/browser/stats"> <meta name="browser-errors-url" content="https://api.github.com/_private/browser/errors"> <link rel="mask-icon" href="https://assets-cdn.github.com/pinned-octocat.svg" color="#000000"> <link rel="icon" type="image/x-icon" href="https://assets-cdn.github.com/favicon.ico"> <meta name="theme-color" content="#1e2327"> </head> <body class="logged-out env-production"> <div class="position-relative js-header-wrapper "> <a href="#start-of-content" tabindex="1" class="px-2 py-4 show-on-focus js-skip-to-content">Skip to content</a> <div id="js-pjax-loader-bar" class="pjax-loader-bar"><div class="progress"></div></div> <header class="Header header-logged-out position-relative f4 py-3" role="banner"> <div class="container-lg d-flex px-3"> <div class="d-flex flex-justify-between flex-items-center"> <a class="header-logo-invertocat my-0" href="https://github.com/" aria-label="Homepage" data-ga-click="(Logged out) Header, go to homepage, icon:logo-wordmark"> <svg aria-hidden="true" class="octicon octicon-mark-github" height="32" version="1.1" viewBox="0 0 16 16" width="32"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"/></svg> </a> </div> <div class="HeaderMenu HeaderMenu--bright d-flex flex-justify-between flex-auto"> <nav class="mt-0"> <ul class="d-flex list-style-none"> <li class="ml-2"> <a href="/features" class="js-selected-navigation-item HeaderNavlink px-0 py-2 m-0" data-ga-click="Header, click, Nav menu - item:features" data-selected-links="/features /features/project-management /features/code-review /features/project-management /features/integrations /features"> Features </a> </li> <li class="ml-4"> <a href="/business" class="js-selected-navigation-item HeaderNavlink px-0 py-2 m-0" data-ga-click="Header, click, Nav menu - item:business" data-selected-links="/business /business/security /business/customers /business"> Business </a> </li> <li class="ml-4"> <a href="/explore" class="js-selected-navigation-item HeaderNavlink px-0 py-2 m-0" data-ga-click="Header, click, Nav menu - item:explore" data-selected-links="/explore /trending /trending/developers /integrations /integrations/feature/code /integrations/feature/collaborate /integrations/feature/ship showcases showcases_search showcases_landing /explore"> Explore </a> </li> <li class="ml-4"> <a href="/marketplace" class="js-selected-navigation-item HeaderNavlink px-0 py-2 m-0" data-ga-click="Header, click, Nav menu - item:marketplace" data-selected-links=" /marketplace"> Marketplace </a> </li> <li class="ml-4"> <a href="/pricing" class="js-selected-navigation-item HeaderNavlink px-0 py-2 m-0" data-ga-click="Header, click, Nav menu - item:pricing" data-selected-links="/pricing /pricing/developer /pricing/team /pricing/business-hosted /pricing/business-enterprise /pricing"> Pricing </a> </li> </ul> </nav> <div class="d-flex"> <div class="d-lg-flex flex-items-center mr-3"> <div class="header-search scoped-search site-scoped-search js-site-search" role="search"> <!-- '"` --><!-- </textarea></xmp> --></option></form><form accept-charset="UTF-8" action="/lxc/pylxd/search" class="js-site-search-form" data-scoped-search-url="/lxc/pylxd/search" data-unscoped-search-url="/search" method="get"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /></div> <label class="form-control header-search-wrapper js-chromeless-input-container"> <a href="/lxc/pylxd/pull/245" class="header-search-scope no-underline">This repository</a> <input type="text" class="form-control header-search-input js-site-search-focus js-site-search-field is-clearable" data-hotkey="s" name="q" value="" placeholder="Search" aria-label="Search this repository" data-unscoped-placeholder="Search GitHub" data-scoped-placeholder="Search" autocapitalize="off"> <input type="hidden" class="js-site-search-type-field" name="type" > </label> </form></div> </div> <span class="d-inline-block"> <div class="HeaderNavlink px-0 py-2 m-0"> <a class="text-bold text-white no-underline" href="/login?return_to=%2Flxc%2Fpylxd%2Fpull%2F245" data-ga-click="(Logged out) Header, clicked Sign in, text:sign-in">Sign in</a> <span class="text-gray">or</span> <a class="text-bold text-white no-underline" href="/join?source=header-repo" data-ga-click="(Logged out) Header, clicked Sign up, text:sign-up">Sign up</a> </div> </span> </div> </div> </div> </header> </div> <div id="start-of-content" class="show-on-focus"></div> <div id="js-flash-container"> </div> <div role="main"> <div itemscope itemtype="http://schema.org/SoftwareSourceCode"> <div id="js-repo-pjax-container" data-pjax-container> <!-- base sha1: "94210ae857c9c8ea97f20699256bdb1e09517408" --> <!-- head sha1: "765e42182a5657fa0d04c2d5fce912d4a2926828" --> <div class="pagehead repohead instapaper_ignore readability-menu experiment-repo-nav"> <div class="container repohead-details-container"> <ul class="pagehead-actions"> <li> <a href="/login?return_to=%2Flxc%2Fpylxd" class="btn btn-sm btn-with-count tooltipped tooltipped-n" aria-label="You must be signed in to watch a repository" rel="nofollow"> <svg aria-hidden="true" class="octicon octicon-eye" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M8.06 2C3 2 0 8 0 8s3 6 8.06 6C13 14 16 8 16 8s-3-6-7.94-6zM8 12c-2.2 0-4-1.78-4-4 0-2.2 1.8-4 4-4 2.22 0 4 1.8 4 4 0 2.22-1.78 4-4 4zm2-4c0 1.11-.89 2-2 2-1.11 0-2-.89-2-2 0-1.11.89-2 2-2 1.11 0 2 .89 2 2z"/></svg> Watch </a> <a class="social-count" href="/lxc/pylxd/watchers" aria-label="26 users are watching this repository"> 26 </a> </li> <li> <a href="/login?return_to=%2Flxc%2Fpylxd" class="btn btn-sm btn-with-count tooltipped tooltipped-n" aria-label="You must be signed in to star a repository" rel="nofollow"> <svg aria-hidden="true" class="octicon octicon-star" height="16" version="1.1" viewBox="0 0 14 16" width="14"><path fill-rule="evenodd" d="M14 6l-4.9-.64L7 1 4.9 5.36 0 6l3.6 3.26L2.67 14 7 11.67 11.33 14l-.93-4.74z"/></svg> Star </a> <a class="social-count js-social-count" href="/lxc/pylxd/stargazers" aria-label="106 users starred this repository"> 106 </a> </li> <li> <a href="/login?return_to=%2Flxc%2Fpylxd" class="btn btn-sm btn-with-count tooltipped tooltipped-n" aria-label="You must be signed in to fork a repository" rel="nofollow"> <svg aria-hidden="true" class="octicon octicon-repo-forked" height="16" version="1.1" viewBox="0 0 10 16" width="10"><path fill-rule="evenodd" d="M8 1a1.993 1.993 0 0 0-1 3.72V6L5 8 3 6V4.72A1.993 1.993 0 0 0 2 1a1.993 1.993 0 0 0-1 3.72V6.5l3 3v1.78A1.993 1.993 0 0 0 5 15a1.993 1.993 0 0 0 1-3.72V9.5l3-3V4.72A1.993 1.993 0 0 0 8 1zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm3 10c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm3-10c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z"/></svg> Fork </a> <a href="/lxc/pylxd/network" class="social-count" aria-label="68 users forked this repository"> 68 </a> </li> </ul> <h1 class="public "> <svg aria-hidden="true" class="octicon octicon-repo" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path fill-rule="evenodd" d="M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z"/></svg> <span class="author" itemprop="author"><a href="/lxc" class="url fn" rel="author">lxc</a></span><!-- --><span class="path-divider">/</span><!-- --><strong itemprop="name"><a href="/lxc/pylxd" data-pjax="#js-repo-pjax-container">pylxd</a></strong> </h1> </div> <div class="container"> <nav class="reponav js-repo-nav js-sidenav-container-pjax" itemscope itemtype="http://schema.org/BreadcrumbList" role="navigation" data-pjax="#js-repo-pjax-container"> <span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement"> <a href="/lxc/pylxd" class="js-selected-navigation-item reponav-item" data-hotkey="g c" data-selected-links="repo_source repo_downloads repo_commits repo_releases repo_tags repo_branches /lxc/pylxd" itemprop="url"> <svg aria-hidden="true" class="octicon octicon-code" height="16" version="1.1" viewBox="0 0 14 16" width="14"><path fill-rule="evenodd" d="M9.5 3L8 4.5 11.5 8 8 11.5 9.5 13 14 8 9.5 3zm-5 0L0 8l4.5 5L6 11.5 2.5 8 6 4.5 4.5 3z"/></svg> <span itemprop="name">Code</span> <meta itemprop="position" content="1"> </a> </span> <span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement"> <a href="/lxc/pylxd/issues" class="js-selected-navigation-item reponav-item" data-hotkey="g i" data-selected-links="repo_issues repo_labels repo_milestones /lxc/pylxd/issues" itemprop="url"> <svg aria-hidden="true" class="octicon octicon-issue-opened" height="16" version="1.1" viewBox="0 0 14 16" width="14"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"/></svg> <span itemprop="name">Issues</span> <span class="Counter">9</span> <meta itemprop="position" content="2"> </a> </span> <span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement"> <a href="/lxc/pylxd/pulls" class="js-selected-navigation-item selected reponav-item" data-hotkey="g p" data-selected-links="repo_pulls /lxc/pylxd/pulls" itemprop="url"> <svg aria-hidden="true" class="octicon octicon-git-pull-request" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path fill-rule="evenodd" d="M11 11.28V5c-.03-.78-.34-1.47-.94-2.06C9.46 2.35 8.78 2.03 8 2H7V0L4 3l3 3V4h1c.27.02.48.11.69.31.21.2.3.42.31.69v6.28A1.993 1.993 0 0 0 10 15a1.993 1.993 0 0 0 1-3.72zm-1 2.92c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zM4 3c0-1.11-.89-2-2-2a1.993 1.993 0 0 0-1 3.72v6.56A1.993 1.993 0 0 0 2 15a1.993 1.993 0 0 0 1-3.72V4.72c.59-.34 1-.98 1-1.72zm-.8 10c0 .66-.55 1.2-1.2 1.2-.65 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z"/></svg> <span itemprop="name">Pull requests</span> <span class="Counter">7</span> <meta itemprop="position" content="3"> </a> </span> <div class="reponav-dropdown js-menu-container"> <button type="button" class="btn-link reponav-item reponav-dropdown js-menu-target " data-no-toggle aria-expanded="false" aria-haspopup="true"> Insights <svg aria-hidden="true" class="octicon octicon-triangle-down v-align-middle text-gray" height="11" version="1.1" viewBox="0 0 12 16" width="8"><path fill-rule="evenodd" d="M0 5l6 6 6-6z"/></svg> </button> <div class="dropdown-menu-content js-menu-content"> <div class="dropdown-menu dropdown-menu-sw"> <a class="dropdown-item" href="/lxc/pylxd/pulse" data-skip-pjax> <svg aria-hidden="true" class="octicon octicon-pulse" height="16" version="1.1" viewBox="0 0 14 16" width="14"><path fill-rule="evenodd" d="M11.5 8L8.8 5.4 6.6 8.5 5.5 1.6 2.38 8H0v2h3.6l.9-1.8.9 5.4L9 8.5l1.6 1.5H14V8z"/></svg> Pulse </a> <a class="dropdown-item" href="/lxc/pylxd/graphs" data-skip-pjax> <svg aria-hidden="true" class="octicon octicon-graph" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M16 14v1H0V0h1v14h15zM5 13H3V8h2v5zm4 0H7V3h2v10zm4 0h-2V6h2v7z"/></svg> Graphs </a> </div> </div> </div> </nav> </div> </div> <div class="container new-discussion-timeline experiment-repo-nav"> <div class="repository-content"> <div class="issues-listing" data-pjax> <div class="signup-prompt-bg rounded-1"> <div class="signup-prompt p-4 text-center mb-4 rounded-1"> <div class="position-relative"> <!-- '"` --><!-- </textarea></xmp> --></option></form><form accept-charset="UTF-8" action="/site/dismiss_signup_prompt" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /><input name="authenticity_token" type="hidden" value="P/UTDzmIVVNeUDPmb/qNk0t/YArUY1bHQOSen4okF60WUVuEiGKa3z9EsLo2txMSOCLvc7YAsiwGqXIBNaABNA==" /></div> <button type="submit" class="position-absolute top-0 right-0 btn-link link-gray" data-ga-click="(Logged out) Sign up prompt, clicked Dismiss, text:dismiss"> Dismiss </button> </form> <h3 class="pt-2">Join GitHub today</h3> <p class="col-6 mx-auto">GitHub is home to over 20 million developers working together to host and review code, manage projects, and build software together.</p> <p class="pb-2"> <a class="btn btn-blue" href="/join?source=prompt-pr-show" data-ga-click="(Logged out) Sign up prompt, clicked Sign up, text:sign-up">Sign up</a> </p> </div> </div> </div> <div class="clearfix js-issues-results"> <div id="partial-discussion-header" class="gh-header js-details-container Details js-socket-channel js-updatable-content pull request" data-channel="pull_request:142246059" data-url="/lxc/pylxd/pull/245/show_partial?partial=pull_requests%2Ftitle"> <div class="gh-header-show "> <div class="gh-header-actions"> <button type="button" data-facebox="#new_issue_modal" class="btn btn-sm btn-primary float-right" data-hotkey="c" aria-haspopup="true" data-ga-click="Issues, create new issue, view:issue_show location:issue_header style:button logged_in:false">New issue</button> <div id="new_issue_modal" class="d-none"> <div class="mt-3 mb-2 text-center"> <svg aria-hidden="true" class="octicon octicon-comment-discussion text-blue" height="60" version="1.1" viewBox="0 0 16 16" width="60"><path fill-rule="evenodd" d="M15 1H6c-.55 0-1 .45-1 1v2H1c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h1v3l3-3h4c.55 0 1-.45 1-1V9h1l3 3V9h1c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zM9 11H4.5L3 12.5V11H1V5h4v3c0 .55.45 1 1 1h3v2zm6-3h-2v1.5L11.5 8H6V2h9v6z"/></svg> </div> <div class="px-4"> <p class="text-center mb-4"> <strong>Have a question about this project?</strong> Sign up for a free GitHub account to open an issue and contact its maintainers and the community. </p> <!-- '"` --><!-- </textarea></xmp> --></option></form><form accept-charset="UTF-8" action="/join?return_to=%2Flxc%2Fpylxd%2Fissues%2Fnew" autocomplete="off" class="js-signup-form" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /><input name="authenticity_token" type="hidden" value="+k/DtHw0alCrL4qa+MNGt78EpT12a7vbFOosKEZlSRlBu5d7QzlFjSKLvQOAky08u1aeFDAlXaGdUobzRIpqkw==" /></div> <dl class="form-group"><dt class="input-label"><label autocapitalize="off" autofocus="autofocus" data-autocheck-authenticity-token="z7ADTVecPWn9g5MYSOS0CUghaIy+qycD2Rn4SHBwb//1PpWbdb+b1/hZ/9hJ7txJSGp/ro+BhGQuC/yV72/Cew==" data-autocheck-url="/signup_check/username" data-facebox-id="user-login-issues" for="user_login_issues" name="user[login]">Pick a username</label></dt><dd><input autocapitalize="off" autofocus="autofocus" class="form-control" data-autocheck-authenticity-token="z7ADTVecPWn9g5MYSOS0CUghaIy+qycD2Rn4SHBwb//1PpWbdb+b1/hZ/9hJ7txJSGp/ro+BhGQuC/yV72/Cew==" data-autocheck-url="/signup_check/username" data-facebox-id="user-login-issues" id="user_login_issues" name="user[login]" size="30" type="text" /></dd></dl> <dl class="form-group"><dt class="input-label"><label autocapitalize="off" data-autocheck-authenticity-token="wTdQglqkP5VaXNVD8cJpCeKXyP9WtdTnMLn6JwbUWV1S1sYkuVsP2TT4l20ndo6oW8ar/RQs/ud2rLdODEa5ZA==" data-autocheck-url="/signup_check/email" data-facebox-id="user-email-issues" for="user_email_issues" name="user[email]">Email Address</label></dt><dd><input autocapitalize="off" class="form-control" data-autocheck-authenticity-token="wTdQglqkP5VaXNVD8cJpCeKXyP9WtdTnMLn6JwbUWV1S1sYkuVsP2TT4l20ndo6oW8ar/RQs/ud2rLdODEa5ZA==" data-autocheck-url="/signup_check/email" data-facebox-id="user-email-issues" id="user_email_issues" name="user[email]" size="30" type="text" /></dd></dl> <dl class="form-group"><dt class="input-label"><label data-autocheck-authenticity-token="wKZRyn4th1UmEu2R25J7nt+JqSFgEEeA9M21wa+DL+JZp6Jb4ZJmEvXmpib+nEBmx++Lyz+SiJmIHjP/kQXzEw==" data-autocheck-url="/signup_check/password" data-facebox-id="user-password-issues" for="user_password_issues" name="user[password]">Password</label></dt><dd><input class="form-control" data-autocheck-authenticity-token="wKZRyn4th1UmEu2R25J7nt+JqSFgEEeA9M21wa+DL+JZp6Jb4ZJmEvXmpib+nEBmx++Lyz+SiJmIHjP/kQXzEw==" data-autocheck-url="/signup_check/password" data-facebox-id="user-password-issues" id="user_password_issues" name="user[password]" size="30" type="password" /></dd></dl> <input type="hidden" name="source" class="js-signup-source" value="modal-issues"> <input class="form-control" id="required_field_5486" name="required_field_5486" style="display: none" type="text" /> <input class="form-control" name="timestamp" type="hidden" value="1505962771546" /> <input class="form-control" name="timestamp_secret" type="hidden" value="793f9a8587eddfad77e12ab60244de6cb169902e064ff17e73596344ac588265" /> <button class="btn btn-primary mt-2 btn-block" type="submit" data-ga-click="(Logged out) New issue modal, clicked Sign up, text:sign-up">Sign up for GitHub</button> </form> <p class="mt-4 text-gray text-center">Already on GitHub? <a href="/login?return_to=%2Flxc%2Fpylxd%2Fissues%2Fnew" data-ga-click="(Logged out) New issue modal, clicked Sign in, text:sign-in">Sign in</a> to your account</p> </div> </div> </div> <h1 class="gh-header-title"> <span class="js-issue-title"> Fix memory hog during image import </span> <span class="gh-header-number">#245</span> </h1> </div> <div class="TableObject gh-header-meta"> <div class="TableObject-item"> <div class="State State--green"> <svg aria-hidden="true" class="octicon octicon-git-pull-request" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path fill-rule="evenodd" d="M11 11.28V5c-.03-.78-.34-1.47-.94-2.06C9.46 2.35 8.78 2.03 8 2H7V0L4 3l3 3V4h1c.27.02.48.11.69.31.21.2.3.42.31.69v6.28A1.993 1.993 0 0 0 10 15a1.993 1.993 0 0 0 1-3.72zm-1 2.92c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zM4 3c0-1.11-.89-2-2-2a1.993 1.993 0 0 0-1 3.72v6.56A1.993 1.993 0 0 0 2 15a1.993 1.993 0 0 0 1-3.72V4.72c.59-.34 1-.98 1-1.72zm-.8 10c0 .66-.55 1.2-1.2 1.2-.65 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z"/></svg> Open </div> </div> <div class="TableObject-item TableObject-item--primary"> <a href="/shurkaxaa" class="author pull-header-username css-truncate css-truncate-target expandable"> shurkaxaa </a> wants to merge 4 commits into <span class="commit-ref css-truncate user-select-contain expandable base-ref" title="lxc/pylxd:master"><span class="css-truncate-target user">lxc</span>:<span class="css-truncate-target">master</span></span> <div class="commit-ref-dropdown"> <div class="select-menu js-menu-container js-select-menu commitish-suggester js-load-contents" data-contents-url="/lxc/pylxd/pull/245/show_partial?partial=pull_requests%2Fdescription_branches_dropdown"> <button class="btn btn-sm select-menu-button js-menu-target branch" type="button" aria-label="Choose a base branch" aria-haspopup="true" aria-expanded="false"> <i>base:</i> <span class="js-select-button css-truncate css-truncate-target" title="base: master">master</span> </button> <div class="select-menu-modal-holder js-menu-content js-navigation-container"> <div class="select-menu-modal"> <div class="js-select-menu-deferred-content"></div> <div class="select-menu-loading-overlay anim-pulse"> <svg aria-hidden="true" class="octicon octicon-octoface" height="32" version="1.1" viewBox="0 0 16 16" width="32"><path fill-rule="evenodd" d="M14.7 5.34c.13-.32.55-1.59-.13-3.31 0 0-1.05-.33-3.44 1.3-1-.28-2.07-.32-3.13-.32s-2.13.04-3.13.32c-2.39-1.64-3.44-1.3-3.44-1.3-.68 1.72-.26 2.99-.13 3.31C.49 6.21 0 7.33 0 8.69 0 13.84 3.33 15 7.98 15S16 13.84 16 8.69c0-1.36-.49-2.48-1.3-3.35zM8 14.02c-3.3 0-5.98-.15-5.98-3.35 0-.76.38-1.48 1.02-2.07 1.07-.98 2.9-.46 4.96-.46 2.07 0 3.88-.52 4.96.46.65.59 1.02 1.3 1.02 2.07 0 3.19-2.68 3.35-5.98 3.35zM5.49 9.01c-.66 0-1.2.8-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.54-1.78-1.2-1.78zm5.02 0c-.66 0-1.2.79-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.53-1.78-1.2-1.78z"/></svg> </div> </div> </div> </div> </div> from <span class="commit-ref css-truncate user-select-contain expandable head-ref" title="shurkaxaa/pylxd:fix_memory_hog"><span class="css-truncate-target user">shurkaxaa</span>:<span class="css-truncate-target">fix_memory_hog</span></span> </div> </div> </div> <div class="tabnav tabnav-pr"> <div class="tabnav-extra float-right"> <span class="diffstat" id="diffstat"> <span class="text-green"> +16 </span> <span class="text-red"> −2 </span> <span class="tooltipped tooltipped-s" aria-label="18 lines changed"> <span class="block-diff-added"></span><span class="block-diff-added"></span><span class="block-diff-added"></span><span class="block-diff-added"></span><span class="block-diff-neutral"></span> </span> </span> </div> <nav class="tabnav-tabs"> <a href="/lxc/pylxd/pull/245" class="tabnav-tab selected js-pjax-history-navigate"> <svg aria-hidden="true" class="octicon octicon-comment-discussion" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M15 1H6c-.55 0-1 .45-1 1v2H1c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h1v3l3-3h4c.55 0 1-.45 1-1V9h1l3 3V9h1c.55 0 1-.45 1-1V2c0-.55-.45-1-1-1zM9 11H4.5L3 12.5V11H1V5h4v3c0 .55.45 1 1 1h3v2zm6-3h-2v1.5L11.5 8H6V2h9v6z"/></svg> Conversation <span id="conversation_tab_counter" class="Counter"> 0 </span> </a> <a href="/lxc/pylxd/pull/245/commits" class="tabnav-tab js-pjax-history-navigate"> <svg aria-hidden="true" class="octicon octicon-git-commit" height="16" version="1.1" viewBox="0 0 14 16" width="14"><path fill-rule="evenodd" d="M10.86 7c-.45-1.72-2-3-3.86-3-1.86 0-3.41 1.28-3.86 3H0v2h3.14c.45 1.72 2 3 3.86 3 1.86 0 3.41-1.28 3.86-3H14V7h-3.14zM7 10.2c-1.22 0-2.2-.98-2.2-2.2 0-1.22.98-2.2 2.2-2.2 1.22 0 2.2.98 2.2 2.2 0 1.22-.98 2.2-2.2 2.2z"/></svg> Commits <span id="commits_tab_counter" class="Counter"> 4 </span> </a> <link rel="pjax-prefetch" href="/lxc/pylxd/pull/245/files"> <a href="/lxc/pylxd/pull/245/files" class="tabnav-tab js-pjax-history-navigate"> <svg aria-hidden="true" class="octicon octicon-diff" height="16" version="1.1" viewBox="0 0 13 16" width="13"><path fill-rule="evenodd" d="M6 7h2v1H6v2H5V8H3V7h2V5h1v2zm-3 6h5v-1H3v1zM7.5 2L11 5.5V15c0 .55-.45 1-1 1H1c-.55 0-1-.45-1-1V3c0-.55.45-1 1-1h6.5zM10 6L7 3H1v12h9V6zM8.5 0H3v1h5l4 4v8h1V4.5L8.5 0z"/></svg> Files changed <span id="files_tab_counter" class="Counter"> 2 </span> </a> </nav> </div> <h2 class="sr-only">Conversation</h2> <div id="discussion_bucket" class="clearfix pull-request-tab-content is-visible"> <div class="discussion-sidebar"> <div id="partial-discussion-sidebar" class="js-socket-channel js-updatable-content" data-channel="pull_request:142246059" data-url="/lxc/pylxd/issues/245/show_partial?partial=issues%2Fsidebar"> <div class="discussion-sidebar-item sidebar-assignee js-discussion-sidebar-item position-relative"> <!-- '"` --><!-- </textarea></xmp> --></option></form><form accept-charset="UTF-8" action="/lxc/pylxd/pull/245/review-requests?pr_global_id=MDExOlB1bGxSZXF1ZXN0MTQyMjQ2MDU5" class="js-issue-sidebar-form" data-remote="true" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /><input name="authenticity_token" type="hidden" value="2wUcYrNFkM4WCa7B4pn8owBWoFhP4IzDGEe3eq4v4JaCAIW+QK9W/Ahe7AGSV89AD3wg2KZ8uX+p3j/OE2rxJA==" /></div> <div class="discussion-sidebar-heading text-bold"> Reviewers </div> <span class="css-truncate"> No reviews </span> </form></div> <div class="discussion-sidebar-item sidebar-assignee js-discussion-sidebar-item"> <!-- '"` --><!-- </textarea></xmp> --></option></form><form accept-charset="UTF-8" action="/lxc/pylxd/issues/245?partial=issues%2Fsidebar%2Fshow%2Fassignees" class="js-issue-sidebar-form" data-remote="true" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /><input name="_method" type="hidden" value="put" /><input name="authenticity_token" type="hidden" value="jq65aUPNpVDFj1/5fSRIA+8MfnrB1cU/67GhiO0+R5hx5b6MPTCTMzHZmsN3f2rmKlhpCs6hldDMVNvLn6D3uA==" /></div> <div class="discussion-sidebar-heading text-bold"> Assignees </div> <span class="css-truncate"> No one assigned </span> </form></div> <div class="discussion-sidebar-item sidebar-labels js-discussion-sidebar-item"> <!-- '"` --><!-- </textarea></xmp> --></option></form><form accept-charset="UTF-8" action="/lxc/pylxd/issues/245?partial=issues%2Fsidebar%2Fshow%2Flabels" class="js-issue-sidebar-form" data-remote="true" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /><input name="_method" type="hidden" value="put" /><input name="authenticity_token" type="hidden" value="1aFNjWfcPk8UMS1RDpSYD5PK1Bu2FuIWHsG93P+lXekq6kpoGSEILOBn6GsEz7rqVp7Da7lisvk5JMefjTvtyQ==" /></div> <div class="js-issue-labels-container"> <div class="discussion-sidebar-heading text-bold"> Labels </div> </div> <div class="labels css-truncate"> None yet </div> </form></div> <div class="discussion-sidebar-item js-discussion-sidebar-item"> <!-- '"` --><!-- </textarea></xmp> --></option></form><form accept-charset="UTF-8" action="/lxc/pylxd/projects/issues/245" class="js-issue-sidebar-form" data-remote="true" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /><input name="_method" type="hidden" value="put" /><input name="authenticity_token" type="hidden" value="uVbcoxWAvzf6bz8lVKGZ6jYRqQzUYmcUkIFDoRuYgS3/OGkCf3zm6YFunVQ1RU4xlZ79tlw0SiNv7QMtCS9Mog==" /></div> <div class="discussion-sidebar-heading text-bold"> Projects </div> <span class="css-truncate"> None yet </span> </form></div> <div class="discussion-sidebar-item sidebar-milestone js-discussion-sidebar-item"> <!-- '"` --><!-- </textarea></xmp> --></option></form><form accept-charset="UTF-8" action="/lxc/pylxd/issues/245/set_milestone?partial=issues%2Fsidebar%2Fshow%2Fmilestone" class="js-issue-sidebar-form" data-remote="true" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /><input name="_method" type="hidden" value="put" /><input name="authenticity_token" type="hidden" value="0km6AG67sCnwpX7JFHe+HCqaXt7B5+BUicEMSnUm0GvvYAOXqHU0clu/Ql9P+NLjI/E+iLePbsmOlnQJVQ8M2A==" /></div> <div class="discussion-sidebar-heading text-bold"> Milestone </div> No milestone </form></div> <div id="partial-users-participants" class="discussion-sidebar-item"> <div class="participation"> <div class="discussion-sidebar-heading text-bold"> 1 participant </div> <div class="participation-avatars"> <a class="participant-avatar tooltipped tooltipped-n" aria-label="shurkaxaa" href="/shurkaxaa"><img alt="@shurkaxaa" class="avatar" height="26" src="https://avatars0.githubusercontent.com/u/20762983?v=4&s=52" width="26" /> </a> </div> </div> </div> </div> </div> <div class="discussion-timeline pull-discussion-timeline js-pull-discussion-timeline js-quote-selection-container js-review-state-classes "> <div class="js-discussion js-socket-channel" data-channel="marked-as-read:pull-request:142246059"> <div class="timeline-comment-wrapper js-comment-container"> <div class="avatar-parent-child timeline-comment-avatar"> <a href="/shurkaxaa"> <img alt="@shurkaxaa" class="avatar rounded-1" height="44" src="https://avatars3.githubusercontent.com/u/20762983?v=4&s=88" width="44" /> </a> </div> <div id="issue-259361216" class="comment previewable-edit js-comment js-task-list-container timeline-comment " data-body-version="8ae7c946c038b377b88104df814d24a9"> <div class="timeline-comment-header"> <div class="timeline-comment-actions"> </div> <h3 class="timeline-comment-header-text f5 text-normal"> <strong> <a href="/shurkaxaa" class="author">shurkaxaa</a> </strong> commented <a href="#issue-259361216" class="timestamp"><relative-time datetime="2017-09-21T02:59:29Z">Sep 21, 2017</relative-time></a> </h3> </div> <div class="edit-comment-hide"> <table class="d-block"> <tbody class="d-block"> <tr class="d-block"> <td class="d-block comment-body markdown-body js-comment-body"> <p>Existing version load image into memory when non-unified image used<br> (with separate tarball with manifest).<br> Added ability for stream based image upload without loading them to memory.<br> requests-toolbelt external package required for streaming multipart HTTP<br> image upload.<br> Additional parameter added to identify if streams are/can be passed - this will allow<br> pylxd client to identify via introspection if pylxd library supports stream based<br> upload and fallback to old non-stream behavior if old version of pylxd is installed.</p> </td> </tr> </tbody> </table> <div class="comment-reactions js-reactions-container " > </div> </div> </div> </div> <div class="discussion-item discussion-commits" id="commits-pushed-0e3ec06"> <h3 class="discussion-item-header f5 text-normal"> <span class="discussion-item-icon"> <svg aria-hidden="true" class="octicon octicon-repo-push" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path fill-rule="evenodd" d="M4 3H3V2h1v1zM3 5h1V4H3v1zm4 0L4 9h2v7h2V9h2L7 5zm4-5H1C.45 0 0 .45 0 1v12c0 .55.45 1 1 1h4v-1H1v-2h4v-1H2V1h9.02L11 10H9v1h2v2H9v1h2c.55 0 1-.45 1-1V1c0-.55-.45-1-1-1z"/></svg> </span> <a href="/shurkaxaa" class="author">shurkaxaa</a> added some commits <a href="#commits-pushed-0e3ec06" class="timestamp"> <relative-time datetime="2017-09-20T07:43:35Z">Sep 20, 2017</relative-time> </a> </h3> <div class="discussion-item-body"> <table class="timeline-commits"> <tr class="commit js-details-container Details js-socket-channel js-updatable-content" data-channel="repo:36316984:commit:0e3ec068f05c57b4d6d37f9cda26a80b48857154" data-url="/_render_node/MDE3OlB1bGxSZXF1ZXN0Q29tbWl0MTQyMjQ2MDU5OjBlM2VjMDY4ZjA1YzU3YjRkNmQzN2Y5Y2RhMjZhODBiNDg4NTcxNTQ=/commit/pull_condensed"> <td class="commit-icon"> <svg aria-hidden="true" class="octicon octicon-git-commit" height="16" version="1.1" viewBox="0 0 14 16" width="14"><path fill-rule="evenodd" d="M10.86 7c-.45-1.72-2-3-3.86-3-1.86 0-3.41 1.28-3.86 3H0v2h3.14c.45 1.72 2 3 3.86 3 1.86 0 3.41-1.28 3.86-3H14V7h-3.14zM7 10.2c-1.22 0-2.2-.98-2.2-2.2 0-1.22.98-2.2 2.2-2.2 1.22 0 2.2.98 2.2 2.2 0 1.22-.98 2.2-2.2 2.2z"/></svg> </td> <td class="commit-gravatar no-wrap text-right"> <a href="/shurkaxaa" class="d-inline-block"> <img src="https://avatars2.githubusercontent.com/u/20762983?v=4&s=32" width="16" height="16" class="avatar avatar-small" alt="@shurkaxaa"> </a> </td> <td class="commit-author"> <strong> <a href="/shurkaxaa" class="author">shurkaxaa</a> </strong> </td> <td class="commit-message"> <code> <a href="/lxc/pylxd/pull/245/commits/0e3ec068f05c57b4d6d37f9cda26a80b48857154" class="message" data-pjax="true" title="Add ability for stream based image upload without loading them to memory. requests-toolbetl external package required as embedded to requests multipart 'files' based upload still load parts to memory.">Add ability for stream based image upload without loading them to</a> </code> <span class="hidden-text-expander inline"> <button type="button" class="ellipsis-expander js-details-target" aria-expanded="false">…</button> </span> <div class="commit-desc"><pre>memory. requests-toolbetl external package required as embedded to requests multipart 'files' based upload still load parts to memory.</pre></div> </td> <td class="commit-sig-status"> </td> <td class="commit-ci-status"> </td> <td class="commit-meta"> <code> <a href="/lxc/pylxd/pull/245/commits/0e3ec068f05c57b4d6d37f9cda26a80b48857154" class="commit-id">0e3ec06</a> </code> </td> </tr> <tr class="commit js-details-container Details js-socket-channel js-updatable-content" data-channel="repo:36316984:commit:2781158cc151c489d7d11afed67aa7d6e7ecbc54" data-url="/_render_node/MDE3OlB1bGxSZXF1ZXN0Q29tbWl0MTQyMjQ2MDU5OjI3ODExNThjYzE1MWM0ODlkN2QxMWFmZWQ2N2FhN2Q2ZTdlY2JjNTQ=/commit/pull_condensed"> <td class="commit-icon"> <svg aria-hidden="true" class="octicon octicon-git-commit" height="16" version="1.1" viewBox="0 0 14 16" width="14"><path fill-rule="evenodd" d="M10.86 7c-.45-1.72-2-3-3.86-3-1.86 0-3.41 1.28-3.86 3H0v2h3.14c.45 1.72 2 3 3.86 3 1.86 0 3.41-1.28 3.86-3H14V7h-3.14zM7 10.2c-1.22 0-2.2-.98-2.2-2.2 0-1.22.98-2.2 2.2-2.2 1.22 0 2.2.98 2.2 2.2 0 1.22-.98 2.2-2.2 2.2z"/></svg> </td> <td class="commit-gravatar no-wrap text-right"> <a href="/shurkaxaa" class="d-inline-block"> <img src="https://avatars2.githubusercontent.com/u/20762983?v=4&s=32" width="16" height="16" class="avatar avatar-small" alt="@shurkaxaa"> </a> </td> <td class="commit-author"> <strong> <a href="/shurkaxaa" class="author">shurkaxaa</a> </strong> </td> <td class="commit-message"> <code> <a href="/lxc/pylxd/pull/245/commits/2781158cc151c489d7d11afed67aa7d6e7ecbc54" class="message" data-pjax="true" title="Add ability for stream based image upload without loading them to memory. requests-toolbetl external package required as embedded to requests multipart 'files' based upload still load parts to memory.">Add ability for stream based image upload without loading them to</a> </code> <span class="hidden-text-expander inline"> <button type="button" class="ellipsis-expander js-details-target" aria-expanded="false">…</button> </span> <div class="commit-desc"><pre>memory. requests-toolbetl external package required as embedded to requests multipart 'files' based upload still load parts to memory.</pre></div> </td> <td class="commit-sig-status"> </td> <td class="commit-ci-status"> </td> <td class="commit-meta"> <code> <a href="/lxc/pylxd/pull/245/commits/2781158cc151c489d7d11afed67aa7d6e7ecbc54" class="commit-id">2781158</a> </code> </td> </tr> <tr class="commit js-details-container Details js-socket-channel js-updatable-content" data-channel="repo:36316984:commit:6bfbee6f62e1a0a0f11f5d796d5d00103a77f7f7" data-url="/_render_node/MDE3OlB1bGxSZXF1ZXN0Q29tbWl0MTQyMjQ2MDU5OjZiZmJlZTZmNjJlMWEwYTBmMTFmNWQ3OTZkNWQwMDEwM2E3N2Y3Zjc=/commit/pull_condensed"> <td class="commit-icon"> <svg aria-hidden="true" class="octicon octicon-git-commit" height="16" version="1.1" viewBox="0 0 14 16" width="14"><path fill-rule="evenodd" d="M10.86 7c-.45-1.72-2-3-3.86-3-1.86 0-3.41 1.28-3.86 3H0v2h3.14c.45 1.72 2 3 3.86 3 1.86 0 3.41-1.28 3.86-3H14V7h-3.14zM7 10.2c-1.22 0-2.2-.98-2.2-2.2 0-1.22.98-2.2 2.2-2.2 1.22 0 2.2.98 2.2 2.2 0 1.22-.98 2.2-2.2 2.2z"/></svg> </td> <td class="commit-gravatar no-wrap text-right"> <a href="/shurkaxaa" class="d-inline-block"> <img src="https://avatars2.githubusercontent.com/u/20762983?v=4&s=32" width="16" height="16" class="avatar avatar-small" alt="@shurkaxaa"> </a> </td> <td class="commit-author"> <strong> <a href="/shurkaxaa" class="author">shurkaxaa</a> </strong> </td> <td class="commit-message"> <code> <a href="/lxc/pylxd/pull/245/commits/6bfbee6f62e1a0a0f11f5d796d5d00103a77f7f7" class="message" data-pjax="true" title="Merge branch 'fix_memory_hog' of github.com:shurkaxaa/pylxd into fix_memory_hog">Merge branch 'fix_memory_hog' of github.com:shurkaxaa/pylxd into fix_…</a> </code> <span class="hidden-text-expander inline"> <button type="button" class="ellipsis-expander js-details-target" aria-expanded="false">…</button> </span> <div class="commit-desc"><pre>…memory_hog</pre></div> </td> <td class="commit-sig-status"> </td> <td class="commit-ci-status"> </td> <td class="commit-meta"> <code> <a href="/lxc/pylxd/pull/245/commits/6bfbee6f62e1a0a0f11f5d796d5d00103a77f7f7" class="commit-id">6bfbee6</a> </code> </td> </tr> <tr class="commit js-details-container Details js-socket-channel js-updatable-content" data-channel="repo:36316984:commit:765e42182a5657fa0d04c2d5fce912d4a2926828" data-url="/_render_node/MDE3OlB1bGxSZXF1ZXN0Q29tbWl0MTQyMjQ2MDU5Ojc2NWU0MjE4MmE1NjU3ZmEwZDA0YzJkNWZjZTkxMmQ0YTI5MjY4Mjg=/commit/pull_condensed"> <td class="commit-icon"> <svg aria-hidden="true" class="octicon octicon-git-commit" height="16" version="1.1" viewBox="0 0 14 16" width="14"><path fill-rule="evenodd" d="M10.86 7c-.45-1.72-2-3-3.86-3-1.86 0-3.41 1.28-3.86 3H0v2h3.14c.45 1.72 2 3 3.86 3 1.86 0 3.41-1.28 3.86-3H14V7h-3.14zM7 10.2c-1.22 0-2.2-.98-2.2-2.2 0-1.22.98-2.2 2.2-2.2 1.22 0 2.2.98 2.2 2.2 0 1.22-.98 2.2-2.2 2.2z"/></svg> </td> <td class="commit-gravatar no-wrap text-right"> <a href="/shurkaxaa" class="d-inline-block"> <img src="https://avatars2.githubusercontent.com/u/20762983?v=4&s=32" width="16" height="16" class="avatar avatar-small" alt="@shurkaxaa"> </a> </td> <td class="commit-author"> <strong> <a href="/shurkaxaa" class="author">shurkaxaa</a> </strong> </td> <td class="commit-message"> <code> <a href="/lxc/pylxd/pull/245/commits/765e42182a5657fa0d04c2d5fce912d4a2926828" class="message" data-pjax="true" title="Remove unneeded changes">Remove unneeded changes</a> </code> </td> <td class="commit-sig-status"> </td> <td class="commit-ci-status"> </td> <td class="commit-meta"> <code> <a href="/lxc/pylxd/pull/245/commits/765e42182a5657fa0d04c2d5fce912d4a2926828" class="commit-id">765e421</a> </code> </td> </tr> </table> </div> </div> <!-- Rendered timeline since 2017-09-20 19:58:00 --> <div id="partial-timeline-marker" class="js-timeline-marker js-socket-channel js-updatable-content" data-channel="pull_request:142246059" data-url="/lxc/pylxd/pull/245/show_partial?partial=pull_requests%2Ftimeline_marker&since=1505962680" data-last-modified="Thu, 21 Sep 2017 02:58:00 GMT"> <!-- '"` --><!-- </textarea></xmp> --></option></form><form accept-charset="UTF-8" action="/lxc/pylxd/notifications/mark?ids=259715376" class="d-none js-timeline-marker-form" data-remote="true" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /><input name="authenticity_token" type="hidden" value="kIVKl5Uj7TPojLLZ/fnprUdukVLdjR/PW5AQD9yjxGrusZ0rYvr/+GX7IQUrDTO+LI7eA7kg2Kt9HFb0cX/rrw==" /></div> </form></div> </div> <div class="discussion-timeline-actions"> <div class="flash flash-warn mt-3"> <a href="/join?source=comment-repo" class="btn btn-primary" rel="nofollow">Sign up for free</a> <strong>to join this conversation on GitHub</strong>. Already have an account? <a href="/login?return_to=https%3A%2F%2Fgithub.com%2Flxc%2Fpylxd%2Fpull%2F245" rel="nofollow">Sign in to comment</a> </div> </div> </div> </div> </div> </div> </div> <div class="modal-backdrop js-touch-events"></div> </div> </div> </div> </div> <div class="footer container-lg px-3" role="contentinfo"> <div class="position-relative d-flex flex-justify-between py-6 mt-6 f6 text-gray border-top border-gray-light "> <ul class="list-style-none d-flex flex-wrap "> <li class="mr-3">© 2017 <span title="0.40434s from unicorn-947401866-4brz9">GitHub</span>, Inc.</li> <li class="mr-3"><a href="https://github.com/site/terms" data-ga-click="Footer, go to terms, text:terms">Terms</a></li> <li class="mr-3"><a href="https://github.com/site/privacy" data-ga-click="Footer, go to privacy, text:privacy">Privacy</a></li> <li class="mr-3"><a href="https://github.com/security" data-ga-click="Footer, go to security, text:security">Security</a></li> <li class="mr-3"><a href="https://status.github.com/" data-ga-click="Footer, go to status, text:status">Status</a></li> <li><a href="https://help.github.com" data-ga-click="Footer, go to help, text:help">Help</a></li> </ul> <a href="https://github.com" aria-label="Homepage" class="footer-octicon" title="GitHub"> <svg aria-hidden="true" class="octicon octicon-mark-github" height="24" version="1.1" viewBox="0 0 16 16" width="24"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"/></svg> </a> <ul class="list-style-none d-flex flex-wrap "> <li class="mr-3"><a href="https://github.com/contact" data-ga-click="Footer, go to contact, text:contact">Contact GitHub</a></li> <li class="mr-3"><a href="https://developer.github.com" data-ga-click="Footer, go to api, text:api">API</a></li> <li class="mr-3"><a href="https://training.github.com" data-ga-click="Footer, go to training, text:training">Training</a></li> <li class="mr-3"><a href="https://shop.github.com" data-ga-click="Footer, go to shop, text:shop">Shop</a></li> <li class="mr-3"><a href="https://github.com/blog" data-ga-click="Footer, go to blog, text:blog">Blog</a></li> <li><a href="https://github.com/about" data-ga-click="Footer, go to about, text:about">About</a></li> </ul> </div> </div> <div id="ajax-error-message" class="ajax-error-message flash flash-error"> <svg aria-hidden="true" class="octicon octicon-alert" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M8.865 1.52c-.18-.31-.51-.5-.87-.5s-.69.19-.87.5L.275 13.5c-.18.31-.18.69 0 1 .19.31.52.5.87.5h13.7c.36 0 .69-.19.86-.5.17-.31.18-.69.01-1L8.865 1.52zM8.995 13h-2v-2h2v2zm0-3h-2V6h2v4z"/></svg> <button type="button" class="flash-close js-flash-close js-ajax-error-dismiss" aria-label="Dismiss error"> <svg aria-hidden="true" class="octicon octicon-x" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48z"/></svg> </button> You can't perform that action at this time. </div> <script crossorigin="anonymous" src="https://assets-cdn.github.com/assets/compat-91f98c37fc84eac24836eec2567e9912742094369a04c4eba6e3cd1fa18902d9.js"></script> <script crossorigin="anonymous" src="https://assets-cdn.github.com/assets/frameworks-0774b648d2fa46409c27660a35169a3f79dc46adc981c216cd16664e473791c5.js"></script> <script async="async" crossorigin="anonymous" src="https://assets-cdn.github.com/assets/github-c1fa7feb01ce9cdea2acbf01070542667e3f7c3ad793800c695e546ca6a44e3f.js"></script> <div class="js-stale-session-flash stale-session-flash flash flash-warn flash-banner d-none"> <svg aria-hidden="true" class="octicon octicon-alert" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M8.865 1.52c-.18-.31-.51-.5-.87-.5s-.69.19-.87.5L.275 13.5c-.18.31-.18.69 0 1 .19.31.52.5.87.5h13.7c.36 0 .69-.19.86-.5.17-.31.18-.69.01-1L8.865 1.52zM8.995 13h-2v-2h2v2zm0-3h-2V6h2v4z"/></svg> <span class="signed-in-tab-flash">You signed in with another tab or window. <a href="">Reload</a> to refresh your session.</span> <span class="signed-out-tab-flash">You signed out in another tab or window. <a href="">Reload</a> to refresh your session.</span> </div> <div class="facebox" id="facebox" style="display:none;"> <div class="facebox-popup"> <div class="facebox-content" role="dialog" aria-labelledby="facebox-header" aria-describedby="facebox-description"> </div> <button type="button" class="facebox-close js-facebox-close" aria-label="Close modal"> <svg aria-hidden="true" class="octicon octicon-x" height="16" version="1.1" viewBox="0 0 12 16" width="12"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48z"/></svg> </button> </div> </div> </body> </html>
_______________________________________________ lxc-devel mailing list lxc-devel@lists.linuxcontainers.org http://lists.linuxcontainers.org/listinfo/lxc-devel