Add basic auth
This commit is contained in:
76
requests/catalog.py
Normal file
76
requests/catalog.py
Normal file
@@ -0,0 +1,76 @@
|
||||
from datetime import datetime
|
||||
import classifier
|
||||
import graphql
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
|
||||
class CatalogRequestInfo:
|
||||
is_full = False
|
||||
user_id = 0
|
||||
|
||||
|
||||
class Catalog:
|
||||
CD_SERVER_COLLECTIONS_NAME = "CD-Server Collections Set"
|
||||
CD_SERVER_COLLECTIONS_VERSION = "1.0"
|
||||
CD_SERVER_COLLECTION_TYPE = "ISSUE"
|
||||
COLLECTIONS_TAG_NAME = "COLLECTIONS"
|
||||
NAME_ATTRIBUTE_NAME = "Name"
|
||||
VERSION_ATTRIBUTE_NAME = "Version"
|
||||
CREATED_ATTRIBUTE_NAME = "Created"
|
||||
FULL_ATTRIBUTE_NAME = "Full"
|
||||
COLLECTION_TAG_NAME = "COLLECTION"
|
||||
TYPE_ATTRIBUTE_NAME = "Type"
|
||||
CHARTS_TAG_NAME = "CHARTS"
|
||||
CHART_TAG_NAME = "CHART"
|
||||
METADATA_VERSION_ATTRIBUTE_NAME = "MetadataVersion"
|
||||
ID_ATTRIBUTE_NAME = "ID"
|
||||
DELETED_ATTRIBUTE_NAME = "Deleted"
|
||||
CLOSED_ATTRIBUTE_NAME = "Closed"
|
||||
FOLDERS_TAG_NAME = "FOLDERS"
|
||||
FOLDER_TAG_NAME = "FOLDER"
|
||||
REF_TAG_NAME = "REF"
|
||||
CHART_ATTRIBUTE_NAME = "Chart"
|
||||
|
||||
COLLECTION_NAME = 'CD-Server Collection'
|
||||
|
||||
request_info: CatalogRequestInfo
|
||||
|
||||
def write_catalog(self):
|
||||
date = datetime.now()
|
||||
|
||||
collections = ET.Element(self.COLLECTIONS_TAG_NAME, {
|
||||
self.NAME_ATTRIBUTE_NAME: self.COLLECTION_NAME,
|
||||
self.VERSION_ATTRIBUTE_NAME: self.CD_SERVER_COLLECTIONS_VERSION,
|
||||
self.CREATED_ATTRIBUTE_NAME: self.date_to_string(date),
|
||||
})
|
||||
if self.request_info.is_full:
|
||||
collections.set(self.FULL_ATTRIBUTE_NAME, 'true')
|
||||
if classifier.CLASSIFIER_VERSION:
|
||||
collections.set(self.METADATA_VERSION_ATTRIBUTE_NAME, classifier.CLASSIFIER_VERSION)
|
||||
|
||||
self.write_collections(collections, date)
|
||||
|
||||
return ET.tostring(collections, encoding='unicode', xml_declaration=True)
|
||||
|
||||
def date_to_string(self, date):
|
||||
return ''
|
||||
|
||||
def write_collections(self, collections, date):
|
||||
collection = ET.SubElement(collections, self.COLLECTION_TAG_NAME, {
|
||||
self.NAME_ATTRIBUTE_NAME: self.COLLECTION_NAME,
|
||||
self.CREATED_ATTRIBUTE_NAME: self.date_to_string(date),
|
||||
self.TYPE_ATTRIBUTE_NAME: self.CD_SERVER_COLLECTION_TYPE,
|
||||
})
|
||||
self.write_charts(collection)
|
||||
|
||||
def write_charts(self, collection):
|
||||
charts = ET.SubElement(collection, self.CHARTS_TAG_NAME)
|
||||
for c in []:
|
||||
self.write_chart(charts, c)
|
||||
|
||||
def write_chart(self, charts, chart):
|
||||
ch = ET.SubElement(charts, self.CHART_TAG_NAME)
|
||||
|
||||
|
||||
|
||||
|
||||
7
requests/classifier.py
Normal file
7
requests/classifier.py
Normal file
@@ -0,0 +1,7 @@
|
||||
import graphql
|
||||
|
||||
CLASSIFIER_VERSION = '8.23'
|
||||
|
||||
class Classifier:
|
||||
def get_classifier(self):
|
||||
|
||||
@@ -2,6 +2,7 @@ from datetime import datetime, timedelta
|
||||
from enumerations import ReplicationPackageStatusEnum
|
||||
from models import CorrectingReplicationOutPackage, ReplicantInfo
|
||||
from typing import List
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
|
||||
class CorrectingReplicationService:
|
||||
@@ -58,4 +59,13 @@ class CorrectingReplicationService:
|
||||
pkg.replication_timeout_date = date + delta
|
||||
return pkg
|
||||
|
||||
def get_package_xml(self) -> str:
|
||||
def get_package_xml(self, pkg: CorrectingReplicationOutPackage, request_uuid: str) -> str:
|
||||
request_xml: ET.Element = xml_service.get_common_request_xml(request_uuid)
|
||||
element = ET.SubElement(request_xml, self.PACKAGE_TAG_NAME, {
|
||||
self.PACKAGE_ID_ATTRIBUTE_NAME: pkg.package_id,
|
||||
self.SERVER_VERSION_ATTRIBUTE_NAME: '1.0.0',
|
||||
self.SERVER_ID_ATTRIBUTE_NAME: 'ipd-server',
|
||||
self.CLASSIFIER_VERSION_ATTRIBUTE_NAME: classifier.,
|
||||
})
|
||||
xml_service.set_request_uuid(request_xml, request_uuid)
|
||||
return ET.tostring(request_xml, encoding='unicode', xml_declaration=True)
|
||||
|
||||
30
requests/graphql.py
Normal file
30
requests/graphql.py
Normal file
@@ -0,0 +1,30 @@
|
||||
from gql import gql, Client
|
||||
from gql.transport.aiohttp import AIOHTTPTransport
|
||||
|
||||
transport = AIOHTTPTransport(url="https://gql.ivazh.ru/graphql/")
|
||||
|
||||
|
||||
def get_classifier():
|
||||
client = Client(transport=transport, fetch_schema_from_transport=True)
|
||||
query = gql(
|
||||
"""
|
||||
query getClassifier {
|
||||
getClassifier(name: "ood")
|
||||
}
|
||||
"""
|
||||
)
|
||||
result = client.execute(query)
|
||||
return result['getClassifier']
|
||||
|
||||
|
||||
def get_catalog():
|
||||
client = Client(transport=transport, fetch_schema_from_transport=True)
|
||||
query = gql(
|
||||
"""
|
||||
query getCatalog {
|
||||
getCatalog(name: "ood")
|
||||
}
|
||||
"""
|
||||
)
|
||||
result = client.execute(query)
|
||||
return result['getClassifier']
|
||||
@@ -1,5 +1,6 @@
|
||||
from enum import Enum
|
||||
|
||||
|
||||
class Messages(Enum):
|
||||
REQUEST_EXECUTED_PARTITIALY = 1
|
||||
REQUEST_FAILED = 2
|
||||
|
||||
Reference in New Issue
Block a user