Ejemplo n.º 1
0
    def __init__(self,
                 url_onevizion='',
                 login_onevizion='',
                 pass_onevizion='',
                 trackor_type='',
                 report_name=''):
        self.url_onevizion = self.url_setting(url_onevizion)
        self.trackor_type = trackor_type
        self.report_name = report_name

        self.headers = {
            'Content-type': 'application/json',
            'Content-Encoding': 'utf-8'
        }
        self.auth_onevizion = HTTPBasicAuth(login_onevizion, pass_onevizion)
        self.case_list_request = onevizion.Trackor(
            trackorType=self.trackor_type,
            URL=self.url_onevizion,
            userName=login_onevizion,
            password=pass_onevizion)
        self.user_list_request = onevizion.Trackor(trackorType='User',
                                                   URL=self.url_onevizion,
                                                   userName=login_onevizion,
                                                   password=pass_onevizion)

        self.check_case_status()
Ejemplo n.º 2
0
    def __init__(self,
                 process_id="",
                 url_onevizion="",
                 login_onevizion="",
                 pass_onevizion="",
                 url_ike="",
                 login_ike="",
                 pass_ike=""):
        self.url_onevizion = self.url_setting(url_onevizion)
        self.login_onevizion = login_onevizion
        self.pass_onevizion = pass_onevizion
        self.auth_onevizion = HTTPBasicAuth(login_onevizion, pass_onevizion)

        self.url_ike = self.url_setting(url_ike)
        self.login_ike = login_ike
        self.pass_ike = pass_ike

        self.fm_list_request = onevizion.Trackor(
            trackorType='ike_field_mapping',
            URL=self.url_onevizion,
            userName=login_onevizion,
            password=pass_onevizion)

        self.headers = {
            'Content-type': 'application/json',
            'Content-Encoding': 'utf-8'
        }
        self.process_id = process_id

        self.start_integration()
Ejemplo n.º 3
0
def VersionInfo(GivenVersion):
    ThisVersion = {}
    if 'RC' in GivenVersion:
        QueryVersion = GivenVersion.split('-RC')[0]
        VerType = 'UAT'
    else:
        QueryVersion = GivenVersion
        VerType = 'Production'
    # Find the Release Date for Prod Version
    VersionRequest = onevizion.Trackor(
        trackorType='Version',
        URL='trackor.onevizion.com',
        userName=PasswordData["trackor.onevizion.com"]["UserName"],
        password=PasswordData["trackor.onevizion.com"]["Password"])
    VersionRequest.read(filters={
        "TRACKOR_KEY": QueryVersion,
        "Product.TRACKOR_KEY": Product
    },
                        fields=['TRACKOR_KEY', 'VER_REL_DATE'])
    if len(VersionRequest.errors) == 0:
        ThisVersion['Version'] = cleanVersionNumber(
            VersionRequest.jsonData[0]['TRACKOR_KEY'])
        ThisVersion['ReleaseDate'] = datetime.datetime.strptime(
            VersionRequest.jsonData[0]['VER_REL_DATE'], '%Y-%m-%d')
        ThisVersion['Type'] = VerType

    return ThisVersion
Ejemplo n.º 4
0
 def __init__(self, url_onevizion, login_onevizion, pass_onevizion,
              issue_trackor_type, issue_statuses, issue_fields):
     self.issue_statuses = IssueStatuses(issue_statuses)
     self.issue_fields = IssueFields(issue_fields)
     self.issue_service = onevizion.Trackor(trackorType=issue_trackor_type,
                                            URL=url_onevizion,
                                            userName=login_onevizion,
                                            password=pass_onevizion)
 def __init__(self, ov_auth, trackor_type, field_mappings, trackor_filter):
     self._ov_auth = ov_auth
     self._trackor = onevizion.Trackor(trackor_type,
                                       ov_auth.url,
                                       ov_auth.access_key,
                                       ov_auth.secret_key,
                                       isTokenAuth=ov_auth.is_token_auth)
     self._field_mappings = field_mappings
     self._trackor_filter = trackor_filter
