<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <div class="moz-cite-prefix">Hey Artem,</div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix">thank you very much for your quick
      reply and pointer to the patchset you work on!<br>
    </div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix">On 18/01/2021 20:14, Artem Goncharov
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:10C08D43-B4E6-4423-B561-183A4336C488@gmail.com">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);"
        class="">Ha, thats exactly the case, the whole logic sits in sdk
        and is spread across the supported services:</span>
      <div class=""><font class="" color="#000000">- <a
href="https://opendev.org/openstack/openstacksdk/src/branch/master/openstack/compute/v2/_proxy.py#L1798"
            style="caret-color: rgb(0, 0, 0);" class=""
            moz-do-not-send="true">https://opendev.org/openstack/openstacksdk/src/branch/master/openstack/compute/v2/_proxy.py#L1798</a> -
          for compute. KeyPairs not dropped, since they belong to user,
          and not to the “project”;</font></div>
      <div class="">- <a
href="https://opendev.org/openstack/openstacksdk/src/branch/master/openstack/block_storage/v3/_proxy.py#L547"
          class="" moz-do-not-send="true">https://opendev.org/openstack/openstacksdk/src/branch/master/openstack/block_storage/v3/_proxy.py#L547</a> -
        block storage;</div>
      <div class="">- <a
href="https://opendev.org/openstack/openstacksdk/src/branch/master/openstack/orchestration/v1/_proxy.py#L490"
          class="" moz-do-not-send="true">https://opendev.org/openstack/openstacksdk/src/branch/master/openstack/orchestration/v1/_proxy.py#L490</a></div>
      <div class="">- <a
href="https://opendev.org/openstack/openstacksdk/src/branch/master/openstack/network/v2/_proxy.py#L4130"
          class="" moz-do-not-send="true">https://opendev.org/openstack/openstacksdk/src/branch/master/openstack/network/v2/_proxy.py#L4130</a> -
        the most complex one in order to give possibility to clean “old”
        resource without destroying everything else</div>
      <div class=""><br class="">
      </div>
      <div>Adding image is few lines of code (never had enough time to
        add it), identity is a bit tricky, since also here mostly
        resources does not belong to Project. DNS would be also easy to
        do. OSC here is only providing I/F, while the logic sits in SDK
        and can be very easy extended for other services.<br class="">
      </div>
    </blockquote>
    <br>
    <blockquote type="cite"
      cite="mid:10C08D43-B4E6-4423-B561-183A4336C488@gmail.com">
      <div>
        <blockquote type="cite" class="">
          <div class="">On 18. Jan 2021, at 19:52, Thomas Goirand <<a
              href="mailto:zigo@debian.org" class=""
              moz-do-not-send="true">zigo@debian.org</a>> wrote:</div>
          <br class="Apple-interchange-newline">
          <div class="">
            <div class="">On 1/18/21 6:56 PM, Artem Goncharov wrote:<br
                class="">
              <blockquote type="cite" class="">What do you mean it
                doesn’t implement anything at all? It does clean up
                compute, network, block_storage, orchestrate resources.
                Moreover it gives you possibility to clean “old”
                resources (created before or last updated before).<br
                  class="">
              </blockquote>
              <br class="">
              Oh really? With that few lines of code? I'll re-read the
              patch then,<br class="">
              sorry for my bad assumptions.<br class="">
              <br class="">
              Can you point at the part that's actually deleting the
              resources?<br class="">
            </div>
          </div>
        </blockquote>
      </div>
    </blockquote>
    <p>If I understood correctly, the cleanup relies on the SDK
      functionality / requirement for each resource type to provide a
      corresponding function(
<a class="moz-txt-link-freetext" href="https://github.com/openstack/openstacksdk/blob/master/openstack/cloud/openstackcloud.py#L762">https://github.com/openstack/openstacksdk/blob/master/openstack/cloud/openstackcloud.py#L762</a>)
      ?</p>
    <p>Reading through the (SDK) code this even covers depending
      resources, nice!</p>
    <p><br>
    </p>
    <p>I certainly will leave some feedback and comments in your change 
(<a class="moz-txt-link-freetext" href="https://review.opendev.org/c/openstack/python-openstackclient/+/734485">https://review.opendev.org/c/openstack/python-openstackclient/+/734485</a>).<br>
      But what are your immediate plans moving forward on with this
      then, Artem? <br>
      <br>
      There is a little todo list in the description on your change ..
      is there anything you yourself know that is still missing before
      taking this to a full review and finally merging it?<br>
    </p>
    <p>Only code that is shipped and then actively used will improve
      further and people will notice other required functionality or
      switches for later iterations. With the current state of having a
      somewhat working but unmaintained ospurge and a non feature
      complete "project purge"  (supports only Block Storage v1, v2;
      Compute v2; Image v1, v2) this will only cause people to start
      hacking away on the ospurge codebase or worse building their own
      tools and scripts to implement project cleanup for their
      environments over and over again.<br>
    </p>
    <p><br>
    </p>
    <p><br>
    </p>
    <p>Regards,</p>
    <p><br>
    </p>
    <p>Christian<br>
    </p>
  </body>
</html>