def createResource(self, resource_type, resource_name, status, description=None, external_system=None, location=None, department=None, owner=None, **add_params): """ Create resource object and save it into database @return created resource object """ resource = Resource(specification_name=resource_type, resource_name=resource_name, resource_status=status, description=description, external_system=external_system, location=location, department=department, owner=owner, additional_parameters=add_params) resource.validate() self.db_conn.connect() res_id = self.db_conn.save_entity(CommonDatabaseAPI.ET_RESOURCE, resource.to_dict()) self.db_conn.close() resource.set__id(res_id) return resource
def updateResource(self, resource_id, resource_name=None, status=None, description=None, external_system=None, location=None, department=None, owner=None, **add_params): """ Update resource information Find resource in database by ID and update all non-None passed attributes """ self.db_conn.connect() raw_resource = self.db_conn.get_entity(CommonDatabaseAPI.ET_RESOURCE, resource_id) resource = Resource(raw_resource) if resource_name is not None: resource.set_resource_name(resource_name) if status is not None: resource.set_resource_status(status) if description is not None: resource.set_description(description) if external_system is not None: resource.set_external_system(external_system) if location is not None: resource.set_location(location) if department is not None: resource.set_department(department) if owner is not None: resource.set_owner(owner) for param_name, param_value in add_params.iteritems(): resource.set_attribute(param_name, param_value) resource.validate() self.db_conn.save_entity(CommonDatabaseAPI.ET_RESOURCE, resource.to_dict()) self.db_conn.close() return resource