| #!/usr/bin/python |
| |
| # Licensed to the Apache Software Foundation (ASF) under one or more |
| # contributor license agreements. See the NOTICE file distributed with |
| # this work for additional information regarding copyright ownership. |
| # The ASF licenses this file to You 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. |
| |
| import sys |
| import time |
| import ConnectorHelpers |
| import sqatools |
| import SOAPpy |
| from wintools import filetools |
| from wintools import sqa_domain_info |
| from wintools import ambassador_client |
| from wintools import adtools |
| from sqatools import LicenseMakerClient |
| from sqatools.sqautils import edit_file |
| import TestDocs |
| import VirtualBrowser |
| |
| sys.path.append("/usr/lib/metacarta") |
| |
| import MetaCartaVersion |
| |
| # Turn off service access-protection switch |
| def enable_service_protection(): |
| ConnectorHelpers.invoke_root_script( [ "auth_control", |
| "authorization", |
| "search-web-ui,secure-soap-search", |
| "--add", |
| "infer_service_authz" ] ) |
| |
| # Copy a folder to a (new) area |
| def copy_folder( source, target ): |
| ConnectorHelpers.invoke_root_script( [ "mkdir", "-p", target ] ) |
| ConnectorHelpers.invoke_root_script( [ "cp", "-r", source, target ] ) |
| |
| # Remove a folder |
| def delete_folder( target ): |
| ConnectorHelpers.invoke_root_script( [ "rm", "-rf", target ] ) |
| |
| # Method to initialize docbroker reference |
| def initialize(server): |
| """ Initialize DFC on the appliance """ |
| listparams = [ "/usr/bin/metacarta-setupdocumentum", |
| ConnectorHelpers.process_argument(server) ] |
| return ConnectorHelpers.invoke_root_script( listparams ) |
| |
| # Method to add a document to the livelink repository |
| def add_livelink_document(servername, port, user, password, llpath, llname, filename): |
| """Add a document to the repository""" |
| listparams = [ ConnectorHelpers.process_argument(servername), |
| ConnectorHelpers.process_argument(port), |
| ConnectorHelpers.process_argument(user), |
| ConnectorHelpers.process_argument(password), |
| ConnectorHelpers.process_argument(llpath), |
| ConnectorHelpers.process_argument(llname), |
| ConnectorHelpers.process_argument(filename) ] |
| return ConnectorHelpers.invoke_crawler_command( "com.metacarta.crawler.connectors.livelink.AddDoc", |
| argument_list=listparams, |
| additional_classpath="livelink-testing-package/metacarta-livelinkconnector-test.jar" ) |
| |
| # Method to remove a document from the livelink repository |
| def remove_livelink_document(servername, port, user, password, llpath): |
| """Remove a document from the repository""" |
| listparams = [ ConnectorHelpers.process_argument(servername), |
| ConnectorHelpers.process_argument(port), |
| ConnectorHelpers.process_argument(user), |
| ConnectorHelpers.process_argument(password), |
| ConnectorHelpers.process_argument(llpath) ] |
| ConnectorHelpers.invoke_crawler_command( "com.metacarta.crawler.connectors.livelink.RemoveDoc", |
| argument_list=listparams, |
| additional_classpath="livelink-testing-package/metacarta-livelinkconnector-test.jar" ) |
| |
| # Method to update a document in the livelink repository |
| def version_livelink_document(servername, port, user, password, llpath, filename): |
| """Create a new version of an existing document""" |
| listparams = [ ConnectorHelpers.process_argument(servername), |
| ConnectorHelpers.process_argument(port), |
| ConnectorHelpers.process_argument(user), |
| ConnectorHelpers.process_argument(password), |
| ConnectorHelpers.process_argument(llpath), |
| ConnectorHelpers.process_argument(filename) ] |
| ConnectorHelpers.invoke_crawler_command( "com.metacarta.crawler.connectors.livelink.VersionDoc", |
| argument_list=listparams, |
| additional_classpath="livelink-testing-package/metacarta-livelinkconnector-test.jar" ) |
| |
| def add_livelink_document_right(servername, port, user, password, llpath, username, domain): |
| """Adds the right to see & view contents of the specified path, for the given username""" |
| listparams = [ ConnectorHelpers.process_argument(servername), |
| ConnectorHelpers.process_argument(port), |
| ConnectorHelpers.process_argument(user), |
| ConnectorHelpers.process_argument(password), |
| ConnectorHelpers.process_argument(llpath), |
| ConnectorHelpers.process_argument(username), |
| ConnectorHelpers.process_argument(domain) ] |
| ConnectorHelpers.invoke_crawler_command( "com.metacarta.crawler.connectors.livelink.AddDocRights", |
| argument_list=listparams, |
| additional_classpath="livelink-testing-package/metacarta-livelinkconnector-test.jar" ) |
| |
| # Method to wait whatever time is needed after changing livelink documents |
| # for them to be noted as changed. |
| def wait_for_livelink(servername, port, user, password): |
| """Nothing needed""" |
| pass |
| |
| # Invoke documentum-classpath java code |
| def execute_documentum_java( classname, argument_list=[], input=None ): |
| """ Invoke documentum classpath java code """ |
| command_arguments = [ "documentum-testing-package/executejava", classname ] + argument_list |
| return ConnectorHelpers.invoke_script(command_arguments,input=input) |
| |
| # Method to add a document to the documentum docbase |
| def add_documentum_document(docbase, domain, user, password, location, file, path): |
| """Add a document to the docbase""" |
| listparams = [ ConnectorHelpers.process_argument(docbase), |
| ConnectorHelpers.process_argument(domain), |
| ConnectorHelpers.process_argument(user), |
| ConnectorHelpers.process_argument(password), |
| ConnectorHelpers.process_argument(location), |
| ConnectorHelpers.process_argument(file), |
| ConnectorHelpers.process_argument(path) ] |
| return execute_documentum_java( "com.metacarta.crawler.connectors.DCTM.AddDoc", argument_list=listparams ) |
| |
| # Method to remove a document from the documentum docbase |
| def remove_documentum_document(docbase, domain, user, password, location, file): |
| """Remove a document from the docbase""" |
| listparams = [ ConnectorHelpers.process_argument(docbase), |
| ConnectorHelpers.process_argument(domain), |
| ConnectorHelpers.process_argument(user), |
| ConnectorHelpers.process_argument(password), |
| ConnectorHelpers.process_argument(location), |
| ConnectorHelpers.process_argument(file) ] |
| execute_documentum_java( "com.metacarta.crawler.connectors.DCTM.RemoveDoc", argument_list=listparams ) |
| |
| # Method to update a document in the documentum docbase |
| def version_documentum_document(docbase, domain, user, password, location, file): |
| """Create a new version of an existing document""" |
| listparams = [ ConnectorHelpers.process_argument(docbase), |
| ConnectorHelpers.process_argument(domain), |
| ConnectorHelpers.process_argument(user), |
| ConnectorHelpers.process_argument(password), |
| ConnectorHelpers.process_argument(location), |
| ConnectorHelpers.process_argument(file) ] |
| execute_documentum_java( "com.metacarta.crawler.connectors.DCTM.VersionDoc", argument_list=listparams ) |
| |
| # Method to outwait the time skew between connector framework box |
| # and documentum docbase |
| def wait_for_documentum(docbase, domain, user, password): |
| """This will eventually create a temporary document, get its time, and wait until then""" |
| time.sleep(60) |
| |
| # Method to add a document to the meridio repository |
| def add_meridio_document(docurl, recurl, domainuser, password, folder, filepath, filename, filetitle, category="MetacartaSearchable"): |
| """Add a document to the repository""" |
| listparams = [ ConnectorHelpers.process_argument(docurl), |
| ConnectorHelpers.process_argument(recurl), |
| ConnectorHelpers.process_argument(domainuser), |
| ConnectorHelpers.process_argument(password), |
| ConnectorHelpers.process_argument(folder), |
| ConnectorHelpers.process_argument(filepath), |
| ConnectorHelpers.process_argument(filename), |
| ConnectorHelpers.process_argument(filetitle), |
| ConnectorHelpers.process_argument(category) ] |
| stringval = ConnectorHelpers.invoke_crawler_command( "com.metacarta.crawler.connectors.meridio.AddDoc", |
| argument_list=listparams, |
| additional_switches=["-Djava.security.egd=file:///dev/urandom"], |
| additional_classpath="meridio-testing-package/metacarta-meridioconnector-test.jar" ) |
| stringarry = stringval.split("\n") |
| # Take the last line |
| return stringarry[len(stringarry)-1] |
| |
| # Method to add a record to the meridio repository |
| def add_meridio_record(docurl, recurl, domainuser, password, folder, filepath, filename, filetitle, category="MetacartaSearchable"): |
| """Add a document to the repository""" |
| listparams = [ ConnectorHelpers.process_argument(docurl), |
| ConnectorHelpers.process_argument(recurl), |
| ConnectorHelpers.process_argument(domainuser), |
| ConnectorHelpers.process_argument(password), |
| ConnectorHelpers.process_argument(folder), |
| ConnectorHelpers.process_argument(filepath), |
| ConnectorHelpers.process_argument(filename), |
| ConnectorHelpers.process_argument(filetitle), |
| ConnectorHelpers.process_argument(category) ] |
| stringval = ConnectorHelpers.invoke_crawler_command( "com.metacarta.crawler.connectors.meridio.AddRec", |
| argument_list=listparams, |
| additional_switches=["-Djava.security.egd=file:///dev/urandom"], |
| additional_classpath="meridio-testing-package/metacarta-meridioconnector-test.jar" ) |
| stringarry = stringval.split("\n") |
| # Take the last line |
| return stringarry[len(stringarry)-1] |
| |
| # Method to remove a document from the meridio repository |
| def remove_meridio_document(docurl, recurl, domainuser, password, docid): |
| """Remove a document from the repository""" |
| listparams = [ ConnectorHelpers.process_argument(docurl), |
| ConnectorHelpers.process_argument(recurl), |
| ConnectorHelpers.process_argument(domainuser), |
| ConnectorHelpers.process_argument(password), |
| ConnectorHelpers.process_argument(docid) ] |
| try: |
| ConnectorHelpers.invoke_crawler_command( "com.metacarta.crawler.connectors.meridio.DeleteDoc", |
| argument_list=listparams, |
| additional_switches=["-Djava.security.egd=file:///dev/urandom"], |
| additional_classpath="meridio-testing-package/metacarta-meridioconnector-test.jar" ) |
| except Exception, e: |
| print "Warning: Error deleting document: %s" % str(e) |
| |
| # Method to remove a record from the meridio repository |
| def remove_meridio_record(docurl, recurl, domainuser, password, docid): |
| """Remove a document from the repository""" |
| listparams = [ ConnectorHelpers.process_argument(docurl), |
| ConnectorHelpers.process_argument(recurl), |
| ConnectorHelpers.process_argument(domainuser), |
| ConnectorHelpers.process_argument(password), |
| ConnectorHelpers.process_argument(docid) ] |
| try: |
| ConnectorHelpers.invoke_crawler_command( "com.metacarta.crawler.connectors.meridio.DeleteRec", |
| argument_list=listparams, |
| additional_switches=["-Djava.security.egd=file:///dev/urandom"], |
| additional_classpath="meridio-testing-package/metacarta-meridioconnector-test.jar" ) |
| except Exception, e: |
| print "Warning: Error deleting record: %s" % str(e) |
| |
| # Method to lookup a document in the meridio repository |
| def lookup_meridio_document(docurl, recurl, domainuser, password, folder, title): |
| """Lookup a document in the repository""" |
| listparams = [ ConnectorHelpers.process_argument(docurl), |
| ConnectorHelpers.process_argument(recurl), |
| ConnectorHelpers.process_argument(domainuser), |
| ConnectorHelpers.process_argument(password), |
| ConnectorHelpers.process_argument(folder), |
| ConnectorHelpers.process_argument(title) ] |
| stringval = ConnectorHelpers.invoke_crawler_command( "com.metacarta.crawler.connectors.meridio.LookupDoc", |
| argument_list=listparams, |
| additional_switches=["-Djava.security.egd=file:///dev/urandom"], |
| additional_classpath="meridio-testing-package/metacarta-meridioconnector-test.jar" ) |
| stringarry = stringval.split("\n") |
| # Take the last line |
| return stringarry[len(stringarry)-1] |
| |
| # Method to lookup a record in the meridio repository |
| def lookup_meridio_record(docurl, recurl, domainuser, password, folder, title): |
| """Lookup a record in the repository""" |
| listparams = [ ConnectorHelpers.process_argument(docurl), |
| ConnectorHelpers.process_argument(recurl), |
| ConnectorHelpers.process_argument(domainuser), |
| ConnectorHelpers.process_argument(password), |
| ConnectorHelpers.process_argument(folder), |
| ConnectorHelpers.process_argument(title) ] |
| stringval = ConnectorHelpers.invoke_crawler_command( "com.metacarta.crawler.connectors.meridio.LookupRec", |
| argument_list=listparams, |
| additional_switches=["-Djava.security.egd=file:///dev/urandom"], |
| additional_classpath="meridio-testing-package/metacarta-meridioconnector-test.jar" ) |
| stringarry = stringval.split("\n") |
| # Take the last line |
| return stringarry[len(stringarry)-1] |
| |
| # Method to update a document in the meridio repository |
| def update_meridio_document(docurl, recurl, domainuser, password, docid, folder, filename): |
| """Create a new version of an existing document""" |
| listparams = [ ConnectorHelpers.process_argument(docurl), |
| ConnectorHelpers.process_argument(recurl), |
| ConnectorHelpers.process_argument(domainuser), |
| ConnectorHelpers.process_argument(password), |
| ConnectorHelpers.process_argument(docid), |
| ConnectorHelpers.process_argument(folder), |
| ConnectorHelpers.process_argument(filename), |
| ConnectorHelpers.process_argument("Updated for testing") ] |
| ConnectorHelpers.invoke_crawler_command( "com.metacarta.crawler.connectors.meridio.UpdateDoc", |
| argument_list=listparams, |
| additional_switches=["-Djava.security.egd=file:///dev/urandom"], |
| additional_classpath="meridio-testing-package/metacarta-meridioconnector-test.jar" ) |
| |
| # Method to add a read acl to a document |
| def add_acl_to_meridio_document(docurl, recurl, domainuser, password, docid, read_username): |
| """ Add read permission for the given user to the document """ |
| listparams = [ ConnectorHelpers.process_argument(docurl), |
| ConnectorHelpers.process_argument(recurl), |
| ConnectorHelpers.process_argument(domainuser), |
| ConnectorHelpers.process_argument(password), |
| ConnectorHelpers.process_argument(docid), |
| ConnectorHelpers.process_argument(read_username), |
| ConnectorHelpers.process_argument("READ") ] |
| ConnectorHelpers.invoke_crawler_command( "com.metacarta.crawler.connectors.meridio.AddDocAcl", |
| argument_list=listparams, |
| additional_switches=["-Djava.security.egd=file:///dev/urandom"], |
| additional_classpath="meridio-testing-package/metacarta-meridioconnector-test.jar" ) |
| |
| # Method to wait whatever time is needed after changing meridio documents |
| # for them to be noted as changed. |
| def wait_for_meridio(docurl, recurl, domainuser, password): |
| """Nothing needed""" |
| pass |
| |
| # Method to add a document to a jcifs share |
| def add_share_document(jcifs_servername, jcifs_user, jcifs_password, targetpath, sourcepath): |
| """Add a document to the share""" |
| """ The code below does not work, because we get an access violation creating the file. Not sure |
| why... """ |
| #listparams = [ "/usr/lib/metacarta/jcifs-adddoc", |
| # ConnectorHelpers.process_argument(jcifs_servername), |
| # ConnectorHelpers.process_argument(jcifs_user), |
| # ConnectorHelpers.process_argument(jcifs_password), |
| # ConnectorHelpers.process_argument(targetpath), |
| # ConnectorHelpers.process_argument(sourcepath) ] |
| #return ConnectorHelpers.invoke_script( listparams ) |
| amb = ambassador_client.AmbassadorClient(jcifs_servername+":8000", jcifs_user, jcifs_password) |
| new_targetpath = "C:\\"+targetpath.replace("/","\\") |
| permissions = [ ("+", adtools.EveryoneSID) ] |
| fd = open(sourcepath, "r") |
| try: |
| lines = fd.readlines() |
| newlines = [] |
| for line in lines: |
| newlines.append( line.strip() ) |
| string = " ".join(newlines) |
| filetools.create_windows_file(new_targetpath, permissions, string, amb) |
| return targetpath |
| finally: |
| fd.close() |
| |
| # Method to remove a document from a jcifs share |
| def remove_share_document(jcifs_servername, jcifs_user, jcifs_password, targetpath): |
| """Remove a document from the share""" |
| #listparams = [ "/usr/lib/metacarta/jcifs-removedoc", |
| # ConnectorHelpers.process_argument(jcifs_servername), |
| # ConnectorHelpers.process_argument(jcifs_user), |
| # ConnectorHelpers.process_argument(jcifs_password), |
| # ConnectorHelpers.process_argument(targetpath) ] |
| #try: |
| # ConnectorHelpers.invoke_script( listparams ) |
| #except Exception, e: |
| # print "Warning: Error deleting document: %s" % str(e) |
| print "Erasing %s" % targetpath |
| |
| amb = ambassador_client.AmbassadorClient(jcifs_servername+":8000", jcifs_user, jcifs_password) |
| targetpath = "C:\\"+targetpath.replace("/","\\") |
| |
| try: |
| amb.run('erase "%s"' % targetpath) |
| except Exception, e: |
| print "Warning: Error deleting document: %s" % str(e) |
| |
| # Method to update a document in the jcifs repository |
| def version_share_document(jcifs_servername, jcifs_user, jcifs_password, targetpath, sourcepath): |
| """Create a new version of an existing document""" |
| amb = ambassador_client.AmbassadorClient(jcifs_servername+":8000", jcifs_user, jcifs_password) |
| targetpath = "C:\\"+targetpath.replace("/","\\") |
| try: |
| amb.run('erase "%s"' % targetpath) |
| except Exception, e: |
| print "Warning: Error deleting document: %s" % str(e) |
| |
| permissions = [ ("+", adtools.EveryoneSID) ] |
| fd = open(sourcepath, "r") |
| try: |
| lines = fd.readlines() |
| newlines = [] |
| for line in lines: |
| newlines.append( line.strip() ) |
| string = " ".join(newlines) |
| filetools.create_windows_file(targetpath, permissions, string, amb) |
| finally: |
| fd.close() |
| |
| # Method for setting permissions on a folder or file |
| def set_share_target_permission(jcifs_servername, jcifs_user, jcifs_password, targetpath, usernames): |
| amb = ambassador_client.AmbassadorClient(jcifs_servername+":8000", jcifs_user, jcifs_password) |
| targetpath = "C:\\" + targetpath.replace("/","\\") |
| permissions = [] |
| permissions.append( ("+",adtools.get_sid(jcifs_user),0x7FFF0000)) |
| for username in usernames: |
| permissions.append( ("+",adtools.get_sid(username),0x7FFF0000) ) |
| filetools.change_windows_file_acl(targetpath, permissions, amb) |
| |
| # Method to wait whatever time is needed after changing jcifs documents |
| # for them to be noted as changed. |
| def wait_for_share(jcifs_servername, jcifs_user, jcifs_password): |
| """Nothing needed""" |
| pass |
| |
| ad_auth_conf = edit_file("/var/lib/metacarta/ad_authority_service.conf") |
| |
| # Disable the ability of the AD authority to connect to its LDAP server |
| def disable_ad_authority(legacy = True): |
| """ Use iptables to shut off the ability for ad_authority_service to talk with ldap """ |
| if legacy: |
| ConnectorHelpers.invoke_root_script( ["iptables", "-A", "OUTPUT", "-d", "10.32.76.1", "-p", "tcp", "-m", "multiport", "--destination-ports", "389", "-j", "DROP" ] ) |
| else: |
| ad_auth_conf.backup() |
| ad_auth_conf.append("num_dc_retries=1") |
| ad_auth_conf.close() |
| ConnectorHelpers.invoke_root_script( ["check_user_doc_access", "enabledebug"] ) |
| ConnectorHelpers.invoke_root_script( ["iptables", "-A", "OUTPUT", "-d", "10.32.76.2", "-p", "udp", "-m", "multiport", "--destination-ports", "88", "-j", "DROP" ] ) |
| ConnectorHelpers.invoke_root_script( ["iptables", "-A", "OUTPUT", "-d", "10.32.76.2", "-p", "tcp", "-m", "multiport", "--destination-ports", "88", "-j", "DROP" ] ) |
| |
| |
| # Re-enable the ability of the AD authority to connect to LDAP |
| def enable_ad_authority(legacy = True, preclean = False): |
| """ Reverse iptables changes to re-enable ad_authority_service communication with ldap """ |
| if legacy: |
| ConnectorHelpers.invoke_root_script( ["iptables", "-D", "OUTPUT", "1" ] ) |
| else: |
| ad_auth_conf.restore() |
| ConnectorHelpers.invoke_root_script( ["check_user_doc_access", "disabledebug"] ) |
| ConnectorHelpers.invoke_root_script( ["iptables", "-D", "OUTPUT", "2" ] ) |
| ConnectorHelpers.invoke_root_script( ["iptables", "-D", "OUTPUT", "1" ] ) |
| if not preclean: |
| # test for RT#26331 setting the number of dc retries to another number, like 1 in this case |
| contents = open("/var/log/metacarta/debug.log").read() |
| if "(spnego_inspect.c:1114) failed after 1 retries (principal=HTTP" not in contents: |
| raise Exception("num_dc_retries configuration didn't work") |
| if "(spnego_inspect.c:1114) failed after 5 retries (principal=HTTP" in contents: |
| raise Exception("num_dc_retires configuration using default") |
| |
| # LIVELINK VALUES |
| |
| # The original livelink search user 'lladmin' was created in a transient way. I've now replaced this with the permanent user 'p_lladmin'. |
| |
| # Server name to talk to |
| llServerName = "livelinksrvr.qa-ad-76.metacarta.com" |
| # Server port to talk to |
| llServerPort = "2099" |
| # Crawl user |
| llUser = "admin" |
| # Crawl password |
| llPassword = "livelink" |
| obfuscatedllPassword = "023A12EA723A122A" |
| # Search user |
| llSearchUser = "p_lladmin@qa-ad-76.metacarta.com" |
| llSearchPassword = "p_lladmin"; |
| |
| # No protocol base url |
| veryBaseURL = llServerName + "/livelink/livelink.exe" |
| # Full URL |
| fullURL = veryBaseURL + "?func=ll&objID=" |
| fullURLSuffix = "&objAction=download" |
| |
| def build_livelink_url( id ): |
| """Build the url from pieces""" |
| return fullURL + id + fullURLSuffix |
| |
| # DOCUMENTUM VALUES |
| |
| # The user dmadmin is special, because for documentum there isn't a matching domain user until we create one. Since we don't want to collide with |
| # previous incarnations of this test, which create the "dmadmin" domain user and tear it back down again, we've created user "p_dmadmin" on the documentum instance. |
| # The "p_dmadmin" user should have the same rights as the original dmadmin user. |
| documentum_docbase = "Metacarta1" |
| documentum_username = "p_dmadmin" |
| documentum_password = "metacarta" |
| obfuscated_documentum_password = "523272FA524252CAFA" |
| documentum_domain = "" |
| |
| # No protocol base url |
| documentum_veryBaseURL = "dctmsrvr.qa-ad-76.metacarta.com:8080/webtop/" |
| # Base URL |
| documentum_baseURL = "http://"+documentum_veryBaseURL |
| # Full URL |
| documentum_fullURL = documentum_veryBaseURL + "component/drl?versionLabel=CURRENT&objectId=" |
| |
| # Search username and password |
| documentum_search_username = "p_dmadmin@qa-ad-76.metacarta.com" |
| documentum_search_password = "p_dmadmin" |
| |
| def build_documentum_url( id ): |
| return documentum_fullURL + id |
| |
| # MERIDIO VALUES |
| |
| # The search user for meridio was already permanent, so there was no need to build a 'permanent domain equivalent' user. |
| # Protocol |
| meridioProtocol = "http" |
| # Server name to talk to |
| meridioServerName = "w2k3-mer-76-1.qa-ad-76.metacarta.com" |
| # Server port to talk to |
| meridioServerPort = "" |
| # User |
| meridioUser = "meridioServiceUser" |
| # Password |
| meridioPassword = "metacarta" |
| obfuscatedMeridioPassword = "obfuscated_password" |
| # Domain |
| meridioDomain = "QA-AD-76.METACARTA.COM" |
| # Document management location |
| documentLocation = "/DMWS/MeridioDMWS.asmx"; |
| # Record management location |
| recordLocation = "/RMWS/MeridioRMWS.asmx"; |
| # MetaCarta WS location |
| metacartaWSLocation = "/MetaCartaWebService/MetaCarta.asmx"; |
| # Web client location |
| webClientLocation = "/meridio/browse/downloadcontent.aspx"; |
| |
| # These are the calculated URLs for talking with Meridio |
| meridioDocURL = None |
| if len(meridioServerPort) > 0: |
| meridioDocURL = "%s://%s:%s%s" % (meridioProtocol,meridioServerName,meridioServerPort,documentLocation) |
| else: |
| meridioDocURL = "%s://%s%s" % (meridioProtocol,meridioServerName,documentLocation) |
| |
| meridioRecURL = None |
| if len(meridioServerPort) > 0: |
| meridioRecURL = "%s://%s:%s%s" % (meridioProtocol,meridioServerName,meridioServerPort,recordLocation) |
| else: |
| meridioRecURL = "%s://%s%s" % (meridioProtocol,meridioServerName,recordLocation) |
| |
| meridioDomainUser = "%s\%s" % (meridioDomain,meridioUser) |
| |
| # Meridio search username |
| meridioSearchUser = meridioUser + "@" + meridioDomain |
| meridioSearchPassword = meridioPassword |
| |
| # Document titles and identifiers |
| title1 = ("/Testing/TestDocs","f001") |
| title2 = ("/Testing/TestDocs","f002") |
| title3 = ("/Testing/TestDocs","f003") |
| title4 = ("/Testing/TestDocs","f004") |
| title5 = ("/Testing/TestDocs","f005") |
| title6 = ("/Testing/TestDocs","f006") |
| title7 = ("/Testing/TestDocs","f007") |
| |
| # This makes a URL of the kind that will be ingested |
| def make_meridio_url(document_id): |
| # Note: TestDocs results have protocol stripped off. |
| if meridioServerPort == "": |
| return "%s%s?launchMode=1&launchAs=0&documentId=%s" % (meridioServerName,webClientLocation,document_id) |
| else: |
| return "%s:%s/%s?launchMode=1&launchAs=0&documentId=%s" % (meridioServerName,meridioServerPort,webClientLocation,document_id) |
| |
| |
| # SHARE CONNECTOR VALUES |
| |
| # The old transient user for Share Connector was "shadmin". To make a permanent, non-colliding equivalent, the new user is called "p_shadmin". |
| # Server name to talk to |
| jcifsServerName = "w2k3-shp-76-1.QA-AD-76.METACARTA.COM" |
| # Domain |
| jcifsDomain = "QA-AD-76.METACARTA.COM" |
| # User |
| jcifsSimpleUser = "Administrator" |
| jcifsUser = jcifsSimpleUser + "@QA-AD-76.METACARTA.COM" |
| # Password |
| jcifsPassword = "password" |
| # Share name |
| jcifsShare = "qashare" |
| |
| # Search username and password |
| shareSearchUser = "p_shadmin@qa-ad-76.metacarta.com" |
| shareSearchPassword = "p_shadmin" |
| |
| def make_share_search_url(path_id): |
| return "%s/%s" % (jcifsServerName, path_id) |
| |
| |
| # CRAWL USER CREDENTIALS |
| username = "testingest" |
| password = "testingest" |
| |
| # Document identifiers |
| ll_id1 = None |
| ll_id2 = None |
| ll_id3 = None |
| ll_id4 = None |
| ll_id5 = None |
| ll_id6 = None |
| ll_id7 = None |
| dctm_id1 = None |
| dctm_id2 = None |
| dctm_id3 = None |
| dctm_id4 = None |
| dctm_id5 = None |
| dctm_id6 = None |
| dctm_id7 = None |
| m_id1 = None |
| m_id2 = None |
| m_id3 = None |
| m_id4 = None |
| m_id5 = None |
| m_id6 = None |
| m_id7 = None |
| shr_id1 = None |
| shr_id2 = None |
| shr_id3 = None |
| shr_id4 = None |
| shr_id5 = None |
| shr_id6 = None |
| shr_id7 = None |
| |
| def preclean( ad_domain_info, perform_legacy_pass, print_errors=True ): |
| ''' Clean up everything we might have done during the execution of this test. |
| This will include all jobs and ingested documents. ''' |
| |
| # Reregister livelink authority, since we unregister as part of this test at one point |
| try: |
| ConnectorHelpers.register_authorityconnector("com.metacarta.crawler.connectors.livelink.LivelinkAuthority","LivelinkAuthority") |
| except Exception, e: |
| if print_errors: |
| print "Error registering livelink authority" |
| print e |
| |
| try: |
| ConnectorHelpers.reset_all() |
| except Exception, e: |
| if print_errors: |
| print "Error resetting all jobs" |
| print e |
| |
| # Remove test documents first |
| for folder in [ "/root/crawlarea" ]: |
| try: |
| delete_folder( folder ) |
| except Exception, e: |
| if print_errors: |
| print "Error removing %s" % folder |
| print e |
| |
| # Remove test documents from share connector |
| for docid in [ "TestDocs/f001.txt", "TestDocs/f002.txt", "TestDocs/f003.txt", "TestDocs/f004.txt", "TestDocs/f005.txt", |
| "TestDocs/f006.txt", "TestDocs/f007.txt" ]: |
| try: |
| remove_share_document(jcifsServerName, jcifsUser, jcifsPassword, jcifsShare+"/"+docid ) |
| except Exception, e: |
| if print_errors: |
| print "Error deleting test document %s" % docid |
| print e |
| |
| # Remove test documents from livelink |
| for docname in [ "TestDocs/f001", "TestDocs/f002", "TestDocs/f003", "TestDocs/f004", "TestDocs/f005", |
| "TestDocs/f006", "TestDocs/f007" ]: |
| try: |
| remove_livelink_document(llServerName, llServerPort, llUser, llPassword, docname ) |
| except Exception, e: |
| if print_errors: |
| print "Error deleting test document %s" % docname |
| print e |
| |
| # Remove test documents from documentum |
| delete_docs = [ ("/TestDocs","f001.txt"), ("/TestDocs","f002.txt"), ("/TestDOcs","f003.txt"), ("/TestDocs","f004.txt"), |
| ("/TestDocs","f005.txt"), ("/TestDocs","f006.txt"), ("/TestDocs","f007.txt") ] |
| |
| for folder,file in delete_docs: |
| try: |
| remove_documentum_document(documentum_docbase,documentum_domain,documentum_username,documentum_password,folder,file) |
| except Exception, e: |
| if print_errors: |
| print "Error deleting document %s" % file |
| print e |
| |
| # Remove test documents from meridio |
| for docstuff in [title1,title2,title3,title4,title5,title6,title7]: |
| (docpath,doctitle) = docstuff |
| try: |
| docid = lookup_meridio_document(meridioDocURL,meridioRecURL,meridioDomainUser,meridioPassword,docpath,doctitle) |
| if docid != "": |
| remove_meridio_document(meridioDocURL,meridioRecURL,meridioDomainUser,meridioPassword,docid) |
| except Exception, e: |
| if print_errors: |
| print "Error deleting test document %s/%s" % (docpath,doctitle) |
| print e |
| |
| # Open up ability to talk with AD |
| try: |
| enable_ad_authority(perform_legacy_pass, True) |
| except Exception, e: |
| if print_errors: |
| print "Error re-enabling ad authority" |
| print e |
| |
| # Disable ad |
| try: |
| ConnectorHelpers.turn_off_ad( ad_domain_info ) |
| except Exception, e: |
| if print_errors: |
| print "Error disabling AD" |
| print e |
| |
| try: |
| ConnectorHelpers.delete_crawler_user( username ) |
| except Exception, e: |
| if print_errors: |
| print "Error deleting crawl user" |
| print e |
| |
| try: |
| LicenseMakerClient.revoke_license() |
| except Exception, e: |
| if print_errors: |
| print "Error cleaning up old license" |
| print e |
| |
| try: |
| ConnectorHelpers.teardown_connector_environment( ) |
| except Exception, e: |
| if print_errors: |
| print "Error cleaning up debs" |
| print e |
| |
| if perform_legacy_pass: |
| try: |
| ConnectorHelpers.select_legacy_mode(use_legacy_tools=False) |
| except Exception, e: |
| if print_errors: |
| print "Error turning off legacy AD mode" |
| print e |
| |
| def run_ad_test_part( ad_domain_info, perform_legacy_pass ): |
| """ Run the part of the test that deals with ad. This may be repeated if the test exercises legacy mode. """ |
| |
| ad_win_host = ad_domain_info.ie_client_fqdn |
| |
| print "Setting up Active Directory" |
| |
| # Set up system to use ad |
| ConnectorHelpers.configure_ad( ad_domain_info, join_multidomain = not perform_legacy_pass ) |
| |
| # Enable CF security again |
| ConnectorHelpers.enable_connector_framework( ) |
| |
| # Add the search users |
| for username in [ "p_lladmin", "p_dmadmin", "p_shadmin" ]: |
| ConnectorHelpers.conditionally_add_ad_user( ad_domain_info, username, username ) |
| |
| # Set the protections that need setting |
| set_share_target_permission(jcifsServerName, jcifsUser, jcifsPassword, shr_id1, [shareSearchUser]) |
| set_share_target_permission(jcifsServerName, jcifsUser, jcifsPassword, shr_id2, [shareSearchUser]) |
| set_share_target_permission(jcifsServerName, jcifsUser, jcifsPassword, shr_id3, [shareSearchUser]) |
| set_share_target_permission(jcifsServerName, jcifsUser, jcifsPassword, shr_id4, [shareSearchUser]) |
| set_share_target_permission(jcifsServerName, jcifsUser, jcifsPassword, shr_id5, [shareSearchUser]) |
| set_share_target_permission(jcifsServerName, jcifsUser, jcifsPassword, shr_id6, [shareSearchUser]) |
| set_share_target_permission(jcifsServerName, jcifsUser, jcifsPassword, shr_id7, [shareSearchUser]) |
| |
| print "Defining authority connections" |
| |
| # Define the authority connections... |
| |
| # Define livelink authority connection |
| ConnectorHelpers.define_authorityconnection( "LivelinkConnection", |
| "Livelink Connection", |
| "com.metacarta.crawler.connectors.livelink.LivelinkAuthority", |
| configparams = [ "Server name="+llServerName, |
| "Server port="+llServerPort, |
| "Server user name="+llUser, |
| "Server password="+llPassword, |
| "Livelink user name map=^p_lladmin@.*\\$=admin" ] ) |
| |
| # Define documentum authority connection |
| ConnectorHelpers.define_authorityconnection( "DocumentumConnection", |
| "Documentum Connection", |
| "com.metacarta.crawler.authorities.DCTM.AuthorityConnector", |
| configparams = [ "docbasename="+documentum_docbase, |
| "docbaseusername="+documentum_username, |
| "docbasepassword="+documentum_password, |
| "domain="+documentum_domain ] ) |
| |
| # Define meridio authority connection |
| ConnectorHelpers.define_authorityconnection( "MeridioConnection", |
| "Meridio Connection", |
| "com.metacarta.crawler.connectors.meridio.MeridioAuthority", |
| configparams = [ "DMWSServerProtocol="+meridioProtocol, |
| "DMWSServerName="+meridioServerName, |
| "DMWSServerPort="+meridioServerPort, |
| "DMWSLocation="+documentLocation, |
| "RMWSServerProtocol="+meridioProtocol, |
| "RMWSServerName="+meridioServerName, |
| "RMWSServerPort="+meridioServerPort, |
| "RMWSLocation="+recordLocation, |
| "MetaCartaWSServerProtocol="+meridioProtocol, |
| "MetaCartaWSServerName="+meridioServerName, |
| "MetaCartaWSServerPort="+meridioServerPort, |
| "MetaCartaWSLocation="+metacartaWSLocation, |
| "UserName="+meridioDomain + "\\" + meridioUser, |
| "Password="+meridioPassword ] ) |
| |
| |
| print "Defining repository connections" |
| |
| # Define livelink repository connection |
| ConnectorHelpers.define_repositoryconnection( "LivelinkConnection", |
| "Livelink Connection", |
| "com.metacarta.crawler.connectors.livelink.LivelinkConnector", |
| configparams = [ "CGI path=/livelink/livelink.exe", |
| "View CGI path=", |
| "Server name="+llServerName, |
| "Server port="+llServerPort, |
| "Server user name="+llUser, |
| "Server password="+llPassword, |
| "NTLM domain=" ], |
| authorityname = "LivelinkConnection" ) |
| |
| # Define documentum repository connection |
| ConnectorHelpers.define_repositoryconnection( "DocumentumConnection", |
| "Documentum Connection", |
| "com.metacarta.crawler.connectors.DCTM.DCTM", |
| configparams = [ "docbasename="+documentum_docbase, |
| "docbaseusername="+documentum_username, |
| "docbasepassword="+documentum_password, |
| "docbasedomain="+documentum_domain, |
| "webtopbaseurl="+documentum_baseURL ], |
| authorityname="DocumentumConnection") |
| |
| # Define meridio connection, using the authority we just defined |
| ConnectorHelpers.define_repositoryconnection( "MeridioConnection", |
| "Meridio Connection", |
| "com.metacarta.crawler.connectors.meridio.MeridioConnector", |
| configparams = [ "DMWSServerProtocol="+meridioProtocol, |
| "DMWSServerName="+meridioServerName, |
| "DMWSServerPort="+meridioServerPort, |
| "DMWSLocation="+documentLocation, |
| "RMWSServerProtocol="+meridioProtocol, |
| "RMWSServerName="+meridioServerName, |
| "RMWSServerPort="+meridioServerPort, |
| "RMWSLocation="+recordLocation, |
| "MeridioWebClientProtocol="+meridioProtocol, |
| "MeridioWebClientServerName="+meridioServerName, |
| "MeridioWebClientServerPort="+meridioServerPort, |
| "MeridioWebClientDocDownloadLocation="+webClientLocation, |
| "UserName="+meridioDomain+"\\"+meridioUser, |
| "Password="+meridioPassword ], |
| authorityname = "MeridioConnection") |
| |
| # Define share connection, using the default authority |
| ConnectorHelpers.define_repositoryconnection( "ShareConnection", |
| "Share Connection", |
| "com.metacarta.crawler.connectors.sharedrive.SharedDriveConnector", |
| configparams = [ "Server="+jcifsServerName, |
| "User Name="+jcifsUser, |
| "Password="+jcifsPassword] ) |
| |
| |
| print "Defining jobs" |
| |
| # Define livelink job |
| doc_spec_xml = '<?xml version="1.0" encoding="UTF-8"?><specification><startpoint path="TestDocs"/><include filespec="*.txt"/><security value="on"/></specification>' |
| livelink_job_id = ConnectorHelpers.define_job( "Livelink test job", |
| "LivelinkConnection", |
| doc_spec_xml ) |
| |
| # Define documentum job |
| doc_spec_xml = '<?xml version="1.0" encoding="UTF-8"?><specification><docbaselocation path="/TestDocs"/><objecttype token="dm_document"/><mimetype value="crtext"/><security value="on"/></specification>' |
| documentum_job_id = ConnectorHelpers.define_job( "Documentum test job", |
| "DocumentumConnection", |
| doc_spec_xml ) |
| |
| # Define meridio job |
| doc_spec_xml = '<?xml version="1.0" encoding="UTF-8"?><specification><SearchOn value="DOCUMENTS_AND_RECORDS"/><SearchPath path="Testing/TestDocs"/><SearchCategory category="MetacartaSearchable"/><security value="on"/></specification>' |
| meridio_job_id = ConnectorHelpers.define_job( "Meridio test job", |
| "MeridioConnection", |
| doc_spec_xml ) |
| |
| # Define share connector job |
| doc_spec_xml = '<?xml version="1.0" encoding="UTF-8"?><specification><startpoint path="qashare/TestDocs"><include type="file" filespec="*"/><include type="directory" filespec="*"/></startpoint><sharesecurity value="on"/><security value="on"/></specification>' |
| share_job_id = ConnectorHelpers.define_job( "Share test job", |
| "ShareConnection", |
| doc_spec_xml ) |
| |
| print "Running jobs" |
| |
| # Run the jobs to completion |
| ConnectorHelpers.start_job( livelink_job_id ) |
| ConnectorHelpers.start_job( documentum_job_id ) |
| ConnectorHelpers.start_job( meridio_job_id ) |
| ConnectorHelpers.start_job( share_job_id ) |
| |
| ConnectorHelpers.wait_job_complete( livelink_job_id ) |
| ConnectorHelpers.wait_job_complete( documentum_job_id ) |
| ConnectorHelpers.wait_job_complete( meridio_job_id ) |
| ConnectorHelpers.wait_job_complete( share_job_id ) |
| |
| # Wait until ingest has caught up |
| ConnectorHelpers.wait_for_ingest( ) |
| |
| print "Verifying visibility of ingested documents" |
| |
| # Livelink check first |
| ConnectorHelpers.search_check( [ "reference" ], None, [ build_livelink_url( ll_id1 ) ], username=llSearchUser, password=llSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "kidneys" ], None, [ build_livelink_url( ll_id3 ) ], username=llSearchUser, password=llSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "city" ], None, [ build_livelink_url( ll_id5 ) ], username=llSearchUser, password=llSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "interesting" ], None, [ build_livelink_url( ll_id6 ) ], username=llSearchUser, password=llSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "smelly" ], None, [ build_livelink_url( ll_id7 ) ], username=llSearchUser, password=llSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "good" ], None, [ build_livelink_url( ll_id2 ) ], username=llSearchUser, password=llSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "pub" ], None, [ build_livelink_url( ll_id4 ) ], username=llSearchUser, password=llSearchPassword, win_host=ad_win_host ) |
| |
| # Now, documentum check |
| ConnectorHelpers.search_check( [ "reference" ], None, [ build_documentum_url( dctm_id1 )], username=documentum_search_username, password=documentum_search_password, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "kidneys" ], None, [ build_documentum_url( dctm_id3 ) ], username=documentum_search_username, password=documentum_search_password, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "city" ], None, [ build_documentum_url( dctm_id5 )], username=documentum_search_username, password=documentum_search_password, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "interesting" ], None, [ build_documentum_url( dctm_id6 ) ], username=documentum_search_username, password=documentum_search_password, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "smelly" ], None, [ build_documentum_url( dctm_id7 ) ], username=documentum_search_username, password=documentum_search_password, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "good" ], None, [ build_documentum_url( dctm_id2 )], username=documentum_search_username, password=documentum_search_password, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "pub" ], None, [ build_documentum_url( dctm_id4 )], username=documentum_search_username, password=documentum_search_password, win_host=ad_win_host ) |
| |
| # Meridio check |
| ConnectorHelpers.search_check( [ "reference" ], None, [ make_meridio_url( m_id1 ) ], username=meridioSearchUser, password=meridioSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "kidneys" ], None, [ make_meridio_url( m_id3 ) ], username=meridioSearchUser, password=meridioSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "city" ], None, [ make_meridio_url( m_id5 ) ], username=meridioSearchUser, password=meridioSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "interesting" ], None, [ make_meridio_url( m_id6 ) ], username=meridioSearchUser, password=meridioSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "smelly" ], None, [ make_meridio_url( m_id7 ) ], username=meridioSearchUser, password=meridioSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "good" ], None, [ make_meridio_url( m_id2 ) ], username=meridioSearchUser, password=meridioSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "pub" ], None, [ make_meridio_url( m_id4 ) ], username=meridioSearchUser, password=meridioSearchPassword, win_host=ad_win_host ) |
| |
| # Share check |
| ConnectorHelpers.search_check( [ "reference" ], None, [ make_share_search_url( shr_id1 ) ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "kidneys" ], None, [ make_share_search_url( shr_id3 ) ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "city" ], None, [ make_share_search_url( shr_id5 ) ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "interesting" ], None, [ make_share_search_url( shr_id6 ) ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "smelly" ], None, [ make_share_search_url( shr_id7 ) ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "good" ], None, [ make_share_search_url( shr_id2 ) ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "pub" ], None, [ make_share_search_url( shr_id4 ) ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| |
| print "Disabling Livelink authority" |
| |
| auth_spec_xml = '<?xml version="1.0" encoding="UTF-8"?><configuration>' + \ |
| '<_PARAMETER_ name="Server name">foo</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="Server port">' + llServerPort + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="Server user name">' + llUser + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="Server password">' + obfuscatedllPassword + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="Livelink user name map">^p_lladmin@.*\\$=admin</_PARAMETER_>' + \ |
| '</configuration>' |
| ConnectorHelpers.change_auth_spec( "LivelinkConnection", auth_spec_xml ) |
| |
| print "Verifying visibility of ingested documents" |
| |
| # Everything should still be visible except for NON PUBLIC livelink documents |
| |
| # Livelink check first |
| ConnectorHelpers.search_check( [ "reference" ], None, [ ], username=llSearchUser, password=llSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "kidneys" ], None, [ ], username=llSearchUser, password=llSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "city" ], None, [ ], username=llSearchUser, password=llSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "interesting" ], None, [ ], username=llSearchUser, password=llSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "smelly" ], None, [ ], username=llSearchUser, password=llSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "good" ], None, [ ], username=llSearchUser, password=llSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "pub" ], None, [ ], username=llSearchUser, password=llSearchPassword, win_host=ad_win_host ) |
| |
| # Now, documentum check |
| ConnectorHelpers.search_check( [ "reference" ], None, [ build_documentum_url( dctm_id1 )], username=documentum_search_username, password=documentum_search_password, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "kidneys" ], None, [ build_documentum_url( dctm_id3 ) ], username=documentum_search_username, password=documentum_search_password, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "city" ], None, [ build_documentum_url( dctm_id5 )], username=documentum_search_username, password=documentum_search_password, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "interesting" ], None, [ build_documentum_url( dctm_id6 ) ], username=documentum_search_username, password=documentum_search_password, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "smelly" ], None, [ build_documentum_url( dctm_id7 ) ], username=documentum_search_username, password=documentum_search_password, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "good" ], None, [ build_documentum_url( dctm_id2 )], username=documentum_search_username, password=documentum_search_password, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "pub" ], None, [ build_documentum_url( dctm_id4 )], username=documentum_search_username, password=documentum_search_password, win_host=ad_win_host ) |
| |
| # Meridio check |
| ConnectorHelpers.search_check( [ "reference" ], None, [ make_meridio_url( m_id1 ) ], username=meridioSearchUser, password=meridioSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "kidneys" ], None, [ make_meridio_url( m_id3 ) ], username=meridioSearchUser, password=meridioSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "city" ], None, [ make_meridio_url( m_id5 ) ], username=meridioSearchUser, password=meridioSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "interesting" ], None, [ make_meridio_url( m_id6 ) ], username=meridioSearchUser, password=meridioSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "smelly" ], None, [ make_meridio_url( m_id7 ) ], username=meridioSearchUser, password=meridioSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "good" ], None, [ make_meridio_url( m_id2 ) ], username=meridioSearchUser, password=meridioSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "pub" ], None, [ make_meridio_url( m_id4 ) ], username=meridioSearchUser, password=meridioSearchPassword, win_host=ad_win_host ) |
| |
| # Share check |
| ConnectorHelpers.search_check( [ "reference" ], None, [ make_share_search_url( shr_id1 ) ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "kidneys" ], None, [ make_share_search_url( shr_id3 ) ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "city" ], None, [ make_share_search_url( shr_id5 ) ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "interesting" ], None, [ make_share_search_url( shr_id6 ) ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "smelly" ], None, [ make_share_search_url( shr_id7 ) ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "good" ], None, [ make_share_search_url( shr_id2 ) ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "pub" ], None, [ make_share_search_url( shr_id4 ) ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| |
| print "Disabling Documentum authority" |
| |
| auth_spec_xml = '<?xml version="1.0" encoding="UTF-8"?><configuration>' + \ |
| '<_PARAMETER_ name="Server name">' + llServerName + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="Server port">' + llServerPort + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="Server user name">' + llUser + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="Server password">' + obfuscatedllPassword + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="Livelink user name map">^p_lladmin@.*\\$=admin</_PARAMETER_>' + \ |
| '</configuration>' |
| ConnectorHelpers.change_auth_spec( "LivelinkConnection", auth_spec_xml ) |
| |
| |
| auth_spec_xml = '<?xml version="1.0" encoding="UTF-8"?><configuration>' + \ |
| '<_PARAMETER_ name="docbasename">foo</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="docbaseusername">' + documentum_username + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="docbasepassword">' + obfuscated_documentum_password + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="domain">' + documentum_domain + '</_PARAMETER_>' + \ |
| '</configuration>' |
| ConnectorHelpers.change_auth_spec( "DocumentumConnection", auth_spec_xml ) |
| |
| print "Verifying visibility of ingested documents" |
| |
| # All non-public Documentum documents should not show up anymore. |
| |
| # Livelink check first |
| ConnectorHelpers.search_check( [ "reference" ], None, [ build_livelink_url( ll_id1 ) ], username=llSearchUser, password=llSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "kidneys" ], None, [ build_livelink_url( ll_id3 ) ], username=llSearchUser, password=llSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "city" ], None, [ build_livelink_url( ll_id5 ) ], username=llSearchUser, password=llSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "interesting" ], None, [ build_livelink_url( ll_id6 ) ], username=llSearchUser, password=llSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "smelly" ], None, [ build_livelink_url( ll_id7 ) ], username=llSearchUser, password=llSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "good" ], None, [ build_livelink_url( ll_id2 ) ], username=llSearchUser, password=llSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "pub" ], None, [ build_livelink_url( ll_id4 ) ], username=llSearchUser, password=llSearchPassword, win_host=ad_win_host ) |
| |
| # Now, documentum check |
| ConnectorHelpers.search_check( [ "reference" ], None, [ ], username=documentum_search_username, password=documentum_search_password, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "kidneys" ], None, [ ], username=documentum_search_username, password=documentum_search_password, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "city" ], None, [ ], username=documentum_search_username, password=documentum_search_password, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "interesting" ], None, [ ], username=documentum_search_username, password=documentum_search_password, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "smelly" ], None, [ ], username=documentum_search_username, password=documentum_search_password, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "good" ], None, [ ], username=documentum_search_username, password=documentum_search_password, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "pub" ], None, [ ], username=documentum_search_username, password=documentum_search_password, win_host=ad_win_host ) |
| |
| # Meridio check |
| ConnectorHelpers.search_check( [ "reference" ], None, [ make_meridio_url( m_id1 ) ], username=meridioSearchUser, password=meridioSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "kidneys" ], None, [ make_meridio_url( m_id3 ) ], username=meridioSearchUser, password=meridioSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "city" ], None, [ make_meridio_url( m_id5 ) ], username=meridioSearchUser, password=meridioSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "interesting" ], None, [ make_meridio_url( m_id6 ) ], username=meridioSearchUser, password=meridioSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "smelly" ], None, [ make_meridio_url( m_id7 ) ], username=meridioSearchUser, password=meridioSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "good" ], None, [ make_meridio_url( m_id2 ) ], username=meridioSearchUser, password=meridioSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "pub" ], None, [ make_meridio_url( m_id4 ) ], username=meridioSearchUser, password=meridioSearchPassword, win_host=ad_win_host ) |
| |
| # Share check |
| ConnectorHelpers.search_check( [ "reference" ], None, [ make_share_search_url( shr_id1 ) ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "kidneys" ], None, [ make_share_search_url( shr_id3 ) ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "city" ], None, [ make_share_search_url( shr_id5 ) ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "interesting" ], None, [ make_share_search_url( shr_id6 ) ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "smelly" ], None, [ make_share_search_url( shr_id7 ) ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "good" ], None, [ make_share_search_url( shr_id2 ) ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "pub" ], None, [ make_share_search_url( shr_id4 ) ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| |
| print "Disabling Meridio authority" |
| |
| auth_spec_xml = '<?xml version="1.0" encoding="UTF-8"?><configuration>' + \ |
| '<_PARAMETER_ name="docbasename">' + documentum_docbase + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="docbaseusername">' + documentum_username + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="docbasepassword">' + obfuscated_documentum_password + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="domain">' + documentum_domain + '</_PARAMETER_>' + \ |
| '</configuration>' |
| ConnectorHelpers.change_auth_spec( "DocumentumConnection", auth_spec_xml ) |
| |
| auth_spec_xml = '<?xml version="1.0" encoding="UTF-8"?><configuration>' + \ |
| '<_PARAMETER_ name="DMWSServerProtocol">' + meridioProtocol + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="DMWSServerName">foo</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="DMWSServerPort">' + meridioServerPort + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="DMWSLocation">' + documentLocation + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="RMWSServerProtocol">' + meridioProtocol + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="RMWSServerName">foo</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="RMWSServerPort">' + meridioServerPort + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="RMWSLocation">' + recordLocation + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="MetaCartaWSServerProtocol">' +meridioProtocol+ '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="MetaCartaWSServerName=">'+meridioServerName+ '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="MetaCartaWSServerPort=">' +meridioServerPort+ '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="MetaCartaWSLocation=">' +metacartaWSLocation+ '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="UserName">' + meridioDomain+"\\"+meridioUser + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="Password">' + obfuscatedMeridioPassword + '</_PARAMETER_>' + \ |
| '</configuration>' |
| ConnectorHelpers.change_auth_spec( "MeridioConnection", auth_spec_xml ) |
| |
| print "Verifying visibility of ingested documents" |
| |
| # Should see NO meridio documents, not even public ones! |
| |
| # Livelink check first |
| ConnectorHelpers.search_check( [ "reference" ], None, [ build_livelink_url( ll_id1 ) ], username=llSearchUser, password=llSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "kidneys" ], None, [ build_livelink_url( ll_id3 ) ], username=llSearchUser, password=llSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "city" ], None, [ build_livelink_url( ll_id5 ) ], username=llSearchUser, password=llSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "interesting" ], None, [ build_livelink_url( ll_id6 ) ], username=llSearchUser, password=llSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "smelly" ], None, [ build_livelink_url( ll_id7 ) ], username=llSearchUser, password=llSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "good" ], None, [ build_livelink_url( ll_id2 ) ], username=llSearchUser, password=llSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "pub" ], None, [ build_livelink_url( ll_id4 ) ], username=llSearchUser, password=llSearchPassword, win_host=ad_win_host ) |
| |
| # Now, documentum check |
| ConnectorHelpers.search_check( [ "reference" ], None, [ build_documentum_url( dctm_id1 )], username=documentum_search_username, password=documentum_search_password, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "kidneys" ], None, [ build_documentum_url( dctm_id3 ) ], username=documentum_search_username, password=documentum_search_password, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "city" ], None, [ build_documentum_url( dctm_id5 )], username=documentum_search_username, password=documentum_search_password, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "interesting" ], None, [ build_documentum_url( dctm_id6 ) ], username=documentum_search_username, password=documentum_search_password, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "smelly" ], None, [ build_documentum_url( dctm_id7 ) ], username=documentum_search_username, password=documentum_search_password, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "good" ], None, [ build_documentum_url( dctm_id2 )], username=documentum_search_username, password=documentum_search_password, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "pub" ], None, [ build_documentum_url( dctm_id4 )], username=documentum_search_username, password=documentum_search_password, win_host=ad_win_host ) |
| |
| # Meridio check |
| ConnectorHelpers.search_check( [ "reference" ], None, [ ], username=meridioSearchUser, password=meridioSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "kidneys" ], None, [ ], username=meridioSearchUser, password=meridioSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "city" ], None, [ ], username=meridioSearchUser, password=meridioSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "interesting" ], None, [ ], username=meridioSearchUser, password=meridioSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "smelly" ], None, [ ], username=meridioSearchUser, password=meridioSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "good" ], None, [ ], username=meridioSearchUser, password=meridioSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "pub" ], None, [ ], username=meridioSearchUser, password=meridioSearchPassword, win_host=ad_win_host ) |
| |
| # Share check |
| ConnectorHelpers.search_check( [ "reference" ], None, [ make_share_search_url( shr_id1 ) ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "kidneys" ], None, [ make_share_search_url( shr_id3 ) ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "city" ], None, [ make_share_search_url( shr_id5 ) ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "interesting" ], None, [ make_share_search_url( shr_id6 ) ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "smelly" ], None, [ make_share_search_url( shr_id7 ) ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "good" ], None, [ make_share_search_url( shr_id2 ) ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "pub" ], None, [ make_share_search_url( shr_id4 ) ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| |
| print "Re-establishing Meridio authority" |
| |
| auth_spec_xml = '<?xml version="1.0" encoding="UTF-8"?><configuration>' + \ |
| '<_PARAMETER_ name="DMWSServerProtocol">' + meridioProtocol + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="DMWSServerName">'+ meridioServerName + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="DMWSServerPort">' + meridioServerPort + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="DMWSLocation">' + documentLocation + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="RMWSServerProtocol">' + meridioProtocol + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="RMWSServerName">' + meridioServerName + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="RMWSServerPort">' + meridioServerPort + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="RMWSLocation">' + recordLocation + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="MetaCartaWSServerProtocol">' +meridioProtocol+ '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="MetaCartaWSServerName">'+meridioServerName+ '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="MetaCartaWSServerPort">' +meridioServerPort+ '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="MetaCartaWSLocation">' +metacartaWSLocation+ '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="UserName">' + meridioDomain+"\\"+meridioUser + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="Password">' + obfuscatedMeridioPassword + '</_PARAMETER_>' + \ |
| '</configuration>' |
| ConnectorHelpers.change_auth_spec( "MeridioConnection", auth_spec_xml ) |
| |
| print "Disabling Active Directory authority" |
| |
| disable_ad_authority(perform_legacy_pass) |
| |
| print "Verifying visibility of ingested documents" |
| |
| # Livelink check first |
| ConnectorHelpers.search_check( [ "reference" ], None, [ build_livelink_url( ll_id1 ) ], username=llSearchUser, password=llSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "kidneys" ], None, [ build_livelink_url( ll_id3 ) ], username=llSearchUser, password=llSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "city" ], None, [ build_livelink_url( ll_id5 ) ], username=llSearchUser, password=llSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "interesting" ], None, [ build_livelink_url( ll_id6 ) ], username=llSearchUser, password=llSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "smelly" ], None, [ build_livelink_url( ll_id7 ) ], username=llSearchUser, password=llSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "good" ], None, [ build_livelink_url( ll_id2 ) ], username=llSearchUser, password=llSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "pub" ], None, [ build_livelink_url( ll_id4 ) ], username=llSearchUser, password=llSearchPassword, win_host=ad_win_host ) |
| |
| # Now, documentum check |
| ConnectorHelpers.search_check( [ "reference" ], None, [ build_documentum_url( dctm_id1 )], username=documentum_search_username, password=documentum_search_password, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "kidneys" ], None, [ build_documentum_url( dctm_id3 ) ], username=documentum_search_username, password=documentum_search_password, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "city" ], None, [ build_documentum_url( dctm_id5 )], username=documentum_search_username, password=documentum_search_password, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "interesting" ], None, [ build_documentum_url( dctm_id6 ) ], username=documentum_search_username, password=documentum_search_password, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "smelly" ], None, [ build_documentum_url( dctm_id7 ) ], username=documentum_search_username, password=documentum_search_password, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "good" ], None, [ build_documentum_url( dctm_id2 )], username=documentum_search_username, password=documentum_search_password, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "pub" ], None, [ build_documentum_url( dctm_id4 )], username=documentum_search_username, password=documentum_search_password, win_host=ad_win_host ) |
| |
| # Meridio check |
| ConnectorHelpers.search_check( [ "reference" ], None, [ make_meridio_url( m_id1 ) ], username=meridioSearchUser, password=meridioSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "kidneys" ], None, [ make_meridio_url( m_id3 ) ], username=meridioSearchUser, password=meridioSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "city" ], None, [ make_meridio_url( m_id5 ) ], username=meridioSearchUser, password=meridioSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "interesting" ], None, [ make_meridio_url( m_id6 ) ], username=meridioSearchUser, password=meridioSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "smelly" ], None, [ make_meridio_url( m_id7 ) ], username=meridioSearchUser, password=meridioSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "good" ], None, [ make_meridio_url( m_id2 ) ], username=meridioSearchUser, password=meridioSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "pub" ], None, [ make_meridio_url( m_id4 ) ], username=meridioSearchUser, password=meridioSearchPassword, win_host=ad_win_host ) |
| |
| # Share check |
| ConnectorHelpers.search_check( [ "reference" ], None, [ ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "kidneys" ], None, [ ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "city" ], None, [ ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "interesting" ], None, [ ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "smelly" ], None, [ ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "good" ], None, [ ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "pub" ], None, [ ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| |
| print "Reenabling ad authority" |
| |
| enable_ad_authority(perform_legacy_pass) |
| |
| print "Unregistering livelink authority" |
| |
| ConnectorHelpers.deregister_authorityconnector("com.metacarta.crawler.connectors.livelink.LivelinkAuthority") |
| # Restart tomcat, so we don't use existing authority handles |
| ConnectorHelpers.restart_tomcat() |
| time.sleep(60) |
| |
| # Do any search check; we should see a 401 error back from soap headnode (NOT a 500!) However, ambassador fights us here, so all that we see are 500 errors. |
| try: |
| ConnectorHelpers.search_check( [ "reference" ], None, [ ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| # Success is bad news! Should have had an exception |
| raise Exception("Search should not have succeeded with an unregistered authority!!") |
| except SOAPpy.Errors.HTTPError,e: |
| if str(e).find("500") == -1: |
| raise Exception("For an unregistered authority, we should have seen a 500 error, but we saw: %s" % str(e)) |
| |
| print "Reregistering livelink authority" |
| |
| ConnectorHelpers.register_authorityconnector("com.metacarta.crawler.connectors.livelink.LivelinkAuthority","LivelinkAuthority") |
| # Restart tomcat, so we don't use existing authority handles |
| ConnectorHelpers.restart_tomcat() |
| time.sleep(60) |
| |
| print "Turning on the 'backwards compatibility' switch" |
| |
| enable_service_protection() |
| |
| print "Checking that each individual user still gets data" |
| |
| # With no authorities actually dead, all of these should just return USERNOTFOUND for everything except the specified search user for that repository. |
| # So, all these searches should succeed as before. |
| |
| # Livelink check first |
| ConnectorHelpers.search_check( [ "reference" ], None, [ build_livelink_url( ll_id1 ) ], username=llSearchUser, password=llSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "kidneys" ], None, [ build_livelink_url( ll_id3 ) ], username=llSearchUser, password=llSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "city" ], None, [ build_livelink_url( ll_id5 ) ], username=llSearchUser, password=llSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "interesting" ], None, [ build_livelink_url( ll_id6 ) ], username=llSearchUser, password=llSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "smelly" ], None, [ build_livelink_url( ll_id7 ) ], username=llSearchUser, password=llSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "good" ], None, [ build_livelink_url( ll_id2 ) ], username=llSearchUser, password=llSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "pub" ], None, [ build_livelink_url( ll_id4 ) ], username=llSearchUser, password=llSearchPassword, win_host=ad_win_host ) |
| |
| # Now, documentum check |
| ConnectorHelpers.search_check( [ "reference" ], None, [ build_documentum_url( dctm_id1 )], username=documentum_search_username, password=documentum_search_password, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "kidneys" ], None, [ build_documentum_url( dctm_id3 ) ], username=documentum_search_username, password=documentum_search_password, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "city" ], None, [ build_documentum_url( dctm_id5 )], username=documentum_search_username, password=documentum_search_password, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "interesting" ], None, [ build_documentum_url( dctm_id6 ) ], username=documentum_search_username, password=documentum_search_password, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "smelly" ], None, [ build_documentum_url( dctm_id7 ) ], username=documentum_search_username, password=documentum_search_password, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "good" ], None, [ build_documentum_url( dctm_id2 )], username=documentum_search_username, password=documentum_search_password, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "pub" ], None, [ build_documentum_url( dctm_id4 )], username=documentum_search_username, password=documentum_search_password, win_host=ad_win_host ) |
| |
| # Meridio check |
| ConnectorHelpers.search_check( [ "reference" ], None, [ make_meridio_url( m_id1 ) ], username=meridioSearchUser, password=meridioSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "kidneys" ], None, [ make_meridio_url( m_id3 ) ], username=meridioSearchUser, password=meridioSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "city" ], None, [ make_meridio_url( m_id5 ) ], username=meridioSearchUser, password=meridioSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "interesting" ], None, [ make_meridio_url( m_id6 ) ], username=meridioSearchUser, password=meridioSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "smelly" ], None, [ make_meridio_url( m_id7 ) ], username=meridioSearchUser, password=meridioSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "good" ], None, [ make_meridio_url( m_id2 ) ], username=meridioSearchUser, password=meridioSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "pub" ], None, [ make_meridio_url( m_id4 ) ], username=meridioSearchUser, password=meridioSearchPassword, win_host=ad_win_host ) |
| |
| # Share check |
| ConnectorHelpers.search_check( [ "reference" ], None, [ make_share_search_url( shr_id1 ) ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "kidneys" ], None, [ make_share_search_url( shr_id3 ) ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "city" ], None, [ make_share_search_url( shr_id5 ) ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "interesting" ], None, [ make_share_search_url( shr_id6 ) ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "smelly" ], None, [ make_share_search_url( shr_id7 ) ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "good" ], None, [ make_share_search_url( shr_id2 ) ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| ConnectorHelpers.search_check( [ "pub" ], None, [ make_share_search_url( shr_id4 ) ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| |
| # Note that it is not currently possible with this setup to test the case for all authorities returning USERNOTFOUND, because the ad_authority_service would have to deny a user's existence |
| # even though AD authenticated the user, and I don't know how to fake it out otherwise. We might be able to do something if AD were not included in the authorization for a service |
| # however. |
| |
| print "Disabling livelink authority" |
| |
| # Disable livelink. This should make ALL queries fail now, with a 500. |
| |
| auth_spec_xml = '<?xml version="1.0" encoding="UTF-8"?><configuration>' + \ |
| '<_PARAMETER_ name="Server name">foo</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="Server port">' + llServerPort + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="Server user name">' + llUser + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="Server password">' + obfuscatedllPassword + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="Livelink user name map">^p_lladmin@.*\\$=admin</_PARAMETER_>' + \ |
| '</configuration>' |
| ConnectorHelpers.change_auth_spec( "LivelinkConnection", auth_spec_xml ) |
| |
| try: |
| ConnectorHelpers.search_check( [ "reference" ], None, [ build_livelink_url( ll_id1 ) ], username=llSearchUser, password=llSearchPassword, win_host=ad_win_host ) |
| # Success is bad news! Should have had an exception |
| raise Exception("Search should not have succeeded with a disabled livelink authority!!") |
| except SOAPpy.Errors.HTTPError,e: |
| if str(e).find("500") == -1: |
| raise Exception("For a disabled livelink authority, we should have seen a 500 error, but we saw: %s" % str(e)) |
| |
| try: |
| ConnectorHelpers.search_check( [ "reference" ], None, [ build_documentum_url( dctm_id1 )], username=documentum_search_username, password=documentum_search_password, win_host=ad_win_host ) |
| # Success is bad news! Should have had an exception |
| raise Exception("Search should not have succeeded with a disabled livelink authority!!") |
| except SOAPpy.Errors.HTTPError,e: |
| if str(e).find("500") == -1: |
| raise Exception("For a disabled livelink authority, we should have seen a 500 error, but we saw: %s" % str(e)) |
| |
| try: |
| ConnectorHelpers.search_check( [ "reference" ], None, [ make_meridio_url( m_id1 ) ], username=meridioSearchUser, password=meridioSearchPassword, win_host=ad_win_host ) |
| # Success is bad news! Should have had an exception |
| raise Exception("Search should not have succeeded with a disabled livelink authority!!") |
| except SOAPpy.Errors.HTTPError,e: |
| if str(e).find("500") == -1: |
| raise Exception("For a disabled livelink authority, we should have seen a 500 error, but we saw: %s" % str(e)) |
| |
| try: |
| ConnectorHelpers.search_check( [ "reference" ], None, [ make_share_search_url( shr_id1 ) ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| # Success is bad news! Should have had an exception |
| raise Exception("Search should not have succeeded with a disabled livelink authority!!") |
| except SOAPpy.Errors.HTTPError,e: |
| if str(e).find("500") == -1: |
| raise Exception("For a disabled livelink authority, we should have seen a 500 error, but we saw: %s" % str(e)) |
| |
| print "Reenabling livelink and disabling documentum" |
| |
| auth_spec_xml = '<?xml version="1.0" encoding="UTF-8"?><configuration>' + \ |
| '<_PARAMETER_ name="Server name">' + llServerName + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="Server port">' + llServerPort + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="Server user name">' + llUser + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="Server password">' + obfuscatedllPassword + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="Livelink user name map">^p_lladmin@.*\\$=admin</_PARAMETER_>' + \ |
| '</configuration>' |
| ConnectorHelpers.change_auth_spec( "LivelinkConnection", auth_spec_xml ) |
| |
| |
| auth_spec_xml = '<?xml version="1.0" encoding="UTF-8"?><configuration>' + \ |
| '<_PARAMETER_ name="docbasename">foo</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="docbaseusername">' + documentum_username + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="docbasepassword">' + obfuscated_documentum_password + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="domain">' + documentum_domain + '</_PARAMETER_>' + \ |
| '</configuration>' |
| ConnectorHelpers.change_auth_spec( "DocumentumConnection", auth_spec_xml ) |
| |
| try: |
| ConnectorHelpers.search_check( [ "reference" ], None, [ build_livelink_url( ll_id1 ) ], username=llSearchUser, password=llSearchPassword, win_host=ad_win_host ) |
| # Success is bad news! Should have had an exception |
| raise Exception("Search should not have succeeded with a disabled documentum authority!!") |
| except SOAPpy.Errors.HTTPError,e: |
| if str(e).find("500") == -1: |
| raise Exception("For a disabled documentum authority, we should have seen a 500 error, but we saw: %s" % str(e)) |
| |
| try: |
| ConnectorHelpers.search_check( [ "reference" ], None, [ build_documentum_url( dctm_id1 )], username=documentum_search_username, password=documentum_search_password, win_host=ad_win_host ) |
| # Success is bad news! Should have had an exception |
| raise Exception("Search should not have succeeded with a disabled documentum authority!!") |
| except SOAPpy.Errors.HTTPError,e: |
| if str(e).find("500") == -1: |
| raise Exception("For a disabled documentum authority, we should have seen a 500 error, but we saw: %s" % str(e)) |
| |
| try: |
| ConnectorHelpers.search_check( [ "reference" ], None, [ make_meridio_url( m_id1 ) ], username=meridioSearchUser, password=meridioSearchPassword, win_host=ad_win_host ) |
| # Success is bad news! Should have had an exception |
| raise Exception("Search should not have succeeded with a disabled documentum authority!!") |
| except SOAPpy.Errors.HTTPError,e: |
| if str(e).find("500") == -1: |
| raise Exception("For a disabled documentum authority, we should have seen a 500 error, but we saw: %s" % str(e)) |
| |
| try: |
| ConnectorHelpers.search_check( [ "reference" ], None, [ make_share_search_url( shr_id1 ) ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| # Success is bad news! Should have had an exception |
| raise Exception("Search should not have succeeded with a disabled documentum authority!!") |
| except SOAPpy.Errors.HTTPError,e: |
| if str(e).find("500") == -1: |
| raise Exception("For a disabled documentum authority, we should have seen a 500 error, but we saw: %s" % str(e)) |
| |
| print "Reenabling documentum and disabling meridio" |
| |
| auth_spec_xml = '<?xml version="1.0" encoding="UTF-8"?><configuration>' + \ |
| '<_PARAMETER_ name="docbasename">' + documentum_docbase + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="docbaseusername">' + documentum_username + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="docbasepassword">' + obfuscated_documentum_password + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="domain">' + documentum_domain + '</_PARAMETER_>' + \ |
| '</configuration>' |
| ConnectorHelpers.change_auth_spec( "DocumentumConnection", auth_spec_xml ) |
| |
| auth_spec_xml = '<?xml version="1.0" encoding="UTF-8"?><configuration>' + \ |
| '<_PARAMETER_ name="DMWSServerProtocol">' + meridioProtocol + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="DMWSServerName">foo</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="DMWSServerPort">' + meridioServerPort + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="DMWSLocation">' + documentLocation + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="RMWSServerProtocol">' + meridioProtocol + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="RMWSServerName">foo</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="RMWSServerPort">' + meridioServerPort + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="RMWSLocation">' + recordLocation + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="MetaCartaWSServerProtocol">' +meridioProtocol+ '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="MetaCartaWSServerName=">'+meridioServerName+ '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="MetaCartaWSServerPort=">' +meridioServerPort+ '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="MetaCartaWSLocation=">' +metacartaWSLocation+ '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="UserName">' + meridioDomain+"\\"+meridioUser + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="Password">' + obfuscatedMeridioPassword + '</_PARAMETER_>' + \ |
| '</configuration>' |
| ConnectorHelpers.change_auth_spec( "MeridioConnection", auth_spec_xml ) |
| |
| try: |
| ConnectorHelpers.search_check( [ "reference" ], None, [ build_livelink_url( ll_id1 ) ], username=llSearchUser, password=llSearchPassword, win_host=ad_win_host ) |
| # Success is bad news! Should have had an exception |
| raise Exception("Search should not have succeeded with a disabled meridio authority!!") |
| except SOAPpy.Errors.HTTPError,e: |
| if str(e).find("500") == -1: |
| raise Exception("For a disabled meridio authority, we should have seen a 500 error, but we saw: %s" % str(e)) |
| |
| try: |
| ConnectorHelpers.search_check( [ "reference" ], None, [ build_documentum_url( dctm_id1 )], username=documentum_search_username, password=documentum_search_password, win_host=ad_win_host ) |
| # Success is bad news! Should have had an exception |
| raise Exception("Search should not have succeeded with a disabled meridio authority!!") |
| except SOAPpy.Errors.HTTPError,e: |
| if str(e).find("500") == -1: |
| raise Exception("For a disabled meridio authority, we should have seen a 500 error, but we saw: %s" % str(e)) |
| |
| try: |
| ConnectorHelpers.search_check( [ "reference" ], None, [ make_meridio_url( m_id1 ) ], username=meridioSearchUser, password=meridioSearchPassword, win_host=ad_win_host ) |
| # Success is bad news! Should have had an exception |
| raise Exception("Search should not have succeeded with a disabled meridio authority!!") |
| except SOAPpy.Errors.HTTPError,e: |
| if str(e).find("500") == -1: |
| raise Exception("For a disabled meridio authority, we should have seen a 500 error, but we saw: %s" % str(e)) |
| |
| try: |
| ConnectorHelpers.search_check( [ "reference" ], None, [ make_share_search_url( shr_id1 ) ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| # Success is bad news! Should have had an exception |
| raise Exception("Search should not have succeeded with a disabled meridio authority!!") |
| except SOAPpy.Errors.HTTPError,e: |
| if str(e).find("500") == -1: |
| raise Exception("For a disabled meridio authority, we should have seen a 500 error, but we saw: %s" % str(e)) |
| |
| print "Reenabling meridio and disabling AD authority" |
| |
| auth_spec_xml = '<?xml version="1.0" encoding="UTF-8"?><configuration>' + \ |
| '<_PARAMETER_ name="DMWSServerProtocol">' + meridioProtocol + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="DMWSServerName">'+ meridioServerName + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="DMWSServerPort">' + meridioServerPort + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="DMWSLocation">' + documentLocation + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="RMWSServerProtocol">' + meridioProtocol + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="RMWSServerName">' + meridioServerName + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="RMWSServerPort">' + meridioServerPort + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="RMWSLocation">' + recordLocation + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="MetaCartaWSServerProtocol">' +meridioProtocol+ '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="MetaCartaWSServerName=">'+meridioServerName+ '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="MetaCartaWSServerPort=">' +meridioServerPort+ '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="MetaCartaWSLocation=">' +metacartaWSLocation+ '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="UserName">' + meridioDomain+"\\"+meridioUser + '</_PARAMETER_>' + \ |
| '<_PARAMETER_ name="Password">' + obfuscatedMeridioPassword + '</_PARAMETER_>' + \ |
| '</configuration>' |
| ConnectorHelpers.change_auth_spec( "MeridioConnection", auth_spec_xml ) |
| |
| disable_ad_authority(perform_legacy_pass) |
| |
| try: |
| ConnectorHelpers.search_check( [ "reference" ], None, [ build_livelink_url( ll_id1 ) ], username=llSearchUser, password=llSearchPassword, win_host=ad_win_host ) |
| # Success is bad news! Should have had an exception |
| raise Exception("Search should not have succeeded with a disabled active directory authority!!") |
| except SOAPpy.Errors.HTTPError,e: |
| if str(e).find("500") == -1: |
| raise Exception("For a disabled active directory authority, we should have seen a 500 error, but we saw: %s" % str(e)) |
| |
| try: |
| ConnectorHelpers.search_check( [ "reference" ], None, [ build_documentum_url( dctm_id1 )], username=documentum_search_username, password=documentum_search_password, win_host=ad_win_host ) |
| # Success is bad news! Should have had an exception |
| raise Exception("Search should not have succeeded with a disabled active directory authority!!") |
| except SOAPpy.Errors.HTTPError,e: |
| if str(e).find("500") == -1: |
| raise Exception("For a disabled active directory authority, we should have seen a 500 error, but we saw: %s" % str(e)) |
| |
| try: |
| ConnectorHelpers.search_check( [ "reference" ], None, [ make_meridio_url( m_id1 ) ], username=meridioSearchUser, password=meridioSearchPassword, win_host=ad_win_host ) |
| # Success is bad news! Should have had an exception |
| raise Exception("Search should not have succeeded with a disabled active directory authority!!") |
| except SOAPpy.Errors.HTTPError,e: |
| if str(e).find("500") == -1: |
| raise Exception("For a disabled active directory authority, we should have seen a 500 error, but we saw: %s" % str(e)) |
| |
| try: |
| ConnectorHelpers.search_check( [ "reference" ], None, [ make_share_search_url( shr_id1 ) ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| # Success is bad news! Should have had an exception |
| raise Exception("Search should not have succeeded with a disabled active directory authority!!") |
| except SOAPpy.Errors.HTTPError,e: |
| if str(e).find("500") == -1: |
| raise Exception("For a disabled active directory authority, we should have seen a 500 error, but we saw: %s" % str(e)) |
| |
| print "Re-enabling AD authority" |
| |
| enable_ad_authority(perform_legacy_pass) |
| |
| print "Unregistering livelink authority" |
| |
| ConnectorHelpers.deregister_authorityconnector("com.metacarta.crawler.connectors.livelink.LivelinkAuthority") |
| # Restart tomcat, so we don't use existing authority handles |
| ConnectorHelpers.restart_tomcat() |
| time.sleep(60) |
| |
| # Do any search check; we should see a 401 error back from soap headnode (NOT a 500!) But ambassador hides the true http error code. |
| try: |
| ConnectorHelpers.search_check( [ "reference" ], None, [ ], username=shareSearchUser, password=shareSearchPassword, win_host=ad_win_host ) |
| # Success is bad news! Should have had an exception |
| raise Exception("Search should not have succeeded with an unregistered authority!!") |
| except SOAPpy.Errors.HTTPError,e: |
| if str(e).find("500") == -1: |
| raise Exception("For an unregistered authority, we should have seen a 500 error, but we saw: %s" % str(e)) |
| |
| print "Reregistering livelink authority" |
| |
| ConnectorHelpers.register_authorityconnector("com.metacarta.crawler.connectors.livelink.LivelinkAuthority","LivelinkAuthority") |
| |
| print "Removing jobs" |
| |
| ConnectorHelpers.delete_job( share_job_id ) |
| ConnectorHelpers.delete_job( livelink_job_id ) |
| ConnectorHelpers.delete_job( documentum_job_id ) |
| ConnectorHelpers.delete_job( meridio_job_id ) |
| |
| ConnectorHelpers.wait_job_deleted( share_job_id ) |
| ConnectorHelpers.wait_job_deleted( livelink_job_id ) |
| ConnectorHelpers.wait_job_deleted( documentum_job_id ) |
| ConnectorHelpers.wait_job_deleted( meridio_job_id ) |
| |
| print "Removing repository connections" |
| |
| ConnectorHelpers.delete_repositoryconnection( "MeridioConnection" ) |
| ConnectorHelpers.delete_repositoryconnection( "DocumentumConnection" ) |
| ConnectorHelpers.delete_repositoryconnection( "LivelinkConnection" ) |
| ConnectorHelpers.delete_repositoryconnection( "ShareConnection" ) |
| |
| print "Removing authority connections" |
| |
| ConnectorHelpers.delete_authorityconnection( "MeridioConnection" ) |
| ConnectorHelpers.delete_authorityconnection( "DocumentumConnection" ) |
| ConnectorHelpers.delete_authorityconnection( "LivelinkConnection" ) |
| |
| |
| print "Turning off Active Directory" |
| |
| ConnectorHelpers.turn_off_ad( ad_domain_info, leave_multidomain = not perform_legacy_pass ) |
| |
| # Main |
| if __name__ == '__main__': |
| |
| # AD parameters |
| ad_group = "76" |
| if len(sys.argv) > 1: |
| ad_group = sys.argv[1] |
| perform_legacy_pass = False |
| if len(sys.argv) > 2 and sys.argv[2] == "legacy": |
| perform_legacy_pass = True |
| |
| ad_domain_info = sqa_domain_info.SQADomainInfo( ad_group ) |
| |
| print "Initializing to point to Documentum server" |
| initialize( "dctmsrvr.qa-ad-76.metacarta.com" ) |
| |
| print "Precleaning!" |
| preclean( ad_domain_info, perform_legacy_pass, print_errors=False ) |
| |
| print "Setup Connector Environment." |
| ConnectorHelpers.setup_connector_environment() |
| |
| print "Setting up file area." |
| copy_folder("/root/testfiles","/root/crawlarea") |
| |
| # Enable CF security |
| ConnectorHelpers.enable_connector_framework( ) |
| |
| print "Setting up license." |
| sqatools.appliance.install_license( |
| extra_services=["livelinkConnector", "documentumConnector", "meridioConnector", "shareConnector"], |
| detect_gdms=True) |
| |
| |
| ConnectorHelpers.create_crawler_user( username, password ) |
| ConnectorHelpers.define_gts_outputconnection( ) |
| |
| |
| print "Adding test documents to repositories." |
| |
| # Add some docs to the livelink repository |
| ll_id1 = add_livelink_document(llServerName, llServerPort, llUser, llPassword, "TestDocs", "f001", "/root/crawlarea/testfiles/f001.txt") |
| ll_id2 = add_livelink_document(llServerName, llServerPort, llUser, llPassword, "TestDocs", "f002", "/root/crawlarea/testfiles/f002.txt") |
| ll_id3 = add_livelink_document(llServerName, llServerPort, llUser, llPassword, "TestDocs", "f003", "/root/crawlarea/testfiles/f003.txt") |
| ll_id4 = add_livelink_document(llServerName, llServerPort, llUser, llPassword, "TestDocs", "f004", "/root/crawlarea/testfiles/f004.txt") |
| ll_id5 = add_livelink_document(llServerName, llServerPort, llUser, llPassword, "TestDocs", "f005", "/root/crawlarea/testfiles/f005.txt") |
| ll_id6 = add_livelink_document(llServerName, llServerPort, llUser, llPassword, "TestDocs", "f006", "/root/crawlarea/testfiles/f006.txt") |
| ll_id7 = add_livelink_document(llServerName, llServerPort, llUser, llPassword, "TestDocs", "f007", "/root/crawlarea/testfiles/f007.txt") |
| |
| # Same for documentum respository |
| dctm_id1 = add_documentum_document(documentum_docbase, documentum_domain, documentum_username, documentum_password, "/TestDocs", "f001.txt", "/root/crawlarea/testfiles/f001.txt") |
| dctm_id2 = add_documentum_document(documentum_docbase, documentum_domain, documentum_username, documentum_password, "/TestDocs", "f002.txt", "/root/crawlarea/testfiles/f002.txt") |
| dctm_id3 = add_documentum_document(documentum_docbase, documentum_domain, documentum_username, documentum_password, "/TestDocs", "f003.txt", "/root/crawlarea/testfiles/f003.txt") |
| dctm_id4 = add_documentum_document(documentum_docbase, documentum_domain, documentum_username, documentum_password, "/TestDocs", "f004.txt", "/root/crawlarea/testfiles/f004.txt") |
| dctm_id5 = add_documentum_document(documentum_docbase, documentum_domain, documentum_username, documentum_password, "/TestDocs", "f005.txt", "/root/crawlarea/testfiles/f005.txt") |
| dctm_id6 = add_documentum_document(documentum_docbase, documentum_domain, documentum_username, documentum_password, "/TestDocs", "f006.txt", "/root/crawlarea/testfiles/f006.txt") |
| dctm_id7 = add_documentum_document(documentum_docbase, documentum_domain, documentum_username, documentum_password, "/TestDocs", "f007.txt", "/root/crawlarea/testfiles/f007.txt") |
| |
| # Same for meridio repository |
| m_id1 = add_meridio_document(meridioDocURL,meridioRecURL,meridioDomainUser,meridioPassword,"/Testing/TestDocs","/root/crawlarea/testfiles/","f001.txt","f001") |
| m_id2 = add_meridio_document(meridioDocURL,meridioRecURL,meridioDomainUser,meridioPassword,"/Testing/TestDocs","/root/crawlarea/testfiles/","f002.txt","f002") |
| m_id3 = add_meridio_document(meridioDocURL,meridioRecURL,meridioDomainUser,meridioPassword,"/Testing/TestDocs","/root/crawlarea/testfiles/","f003.txt","f003") |
| m_id4 = add_meridio_document(meridioDocURL,meridioRecURL,meridioDomainUser,meridioPassword,"/Testing/TestDocs","/root/crawlarea/testfiles/","f004.txt","f004") |
| m_id5 = add_meridio_document(meridioDocURL,meridioRecURL,meridioDomainUser,meridioPassword,"/Testing/TestDocs","/root/crawlarea/testfiles/","f005.txt","f005") |
| m_id6 = add_meridio_document(meridioDocURL,meridioRecURL,meridioDomainUser,meridioPassword,"/Testing/TestDocs","/root/crawlarea/testfiles/","f006.txt","f006") |
| m_id7 = add_meridio_document(meridioDocURL,meridioRecURL,meridioDomainUser,meridioPassword,"/Testing/TestDocs","/root/crawlarea/testfiles/","f007.txt","f007") |
| |
| # Same for share connector |
| shr_id1 = add_share_document(jcifsServerName, jcifsUser, jcifsPassword, jcifsShare+"/TestDocs/f001.txt", "/root/crawlarea/testfiles/f001.txt") |
| shr_id2 = add_share_document(jcifsServerName, jcifsUser, jcifsPassword, jcifsShare+"/TestDocs/f002.txt", "/root/crawlarea/testfiles/f002.txt") |
| shr_id3 = add_share_document(jcifsServerName, jcifsUser, jcifsPassword, jcifsShare+"/TestDocs/f003.txt", "/root/crawlarea/testfiles/f003.txt") |
| shr_id4 = add_share_document(jcifsServerName, jcifsUser, jcifsPassword, jcifsShare+"/TestDocs/f004.txt", "/root/crawlarea/testfiles/f004.txt") |
| shr_id5 = add_share_document(jcifsServerName, jcifsUser, jcifsPassword, jcifsShare+"/TestDocs/f005.txt", "/root/crawlarea/testfiles/f005.txt") |
| shr_id6 = add_share_document(jcifsServerName, jcifsUser, jcifsPassword, jcifsShare+"/TestDocs/f006.txt", "/root/crawlarea/testfiles/f006.txt") |
| shr_id7 = add_share_document(jcifsServerName, jcifsUser, jcifsPassword, jcifsShare+"/TestDocs/f007.txt", "/root/crawlarea/testfiles/f007.txt") |
| |
| # In case there is clock skew, sleep a minute |
| wait_for_meridio(meridioDocURL,meridioRecURL,meridioDomainUser,meridioPassword) |
| |
| # In case there is clock skew, sleep a minute |
| wait_for_documentum(documentum_docbase, documentum_domain, documentum_username, documentum_password) |
| |
| # In case there is clock skew, sleep a minute |
| wait_for_livelink(llServerName, llServerPort, llUser, llPassword) |
| |
| # In case there is clock skew, sleep a minute |
| wait_for_share(jcifsServerName, jcifsUser, jcifsPassword) |
| |
| run_ad_test_part( ad_domain_info, False ) |
| if perform_legacy_pass: |
| ConnectorHelpers.select_legacy_mode() |
| run_ad_test_part( ad_domain_info, True ) |
| ConnectorHelpers.cancel_legacy_mode() |
| |
| print "Cleaning up files from repository" |
| |
| # Clean up the documents we dumped into the share test area |
| for docid in [shr_id1,shr_id2,shr_id3,shr_id4,shr_id5,shr_id6,shr_id7]: |
| remove_share_document(jcifsServerName, jcifsUser, jcifsPassword, docid ) |
| |
| # Clean up the documents we dumped into the folders on livelink |
| for docname in [ "TestDocs/f001", "TestDocs/f002", "TestDocs/f003", "TestDocs/f004", "TestDocs/f005", |
| "TestDocs/f006", "TestDocs/f007" ]: |
| remove_livelink_document(llServerName, llServerPort, llUser, llPassword, docname ) |
| |
| # Delete the documents we put into Documentum that are still there |
| for file in [ "f001.txt", "f002.txt", "f003.txt", "f004.txt", "f005.txt", "f006.txt", "f007.txt" ]: |
| remove_documentum_document(documentum_docbase,documentum_domain,documentum_username,documentum_password,"/TestDocs",file) |
| |
| # Clean up the documents we dumped into the folders on meridio |
| for docid in [m_id1,m_id2,m_id3,m_id4,m_id5,m_id6,m_id7]: |
| remove_meridio_document(meridioDocURL,meridioRecURL,meridioDomainUser,meridioPassword,docid) |
| |
| print "Deleting crawl user" |
| |
| ConnectorHelpers.delete_gts_outputconnection( ) |
| ConnectorHelpers.delete_crawler_user( username ) |
| |
| # Clean up temporary folder |
| delete_folder("/root/crawlarea") |
| LicenseMakerClient.revoke_license() |
| |
| ConnectorHelpers.teardown_connector_environment( ) |
| |
| print "Multiauthority tests PASSED" |