Skip to content
This repository was archived by the owner on Oct 15, 2020. It is now read-only.

Commit b1fe884

Browse files
authored
Merge pull request #429 from HewlettPackard/upgrade/800/os_deployment_plans
Upgrade/800/os deployment plans
2 parents c876ca1 + 6b22f65 commit b1fe884

File tree

8 files changed

+40
-87
lines changed

8 files changed

+40
-87
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ Resource data will be available with the resource object. This enhancement helps
3737
- Logical interconnect group
3838
- Logical switch group
3939
- Managed SAN
40+
- OS deployment plan
4041
- SAS interconnect
4142
- SAS interconnect type
4243
- SAS logical interconnect

endpoints-support.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -346,8 +346,8 @@
346346
|<sub>/rest/network-sets/{id}/withoutEthernet</sub> | GET | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
347347
|<sub>/rest/network-sets/{id}</sub> | PATCH | :heavy_minus_sign: | :white_check_mark: | :white_check_mark: | :heavy_minus_sign: |
348348
| **OS Deployment Plans** |
349-
|<sub>/rest/os-deployment-plans/</sub> | GET | :heavy_minus_sign: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
350-
|<sub>/rest/os-deployment-plans/{id}</sub> | GET | :heavy_minus_sign: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
349+
|<sub>/rest/os-deployment-plans/</sub> | GET | :heavy_minus_sign: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
350+
|<sub>/rest/os-deployment-plans/{id}</sub> | GET | :heavy_minus_sign: | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: |
351351
| **OS Deployment Servers** |
352352
|<sub>/rest/os-deployment-servers</sub> | GET | :heavy_minus_sign: | :white_check_mark: | |
353353
|<sub>/rest/os-deployment-servers</sub> | POST | :heavy_minus_sign: | :white_check_mark: | |

examples/os_deployment_plans.py

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# -*- coding: utf-8 -*-
22
###
3-
# (C) Copyright (2012-2017) Hewlett Packard Enterprise Development LP
3+
# (C) Copyright (2012-2019) Hewlett Packard Enterprise Development LP
44
#
55
# Permission is hereby granted, free of charge, to any person obtaining a copy
66
# of this software and associated documentation files (the "Software"), to deal
@@ -34,26 +34,19 @@
3434
}
3535
}
3636

37-
# To run this example you must define an OS Deployment Plan ID
38-
os_deployment_plan_id = "81decf85-0dff-4a5e-8a95-52994eeb6493"
39-
4037
# Try load config from a file (if there is a config file)
4138
config = try_load_from_file(config)
42-
4339
oneview_client = OneViewClient(config)
40+
os_deployment_plans = oneview_client.os_deployment_plans
4441

4542
print("\nGet OS Deployment Plans by Filter:")
46-
os_deployment_plans = oneview_client.os_deployment_plans.get_by('deploymentType', 'I3S')
47-
pprint(os_deployment_plans)
43+
plans = os_deployment_plans.get_by('deploymentType', 'I3S')
44+
pprint(plans)
4845

4946
print("\nGet the OS Deployment Plan by Name:")
50-
os_deployment_plans = oneview_client.os_deployment_plans.get_by_name('Deployment Plan')
51-
pprint(os_deployment_plans)
47+
os_deployment_plan = os_deployment_plans.get_by('name', 'Deployment Plan')
48+
pprint(os_deployment_plan)
5249

5350
print("\nGet all OS Deployment Plans:")
54-
os_deployment_plans_all = oneview_client.os_deployment_plans.get_all()
51+
os_deployment_plans_all = os_deployment_plans.get_all()
5552
pprint(os_deployment_plans_all)
56-
57-
print("\nGet an OS Deployment Plan by ID:")
58-
os_deployment_plan = oneview_client.os_deployment_plans.get(os_deployment_plan_id)
59-
pprint(os_deployment_plan)