Ejemplo n.º 6
0
def GetVersionsList(VersionsStr, VersionDate):
    AllVers = []
    VersionRequest = onevizion.Trackor(trackorType='Version',
                                       paramToken='trackor.onevizion.com')
    VersionRequest.read(
        search=
        "equal(TRACKOR_KEY, 8.*) and equal(Product.TRACKOR_KEY, OneVizion) and is_not_null(VER_REL_DATE)",
        fields=['TRACKOR_KEY', 'VER_REL_DATE'],
        sort={'TRACKOR_KEY': 'asc'})

    for Version in VersionRequest.jsonData:
        AllVers.append(VersionSplit(cleanVersionNumber(
            Version['TRACKOR_KEY'])))
        VersionDate[Version['TRACKOR_KEY']] = Version['VER_REL_DATE']

    VersionRequest.read(
        search=
        "equal(TRACKOR_KEY, 19.*) and equal(Product.TRACKOR_KEY, OneVizion) and is_not_null(VER_REL_DATE)",
        fields=['TRACKOR_KEY', 'VER_REL_DATE'],
        sort={'TRACKOR_KEY': 'asc'})

    for Version in VersionRequest.jsonData:
        AllVers.append(VersionSplit(cleanVersionNumber(
            Version['TRACKOR_KEY'])))
        VersionDate[Version['TRACKOR_KEY']] = Version['VER_REL_DATE']

    for Version in VersionRequest.jsonData:
        AllVers.append(VersionSplit(cleanVersionNumber(
            Version['TRACKOR_KEY'])))
        VersionDate[Version['TRACKOR_KEY']] = Version['VER_REL_DATE']

    VersionRequest.read(
        search=
        "equal(TRACKOR_KEY, 2*) and equal(Product.TRACKOR_KEY, OneVizion) and is_not_null(VER_REL_DATE)",
        fields=['TRACKOR_KEY', 'VER_REL_DATE'],
        sort={'TRACKOR_KEY': 'asc'})

    for Version in VersionRequest.jsonData:
        AllVers.append(VersionSplit(cleanVersionNumber(
            Version['TRACKOR_KEY'])))
        VersionDate[Version['TRACKOR_KEY']] = Version['VER_REL_DATE']

    AllVers.sort(key=operator.itemgetter(0, 1, 2))
    Message(json.dumps(AllVers, indent=2), 2)

    for Version in AllVers:
        if "%d.%d.%d" % (Version[0], Version[1],
                         Version[2]) not in VersionsStr:
            VersionsStr.append("%d.%d.%d" %
                               (Version[0], Version[1], Version[2]))

    Message(json.dumps(VersionsStr, indent=2), 2)
import onevizion

# Having a parameters file is just an easy way to not have you passwords stored in a script
PasswordData = onevizion.GetParameters('Parameters.json')
# This enables some automatic messaging within the onveizion library.  Can be 0, 1, or 2.  the higher the number, the more messages you get.
onevizion.Config["Verbosity"] = 1

#Let's create some Trackor object for later use in the script
#Trackor object to get a list of Needed "Casees"
CaseRequest = onevizion.Trackor(
    trackorType='Case',
    URL='trackor.onevizion.com',
    userName=PasswordData["trackor.onevizion.com"]["UserName"],
    password=PasswordData["trackor.onevizion.com"]["Password"])
#Trackor object to pull individual "Cases" from Production
CasePuller = onevizion.Trackor(
    trackorType='Case',
    URL='trackor.onevizion.com',
    userName=PasswordData["trackor.onevizion.com"]["UserName"],
    password=PasswordData["trackor.onevizion.com"]["Password"])
#Trackor object to Push "Cases" into UAT
CaseMaker = onevizion.Trackor(
    trackorType='Case',
    URL='uat-trackor.onevizion.com',
    userName=PasswordData["uat-trackor.onevizion.com"]["UserName"],
    password=PasswordData["uat-trackor.onevizion.com"]["Password"])

