diff --git a/foreman/foreman.py b/foreman/foreman.py index c2e2071..de72fc1 100644 --- a/foreman/foreman.py +++ b/foreman/foreman.py @@ -307,10 +307,14 @@ def create_resource(self, resource_type, resource, data, resource_data[resource] = data return self._post_request(url=url, data=resource_data) - def update_resource(self, resource_type, resource_id, data, component=None, component_id=None): + def update_resource(self, resource_type, resource, resource_id, data, component=None, component_id=None): url = self._get_resource_url(resource_type=resource_type, resource_id=resource_id, component=component, component_id=component_id) - return self._put_request(url=url, data=data) + resource_data = { + "id": resource_id, + resource: data + } + return self._put_request(url=url, data=resource_data) def delete_resource(self, resource_type, resource_id, component=None, component_id=None): url = self._get_resource_url(resource_type=resource_type, resource_id=resource_id, @@ -372,7 +376,7 @@ def delete_auth_source_ldap(self, id): return self.delete_resource(resource_type=AUTH_SOURCE_LDAPS, resource_id=id) def update_auth_source_ldap(self, id, data): - return self.update_resource(resource_type=AUTH_SOURCE_LDAPS, resource_id=id, data=data) + return self.update_resource(resource_type=AUTH_SOURCE_LDAPS, resource=AUTH_SOURCE_LDAP, resource_id=id, data=data) def get_common_parameters(self): return self.get_resources(resource_type=COMMON_PARAMETERS) @@ -421,6 +425,7 @@ def create_compute_attribute(self, compute_resource_id, compute_profile_id, data def update_compute_attribute(self, id, data): return self.update_resource(resource_type=COMPUTE_ATTRIBUTES, + resource=COMPUTE_ATTRIBUTE, resource_id=id, data={'vm_attrs': data}) @@ -458,6 +463,7 @@ def create_compute_resource(self, data): def update_compute_resource(self, id, data): """Update the parameters of a compute resources""" return self.update_resource(resource_type=COMPUTE_RESOURCES, + resource=COMPUTE_RESOURCE, data=data, resource_id=id) @@ -488,6 +494,7 @@ def delete_compute_resource_image(self, compute_resource_id, image_id): def update_compute_resource_image(self, compute_resource_id, data): """Update the parameters of an image on a given compute resource""" return self.update_resource(resource_type=COMPUTE_RESOURCES, + resource=COMPUTE_RESOURCE, data=data, resource_id=compute_resource_id, component=IMAGES, @@ -508,7 +515,7 @@ def create_config_template(self, data): data=data) def update_config_template(self, id, data): - return self.update_resource(resource_type=CONFIG_TEMPLATES, resource_id=id, data=data) + return self.update_resource(resource_type=CONFIG_TEMPLATES, resource=CONFIG_TEMPLATE, resource_id=id, data=data) def delete_config_template(self, id): return self.delete_resource(resource_type=CONFIG_TEMPLATES, resource_id=id) @@ -526,7 +533,7 @@ def create_domain(self, data): return self.create_resource(resource_type=DOMAINS, resource=DOMAIN, data=data) def update_domain(self, id, data): - return self.update_resource(resource_type=DOMAINS, resource_id=id, data=data) + return self.update_resource(resource_type=DOMAINS, resource=DOMAIN, resource_id=id, data=data) def delete_domain(self, id): return self.delete_resource(resource_type=DOMAINS, resource_id=id) @@ -593,13 +600,14 @@ def create_host(self, data): return self.create_resource(resource_type=HOSTS, resource=HOST, data=data) def update_host(self, id, data): - return self.update_resource(resource_type=HOSTS, resource_id=id, data=data) + return self.update_resource(resource_type=HOSTS, resource=HOST, resource_id=id, data=data) def delete_host(self, id): return self.delete_resource(resource_type=HOSTS, resource_id=id) def set_host_power(self, host_id, action): return self.update_resource(resource_type=HOSTS, + resource=HOST, resource_id=host_id, component='power', data={'power_action': action, HOST: {}}) @@ -640,6 +648,7 @@ def create_host_parameter(self, host_id, data): def update_host_parameter(self, host_id, parameter_id, data): return self.update_resource(resource_type=HOSTS, + resource=HOST, resource_id=host_id, component=PARAMETERS, component_id=parameter_id, @@ -664,7 +673,7 @@ def create_hostgroup(self, data): return self.create_resource(resource_type=HOSTGROUPS, resource=HOSTGROUP, data=data) def update_hostgroup(self, id, data): - return self.update_resource(resource_type=HOSTGROUPS, resource_id=id, data=data) + return self.update_resource(resource_type=HOSTGROUPS, resource=HOSTGROUP, resource_id=id, data=data) def delete_hostgroup(self, id): return self.delete_resource(resource_type=HOSTGROUPS, resource_id=id) @@ -684,6 +693,7 @@ def create_hostgroup_parameter(self, hostgroup_id, data): def update_hostgroup_parameter(self, hostgroup_id, parameter_id, data): return self.update_resource(resource_type=HOSTGROUPS, + resource=HOSTGROUP, resource_id=hostgroup_id, component=PARAMETERS, component_id=parameter_id, @@ -726,7 +736,7 @@ def delete_medium(self, id): return self.delete_resource(resource_type=MEDIA, resource_id=id) def update_medium(self, id, data): - return self.update_resource(resource_type=MEDIA, resource_id=id, data=data) + return self.update_resource(resource_type=MEDIA, resource=MEDIUM, resource_id=id, data=data) def get_organizations(self): return self.get_resources(resource_type=ORGANIZATIONS) @@ -756,7 +766,7 @@ def create_operatingsystem(self, data): return self.create_resource(resource_type=OPERATINGSYSTEMS, resource=OPERATINGSYSTEM, data=data) def update_operatingsystem(self, id, data): - return self.update_resource(resource_type=OPERATINGSYSTEMS, resource_id=id, data=data) + return self.update_resource(resource_type=OPERATINGSYSTEMS, resource=OPERATINGSYSTEM, resource_id=id, data=data) def delete_operatingsystem(self, id): return self.delete_resource(resource_type=OPERATINGSYSTEMS, resource_id=id) @@ -773,9 +783,9 @@ def create_operatingsystem_default_template(self, id, data): resource_id=id, component=OS_DEFAULT_TEMPLATES) def update_operatingsystem_default_template(self, id, template_id, data): - return self.update_resource(resource_type=OPERATINGSYSTEMS, resource_id=id, + return self.update_resource(resource_type=OPERATINGSYSTEMS, resource=OS_DEFAULT_TEMPLATE, resource_id=id, component=OS_DEFAULT_TEMPLATES, component_id=template_id, - resource=OS_DEFAULT_TEMPLATE, data=data) + data=data) def delete_operatingsystem_default_template(self, id, template_id): return self.delete_resource(resource_type=OPERATINGSYSTEMS, resource_id=id, @@ -794,7 +804,7 @@ def create_partition_table(self, data): return self.create_resource(resource_type=PARTITION_TABLES, resource=PARTITION_TABLE, data=data) def update_partition_table(self, id, data): - return self.update_resource(resource_type=PARTITION_TABLES, resource_id=id, data=data) + return self.update_resource(resource_type=PARTITION_TABLES, resource=PARTITION_TABLE, resource_id=id, data=data) def delete_partition_table(self, id): return self.delete_resource(resource_type=PARTITION_TABLES, resource_id=id) @@ -824,7 +834,7 @@ def delete_realm(self, id): return self.delete_resource(resource_type=REALMS, resource_id=id) def update_realm(self, id, data): - return self.update_resource(resource_type=REALMS, resource_id=id, data=data) + return self.update_resource(resource_type=REALMS, resource=REALM, resource_id=id, data=data) def get_roles(self): return self.get_resources(resource_type=ROLES) @@ -848,7 +858,7 @@ def search_setting(self, data): return self.search_resource(resource_type=SETTINGS, data=data) def update_setting(self, id, data): - return self.update_resource(resource_type=SETTINGS, resource_id=id, data=data) + return self.update_resource(resource_type=SETTINGS, resource=SETTING, resource_id=id, data=data) def get_smart_proxies(self): return self.get_resources(resource_type=SMART_PROXIES) @@ -863,7 +873,7 @@ def create_smart_proxy(self, data): return self.create_resource(resource_type=SMART_PROXIES, resource=SMART_PROXY, data=data) def update_smart_proxy(self, id, data): - return self.update_resource(resource_type=SMART_PROXIES, resource_id=id, data=data) + return self.update_resource(resource_type=SMART_PROXIES, resource=SMART_PROXY, resource_id=id, data=data) def delete_smart_proxy(self, id): return self.delete_resource(resource_type=SMART_PROXIES, resource_id=id) @@ -881,7 +891,7 @@ def create_subnet(self, data): return self.create_resource(resource_type=SUBNETS, resource=SUBNET, data=data) def update_subnet(self, id, data): - return self.update_resource(resource_type=SUBNETS, resource_id=id, data=data) + return self.update_resource(resource_type=SUBNETS, resource=SUBNET, resource_id=id, data=data) def delete_subnet(self, id): return self.delete_resource(resource_type=SUBNETS, resource_id=id) @@ -902,7 +912,7 @@ def create_user(self, data): return self.create_resource(resource_type=USERS, resource=USER, data=data) def update_user(self, id, data): - return self.update_resource(resource_type=USERS, resource_id=id, data=data) + return self.update_resource(resource_type=USERS, resource=USER, resource_id=id, data=data) def delete_user(self, id): return self.delete_resource(resource_type=USERS, resource_id=id) @@ -920,7 +930,7 @@ def create_usergroup(self, data): return self.create_resource(resource_type=USERGROUPS, resource=USERGROUP, data=data) def update_usergroup(self, id, data): - return self.update_resource(resource_type=USERGROUPS, resource_id=id, data=data) + return self.update_resource(resource_type=USERGROUPS, resource=USERGROUP, resource_id=id, data=data) def delete_usergroup(self, id): return self.delete_resource(resource_type=USERGROUPS, resource_id=id)