Expose Prometheus metrics for monitoring
[cps.git] / csit / tests / cps-admin / cps-admin.robot
1 # ============LICENSE_START=======================================================
2 # Copyright (c) 2021 Pantheon.tech.
3 # ================================================================================
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
7 #
8 #       http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
15 #
16 # SPDX-License-Identifier: Apache-2.0
17 # ============LICENSE_END=========================================================
18
19 *** Settings ***
20 Documentation         CPS Core - Admin REST API
21
22 Library               Collections
23 Library               OperatingSystem
24 Library               RequestsLibrary
25
26 Suite Setup           Create Session      CPS_URL    http://${CPS_HOST}:${CPS_PORT}
27
28 *** Variables ***
29
30 ${auth}                 Basic Y3BzdXNlcjpjcHNyMGNrcyE=
31 ${basePath}             /cps/api
32 ${dataspaceName}        CSIT-Dataspace
33 ${schemaSetName}        CSIT-SchemaSet
34 ${anchorName}           CSIT-Anchor
35 ${ranDataspaceName}     NFP-Operational
36 ${ranSchemaSetName}     cps-ran-schema-model
37
38 *** Test Cases ***
39 Create Dataspace
40     ${uri}=             Set Variable        ${basePath}/v1/dataspaces
41     ${params}=          Create Dictionary   dataspace-name=${dataspaceName}
42     ${headers}=         Create Dictionary   Authorization=${auth}
43     ${response}=        POST On Session     CPS_URL   ${uri}   params=${params}   headers=${headers}
44     Should Be Equal As Strings              ${response.status_code}   201
45
46 Create Schema Set from YANG file
47     ${uri}=             Set Variable        ${basePath}/v1/dataspaces/${dataspaceName}/schema-sets
48     ${params}=          Create Dictionary   schema-set-name=${schemaSetName}
49     ${fileData}=        Get Binary File     ${DATADIR}${/}test-tree.yang
50     ${fileTuple}=       Create List         test.yang   ${fileData}   application/zip
51     &{files}=           Create Dictionary   file=${fileTuple}
52     ${headers}=         Create Dictionary   Authorization=${auth}
53     ${response}=        POST On Session     CPS_URL   ${uri}   files=${files}   params=${params}   headers=${headers}
54     Should Be Equal As Strings              ${response.status_code}   201
55
56 Create Schema Set from ZIP file
57     ${uri}=             Set Variable        ${basePath}/v1/dataspaces/${dataspaceName}/schema-sets
58     ${params}=          Create Dictionary   schema-set-name=ZipTestSchemaSet
59     ${fileData}=        Get Binary File     ${DATADIR}${/}yang-resources.zip
60     ${fileTuple}=       Create List         test.zip   ${fileData}   application/zip
61     &{files}=           Create Dictionary   file=${fileTuple}
62     ${headers}=         Create Dictionary   Authorization=${auth}
63     ${response}=        POST On Session     CPS_URL   ${uri}   files=${files}   params=${params}   headers=${headers}
64     Should Be Equal As Strings              ${response.status_code}   201
65
66 Get Schema Set info
67     ${uri}=             Set Variable        ${basePath}/v1/dataspaces/${dataspaceName}/schema-sets/${schemaSetName}
68     ${headers}=         Create Dictionary   Authorization=${auth}
69     ${response}=        Get On Session      CPS_URL   ${uri}   headers=${headers}   expected_status=200
70     ${responseJson}=    Set Variable        ${response.json()}
71     Should Be Equal As Strings              ${responseJson['name']}   ${schemaSetName}
72     Should Be Equal As Strings              ${responseJson['dataspaceName']}   ${dataspaceName}
73
74 Create Anchor
75     ${uri}=             Set Variable        ${basePath}/v1/dataspaces/${dataspaceName}/anchors
76     ${params}=          Create Dictionary   schema-set-name=${schemaSetName}   anchor-name=${anchorName}
77     ${headers}=         Create Dictionary   Authorization=${auth}
78     ${response}=        POST On Session     CPS_URL   ${uri}   params=${params}   headers=${headers}
79     Should Be Equal As Strings              ${response.status_code}   201
80
81 Get CPS RAN Schema Set info
82     ${uri}=              Set Variable       ${basePath}/v1/dataspaces/${ranDataspaceName}/schema-sets/${ranSchemaSetName}
83     ${headers}=          Create Dictionary  Authorization=${auth}
84     ${response}=         Get On Session     CPS_URL   ${uri}   headers=${headers}   expected_status=200
85     ${responseJson}=     Set Variable       ${response.json()}
86     Should Be Equal As Strings              ${responseJson['name']}   ${ranSchemaSetName}
87     Should Be Equal As Strings              ${responseJson['dataspaceName']}   ${ranDataspaceName}