# Since some of the fields are EFiles, let's first get a list, then do the records one at a time to
# reduce the memory required for the total transfer and reduce the chances of failure.
CaseRequest.read(
    search=
Ejemplo n.º 8
0
TempRoot = "Temp"
if not os.path.exists(TempRoot):
    os.makedirs(TempRoot)

for row in ParamFile:
    #
    TrackorID = row['TRACKOR_ID']
    FieldName = row['FIELD_NAME']
    TrackorKey = row['TRACKOR_KEY']
    FileName = row['FILE_NAME']
    Path = row['PATH']
    FilePath = Path + '/' + FileName

    EFileReq = onevizion.Trackor(URL=URL,
                                 userName=OVUserName,
                                 password=OVPassword)
    tmpFileName = EFileReq.GetFile(trackorId=TrackorID, fieldName=FieldName)
    i = i + 1

    LogRow = "Row %d - %s - %s - %s" % (i, TrackorID, TrackorKey, FieldName)
    print(LogRow)
    LogFile.write(LogRow + "\n")
    if not EFileReq.request.ok or len(EFileReq.errors) > 0:
        #handle errors
        Errors[FilePath + '-DownloadErrors'] = str(EFileReq.errors)
        ErrorCSV.writerow(row)
        LogError = 'Error: Row: ' + str(i) + " => " + str(EFileReq.errors)
        print(LogError)
        LogFile.write(LogError + "\n")
    else:
    cnopts.compression = False
    cnopts.ciphers = None
    cnopts.hostkeys = None

    sftp = pysftp.Connection(SftpHost,
                             username=SftpUN,
                             password=SftpPWD,
                             cnopts=cnopts)
except:
    Message('could not connect')
    Message(sys.exc_info())
    quit(1)

# make sure api user has RE on the tab with checkbox and the field list of blobs and RE for the trackor type(sometimes Checklist) and R for WEB_SERVICES
Req = onevizion.Trackor(trackorType='SPMSINTERFACE',
                        URL=OvUrl,
                        userName=OvUserName,
                        password=OvPassword)
Req.read(filters={'SI_READY_FOR_DELIVERY': 1},
         fields=['TRACKOR_KEY', 'SI_READY_FOR_DELIVERY', 'SI_INTERFACE_FILE'],
         sort={'TRACKOR_KEY': 'ASC'},
         page=1,
         perPage=1000)

if len(Req.errors) > 0:
    # If can not read list of efiles then must be upgrade or something.  Quit and try again later.
    print(Req.errors)
    quit(1)

# send files to Inbound directory
for f in Req.jsonData:
    f1 = open(f['TRACKOR_KEY'], 'w')
            Message('ERROR: Import took too long')
            return False

    if process_data["status"] in [
            'EXECUTED', 'EXECUTED_WITHOUT_WARNINGS', 'EXECUTED_WITH_WARNINGS'
    ]:
        return True


class MyCnOpts:  #used by sftp connection
    pass


#####  Main section
Req = onevizion.Trackor(trackorType='SFTP_TO_OV',
                        URL=OvUrl,
                        userName=OvUserName,
                        password=OvPassword)
Req.read(filters={'SOI_ENABLED': '1'},
         fields=[
             'TRACKOR_KEY', 'SOI_SFTP_HOST', 'SOI_SFTP_USER_NAME',
             'SOI_ORDER_TO_PROCESS', 'SOI_SFTP_FOLDER', 'SOI_FILE_MASK',
             'SOI_IMPORT_NAME', 'SOI_ACTION', 'SOI_IMPORT_ID',
             'SOI_SFTP_ARCHIVE_FOLDER', 'SOI_DAYS_TO_KEEP_IN_ARCHIVE',
             'SOI_DATE_PORTION_OF_FILE_NAME', 'SOI_DATE_CRUFT_TO_REMOVE',
             'SOI_DATE_FORMAT', 'SOI_PREPROCESSOR_SCRIPT',
             'SOI_EXTRA_SFTP_COMMAND', 'SOI_PREPROCESSOR_COMMAND',
             'SOI_MAX_RUNTIME_IN_MINUTES'
         ],
         sort={'SOI_ORDER_TO_PROCESS': 'ASC'},
         page=1,
         perPage=1000)
Ejemplo n.º 11
0
        AllVersions.index(NewerVersion['Version']) + 1):
    NeededVersions.append(AllVersions[i])
Message("{NumVers} versions to list.".format(NumVers=len(NeededVersions)))
Message(json.dumps(NeededVersions, indent=2), 1)

NeededVersions.reverse()
for Ver in NeededVersions:
    VersionList[Ver] = datetime.datetime.strptime(VersionDates[Ver],
                                                  '%Y-%m-%d')

Versions = []

# Get Issues for any Versions attached to this Email
IssueList = onevizion.Trackor(
    trackorType='Issue',
    URL='trackor.onevizion.com',
    userName=PasswordData["trackor.onevizion.com"]["UserName"],
    password=PasswordData["trackor.onevizion.com"]["Password"])
