"tags": [
"policy-controller"
],
- "summary": "Returns a policy instance of a type",
+ "summary": "Returns a policy instance",
"operationId": "getPolicyInstanceUsingGET",
"produces": [
"application/json"
"description": "policy_instance_id",
"required": true,
"type": "string"
- },
- {
- "name": "type",
- "in": "query",
- "description": "type",
- "required": true,
- "type": "string"
}
],
"responses": {
return this.policyAgentApi.getPolicyInstancesForType(policyTypeIdString);
}
- @ApiOperation(value = "Returns a policy instance of a type")
+ @ApiOperation(value = "Returns a policy instance")
@GetMapping(POLICIES_NAME + "/{" + POLICY_INSTANCE_ID_NAME + "}")
- public ResponseEntity<Object> getPolicyInstance(
- @RequestParam(name = "type", required = true) String policyTypeIdString,
- @PathVariable(POLICY_INSTANCE_ID_NAME) String policyInstanceId) {
- logger.debug("getPolicyInstance {}:{}", policyTypeIdString, policyInstanceId);
+ public ResponseEntity<Object> getPolicyInstance(@PathVariable(POLICY_INSTANCE_ID_NAME) String policyInstanceId) {
+ logger.debug("getPolicyInstance {}", policyInstanceId);
return this.policyAgentApi.getPolicyInstance(policyInstanceId);
}
* limitations under the License.
* ========================LICENSE_END===================================
*/
+
package org.oransc.portal.nonrtric.controlpanel.model;
+import com.google.gson.annotations.SerializedName;
+
+import lombok.Builder;
+
import org.immutables.gson.Gson;
-import org.immutables.value.Value;
-@Value.Immutable
@Gson.TypeAdapters
-public interface PolicyInfo {
+@Builder
+public class PolicyInfo {
+ @SerializedName(value = "id", alternate = "policy_id")
+ public String policyId;
+
+ @SerializedName(value = "type", alternate = "policytype_id")
+ public String policyTypeId;
+
+ @SerializedName(value = "ric", alternate = "ric_id")
+ public String ricId;
- public String id();
+ @SerializedName(value = "json", alternate = "policy_data")
+ public Object policyData;
- public String type();
+ @SerializedName(value = "service", alternate = "service_id")
+ public String serviceId;
- public String ric();
+ @SerializedName("transient")
+ public boolean isTransient = false;
- public Object json();
+ @SerializedName(value = "statusNotificationUri", alternate = "status_notification_uri")
+ public String statusNotificationUri = "";
- public String service();
+ @SerializedName("lastModified")
+ public String lastModified = "";
- public String lastModified();
+ public boolean validate() {
+ return policyId != null && policyTypeId != null && ricId != null && policyData != null && serviceId != null;
+ }
}
--- /dev/null
+/*-
+ * ========================LICENSE_START=================================
+ * O-RAN-SC
+ * %%
+ * Copyright (C) 2019 Nordix Foundation
+ * Modifications Copyright (C) 2020 Nordix Foundation
+ * %%
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ========================LICENSE_END===================================
+ */
+
+package org.oransc.portal.nonrtric.controlpanel.model;
+
+import com.google.gson.annotations.SerializedName;
+
+import lombok.Builder;
+
+import org.immutables.gson.Gson;
+
+@Gson.TypeAdapters
+@Builder
+public class PolicyInstance {
+
+ @SerializedName(value = "policy_id")
+ public String policyId;
+
+ @SerializedName(value = "policytype_id")
+ public String policyTypeId;
+
+ @SerializedName(value = "ric_id")
+ public String ricId;
+
+ @SerializedName(value = "policy_data")
+ public Object policyData;
+
+ @SerializedName(value = "service_id")
+ public String serviceId;
+
+ @SerializedName(value = "transient")
+ public boolean isTransient = false;
+
+ @SerializedName(value = "status_notification_uri")
+ public String statusNotificationUri = "";
+
+ @SerializedName(value = "lastModified")
+ public String lastModified = "";
+
+ public boolean validate() {
+ return policyId != null && policyTypeId != null && ricId != null && policyData != null && serviceId != null;
+ }
+
+}
import org.immutables.gson.Gson;
import org.immutables.value.Value;
-import org.oransc.portal.nonrtric.controlpanel.model.ImmutablePolicyInfo;
import org.oransc.portal.nonrtric.controlpanel.model.PolicyInfo;
+import org.oransc.portal.nonrtric.controlpanel.model.PolicyInstance;
import org.oransc.portal.nonrtric.controlpanel.model.PolicyType;
import org.oransc.portal.nonrtric.controlpanel.model.PolicyTypes;
import org.oransc.portal.nonrtric.controlpanel.util.AsyncRestClient;
.get("policy_ids") //
.getAsJsonArray(); //
- Type listType = new TypeToken<List<ImmutablePolicyInfo>>() {}.getType();
- List<PolicyInfo> rspParsed = gson.fromJson(policyInstances, listType);
+ List<Object> res = new ArrayList<>();
+ for (JsonElement p : policyInstances) {
+ ResponseEntity<Object> policyInstance = getIndividualPolicyInstance(p.getAsString());
+ res.add(policyInstance.getBody());
+ }
- return new ResponseEntity<>(gson.toJson(rspParsed), rsp.getStatusCode());
+ return new ResponseEntity<>(gson.toJson(res), rsp.getStatusCode());
} catch (Exception e) {
return ErrorResponseHandler.handleException(e);
}
}
- @Override
- public ResponseEntity<Object> getPolicyInstance(String id) {
+ public ResponseEntity<Object> getIndividualPolicyInstance(String id) {
try {
String url = "/v2/policies/" + id;
ResponseEntity<String> rsp = webClient.getForEntity(url).block();
JsonObject obj = JsonParser.parseString(rsp.getBody()).getAsJsonObject();
- String str = obj.toString();
- return new ResponseEntity<>(str, rsp.getStatusCode());
+
+ // lastModified timestamp is fetched from PolicyStatus instead
+ ResponseEntity<String> status = getPolicyStatus(id);
+ String lastModified = JsonParser.parseString(status.getBody()).getAsJsonObject() //
+ .get("last_modified") //
+ .getAsString(); //
+ obj.addProperty("lastModified", lastModified);
+
+ PolicyInfo i = gson.fromJson(obj, PolicyInfo.class);
+ return new ResponseEntity<>(i, rsp.getStatusCode());
} catch (Exception e) {
ResponseEntity<String> rsp = ErrorResponseHandler.handleException(e);
return new ResponseEntity<>(rsp.getBody(), rsp.getStatusCode());
}
}
- private String getTimeStampUTC() {
- return java.time.Instant.now().toString();
+ public ResponseEntity<String> getPolicyStatus(String id) {
+ try {
+ String url = "/v2/policies/" + id + "/status";
+ ResponseEntity<String> rsp = webClient.getForEntity(url).block();
+ return new ResponseEntity<>(rsp.getBody(), rsp.getStatusCode());
+ } catch (Exception e) {
+ ResponseEntity<String> rsp = ErrorResponseHandler.handleException(e);
+ return new ResponseEntity<>(rsp.getBody(), rsp.getStatusCode());
+ }
+ }
+
+ @Override
+ public ResponseEntity<Object> getPolicyInstance(String id) {
+ ResponseEntity<Object> rsp = getIndividualPolicyInstance(id);
+ PolicyInfo i = (PolicyInfo) rsp.getBody();
+ return new ResponseEntity<>(i.policyData, rsp.getStatusCode());
}
@Override
String ric) {
String url = "/v2/policies/";
- PolicyInfo i = ImmutablePolicyInfo.builder() //
- .id(policyInstanceId) //
- .type(policyTypeIdString) //
- .ric(ric) //
- .json(json) //
- .service("controlpanel") //
- .lastModified(getTimeStampUTC()) //
+ JsonElement data = JsonParser.parseString(json.toString()).getAsJsonObject();
+
+ PolicyInstance i = PolicyInstance.builder() //
+ .policyId(policyInstanceId) //
+ .policyTypeId(policyTypeIdString) //
+ .ricId(ric) //
+ .policyData(data) //
+ .serviceId("controlpanel") //
.build(); //
try {
- String jsonStr = gson.toJson(i, PolicyInfo.class);
+ String jsonStr = gson.toJson(i, PolicyInstance.class);
+ logger.debug("PolicyInstance: " + jsonStr);
webClient.putForEntity(url, jsonStr).block();
return new ResponseEntity<>(HttpStatus.OK);
} catch (Exception e) {
@Value.Immutable
@Gson.TypeAdapters
interface RicInfo {
- public String ricName();
+ public String ric_id();
- public Collection<String> nodeNames();
+ public Collection<String> managed_element_ids();
- public Collection<String> policyTypes();
+ public Collection<String> policytype_ids();
}
@Override
List<RicInfo> rspParsed = gson.fromJson(rics, listType);
Collection<String> result = new ArrayList<>(rspParsed.size());
for (RicInfo ric : rspParsed) {
- result.add(ric.ricName());
+ result.add(ric.ric_id());
}
String json = gson.toJson(result);
return new ResponseEntity<>(json, HttpStatus.OK);
import java.util.Vector;
import java.util.stream.Collectors;
-import org.oransc.portal.nonrtric.controlpanel.model.ImmutablePolicyInfo;
import org.oransc.portal.nonrtric.controlpanel.model.PolicyInfo;
import org.oransc.portal.nonrtric.controlpanel.model.PolicyInstances;
import org.oransc.portal.nonrtric.controlpanel.model.PolicyType;
}
void putInstance(String typeId, String instanceId, Object instanceData, String ric) {
- PolicyInfo i = ImmutablePolicyInfo.builder().json(instanceData).lastModified(getTimeStampUTC())
- .id(instanceId).ric(ric).service("service").type(typeId).build();
+ PolicyInfo i = PolicyInfo.builder() //
+ .policyData(instanceData) //
+ .lastModified(getTimeStampUTC()) //
+ .policyId(instanceId) //
+ .ricId(ric) //
+ .serviceId("service") //
+ .policyTypeId(typeId) //
+ .build(); //
instances.put(instanceId, i);
}
if (i == null) {
throw new RestClientException("Type not found: " + id);
}
- return i.json();
+ return i.policyData;
}
public Collection<PolicyType> getTypes() {
ArrayList<PolicyInfo> result = new ArrayList<>();
for (PolicyInfo i : instances.values()) {
if (typeId.isPresent()) {
- if (i.type().equals(typeId.get())) {
+ if (i.policyTypeId.equals(typeId.get())) {
result.add(i);
}
import static org.mockito.Mockito.when;
import com.google.gson.GsonBuilder;
-import com.google.gson.reflect.TypeToken;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonParser;
-import java.lang.reflect.Type;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
-import java.util.List;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import org.oransc.portal.nonrtric.controlpanel.model.ImmutablePolicyInfo;
import org.oransc.portal.nonrtric.controlpanel.model.PolicyInfo;
+import org.oransc.portal.nonrtric.controlpanel.model.PolicyInstance;
import org.oransc.portal.nonrtric.controlpanel.model.PolicyInstances;
import org.oransc.portal.nonrtric.controlpanel.util.AsyncRestClient;
import org.springframework.http.HttpStatus;
private static final String POLICY_TYPE_1_INVALID = "\"title\":\"type1\"}";
private static final String POLICY_TYPE_2_VALID = "{\"title\":\"type2\"}";
private static final String POLICY_1_ID = "policy1";
- private static final String POLICY_1_VALID = "{\"policyId\":\"policy1\"}";
- private static final String POLICY_1_INVALID = "\"policyId\":\"policy1\"}";
+ private static final String POLICY_DATA =
+ "{\"qosObjectives\":{\"priorityLevel\":22.0},\"scope\":{\"qosId\":\"22\",\"ueId\":\"22\"}}";
+ private static final String POLICY_1_VALID =
+ "{\"policy_id\":\"policy1\",\"policytype_id\":\"type1\",\"ric_id\":\"ric1\",\"policy_data\":" + POLICY_DATA
+ + ",\"service_id\":\"controlpanel\"}";
+ private static final String POLICY_1_INVALID = "\"policy_id\":\"policy1\"}";
private static final String RIC_1_ID = "ric1";
- private static final String RIC_1_INFO_VALID = "{\"ricName\":\"ric1\",\"policyTypes\":[\"type1\"]}";
- private static final String RIC_1_INFO_INVALID = "{\"ricName\":\"ric1\",\"policyTypes\":\"type1\"]}";
+ private static final String RIC_1_INFO_VALID = "{\"ric_id\":\"ric1\",\"policytype_ids\":[\"type1\"]}";
+ private static final String RIC_1_INFO_INVALID = "{\"ric_id\":\"ric1\",\"policytype_ids\":\"type1\"]}";
private static final String CLIENT_ERROR_MESSAGE = "XXXXXXX";
-
+ private static final String SERVICE_ID = "controlpanel";
+ private static final String TIMESTAMP = "2021-01-12T09:59:33.392470Z";
+ private static final String STATUS =
+ "{\"last_modified\": \"" + TIMESTAMP + "\",\"status\":{\"enforceStatus\": \"\",\"enforceReason\": \"\"}}";
private static com.google.gson.Gson gson = new GsonBuilder() //
.serializeNulls() //
.create(); //
@Test
void testGetPolicyInstancesForTypeSuccessValidJson() {
- String policyInstances = "{\"policy_ids\":[{\"id\":\"policy1\"}]}";
- String policyInstancesJson = parsePolicyInstancesJson("[{\"id\":\"policy1\"}]");
+ String policyInstances = "{\"policy_ids\":[\"policy1\"]}";
+ String policyInstancesJson = parsePolicyInstancesJson("[\"policy1\"]");
whenGetReturnOK(urlPolicyInstances(POLICY_TYPE_1_ID), HttpStatus.OK, policyInstances);
+ whenGetReturnOK(urlPolicyInstance(POLICY_1_ID), HttpStatus.OK, POLICY_1_VALID);
+ whenGetReturnOK(urlPolicyStatus(POLICY_1_ID), HttpStatus.OK, STATUS);
+
ResponseEntity<String> returnedResp = apiUnderTest.getPolicyInstancesForType(POLICY_TYPE_1_ID);
assertEquals(returnedResp.getBody(), policyInstancesJson);
assertEquals(HttpStatus.OK, returnedResp.getStatusCode());
return "/v2/policies/" + id;
}
+ private String urlPolicyStatus(String id) {
+ return "/v2/policies/" + id + "/status";
+ }
+
@Test
void testGetPolicyInstance() {
whenGetReturnOK(urlPolicyInstance(POLICY_1_ID), HttpStatus.OK, POLICY_1_VALID);
+ whenGetReturnOK(urlPolicyStatus(POLICY_1_ID), HttpStatus.OK, STATUS);
ResponseEntity<Object> returnedResp = apiUnderTest.getPolicyInstance(POLICY_1_ID);
assertEquals(HttpStatus.OK, returnedResp.getStatusCode());
- assertEquals(POLICY_1_VALID, returnedResp.getBody());
-
+ assertEquals(POLICY_DATA, gson.toJson(returnedResp.getBody()));
}
private String urlPutPolicy() {
@Test
void testPutPolicyFailure() {
String url = urlPutPolicy();
-
- PolicyInfo i = ImmutablePolicyInfo.builder() //
- .id(POLICY_1_ID) //
- .type(POLICY_TYPE_1_ID) //
- .ric(RIC_1_ID) //
- .json(POLICY_1_VALID) //
- .service("") //
- .lastModified("") //
+ JsonElement data = JsonParser.parseString(POLICY_DATA).getAsJsonObject();
+ PolicyInstance i = PolicyInstance.builder() //
+ .policyId(POLICY_1_ID) //
+ .policyTypeId(POLICY_TYPE_1_ID) //
+ .ricId(RIC_1_ID) //
+ .policyData(data) //
+ .serviceId(SERVICE_ID) //
.build(); //
- String jsonStr = gson.toJson(i, PolicyInfo.class);
+ String jsonStr = gson.toJson(i);
whenPutReturnFailure(url, jsonStr, HttpStatus.NOT_FOUND, CLIENT_ERROR_MESSAGE);
ResponseEntity<String> returnedResp =
- apiUnderTest.putPolicy(POLICY_TYPE_1_ID, POLICY_1_ID, POLICY_1_VALID, RIC_1_ID);
+ apiUnderTest.putPolicy(POLICY_TYPE_1_ID, POLICY_1_ID, POLICY_DATA, RIC_1_ID);
assertTrue(returnedResp.getBody().contains(CLIENT_ERROR_MESSAGE));
assertEquals(HttpStatus.NOT_FOUND, returnedResp.getStatusCode());
@Test
void testPutPolicySuccess() {
String url = urlPutPolicy();
- PolicyInfo i = ImmutablePolicyInfo.builder() //
- .id(POLICY_1_ID) //
- .type(POLICY_TYPE_1_ID) //
- .ric(RIC_1_ID) //
- .json(POLICY_1_VALID) //
- .service("") //
- .lastModified("") //
+ JsonElement data = JsonParser.parseString(POLICY_DATA).getAsJsonObject();
+ PolicyInstance i = PolicyInstance.builder() //
+ .policyId(POLICY_1_ID) //
+ .policyTypeId(POLICY_TYPE_1_ID) //
+ .ricId(RIC_1_ID) //
+ .policyData(data) //
+ .serviceId(SERVICE_ID) //
.build(); //
-
- String jsonStr = gson.toJson(i, PolicyInfo.class);
-
+ String jsonStr = gson.toJson(i);
whenPutReturnOK(url, jsonStr, HttpStatus.OK, POLICY_1_VALID);
ResponseEntity<String> returnedResp =
- apiUnderTest.putPolicy(POLICY_TYPE_1_ID, POLICY_1_ID, POLICY_1_VALID, RIC_1_ID);
-
+ apiUnderTest.putPolicy(POLICY_TYPE_1_ID, POLICY_1_ID, POLICY_DATA, RIC_1_ID);
assertNull(returnedResp.getBody());
assertEquals(HttpStatus.OK, returnedResp.getStatusCode());
}
}
private String parsePolicyInstancesJson(String inputString) {
- Type listType = new TypeToken<List<ImmutablePolicyInfo>>() {}.getType();
- List<PolicyInfo> rspParsed = gson.fromJson(inputString, listType);
- PolicyInstances policyInstances = new PolicyInstances();
- for (PolicyInfo policy : rspParsed) {
- policyInstances.add(policy);
+ JsonArray arr = JsonParser.parseString(inputString).getAsJsonArray();
+ PolicyInstances res = new PolicyInstances();
+ JsonElement data = JsonParser.parseString(POLICY_DATA).getAsJsonObject();
+ for (JsonElement id : arr) {
+ PolicyInfo i = PolicyInfo.builder() //
+ .policyId(id.getAsString()) //
+ .policyTypeId(POLICY_TYPE_1_ID) //
+ .ricId(RIC_1_ID) //
+ .policyData(data) //
+ .serviceId(SERVICE_ID) //
+ .lastModified(TIMESTAMP) //
+ .build(); //
+ res.add(i);
}
- return gson.toJson(policyInstances);
+ return gson.toJson(res);
}
}
</div>
</section>
<section #sidenav class="menu-body">
- <rd-sidenav-list></rd-sidenav-list>
+ <rd-sidenav-list (sidenavClose)="drawer.toggle()">></rd-sidenav-list>
</section>
<section class="menu-footer">
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { ToastrModule } from 'ngx-toastr';
import { ConfirmDialogComponent } from './ui/confirm-dialog/confirm-dialog.component';
-import { ControlpanelService } from './services/controlpanel/controlpanel.service';
import { ErrorDialogComponent } from './ui/error-dialog/error-dialog.component';
import { ErrorDialogService } from './services/ui/error-dialog.service';
import { FlexLayoutModule } from '@angular/flex-layout';
@NgModule({
declarations: [
ConfirmDialogComponent,
+ ControlpanelComponent,
EICardComponent,
EICoordinatorComponent,
ErrorDialogComponent,
FooterComponent,
MainComponent,
+ NodeModulesComponent,
NoTypePolicyInstanceDialogComponent,
PolicyCardComponent,
PolicyControlComponent,
PolicyInstanceComponent,
PolicyInstanceDialogComponent,
- ControlpanelComponent,
SidenavListComponent,
- NodeModulesComponent
],
imports: [
BrowserModule,
BrowserAnimationsModule,
ChartsModule,
+ ControlpanelRoutingModule,
+ CookieModule.forRoot(),
FlexLayoutModule,
FormsModule,
HttpClientModule,
MatToolbarModule,
MatTooltipModule,
MDBBootstrapModule.forRoot(),
- ControlpanelRoutingModule,
ReactiveFormsModule,
ToastrModule.forRoot(),
- CookieModule.forRoot()
],
exports: [
ErrorDialogComponent,
PolicyInstanceDialogComponent
],
providers: [
- ControlpanelService,
ErrorDialogService,
UiService,
{
* ========================LICENSE_END===================================
*/
import { Component, OnInit } from '@angular/core';
-import { ControlpanelSuccessTransport } from '../interfaces/controlpanel.types';
-import { ControlpanelService } from '../services/controlpanel/controlpanel.service';
import { UiService } from '../services/ui/ui.service';
@Component({
controlpanelVersion: string;
// Inject the service
- constructor(private controlpanelService: ControlpanelService,
- private ui: UiService) { }
+ constructor(private ui: UiService) { }
ngOnInit() {
this.controlpanelVersion = '0.0';
- // this.controlpanelService.getVersion().subscribe((res: ControlpanelSuccessTransport) => this.controlpanelVersion = res.data);
this.ui.darkModeState.subscribe((isDark) => {
this.darkMode = isDark;
});
import * as policyinstanceedit from './mock/policy-instance-edit.json';
import * as eijobs from './mock/ei-jobs.json';
import * as eiproducers from './mock/ei-producers.json';
+import * as rics from './mock/rics.json';
const urls = [
{
{
url: 'api/enrichment/eiproducers',
json: eiproducers
+ },
+ {
+ url: 'api/policy/rics?policyType=1',
+ json: rics
}
];
constructor(private injector: Injector) {}
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
+ if (request.method === "PUT" && request.url.includes("policies")) {
+ console.log('Answered PUT policy ' + request.url);
+ return of(new HttpResponse({ status: 200 }));
+ }
for (const element of urls) {
if (request.url === element.url) {
console.log('Loaded from stub json : ' + request.url);
status: number;
data: string;
}
-
-export interface EcompRoleFunction {
- name: string;
- code: string;
- type: string;
- action: string;
-}
-
-export interface EcompRole {
- id: number;
- name: string;
- [position: number]: EcompRoleFunction;
-}
-
-export interface EcompUser {
- orgId?: number;
- managerId?: string;
- firstName?: string;
- middleInitial?: string;
- lastName?: string;
- phone?: string;
- email?: string;
- hrid?: string;
- orgUserId?: string;
- orgCode?: string;
- orgManagerUserId?: string;
- jobTitle?: string;
- loginId: string;
- active: boolean;
- [position: number]: EcompRole;
-}
{
"ei_job_identity": "job1",
"ei_type_identity": "type1",
+ "owner": "owner1",
"ei_job_data": {
"jobparam2": "value2_job1",
"jobparam3": "value3_job1",
--- /dev/null
+[
+ "ric1",
+ "ric2"
+]
\ No newline at end of file
+++ /dev/null
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * Modifications Copyright (C) 2020 Nordix Foundation
- * %%
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================LICENSE_END===================================
- */
-import { TestBed } from '@angular/core/testing';
-
-import { ControlpanelService } from './controlpanel.service';
-
-describe('ControlpanelService', () => {
- beforeEach(() => TestBed.configureTestingModule({}));
-
- it('should be created', () => {
- const service: ControlpanelService = TestBed.get(ControlpanelService);
- expect(service).toBeTruthy();
- });
-});
+++ /dev/null
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * Modifications Copyright (C) 2020 Nordix Foundation
- * %%
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================LICENSE_END===================================
- */
-import { Injectable } from '@angular/core';
-import { HttpClient } from '@angular/common/http';
-import { Observable } from 'rxjs';
-import { ControlpanelSuccessTransport, EcompUser } from '../../interfaces/controlpanel.types';
-
-@Injectable({
- providedIn: 'root'
-})
-
-/**
- * Services to query the Control Panel's admin endpoints.
- */
-export class ControlpanelService {
-
- private basePath = 'api/admin/';
-
- constructor(private httpClient: HttpClient) {
- // injects to variable httpClient
- }
-
- /**
- * Checks app health
- * @returns Observable that should yield a ControlpanelSuccessTransport
- */
- getHealth(): Observable<ControlpanelSuccessTransport> {
- return this.httpClient.get<ControlpanelSuccessTransport>(this.basePath + 'health');
- }
-
- /**
- * Gets Control Panel version details
- * @returns Observable that should yield a ControlpanelSuccessTransport object
- */
- getVersion(): Observable<ControlpanelSuccessTransport> {
- return this.httpClient.get<ControlpanelSuccessTransport>(this.basePath + 'version');
- }
-
- /**
- * Gets Control Panel users
- * @returns Observable that should yield a EcompUser array
- */
- getUsers(): Observable<EcompUser[]> {
- return this.httpClient.get<EcompUser[]>(this.basePath + 'user');
- }
-
-}