Skip to content
Snippets Groups Projects
Commit 177cbbd4 authored by Stefan Spettel's avatar Stefan Spettel
Browse files

refactor(pcf): Renamed pcf_sm_policy_control_errors to status_code and changed to snake_case

parent e28dd29d
No related branches found
No related tags found
1 merge request!2Implement feature to create a policy via the SMPolicyControl API
Showing with 44 additions and 56 deletions
......@@ -12,7 +12,7 @@
*/
#include "SMPoliciesCollectionApiImpl.h"
#include "sm_policy/pcf_sm_policy_control_errors.hpp"
#include "sm_policy/pcf_smpc_status_code.hpp"
#include "3gpp_29.500.h"
#include "logger.hpp"
......@@ -45,30 +45,30 @@ void SMPoliciesCollectionApiImpl::create_sm_policy(
std::string location = "";
std::string content_type = "application/problem+json";
pcf_smpc_error_code res = smpc_service->create_sm_policy_handler(
status_code res = smpc_service->create_sm_policy_handler(
smPolicyContextData, decision, association_id, details_string);
nlohmann::json json_data;
switch (res) {
case pcf_smpc_error_code::Created:
case status_code::CREATED:
http_code = HTTP_STATUS_CODE_201_CREATED;
location = m_address + base + "/sm-policies/" + association_id;
content_type = "application/json";
break;
case pcf_smpc_error_code::UserUnknown:
case status_code::USER_UNKOWN:
problem_details.setCause("USER_UNKOWN");
problem_details.setDetail(details_string);
http_code = HTTP_STATUS_CODE_400_BAD_REQUEST;
break;
case pcf_smpc_error_code::InvalidParameters:
case status_code::INVALID_PARAMETERS:
problem_details.setCause("ERROR_INITIAL_PARAMETERS");
problem_details.setDetail(details_string);
http_code = HTTP_STATUS_CODE_400_BAD_REQUEST;
break;
case pcf_smpc_error_code::ContextDenied:
case status_code::CONTEXT_DENIED:
problem_details.setCause("POLICY_CONTEXT_DENIED");
problem_details.setDetail(details_string);
http_code = HTTP_STATUS_CODE_403_FORBIDDEN;
......
......@@ -140,7 +140,7 @@ bool pcf_smpc::find_policy(
}
//------------------------------------------------------------------------------
pcf_smpc_error_code pcf_smpc::create_sm_policy_handler(
status_code pcf_smpc::create_sm_policy_handler(
const SmPolicyContextData& context, SmPolicyDecision& decision,
std::string& association_id, std::string& problem_details) {
std::shared_lock lock_supi(m_supi_policy_decisions_mutex);
......@@ -153,16 +153,16 @@ pcf_smpc_error_code pcf_smpc::create_sm_policy_handler(
if (!found) {
problem_details = fmt::format(
"SM policy request from SUPI {}: No policies found", context.getSupi());
return pcf_smpc_error_code::ContextDenied;
return status_code::CONTEXT_DENIED;
}
pcf_smpc_error_code res = chosen_decision->decide(context, decision);
status_code res = chosen_decision->decide(context, decision);
// we can release the locks here
lock_slice.unlock();
lock_dnn.unlock();
lock_supi.unlock();
if (res != pcf_smpc_error_code::Created) {
if (res != status_code::CREATED) {
problem_details = fmt::format(
"SM Policy request from SUPI {}: Invalid policy decision provisioned",
context.getSupi());
......
......@@ -30,31 +30,19 @@
#ifndef FILE_PCF_SM_POLICY_CONTROL_SEEN
#define FILE_PCF_SM_POLICY_CONTROL_SEEN
#include "common_root_types.h"
#include <boost/atomic.hpp>
#include <string>
#include <unordered_map>
#include <shared_mutex>
#include <memory>
#include "3gpp_29.500.h"
#include "pcf.h"
#include "3gpp_29.510.h"
#include "PatchItem.h"
#include "SmPolicyContextData.h"
#include "SmPolicyDecision.h"
#include "ProblemDetails.h"
#include "SmPolicyControl.h"
#include "SmPolicyDecision.h"
#include "SmPolicyDeleteData.h"
#include "SmPolicyUpdateContextData.h"
#include "sm_policy/pcf_sm_policy_control_errors.hpp"
#include "sm_policy/pcf_smpc_status_code.hpp"
#include "sm_policy/individual_sm_association.hpp"
#include "sm_policy/policy_decision.hpp"
#include "sm_policy/slice_policy_decision.hpp"
#include "sm_policy/supi_policy_decision.hpp"
#include "sm_policy/dnn_policy_decision.hpp"
#include "sm_policy/snssai_hasher.hpp"
#include "uint_generator.hpp"
......@@ -78,9 +66,9 @@ class pcf_smpc {
* @param context input: context from the request
* @param decision output: policy decision based on context and local
* provisioning
* @return sm_policy::pcf_smpc_error_code
* @return sm_policy::status_code
*/
sm_policy::pcf_smpc_error_code create_sm_policy_handler(
sm_policy::status_code create_sm_policy_handler(
const oai::pcf::model::SmPolicyContextData& context,
oai::pcf::model::SmPolicyDecision& decision, std::string& association_id,
std::string& problem_details);
......
......@@ -33,14 +33,14 @@ using namespace oai::pcf::model;
using namespace oai::pcf::app::sm_policy;
using namespace oai::pcf::app;
pcf_smpc_error_code dnn_policy_decision::decide(
status_code dnn_policy_decision::decide(
const SmPolicyContextData& context, SmPolicyDecision& decision) const {
if (context.getDnn() != m_dnn) {
return pcf_smpc_error_code::ContextDenied;
return status_code::CONTEXT_DENIED;
}
decision = m_decision;
return pcf_smpc_error_code::Created;
return status_code::CREATED;
}
std::string dnn_policy_decision::get_dnn() const {
......
......@@ -33,7 +33,7 @@
#include "policy_decision.hpp"
#include "SmPolicyContextData.h"
#include "SmPolicyDecision.h"
#include "pcf_sm_policy_control_errors.hpp"
#include "pcf_smpc_status_code.hpp"
#include <string>
......@@ -59,10 +59,10 @@ class dnn_policy_decision : public oai::pcf::app::sm_policy::policy_decision {
*
* @param context input: The context of the individual sm policy association
* @param decision output: The decision based on the context
* @return oai::pcf::app::sm_policy::pcf_smpc_error_code CREATED in case of
* @return oai::pcf::app::sm_policy::status_code CREATED in case of
* success
*/
oai::pcf::app::sm_policy::pcf_smpc_error_code decide(
oai::pcf::app::sm_policy::status_code decide(
const oai::pcf::model::SmPolicyContextData& context,
oai::pcf::model::SmPolicyDecision& decision) const;
......
......@@ -24,19 +24,19 @@
\author Stefan Spettel
\company Openairinterface Software Allianse
\date 2022
\email: rohan.kharade@openairinterface.org
\email: stefan.spettel@eurecom.fr
*/
#ifndef FILE_PCF_SM_POLICY_CONTROL_ERRORS_H_SEEN
#define FILE_PCF_SM_POLICY_CONTROL_ERRORS_H_SEEN
#ifndef FILE_PCF_SMPC_STATUS_CODE_H_SEEN
#define FILE_PCF_SMPC_STATUS_CODE_H_SEEN
namespace oai::pcf::app::sm_policy {
enum class pcf_smpc_error_code {
Created,
UserUnknown,
InvalidParameters,
ContextDenied,
enum class status_code {
CREATED,
USER_UNKOWN,
INVALID_PARAMETERS,
CONTEXT_DENIED,
};
} // namespace oai::pcf::app::sm_policy
#endif
......@@ -33,11 +33,11 @@ using namespace oai::pcf::model;
using namespace oai::pcf::app::sm_policy;
using namespace oai::pcf::app;
pcf_smpc_error_code policy_decision::decide(
status_code policy_decision::decide(
const SmPolicyContextData& context, SmPolicyDecision& decision) const {
// default rule, so just reply with the decision
decision = m_decision;
return pcf_smpc_error_code::Created;
return status_code::CREATED;
}
policy_decision::~policy_decision() {}
\ No newline at end of file
......@@ -32,7 +32,7 @@
#include "SmPolicyContextData.h"
#include "SmPolicyDecision.h"
#include "pcf_sm_policy_control_errors.hpp"
#include "pcf_smpc_status_code.hpp"
namespace oai::pcf::app::sm_policy {
......@@ -53,10 +53,10 @@ class policy_decision {
*
* @param context input: The context of the individual sm policy association
* @param decision output: The decision based on the context
* @return oai::pcf::app::sm_policy::pcf_smpc_error_code CREATED in case of
* @return oai::pcf::app::sm_policy::status_code CREATED in case of
* success
*/
virtual oai::pcf::app::sm_policy::pcf_smpc_error_code decide(
virtual oai::pcf::app::sm_policy::status_code decide(
const oai::pcf::model::SmPolicyContextData& context,
oai::pcf::model::SmPolicyDecision& decision) const;
......
......@@ -33,14 +33,14 @@ using namespace oai::pcf::model;
using namespace oai::pcf::app::sm_policy;
using namespace oai::pcf::app;
pcf_smpc_error_code slice_policy_decision::decide(
status_code slice_policy_decision::decide(
const SmPolicyContextData& context, SmPolicyDecision& decision) const {
if (context.getSliceInfo() != m_snssai) {
return pcf_smpc_error_code::ContextDenied;
return status_code::CONTEXT_DENIED;
}
decision = m_decision;
return pcf_smpc_error_code::Created;
return status_code::CREATED;
}
Snssai slice_policy_decision::get_snssai() const {
......
......@@ -33,7 +33,7 @@
#include "policy_decision.hpp"
#include "SmPolicyContextData.h"
#include "SmPolicyDecision.h"
#include "pcf_sm_policy_control_errors.hpp"
#include "pcf_smpc_status_code.hpp"
#include "Snssai.h"
namespace oai::pcf::app::sm_policy {
......@@ -59,10 +59,10 @@ class slice_policy_decision : public oai::pcf::app::sm_policy::policy_decision {
*
* @param context input: The context of the individual sm policy association
* @param decision output: The decision based on the context
* @return oai::pcf::app::sm_policy::pcf_smpc_error_code CREATED in case of
* @return oai::pcf::app::sm_policy::status_code CREATED in case of
* success
*/
oai::pcf::app::sm_policy::pcf_smpc_error_code decide(
oai::pcf::app::sm_policy::status_code decide(
const oai::pcf::model::SmPolicyContextData& context,
oai::pcf::model::SmPolicyDecision& decision) const;
......
......@@ -33,14 +33,14 @@ using namespace oai::pcf::model;
using namespace oai::pcf::app::sm_policy;
using namespace oai::pcf::app;
pcf_smpc_error_code supi_policy_decision::decide(
status_code supi_policy_decision::decide(
const SmPolicyContextData& context, SmPolicyDecision& decision) const {
if (context.getSupi() != m_supi) {
return pcf_smpc_error_code::ContextDenied;
return status_code::CONTEXT_DENIED;
}
decision = m_decision;
return pcf_smpc_error_code::Created;
return status_code::CREATED;
}
std::string supi_policy_decision::get_supi() const {
......
......@@ -33,7 +33,7 @@
#include "policy_decision.hpp"
#include "SmPolicyContextData.h"
#include "SmPolicyDecision.h"
#include "pcf_sm_policy_control_errors.hpp"
#include "pcf_smpc_status_code.hpp"
#include <string>
......@@ -59,10 +59,10 @@ class supi_policy_decision : public oai::pcf::app::sm_policy::policy_decision {
*
* @param context input: The context of the individual sm policy association
* @param decision output: The decision based on the context
* @return oai::pcf::app::sm_policy::pcf_smpc_error_code CREATED in case of
* @return oai::pcf::app::sm_policy::status_code CREATED in case of
* success
*/
oai::pcf::app::sm_policy::pcf_smpc_error_code decide(
oai::pcf::app::sm_policy::status_code decide(
const oai::pcf::model::SmPolicyContextData& context,
oai::pcf::model::SmPolicyDecision& decision) const;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment