Skip to content

Commit

Permalink
pdc global-component update should take its name instead of ID
Browse files Browse the repository at this point in the history
When update the global-component, using GLOBAL_COMPONENT_NAME
instead of GLOBAL_COMPONENT_ID.

JIRA: PDC-1157
  • Loading branch information
bliuredhat committed Nov 12, 2015
1 parent ba6fa9c commit 4525216
Show file tree
Hide file tree
Showing 6 changed files with 55 additions and 41 deletions.
20 changes: 16 additions & 4 deletions pdc_client/plugins/component.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ def register(self):
info_parser.set_defaults(func=self.global_component_info)

update_parser = self.add_action('update', help='update an existing global component')
update_parser.add_argument('global_component_id', metavar='GLOBAL_COMPONENT_ID')
update_parser.add_argument('global_component_name', metavar='GLOBAL_COMPONENT_NAME')
self.add_global_component_arguments(update_parser)
update_parser.set_defaults(func=self.global_component_update)

Expand Down Expand Up @@ -66,6 +66,14 @@ def list_global_components(self, args):
global_component['id'],
global_component['name'])

def get_component_id(self, args):
global_component_name = args
global_component = self.client['global-components']._(name=global_component_name)
if global_component['count']:
return str(global_component['results'][0]['id'])
else:
return None

def global_component_info(self, args, global_component_id=None):
global_component_id = global_component_id or args.global_component_id
global_component = self.client['global-components'][global_component_id]._()
Expand Down Expand Up @@ -106,13 +114,17 @@ def global_component_create(self, args):

def global_component_update(self, args):
data = extract_arguments(args)
global_component_id = self.get_component_id(args.global_component_name)
if not global_component_id:
print "This global component don't exist"
return

This comment has been minimized.

Copy link
@lubomir

lubomir Nov 13, 2015

Member

The error handling here needs to be consistent with release components. Specifically the error should be printed to stderr and the client needs to exit with non-zero status.

if data:
self.logger.debug('Updating global component %s with data %r',
args.global_component_id, data)
self.client['global-components'][args.global_component_id]._ += data
global_component_id, data)
self.client['global-components'][global_component_id]._ += data
else:
self.logger.debug('Empty data, skipping request')
self.global_component_info(args)
self.global_component_info(args, global_component_id)


class ReleaseComponentPlugin(PDCClientPlugin):
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"id": "1",
"name": "Test Global Component",
"name": "Test_Global_Component",
"dist_git_path": null,
"dist_git_web_url": "http://pkgs.example.com/test_global_component",
"labels": [
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
ID 1
Name Test Global Component
Name Test_Global_Component
Dist Git Path
Dist Git URL http://pkgs.example.com/test_global_component
Labels:
Expand Down
2 changes: 1 addition & 1 deletion pdc_client/tests/component/data/global_component/list.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[
{
"id": "1",
"name": "Test Global Component",
"name": "Test_Global_Component",
"dist_git_path": null,
"dist_git_web_url": "http://pkgs.example.com/test_global_component",
"labels": [
Expand Down
Original file line number Diff line number Diff line change
@@ -1,25 +1,25 @@
1 Test Global Component 1
2 Test Global Component 2
3 Test Global Component 3
4 Test Global Component 4
5 Test Global Component 5
6 Test Global Component 6
7 Test Global Component 7
8 Test Global Component 8
9 Test Global Component 9
10 Test Global Component 10
11 Test Global Component 11
12 Test Global Component 12
13 Test Global Component 13
14 Test Global Component 14
15 Test Global Component 15
16 Test Global Component 16
17 Test Global Component 17
18 Test Global Component 18
19 Test Global Component 19
20 Test Global Component 20
21 Test Global Component 21
22 Test Global Component 22
23 Test Global Component 23
24 Test Global Component 24
25 Test Global Component 25
1 Test_Global_Component 1
2 Test_Global_Component 2
3 Test_Global_Component 3
4 Test_Global_Component 4
5 Test_Global_Component 5
6 Test_Global_Component 6
7 Test_Global_Component 7
8 Test_Global_Component 8
9 Test_Global_Component 9
10 Test_Global_Component 10
11 Test_Global_Component 11
12 Test_Global_Component 12
13 Test_Global_Component 13
14 Test_Global_Component 14
15 Test_Global_Component 15
16 Test_Global_Component 16
17 Test_Global_Component 17
18 Test_Global_Component 18
19 Test_Global_Component 19
20 Test_Global_Component 20
21 Test_Global_Component 21
22 Test_Global_Component 22
23 Test_Global_Component 23
24 Test_Global_Component 24
25 Test_Global_Component 25
20 changes: 11 additions & 9 deletions pdc_client/tests/component/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ def setUp(self):
self.runner.setup()
self.detail = {
'id': '1',
'name': 'Test Global Component',
'name': 'Test_Global_Component',
'dist_git_path': None,
'dist_git_web_url': 'http://pkgs.example.com/test_global_component',
'contacts': [
Expand Down Expand Up @@ -59,7 +59,7 @@ def test_list_without_filters(self, api):
def test_list_multi_page(self, api):
api.add_endpoint('global-components', 'GET', [
{'id': x,
'name': 'Test Global Component %s' % x}
'name': 'Test_Global_Component %s' % x}
for x in range(1, 26)
])
with self.expect_output('global_component/list_multi_page.txt'):
Expand All @@ -77,23 +77,25 @@ def test_detail(self, api):
{'global-components/1': [('GET', {})]})

def test_update(self, api):
api.add_endpoint('global-components', 'GET', [self.detail])
self._setup_detail(api)
api.add_endpoint('global-components/1', 'PATCH', {})
with self.expect_output('global_component/detail.txt'):
self.runner.run(['global-component', 'update', '1', '--name', 'new test name'])
self.runner.run(['global-component', 'update', 'Test_Global_Component', '--name', 'new_test_name'])
self.assertDictEqual(api.calls,
{'global-components/1': [('PATCH', {'name': 'new test name'}),
('GET', {})]})
{
'global-components': [('GET', {'name': 'Test_Global_Component'})],
'global-components/1': [('PATCH', {'name': 'new_test_name'}), ('GET', {})]})

def test_create(self, api):
api.add_endpoint('global-components', 'POST', self.detail)
self._setup_detail(api)
with self.expect_output('global_component/detail.txt'):
self.runner.run(['global-component', 'create',
'--name', 'Test Global Component',
'--name', 'Test_Global_Component',
'--dist-git-path', 'test_global_component'])
self.assertDictEqual(api.calls,
{'global-components': [('POST', {'name': 'Test Global Component',
{'global-components': [('POST', {'name': 'Test_Global_Component',
'dist_git_path': 'test_global_component'})],
'global-components/1': [('GET', {})]})

Expand Down Expand Up @@ -183,9 +185,9 @@ def test_update(self, api):
self._setup_detail(api)
api.add_endpoint('release-components/1', 'PATCH', {})
with self.expect_output('release_component/detail.txt'):
self.runner.run(['release-component', 'update', '1', '--name', 'new test name'])
self.runner.run(['release-component', 'update', '1', '--name', 'new_test_name'])
self.assertDictEqual(api.calls,
{'release-components/1': [('PATCH', {'name': 'new test name'}),
{'release-components/1': [('PATCH', {'name': 'new_test_name'}),
('GET', {})]})

def test_create(self, api):
Expand Down

0 comments on commit 4525216

Please sign in to comment.