hpOneView/oneview_client.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1063,9 +1063,7 @@ def os_deployment_plans(self):
10631063
Returns:
10641064
OsDeploymentPlans:
10651065
"""
1066-
if not self.__os_deployment_plans:
1067-
self.__os_deployment_plans = OsDeploymentPlans(self.__connection)
1068-
return self.__os_deployment_plans
1066+
return OsDeploymentPlans(self.__connection)
10691067

10701068
@property
10711069
def os_deployment_servers(self):

hpOneView/resources/resource.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -965,8 +965,7 @@ def get_schema(self):
965965
Returns:
966966
A dict with the schema.
967967
"""
968-
resource_uri = self.data['uri']
969-
return self._helper.do_get(resource_uri + '/schema')
968+
return self._helper.do_get(self.URI + '/schema')
970969

971970

972971
class ResourceZeroBodyMixin(object):
Lines changed: 15 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# -*- coding: utf-8 -*-
22
###
3-
# (C) Copyright (2012-2017) Hewlett Packard Enterprise Development LP
3+
# (C) Copyright (2012-2019) Hewlett Packard Enterprise Development LP
44
#
55
# Permission is hereby granted, free of charge, to any person obtaining a copy
66
# of this software and associated documentation files (the "Software"), to deal
@@ -31,15 +31,14 @@
3131
standard_library.install_aliases()
3232

3333

34-
from hpOneView.resources.resource import ResourceClient
34+
from hpOneView.resources.resource import Resource, unavailable_method
3535

3636

37-
class OsDeploymentPlans(object):
37+
class OsDeploymentPlans(Resource):
3838
URI = '/rest/os-deployment-plans/'
3939

40-
def __init__(self, con):
41-
self._connection = con
42-
self._client = ResourceClient(con, self.URI)
40+
def __init__(self, connection, data=None):
41+
super(OsDeploymentPlans, self).__init__(connection, data)
4342

4443
def get_all(self, start=0, count=-1, filter='', query='', sort=''):
4544
"""
@@ -66,44 +65,16 @@ def get_all(self, start=0, count=-1, filter='', query='', sort=''):
6665
Returns:
6766
list: Os Deployment plans
6867
"""
69-
return self._client.get_all(start, count, filter=filter, sort=sort, query=query)
68+
return self._helper.get_all(start, count, filter=filter, sort=sort, query=query)
7069

71-
def get(self, id_or_uri):
72-
"""
73-
Gets a single Os Deployment plan resource based upon its URI or ID.
74-
75-
Args:
76-
id_or_uri:
77-
Can be either the Os Deployment plan ID or the URI
78-
79-
Returns:
80-
dict: Os Deployment plan
81-
"""
82-
return self._client.get(id_or_uri)
83-
84-
def get_by(self, field, value):
85-
"""
86-
Gets all Os Deployment plans that match the filter
87-
The search is case-insensitive
88-
89-
Args:
90-
field: field name to filter
91-
value: value to filter
70+
def create(self):
71+
"""Create method not available for this resource"""
72+
unavailable_method()
9273

93-
Returns:
94-
list: Os Deployment plans
95-
"""
96-
return self._client.get_by(field, value)
97-
98-
def get_by_name(self, name):
99-
"""
100-
Gets the Os Deployment plan by name.
74+
def update(self):
75+
"""Update method is not available for this resource"""
76+
unavailable_method()
10177

102-
Args:
103-
name: Name of the Os Deployment plan
104-
105-
Returns:
106-
dict: Os Deployment plan
107-
"""
108-
os_deployment_plan = self.get_by('name', name) or [None]
109-
return os_deployment_plan[0]
78+
def delete(self):
79+
"""Delete method is not avaialble for this resource"""
80+
unavailable_method()

tests/unit/resources/uncategorized/test_os_deployment_plans.py

Lines changed: 10 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# -*- coding: utf-8 -*-
22
###
3-
# (C) Copyright (2012-2017) Hewlett Packard Enterprise Development LP
3+
# (C) Copyright (2012-2019) Hewlett Packard Enterprise Development LP
44
#
55
# Permission is hereby granted, free of charge, to any person obtaining a copy
66
# of this software and associated documentation files (the 'Software'), to deal
@@ -26,7 +26,7 @@
2626
import mock
2727

2828
from hpOneView.connection import connection
29-
from hpOneView.resources.resource import ResourceClient
29+
from hpOneView.resources.resource import ResourceHelper
3030
from hpOneView.resources.uncategorized.os_deployment_plans import OsDeploymentPlans
3131

3232

@@ -39,7 +39,7 @@ def setUp(self):
3939
self.connection = connection(self.host)
4040
self._os_deployment_plans = OsDeploymentPlans(self.connection)
4141

42-
@mock.patch.object(ResourceClient, 'get_all')
42+
@mock.patch.object(ResourceHelper, 'get_all')
4343
def test_get_all_called_once(self, mock_get_all):
4444
filter = 'name=TestName'
4545
sort = 'name:ascending'
@@ -48,33 +48,24 @@ def test_get_all_called_once(self, mock_get_all):
4848

4949
mock_get_all.assert_called_once_with(2, 500, filter=filter, sort=sort, query='')
5050

51-
@mock.patch.object(ResourceClient, 'get_all')
51+
@mock.patch.object(ResourceHelper, 'get_all')
5252
def test_get_all_called_once_with_default(self, mock_get_all):
5353
self._os_deployment_plans.get_all()
5454
mock_get_all.assert_called_once_with(0, -1, filter='', sort='', query='')
5555

56-
@mock.patch.object(ResourceClient, 'get')
57-
def test_get_by_id_called_once(self, mock_get):
58-
self._os_deployment_plans.get(self.RESOURCE_ID)
59-
mock_get.assert_called_once_with(self.RESOURCE_ID)
60-
61-
@mock.patch.object(ResourceClient, 'get')
62-
def test_get_by_uri_called_once(self, mock_get):
63-
self._os_deployment_plans.get(self.RESOURCE_URI)
64-
mock_get.assert_called_once_with(self.RESOURCE_URI)
65-
66-
@mock.patch.object(ResourceClient, 'get_by')
56+
@mock.patch.object(ResourceHelper, 'get_all')
6757
def test_get_by_called_once(self, mock_get_by):
6858
self._os_deployment_plans.get_by("name", "test name")
69-
mock_get_by.assert_called_once_with("name", "test name")
59+
mock_get_by.assert_called_once_with(0, -1, filter='"name=\'test name\'"',
60+
query='', sort='')
7061

71-
@mock.patch.object(ResourceClient, 'get_by')
62+
@mock.patch.object(ResourceHelper, 'get_all')
7263
def test_get_by_name_sould_return_none_when_resource_is_not_found(self, mock_get_by):
7364
mock_get_by.return_value = []
7465
response = self._os_deployment_plans.get_by_name("test name")
7566
self.assertEqual(response, None)
7667

77-
@mock.patch.object(ResourceClient, 'get_by')
68+
@mock.patch.object(ResourceHelper, 'get_all')
7869
def test_get_by_name_called_once(self, mock_get_by):
7970
self._os_deployment_plans.get_by_name("test name")
80-
mock_get_by.assert_called_once_with("name", "test name")
71+
mock_get_by.assert_called_once_with(0, -1, filter='"name=\'test name\'"', query='', sort='')

tests/unit/test_oneview_client.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -849,9 +849,9 @@ def test_lazy_loading_events(self):
849849
def test_os_deployment_plans_has_right_type(self):
850850
self.assertIsInstance(self._oneview.os_deployment_plans, OsDeploymentPlans)
851851

852-
def test_lazy_loading_os_deployment_plans(self):
853-
os_deployment_plans = self._oneview.os_deployment_plans
854-
self.assertEqual(os_deployment_plans, self._oneview.os_deployment_plans)
852+
def test_os_deployment_plans_return(self):
853+
self.assertNotEqual(self._oneview.os_deployment_plans,
854+
self._oneview.os_deployment_plans)
855855

856856
def test_os_deployment_servers_has_right_type(self):
857857
self.assertIsInstance(self._oneview.os_deployment_servers, OsDeploymentServers)

0 commit comments

Comments
 (0)