for Version, RelDate in VersionList.items():
    Ver = {}
    IssueList.read(filters={
        "Version.TRACKOR_KEY": Version,
        "Product.TRACKOR_KEY": "OneVizion",
        "VQS_IT_DONT_INCLUDE_IN_REL_NOTES": "0"
    },
                   fields=[
                       'TRACKOR_KEY', 'VQS_IT_XITOR_NAME',
                       'VQS_IT_RELEASE_NOTES', 'TRACKOR_CLASS_ID'
                   ],
                   sort={
                       'TRACKOR_CLASS_ID': 'desc',
Ejemplo n.º 12
0
    # copy_from will pitch a 403/404 error if file is not in s3 yet
    obj.copy_from(
        CopySource={
            'Bucket': SourceBucket,
            'Key': fileName
        },
        MetadataDirective='REPLACE',
        ContentType=head['ResponseMetadata']['HTTPHeaders']['content-type'],
        ContentDisposition=head['ResponseMetadata']['HTTPHeaders']
        ['content-disposition'])


# make sure api user has RE on the tab with checkbox and list of blobs(ADMIN_CHECKLIST) and RE for the trackor type(Checklist) and R for WEB_SERVICES
Req = onevizion.Trackor(trackorType='Checklist',
                        URL=OvUrl,
                        userName=OvUserName,
                        password=OvPassword)
Req.read(filters={ReadyCheckbox: '1'},
         fields=[ReadyCheckbox, BlobIdList, 'TRACKOR_KEY'],
         sort={'TRACKOR_KEY': 'ASC'},
         page=1,
         perPage=1000)

if len(Req.errors) > 0:
    print(Req.errors)
    quit(1)

for cl in Req.jsonData:
    #print(cl['TRACKOR_KEY'])
    hasErrors = False
    if cl[BlobIdList] is None:
Ejemplo n.º 13
0
    Imp = onevizion.Import(paramToken=ConfigToken,
                           impSpecId=Params["ImportID"],
                           action='UPDATE',
                           file=filename + "2")
    if len(Imp.errors) > 0 or Imp.processId is None:
        Message(filename + " failed to Import from TalonView.")
        Err = True
        continue
    else:
        ProcID = Imp.processId
        Message(
            "{File} import successfully started. ProcessID={ProcID}".format(
                File=filename, ProcID=ProcID), 1)

    # c) Get List of TrackorIDs of COP-Lines with this associated COP as lookup
    COPLineRequest = onevizion.Trackor(
        trackorType=Params["COPLineTrackorType"], paramToken=ConfigToken)
    COPLineRequest.read(
        filters={Params["COPTrackorType"] + ".TRACKOR_KEY": COP},
        fields=['TRACKOR_KEY'])
    COPLines = {}
    for COPLine in COPLineRequest.jsonData:
        COPLines[COPLine["TRACKOR_KEY"]] = COPLine["TRACKOR_ID"]

    # d) Go through each document from zip file
    for docname in glob.glob(Params["InboundFolder"] + "/" + COP + "/*.*"):
        # Remove extension
        Message("Processing File {File}".format(File=docname), 1)

        # DocData is the FileName with the folder part and extension stripped off
        DocData = ".".join(docname.split("/")[-1].split(".")[:-1])
        # Remove last hyphen section , which is the file number and join the rest back up, remove the extra whitespace off the ends
Ejemplo n.º 14
0
             </get:AuthInfo>
             <get:msg>
                 <get:_LHASH_KEY_>E001|oDlpS4ZiwZEd5giUkMSxKXBIb9bOafcOJOBXRnzuVyepiReYCylXFRL4qz9gV</get:_LHASH_KEY_>
                 <get:TIN>""" + str(INN) + """</get:TIN>
             </get:msg>
         </get:GetFullLegalEntityInfo>
     </x:Body>
 </x:Envelope>"""

    response = requests.post(urlx, data=body, headers=headers, verify=False)

    my_dict = xmltodict.parse(response.content)
    myvars = my_dict['env:Envelope']['env:Body']['n1:LEGAL_ENTITY_INFORMATION']

    cbu_list_request = onevizion.Trackor(trackorType='VEDOMSTVO',
                                         URL=url,
                                         userName=login,
                                         password=password)

    cbu_list_request.create(
        fields={
            'VED_OKPO': myvars['OKPO'][1],
            'VED_INN': myvars['TIN'][1],
            'VED_KFS_CD': myvars['KFS_CD'][1],
            'VED_KOPF_CD': myvars['KOPF_CD'][1],
            'VED_SOATO': myvars['SOATO_CD'][1],
            'VED_OKONH': myvars['OKONH_CD'][1],
            'VED_OKED': myvars['OKED_CD'][1],
            'VED_SOOGU': myvars['SOOGU_CD'][1],
            'VED_SHORT_NAME': myvars['LE_NM_UZ'][1],
            'VED_NAME': myvars['LE_NM_UZ'][1],
            #'VED_REG_DATE':myvars['REG_DATE'][1],
Ejemplo n.º 15
0
            ErrorCSV.writerow(row)
            LogError = 'Error: Row: ' + str(i) + " => " + "Empty file"
            print(LogError)
            LogFile.write(LogError + "\n")
            continue

    except:
        Errors[FullFilePath + '-ReadErrors'] = str(sys.exc_info()[0])
        ErrorCSV.writerow(row)
        LogError = 'Error: Row: ' + str(i) + " => Cannot read file"
        print(LogError)
        LogFile.write(LogError + "\n")
        continue

    OVCall = onevizion.Trackor(trackorType=TrackorType,
                               URL=URL,
                               userName=OVUserName,
                               password=OVPassword)

    # Create Parent Set connections for this Row
    parents = {}
    for key, value in Configuration["mappings"]["parent"].items():
        if len(row[key]) > 0:
            parents[value] = {"TRACKOR_KEY": row[key]}

    #Create Fields mapping for this Row
    fields = {}
    for key, value in Configuration["mappings"]["this"].items():
        if len(row[key]) > 0:
            fields[value] = row[key]
    # Attach Document
    fields[FieldName] = {'file_name': NewFileName, 'data': B64Data}
Ejemplo n.º 16
0
args = parser.parse_args()
ParametersFile = args.parameters

WebUser = args.user
WebKeyFile = os.path.expanduser(args.key)
TunnelUser = args.tunneluser
TunnelKeyFile = os.path.expanduser(args.tunnelkey)

# FInd Home Folder of user
HomeFolder = os.path.expanduser('~')


# Load in Passwords from protected file.
ParameterData = onevizion.GetParameters(ParametersFile)

ServerListRequest = onevizion.Trackor(trackorType = 'server', paramToken = 'trackor.onevizion.com')
ServerListRequest.read(
		filters={
			'VQS_SVR_LOCATION':'AWS',
			'EC2_PRIVATE_DNS':'not null'
			}, 
		fields=[
			'TRACKOR_KEY',
			'EC2_PRIVATE_IP',
			'EC2_PRIVATE_DNS',
			'EC2_CLIENT_TAG'
			]
		)
if len(ServerListRequest.errors) > 0:
	print str(ServerListRequest.errors)
	quit()
Ejemplo n.º 17
0
    ReadyStatus = params['ReadyStatus']
    BlobIdList = params['BlobIdList']
    ZipFieldName = params['ZipFieldName']
    ZipFieldFileName = params['ZipFieldFileName']
    ZipErrorField = params['ZipErrorField']
except Exception as e:
    raise "Please check settings"

if ZipFieldFileName is None or ZipFieldFileName == "":
    fields = [ReadyStatus, BlobIdList, 'TRACKOR_KEY']
else:
    fields = [ReadyStatus, BlobIdList, ZipFieldFileName, 'TRACKOR_KEY']

# make sure api user has RE on the tab with checkbox and the field list of blobs and RE for the trackor type(sometimes Checklist) and R for WEB_SERVICES
Req = onevizion.Trackor(trackorType=TrackorType,
                        URL=OvUrl,
                        userName=OvUserName,
                        password=OvPassword)
Req.read(filters={ReadyStatus: 'Queued'},
         fields=fields,
         sort={'TRACKOR_KEY': 'ASC'},
         page=1,
         perPage=1000)

if len(Req.errors) > 0:
    # If can not read list of efiles then must be upgrade or something.  Quit and try again later.
    print(Req.errors)
    quit(1)

print("Found {x} records".format(x=len(Req.jsonData)))
for cl in Req.jsonData:
    print('Starting ' + cl['TRACKOR_KEY'])