fedora-infra / bodhi

Bodhi is a web-system that facilitates the process of publishing updates for a Fedora-based software distribution.
https://bodhi.fedoraproject.org
GNU General Public License v2.0
152 stars 193 forks source link

"bodhi updates request revoke" does not work properly. #1040

Closed bowlofeggs closed 7 years ago

bowlofeggs commented 7 years ago

Vít Ondruch reported this issue:

Description of problem:

$ bodhi updates request revoke rubygem-httparty-0.14.0-1.fc25
Password: 
Traceback (most recent call last):
  File "/usr/bin/bodhi", line 11, in <module>
    load_entry_point('bodhi-client==2.2.4', 'console_scripts', 'bodhi')()
  File "/usr/lib/python2.7/site-packages/click/core.py", line 716, in __call__
    return self.main(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/click/core.py", line 696, in main
    rv = self.invoke(ctx)
  File "/usr/lib/python2.7/site-packages/click/core.py", line 1060, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/lib/python2.7/site-packages/click/core.py", line 1060, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/lib/python2.7/site-packages/click/core.py", line 889, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/lib/python2.7/site-packages/click/core.py", line 534, in invoke
    return callback(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/bodhi/client/__init__.py", line 135, in request
    resp = client.request(update, state)
  File "/usr/lib/python2.7/site-packages/fedora/client/bodhi.py", line 82, in wrapper
    result = method(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/fedora/client/bodhi.py", line 175, in request
    'csrf_token': self.csrf()})
  File "/usr/lib/python2.7/site-packages/fedora/client/openidbaseclient.py", line 254, in send_request
    'output': to_bytes(output.text),
fedora.client.ServerError: ServerError(https://bodhi.fedoraproject.org/updates/revoke/request, 404, Error returned from json module while processing https://bodhi.fedoraproject.org/updates/revoke/request: Expecting value: line 6 column 1 (char 5)

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta name="description" content="management of Fedora Project updates" />
    <meta name="author" content="Luke Macken" />
    <meta name="author" content="Ralph Bean" />

    <!-- Only allow websockets connections to fedoraproject.org. -->
    <meta http-equiv="Content-Security-Policy" content="connect-src https://*.fedoraproject.org/ wss://hub.fedoraproject.org:9939/">

    <link rel="shortcut icon" href="https://bodhi.fedoraproject.org/static/ico/favicon.ico">

    <base href="https://bodhi.fedoraproject.org/"/>
        <title>Fedora Updates System</title>
    <link href="https://bodhi.fedoraproject.org/static/bootstrap/css/bootstrap.css" rel="stylesheet" />
    <link href="https://bodhi.fedoraproject.org/static/font-awesome-4.4.0/css/font-awesome.min.css" rel="stylesheet" />
    <link href="https://bodhi.fedoraproject.org/static/css/text.css" rel="stylesheet" />
    <link href="https://bodhi.fedoraproject.org/static/css/navbar.css" rel="stylesheet" />
    <link href="https://bodhi.fedoraproject.org/static/css/footer.css" rel="stylesheet" />
    <link href="https://bodhi.fedoraproject.org/static/css/site.css" rel="stylesheet" />
    <link href="https://bodhi.fedoraproject.org/static/css/datagrepper-feed.css" rel="stylesheet" />
    <link href="https://bodhi.fedoraproject.org/static/css/panel.css" rel="stylesheet" />
    <script src="https://bodhi.fedoraproject.org/static/js/jquery-1.10.2.min.js"></script>
    <script src="https://bodhi.fedoraproject.org/static/js/Chart-0.2.0.min.js"></script>
  </head>

  <body>
    <div id="wrap">
      <!-- Static navbar -->
      <div class="navbar navbar-default navbar-fixed-top">
        <div class="container">
          <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse"
                    data-target=".navbar-collapse">
              <span class="icon-bar"></span>
              <span class="icon-bar"></span>
              <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="https://bodhi.fedoraproject.org/">
              Fedora Update System
            </a>
          </div>

          <div class="navbar-collapse collapse">
            <form id="search" role="search" class="nav navbar-form navbar-left">
              <div id="bloodhound" class="form-group">
                <input class="typeahead form-control" name="term" type="text" placeholder="Search...">
              </div>
            </form>

            <div class="clearfix hidden-md hidden-lg"></div>

            <ul class="nav navbar-nav navbar-right">
              <li class="dropdown">
                <a class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
                  <span class="glyphicon glyphicon-plus"></span>
                  Create
                </a>
                <ul class="dropdown-menu">
                  <li><a href="https://bodhi.fedoraproject.org/updates/new">
                      New Update
                  </a></li>
                  <li><a href="https://bodhi.fedoraproject.org/overrides/new">
                      New Override
                  </a></li>
                </ul>
              </li>

              <li class="dropdown">
                <a class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
                  <span class="glyphicon glyphicon-tags"></span>
                  Releases
                </a>
                <ul class="dropdown-menu">
                  <li>
                    <a href="https://bodhi.fedoraproject.org/metrics">
                      Overall Metrics
                    </a>
                  </li>
                  <li>
                    <a href="https://bodhi.fedoraproject.org/masher">
                      Masher Status
                    </a>
                  </li>
                  <li role="separator" class="divider"></li>
                  <li>
                    <a href="https://bodhi.fedoraproject.org/releases/F24">
                      Fedora 24
                    </a>
                  </li>
                  <li>
                    <a href="https://bodhi.fedoraproject.org/releases/F23">
                      Fedora 23
                    </a>
                  </li>
                  <li>
                    <a href="https://bodhi.fedoraproject.org/releases/EPEL-7">
                      Fedora EPEL 7
                    </a>
                  </li>
                  <li>
                    <a href="https://bodhi.fedoraproject.org/releases/EL-6">
                      Fedora EPEL 6
                    </a>
                  </li>
                  <li>
                    <a href="https://bodhi.fedoraproject.org/releases/EL-5">
                      Fedora EPEL 5
                    </a>
                  </li>
                  <li role="separator" class="divider"></li>
                  <li>
                    <a href="https://bodhi.fedoraproject.org/releases/F22">
                      Fedora 22
                    </a>
                  </li>
                  <li>
                    <a href="https://bodhi.fedoraproject.org/releases/F21">
                      Fedora 21
                    </a>
                  </li>
                  <li role="separator" class="divider"></li>
                  <li>
                    <a href="https://bodhi.fedoraproject.org/releases/F25">
                      Fedora 25
                    </a>
                  </li>
                </ul>
              </li>

              <li class="dropdown">
                <a class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
                  <span class="glyphicon glyphicon-user"></span>
                  Profile
                </a>
                <ul class="dropdown-menu">

                  <li>
                    <a href="https://bodhi.fedoraproject.org/users/vondruch">
                      Your Profile
                    </a>
                  </li>
                  <li>
                    <a href="https://apps.fedoraproject.org/notifications/vondruch.id.fedoraproject.org/">
                      Manage Alerts
                    </a>
                  </li>
                  <li>
                    <form id="popup_toggle" action="https://bodhi.fedoraproject.org/popup_toggle" method="POST">
                      <input type="hidden" name="next" value="https://bodhi.fedoraproject.org/updates/revoke/request">
                    </form>
                    <a href="javascript:$('#popup_toggle').submit();">
                      Disable popups
                    </a>
                  </li>
                </ul>
              </li>

              <li>
                <a href="https://bodhi.fedoraproject.org/logout">
                  <span class="glyphicon glyphicon-log-out"></span>
                  Logout</a>
              </li>
            </ul>
          </div>
        </div><!--/.nav-collapse -->
      </div>

      <div class="container">

<div class="row">
  <div class="col-md-offset-3 col-md-6">
    <div class="panel error-page-panel">
      <h1>404 <small>Not Found</small></h1>
      <p class="lead">"rubygem-httparty-0.14.0-1.fc25" is not one of unpush, testing, revoke, obsolete, stable</p>
      <p class="lead">Invalid update id</p>
      <p class="lead">ACL validation mechanism was unable to determine ACLs.</p>
    </div>
  </div>
</div>

      </div>

      <div id="ghost-cabbage">
        <img src="https://bodhi.fedoraproject.org/static/img/logo-large.png"/>
      </div>
    </div> <!-- /#wrap -->

    <div id="footer">
      <div class="container">
        <p class="text-muted text-center"> Running
          <code>bodhi-2.2.4</code> on
          <code>bodhi04.phx2.fedoraproject.org</code>.
        <a href="https://github.com/fedora-infra/bodhi">
        bodhi<span class="glyphicon glyphicon-link"></span></a> is Free Software.
        Please <a href="https://github.com/fedora-infra/bodhi/issues">
        file issues<span class="glyphicon glyphicon-link"></span></a>
        if you have any problems.  Copyright &copy; 2007-2015 Red Hat, Inc. and
        <a href="https://github.com/fedora-infra/bodhi/graphs/contributors">
        others<span class="glyphicon glyphicon-link"></span></a>.
        </p>
      </div>
    </div>

    <!-- Placed at the end of the document so the pages load faster -->
    <script src="https://bodhi.fedoraproject.org/static/jquery.flot.js"></script>
    <script src="https://bodhi.fedoraproject.org/static/jquery.flot.stack.js"></script>
    <script src="https://bodhi.fedoraproject.org/static/bootstrap/js/bootstrap.min.js"></script>
    <script src="https://bodhi.fedoraproject.org/static/moment/moment.min.js"></script>
    <script src="https://bodhi.fedoraproject.org/static/js/cabbage.js"></script>
    <script src="https://bodhi.fedoraproject.org/static/js/forms.js"></script>
    <script src="https://bodhi.fedoraproject.org/static/js/site.js"></script>
    <script src="https://bodhi.fedoraproject.org/static/js/live.js"></script>
    <script src="https://bodhi.fedoraproject.org/static/messenger/js/messenger.min.js"></script>
    <script src="https://bodhi.fedoraproject.org/static/messenger/js/messenger-theme-flat.js"></script>
    <link href="https://bodhi.fedoraproject.org/static/messenger/css/messenger.css" rel="stylesheet" />
    <link href="https://bodhi.fedoraproject.org/static/messenger/css/messenger-theme-flat.css" rel="stylesheet" />
    <script src="https://bodhi.fedoraproject.org/static/js/typeahead.bundle.js"></script>
    <script src="https://bodhi.fedoraproject.org/static/js/search.js"></script>
    <script src="https://bodhi.fedoraproject.org/static/js/konami.js"></script>

    <script src="https://apps.fedoraproject.org/fedmenu/js/fedora-libravatar.js"></script>
    <script src="https://apps.fedoraproject.org/fedmenu/js/fedmenu.js"></script>
    <script>
      fedmenu({
          'url': 'https://apps.fedoraproject.org/js/data.js',
          'mimeType': 'application/javascript',
          'position': 'bottom-right',
      });
    </script>

  </body>
</html>
)

Version-Release number of selected component (if applicable):
$ rpm -q bodhi-client
bodhi-client-2.2.4-1.fc26.noarch

How reproducible:
Always

Steps to Reproduce:
1.
2.
3.

Actual results:

Expected results:

Additional info:
I discovered this trying to reproduce bug 1337548 using bodhi-client 2.x
bowlofeggs commented 7 years ago

Vit further comented:

I'd say there is several issues in here:

1) The server is not returning JSON where it is expected. 2) The error itself is weird:

  <p class="lead">"rubygem-httparty-0.14.0-1.fc25" is not one of unpush, testing, revoke, obsolete, stable</p>
  <p class="lead">Invalid update id</p>
  <p class="lead">ACL validation mechanism was unable to determine ACLs.</p>

Trying the same withupdate ID "FEDORA-2016-e4fe08f108" fails similarly

3) There should be not tracebacks, no HTML output, but some clear error message appropriate for CLI.

bowlofeggs commented 7 years ago

I learned that the order of the arguments used in the bug report is backwards - you have to specify the update id and then the state you wish the update to be moved to. Thus instead of:

$ bodhi updates request revoke rubygem-httparty-0.14.0-1.fc25

it should be:

$ bodhi updates request rubygem-httparty-0.14.0-1.fc25 revoke

The server was sending a 404 since it could not find an update with id "revoke". However, the CLI should have made this clearer for the user when reporting the error so I will see what I can do about fixing the error reporting.