Compare commits

...

7 Commits
5.3.0 ... 2.1.1

Author SHA1 Message Date
Zuul
57d4563817 Merge "Fix the rating.get_quotation method" into stable/stein 2019-04-04 14:26:54 +00:00
Luka Peschke
b465e86703 Fix the rating.get_quotation method
This updates the rating.get_quotation method of the client. Tests on this
method have been added.

Depends-On: https://review.openstack.org/#/c/648062/
Change-Id: Ie2de0162311c2d162c1573042187ac4e628bd966
(cherry picked from commit de96c61985)
2019-04-04 12:59:33 +00:00
Luka Peschke
1724798fd7 Adding a python3 functional job
Change-Id: I3bb28edc9d62e8ea622e1061cbfb50168c217f24
(cherry picked from commit aeebd64928)
2019-04-04 12:59:27 +00:00
Luka Peschke
1ee30ec19c Asserting 'summary get' returns nothing in functional tests
Since no data is available in devstack in our functional test environment,
we make the assertion that 'summary get' returns nothing. This is prone to
update if more complete test scenarios are implemented.

Change-Id: Ic80e39f0d2a75882762ebd6a0dba46033c9fd7f4
(cherry picked from commit a7e687f740)
2019-04-04 10:26:36 +00:00
Luka Peschke
8b26d758c0 Fix releasenotes generation
Change-Id: Id72ea6407350bfccf7443bca9f4880d1324812c9
2019-03-27 09:48:47 +00:00
377172f39d Update UPPER_CONSTRAINTS_FILE for stable/stein
Update the URL to the upper-constraints file to point to the redirect
rule on releases.openstack.org so that anyone working on this branch
will switch to the correct upper-constraints list automatically when
the requirements repository branches.

Until the requirements repository has as stable/stein branch, tests will
continue to use the upper-constraints list on master.

Change-Id: Ibae1e8d8710efb9796f8e89547b994d4bf42c780
2019-03-18 14:49:53 +00:00
98e177260d Update .gitreview for stable/stein
Change-Id: Ic0fc80ffa4bdf16e9aa5b36a7be7614a74ee2d73
2019-03-18 14:49:50 +00:00
8 changed files with 83 additions and 16 deletions

View File

@@ -2,3 +2,4 @@
host=review.openstack.org
port=29418
project=openstack/python-cloudkittyclient.git
defaultbranch=stable/stein

View File

@@ -19,6 +19,8 @@
vars:
devstack_plugins:
cloudkitty: https://git.openstack.org/openstack/cloudkitty
devstack_localrc:
CLOUDKITTY_FETCHER: keystone
devstack_services:
ck-api: true
horizon: false
@@ -26,6 +28,16 @@
zuul_work_dir: src/git.openstack.org/openstack/python-cloudkittyclient
tox_envlist: functional
- job:
name: cloudkittyclient-devstack-functional-py3
parent: cloudkittyclient-devstack-functional
description: |
Job for cloudkittyclient functional tests, ran in python3.
vars:
devstack_localrc:
DEVSTACK_GATE_USE_PYTHON3: "True"
USE_PYTHON3: "True"
- project:
templates:
- check-requirements
@@ -39,7 +51,11 @@
jobs:
- cloudkittyclient-devstack-functional:
voting: true
- cloudkittyclient-devstack-functional-py3:
voting: true
gate:
jobs:
- cloudkittyclient-devstack-functional:
voting: true
- cloudkittyclient-devstack-functional-py3:
voting: true

View File

@@ -22,8 +22,8 @@ class CkReportTest(base.BaseFunctionalTest):
self.runner = self.cloudkitty
def test_get_summary(self):
resp = self.runner('summary get')[0]
self.assertEqual(resp['Resource Type'], 'ALL')
resp = self.runner('summary get')
self.assertEqual(len(resp), 0)
def test_get_summary_with_groupby(self):
resp = self.runner('summary get', params='-g res_type tenant_id')

View File

@@ -0,0 +1,48 @@
# Copyright 2019 Objectif Libre
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
import decimal
from cloudkittyclient import exc
from cloudkittyclient.tests.unit.v1 import base
class TestRating(base.BaseAPIEndpointTestCase):
def test_quote_request(self):
res_data = [{'usage': {
'instance': [{
'vol': {'unit': 'undef', 'qty': '1'},
'rating': {'price': decimal.Decimal(1)},
'desc': {
'disk_total_display': 1,
'image_id': 'c43a3e7d-c4e6-45d6-8c8d-e2832a45bc0a',
'ram': 64,
'ephemeral': 0,
'vcpus': 1,
'source_type': 'image',
'disk_total': 1,
'flavor_id': '42',
'flavor': 'm1.nano',
'disk': 1,
'source_val': 'c43a3e7d-c4e6-45d6-8c8d-e2832a45bc0a'}
}]
}}]
self.rating.get_quotation(res_data=res_data)
self.api_client.post.assert_called_once_with(
'/v1/rating/quote/', json={'resources': res_data})
def test_get_quotation_no_res_data(self):
self.assertRaises(exc.ArgumentRequired, self.rating.get_quotation)

View File

@@ -78,8 +78,10 @@ class RatingManager(base.BaseManager):
"""
if not kwargs.get('res_data', None):
raise exc.ArgumentRequired("'res_data' argument is required.")
url = self.get_url('quote')
return self.api_client.post(url, kwargs['res_data'])
url = self.get_url('quote', {})
body = {'resources': kwargs['res_data']}
return self.api_client.post(url, json=body).json()
class CliModuleGet(lister.Lister):

View File

@@ -0,0 +1,5 @@
---
fixes:
- |
The ``rating.get_quotation`` method of the client has been fixed: the json
body has been updated to match the API reference.

View File

@@ -16,7 +16,6 @@
# documentation root, use os.path.abspath to make it absolute, like shown here.
#sys.path.insert(0, os.path.abspath('.'))
import pbr.version
# -- General configuration ------------------------------------------------
# If your documentation needs a minimal Sphinx version, state it here.
@@ -26,8 +25,8 @@ import pbr.version
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
'oslosphinx',
'reno.sphinxext',
'openstackdocstheme',
]
# Add any paths that contain templates here, relative to this directory.
@@ -46,16 +45,12 @@ master_doc = 'index'
project = u'Cloudkitty Client Release Notes'
copyright = u'2016, Cloudkitty developers'
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
#
cloudkittyclient_version = pbr.version.VersionInfo('python-cloudkittyclient')
# Release notes are version independent.
# The short X.Y version.
version = cloudkittyclient_version.canonical_version_string()
version = ''
# The full version, including alpha/beta/rc tags.
release = cloudkittyclient_version.version_string_with_vcs()
release = ''
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
@@ -100,7 +95,7 @@ pygments_style = 'sphinx'
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
html_theme = 'default'
html_theme = 'openstackdocs'
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the

View File

@@ -5,7 +5,7 @@ skipsdist = True
[testenv]
usedevelop = True
install_command = pip install -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} -U {opts} {packages}
install_command = pip install -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/stein} -U {opts} {packages}
setenv =
VIRTUAL_ENV={envdir}
deps = -r{toxinidir}/requirements.txt