Search Results

Search found 14032 results on 562 pages for 'django email'.

Page 403/562 | < Previous Page | 399 400 401 402 403 404 405 406 407 408 409 410  | Next Page >

  • Examining ASP.NET's Membership, Roles, and Profile - Part 18

    Membership, in a nutshell, is a framework build into the .NET Framework that supports creating, authenticating, deleting, and modifying user account information. Each user account has a set of core properties: username, password, email, a security question and answer, whether or not the account has been approved, whether or not the user is locked out of the system, and so on. These user-specific properties are certainly helpful, but they're hardly exhaustive - it's not uncommon for an application to need to track additional user-specific properties. For example, an online messageboard site might want to also also associate a signature, homepage URL, and IM address with each user account.There are two ways to associate

    Read the article

  • +2,4% de spams en février en France, soit 83,9% des emails échangés, d'après le dernier rapport mensuel Symantec

    +2,4% de spams en février en France, soit 83,9% des emails échangés, d'après le dernier rapport mensuel Symantec Symantec vient de dévoiler les résultats de son rapport mensuel de sécurité MessageLabs Intelligence. Depuis la fin janvier 2011, MessageLabs Intelligence a observé d'importants volumes d'attaques collaboratives qui utilisent des techniques précises et très ciblées : différentes familles de malwares ont été utilisées de manière très agressive pour mener des attaques simultanées via l'utilisation de techniques de propagation, renforçant la probabilité d'une origine commune pour ces emails infectés. L'analyse de Symantec révèle qu'en février 2011, 1 email sur 290,1 contenait un maliciel, contre 1 sur 364,8...

    Read the article

  • System.Device.Location.GeoLocation

    - by Aligned
    Originally posted on: http://geekswithblogs.net/Aligned/archive/2013/06/26/system.device.location.geolocation.aspxA co-worker (Scott) sent out this email and it was so good I asked him if I could share it with all of you. I changed the latitude and longitude to random locations to protect the innocent. “Stumbled across this method this morning while coding all the math out by hand to calculate distances. This one is definitely worth filing away for future reference, saved me a ton of work. This was added in v4 of the framework, and is in the core framework install, so should work in services as well as client applications. var location1 = new GeoCoordinate(40.102, -94.788171); var location2 = new GeoCoordinate(50.0011, -96.699148); // distance shown is straight line meters. Console.WriteLine(location1.GetDistanceTo(location2)); Console.ReadKey();   http://msdn.microsoft.com/en-us/library/system.device.location.geocoordinate.getdistanceto(v=vs.100).aspx http://en.wikipedia.org/wiki/Haversine_formula”

    Read the article

  • What plug in or module to use with WordPress? [migrated]

    - by Qacro
    I am developing travel website where users can search and book their travel deal. It goes like this: Providers are creating their travel deals (same as some blogger create blog in WordPress); Users book wanted travel deals; Providers, who have their account where they can see if users book their deal, are notified by the email and sms about just booked (sold) deal. Site is going to be developed using WordPress. Is there any plugin or module that I can use to accomplish this, or at least something similar to reconfigure and not to take this process from scratch?

    Read the article

  • eSTEP TechCast - Oracle OpenWorls Systems Update - Material available

    - by Cinzia Mascanzoni
    Thanks to those of you who attended the TechCast on "Oracle OpenWorld Systems Update".  The materials (presentation, replay) from the TechCast are now available for all of you via our eSTEP portal.  You will need to provide your email address and the pin below to access the downloads. Link to the portal is shown below. URL: http://launch.oracle.com/ PIN: eSTEP_2011 The downloads can be found under tab Events --> TechCast. Feel free to explore also the other delivered TechCasts and more useful information under the Download and Links tab.

    Read the article

  • Dev Connections / VS Launch April 2010 &ndash; Code!

    Just returned from the VS Launch last week, and as promised here is the code for my sessions. I will post a separate entry with all the code for my Azure Tutorial which was on Thursday. And, as always, if you are looking for something in particular and cant find it here, just drop me an email! AppFabric Access Control http://www.dasblonde.net/downloads/AccessControlSamples.zip Samples for both WCF/REST samples and web resources such as Web Form and ASHX Samples include a complete object model...Did you know that DotNetSlackers also publishes .net articles written by top known .net Authors? We already have over 80 articles in several categories including Silverlight. Take a look: here.

    Read the article

  • I believe my solution is better than my boss's, so should I ignore him?

    - by mahen23
    I'm working with php and sql. I think that my method of implementing functions is better than what my boss proposes. Just now he explained me how to do a check on a list of email addresses, and I do not like his idea. I proposed mine which is better and quicker to implement, but he disagreed. Now I think I will go ahead and implement my idea, because his idea was not clear enough to me. Do you think he will be mad?

    Read the article

  • Webcam Q&A page with guest "speakers" ideas?

    - by myladeybugg
    I want to host one way webcam Q&A's/AMA's and embed it on my sites webpage. I must be able to have specified hosts for these Q&A's connect quickly and easily to the webpage, and read user posted messages (questions) for interaction. I know there are some systems out there, like tinychat, but I'm unaware if there is anything exactly used for what I am looking for. Perhaps requiring a specific account/password before allowing streaming on the page, where I can email the host a password or directions to create an account to begin live streaming. Most of these people doing the question and answers on webcam will have little technical knowledge, so extra cookie points goes to ease of use! Thanks for ideas in advance! PS: I apologize if this is the incorrect section for posting this question, this is my first.

    Read the article

  • eSTEP TechCast - December 2012 Material available

    - by uwes
    Dear Partners,We would like to extend our sincere thanks to those of you who attended our TechCast on "Innovations with Oracle Solaris Cluster 4". The materials (presentation, replay) from the TechCast are now available for all of you via our eSTEP portal.  You will need to provide your email address and the pin below to access the downloads. Link to the portal is shown below.URL: http://launch.oracle.com/PIN: eSTEP_2011The downloads can be found under tab Events --> TechCast.Feel free to explore also the other delivered TechCasts and more useful information under the Download and Links tab. Any feedback is appreciated to help us improve the service and information we deliver.Thanks and best regards,Partner HW Enablement EMEA

    Read the article

  • Does the direction of storage make us bad data citizens?

    - by simonsabin
      My career started at a company where we hardly had email, the network was a 10base2 affair with cables running all around the office. You used floppy disks and the thought of a GB of data was absurd. You had to look after every byte and only keep what you really needed. Whilst the cost of the spinning disks gradually falls the cost and size of flash storage continues to plummet. The new Crucial SSD is £380 for 1TB I can now keep 128GB of data on a SD card the size of my finger. It only costs...(read more)

    Read the article

  • DropVox Records Voice Memos Right to Your Dropbox Account

    - by Jason Fitzpatrick
    DropVox is a clever and highly specialized application that, quite effectively, turns your iOS device into a voice recorder with Dropbox-based storage. Install the app, launch it, hit the record button, and your recording is uploaded to your Dropbox account in .m4a format as soon as you’re finished creating it. You can also configure DropVox to start recording immediately after launch and to continue recording if the device is locked or other applications are in use. Hit up the link to grab a copy. DropVox is currently $0.99 (50% off for a limited time) and works on the iPhone, iPad, and iPod Touch with microphone attached. DropVox [via Download Squad] HTG Explains: What’s the Difference Between the Windows 7 HomeGroups and XP-style Networking?Internet Explorer 9 Released: Here’s What You Need To KnowHTG Explains: How Does Email Work?

    Read the article

  • Renaming site, moving domain after 3 yrs. Should I reconsider?

    - by user6162
    After recently announcing it, one of my readers with a background in website management sent me an email saying that I should reconsider moving my domain from [keyword]news.org to [same keyword]lab.com. It is a content-heavy news site around products that I hope to eventually build into a more comprehensive authority for the [keyword] industry I'm covering w/ B2B services, merchandise, etc. The current domain is a bit generic & I think the new one will be more marketable. Relevant stats: 320k-350k pv's/month Google brings in 39% and Yahoo/Bing 4% of traffic 10-11% of monthly search strings contains " news" SEOMoz Open Site Explorer stats: Page authority: 65/100 Domain authority: 58/100 Linking root domains: 226 Total links: 35,700 I am familiar with what I need to do as far as 301 redirects, etc. I was assuming that I'd be ok after following Google's recommended procedures but now I am not so sure.

    Read the article

  • Software purchases & accounts issue

    - by user1735003
    I have installed 13.10 on a new computer and want to tranfer my purchase (Braid) there. I have read this page about how to do this. However, when I log in to https://software-center.ubuntu.com/subscriptions, nothing appears. My guess is that when I purchased this game, I used an older email address than the one I am currently using. Ideally I would like to be able to transfer this purchase to my current ubuntu one account. Or, if this is not possible, at least to have a chance to know with which account this purchase has been done so I can have a try to reinstall it somewhere else. NB: In the Ubuntu Software Center on my older computer the game is still there and marked as "already purchased". EDIT: This is not an upgrade issue, as my old computer has not been upgraded to 13.10, and my newer computer is, well, new, 13.10 being its first OS. Note that I don't see my purchases on the software center web site on my old as well as my new computer, which makes sense.

    Read the article

  • eSTEP TechCast - October-Special 2012 Material available

    - by uwes
    Dear Partners,We would like to extend our sincere thanks to those of you who attended our TechCast on "Oracle OpenWorld Systems Update". The materials (presentation, replay) from the TechCast are now available for all of you via our eSTEP portal.  You will need to provide your email address and the pin below to access the downloads. Link to the portal is shown below.URL: http://launch.oracle.com/PIN: eSTEP_2011The downloads can be found under tab Events --> TechCast.Feel free to explore also the other delivered TechCasts and more useful information under the Download and Links tab. Any feedback is appreciated to help us improve the service and information we deliver.Thanks and best regards,Partner HW Enablement EMEA

    Read the article

  • eSTEP TechCast - December 2012 Material Available

    - by Cinzia Mascanzoni
    The materials (presentation, replay) from the TechCast on "Innovations with Oracle Solaris Cluster 4" are now available for all of you via our eSTEP portal.  You will need to provide your email address and the pin below to access the downloads. Link to the portal is shown below. URL: http://launch.oracle.com/ PIN: eSTEP_2011 The downloads can be found under tab Events --> TechCast. Feel free to explore also the other delivered TechCasts and more useful information under the Download and Links tab. Any feedback is appreciated to help us improve the service and information we deliver.

    Read the article

  • AZGroups.org Postcard Idea

    VistaPrint.com is a place that prints very cheap (free sometimes) business cards and post cards. I’ve used them in the past for my user group business cards. The printing is free, but you have to pay fro shipping, and they usually have a VistaPrint Logo on them. For community stuff, it’s great. I received an email this morning about a free post card offer, and I thought I would put together a post card that promotes the AZGroups.org calendar. This calendar is meant to be a simple calendar...Did you know that DotNetSlackers also publishes .net articles written by top known .net Authors? We already have over 80 articles in several categories including Silverlight. Take a look: here.

    Read the article

  • unable to clean intsall

    - by pkb
    I have downloaded an ISO file of UBANTU 12.10 x86 from the official website (www.ubantu.com). When I tried to install it everything was going good till I got the error message something like "the media you are using is probably currupt or you have an hard disk error . It did't told me what to do. I am already running WINDOW 7 ultimate in my pc and it is running fine i have tested my hard disk for error and no errors was found by "system mechanic pro 11" . after that i tried to install my WINDOW 7 on the same partition and it was successful . Even now I am unable to install UBANTU. It is my first experience with UBANTU so I don't know what to do. please guide me . my email is [email protected]

    Read the article

  • Is there any way around the field-of-use restrictions in Java?

    - by Muton
    Current field-of-use restrictions defined in "Oracle Binary Code License Agreement for the Java SE Platform Products" prohibit its use in embedded systems. "General Purpose Desktop Computers and Servers" means computers, including desktop and laptop computers, or servers, used for general computing functions under end user control (such as but not specifically limited to email, general purpose Internet browsing, and office suite productivity tools). The use of Software in systems and solutions that provide dedicated functionality (other than as mentioned above) or designed for use in embedded or function-specific software applications... are excluded from this definition and not licensed under this Agreement. Do these restrictions also apply to OpenJDK and other possible implementations? Is the only way to use Java in such an environment to acquire a separate license from Oracle?

    Read the article

  • Do you sign each of your source files with your name? [duplicate]

    - by regularfry
    Possible Duplicate: How do you keep track of the authors of code? One of my colleagues is in the habit of putting his name and email address in the head of each source file he works on, as author metadata. I am not; I prefer to rely on source control to tell me who I should be speaking to about a given set of functionality. Should I also be signing files I work on for any other reasons? Do you? If so, why? To be clear, this is in addition to whatever metadata for copyright and licensing information is included, and applies to both open sourced and proprietary code.

    Read the article

  • eSTEP TechCast - November 2013 Material available

    - by mseika
    Dear Partners,We would like to extend our sincere thanks to those of you who attended our TechCast on "The Operational Management benefits of Engineered Systems". The materials (presentation, replay) from the TechCast are now available for all of you via our eSTEP portal.  You will need to provide your email address and the pin below to access the downloads. Link to the portal is shown below.URL: http://launch.oracle.com/PIN: eSTEP_2011The material can be found under tab eSTEP TechCast.  Feel free to explore also the other delivered TechCasts and more useful information under the Download and Links tab. Any feedback is appreciated to help us improve the service and information we deliver.Thanks and best regards,Partner HW Enablement EMEA

    Read the article

  • Getting Started With Silverlight: A Path Through The Learning Material

    I often receive email saying, more or less, I am starting Silverlight, can you tell me what to read first. We are working hard on creating a path through all the material for Getting Started. For now, Id recommend the following: 1. Go to the GetStarted page and download the components you need 2. Work your way [...]...Did you know that DotNetSlackers also publishes .net articles written by top known .net Authors? We already have over 80 articles in several categories including Silverlight. Take a look: here.

    Read the article

  • Calling the Interviewer after the interview [closed]

    - by czchlong
    It's been a week after I had an interview with a bank. They told my recruiter that I had done well and it is looking good for me. However, it's been a week and my recruiter has not been able to reach any of them for feedback and neither have I heard anything, although they did not say to me or my recruiter that I didn't get the job. My recruiter has placed numerous people with this bank with other managers and never with this one, so my recruiter has no clue what's going on. I have already sent an email, however I have not gotten a response. Would it be appropriate for me to call my interviewer and ask for some feedback?

    Read the article

  • Getting Silverlight Questions Answered Effectively

    The single best place to get your questions answered about Silverlight are the Silverlight Forums.   Now, I know that forums are often a companys way of saving money on customer service, but the dev team and the Community PMs & Evangelists monitor these forums carefully, so it really is a lot quicker than sending email. That [...]...Did you know that DotNetSlackers also publishes .net articles written by top known .net Authors? We already have over 80 articles in several categories including Silverlight. Take a look: here.

    Read the article

  • Primavera P6 Cloud ??!P6 R8.3.2????!

    - by hhata
    ????Primavera P6 Enterprise Project Portfolio Management (EPPM) ????? 8.3.2???????????????????????????(SaaS)????????P6????????????????????SaaS???????????????????????P6??????????????????????????·???????????????????????????TCO(Total Cost of Ownership)???????????????OS?????????????????????Primavera?????????P6??????????????????? ??????PPM????????????????????????????? [????] ??????????????????????????????????????????????? [???] TCO????????????PPM????????????????????????????? [??] ?????????????????????????????????????????? [????] HW????????????????P6???????????????????????????? Primavera P6 ????????????????????????: Primavera P6 EPPM Primavera P6 Professional Primavera EPPM Web Services Primavera P6 Team Member Primavera Team Member for iPhone and iPad Primavera P6 Email Statusing Primavera P6 Progress Reporter Document Management BI Publisher WebLogic Application Server P6 Cloud Connect Primavera P6 Professional ????????????????????????????????P6??????????????P6 Cloud Connect???P6??????????????????P6????????????? ???iPad?iPhone???????Team Member?????????????????P6 Cloud??????????????????????????????????P6 Cloud?????Primavera Unifier??????????????????????? P6 Cloud?????????1???????1???????????????????????????????(????)???????????? ????????????Primavera ????????Primavera ????·?????????:??(03-6834-5241/[email protected])?????????????

    Read the article

  • Python script is exiting with no output and I have no idea why

    - by Adam Tuttle
    I'm attempting to debug a Subversion post-commit hook that calls some python scripts. What I've been able to determine so far is that when I run post-commit.bat manually (I've created a wrapper for it to make it easier) everything succeeds, but when SVN runs it one particular step doesn't work. We're using CollabNet SVNServe, which I know from the documentation removes all environment variables. This had caused some problems earlier, but shouldn't be an issue now. Before Subversion calls a hook script, it removes all variables - including $PATH on Unix, and %PATH% on Windows - from the environment. Therefore, your script can only run another program if you spell out that program's absolute name. The relevant portion of post-commit.bat is: echo -------------------------- >> c:\svn-repos\company\hooks\svn2ftp.out.log set SITENAME=staging set SVNPATH=branches/staging/wwwroot/ "C:\Python3\python.exe" C:\svn-repos\company\hooks\svn2ftp.py ^ --svnUser="svnusername" ^ --svnPass="svnpassword" ^ --ftp-user=ftpuser ^ --ftp-password=ftppassword ^ --ftp-remote-dir=/ ^ --access-url=svn://10.0.100.6/company ^ --status-file="C:\svn-repos\company\hooks\svn2ftp-%SITENAME%.dat" ^ --project-directory=%SVNPATH% "staging.company.com" %1 %2 >> c:\svn-repos\company\hooks\svn2ftp.out.log echo -------------------------- >> c:\svn-repos\company\hooks\svn2ftp.out.log When I run post-commit.bat manually, for example: post-commit c:\svn-repos\company 12345, I see output like the following in svn2ftp.out.log: -------------------------- args1: c:\svn-repos\company args0: staging.company.com abspath: c:\svn-repos\company project_dir: branches/staging/wwwroot/ local_repos_path: c:\svn-repos\company getting youngest revision... done, up-to-date -------------------------- However, when I commit something to the repo and it runs automatically, the output is: -------------------------- -------------------------- svn2ftp.py is a bit long, so I apologize but here goes. I'll have some notes/disclaimers about its contents below it. #!/usr/bin/env python """Usage: svn2ftp.py [OPTION...] FTP-HOST REPOS-PATH Upload to FTP-HOST changes committed to the Subversion repository at REPOS-PATH. Uses svn diff --summarize to only propagate the changed files Options: -?, --help Show this help message. -u, --ftp-user=USER The username for the FTP server. Default: 'anonymous' -p, --ftp-password=P The password for the FTP server. Default: '@' -P, --ftp-port=X Port number for the FTP server. Default: 21 -r, --ftp-remote-dir=DIR The remote directory that is expected to resemble the repository project directory -a, --access-url=URL This is the URL that should be used when trying to SVN export files so that they can be uploaded to the FTP server -s, --status-file=PATH Required. This script needs to store the last successful revision that was transferred to the server. PATH is the location of this file. -d, --project-directory=DIR If the project you are interested in sending to the FTP server is not under the root of the repository (/), set this parameter. Example: -d 'project1/trunk/' This should NOT start with a '/'. 2008.5.2 CKS Fixed possible Windows-related bug with tempfile, where the script didn't have permission to write to the tempfile. Replaced this with a open()-created file created in the CWD. 2008.5.13 CKS Added error logging. Added exception for file-not-found errors when deleting files. 2008.5.14 CKS Change file open to 'rb' mode, to prevent Python's universal newline support from stripping CR characters, causing later comparisons between FTP and SVN to report changes. """ try: import sys, os import logging logging.basicConfig( level=logging.DEBUG, format='%(asctime)s %(levelname)s %(message)s', filename='svn2ftp.debug.log', filemode='a' ) console = logging.StreamHandler() console.setLevel(logging.ERROR) logging.getLogger('').addHandler(console) import getopt, tempfile, smtplib, traceback, subprocess from io import StringIO import pysvn import ftplib import inspect except Exception as e: logging.error(e) #capture the location of the error frame = inspect.currentframe() stack_trace = traceback.format_stack(frame) logging.debug(stack_trace) print(stack_trace) #end capture sys.exit(1) #defaults host = "" user = "anonymous" password = "@" port = 21 repo_path = "" local_repos_path = "" status_file = "" project_directory = "" remote_base_directory = "" toAddrs = "[email protected]" youngest_revision = "" def email(toAddrs, message, subject, fromAddr='[email protected]'): headers = "From: %s\r\nTo: %s\r\nSubject: %s\r\n\r\n" % (fromAddr, toAddrs, subject) message = headers + message logging.info('sending email to %s...' % toAddrs) server = smtplib.SMTP('smtp.company.com') server.set_debuglevel(1) server.sendmail(fromAddr, toAddrs, message) server.quit() logging.info('email sent') def captureErrorMessage(e): sout = StringIO() traceback.print_exc(file=sout) errorMessage = '\n'+('*'*80)+('\n%s'%e)+('\n%s\n'%sout.getvalue())+('*'*80) return errorMessage def usage_and_exit(errmsg): """Print a usage message, plus an ERRMSG (if provided), then exit. If ERRMSG is provided, the usage message is printed to stderr and the script exits with a non-zero error code. Otherwise, the usage message goes to stdout, and the script exits with a zero errorcode.""" if errmsg is None: stream = sys.stdout else: stream = sys.stderr print(__doc__, file=stream) if errmsg: print("\nError: %s" % (errmsg), file=stream) sys.exit(2) sys.exit(0) def read_args(): global host global user global password global port global repo_path global local_repos_path global status_file global project_directory global remote_base_directory global youngest_revision try: opts, args = getopt.gnu_getopt(sys.argv[1:], "?u:p:P:r:a:s:d:SU:SP:", ["help", "ftp-user=", "ftp-password=", "ftp-port=", "ftp-remote-dir=", "access-url=", "status-file=", "project-directory=", "svnUser=", "svnPass=" ]) except getopt.GetoptError as msg: usage_and_exit(msg) for opt, arg in opts: if opt in ("-?", "--help"): usage_and_exit() elif opt in ("-u", "--ftp-user"): user = arg elif opt in ("-p", "--ftp-password"): password = arg elif opt in ("-SU", "--svnUser"): svnUser = arg elif opt in ("-SP", "--svnPass"): svnPass = arg elif opt in ("-P", "--ftp-port"): try: port = int(arg) except ValueError as msg: usage_and_exit("Invalid value '%s' for --ftp-port." % (arg)) if port < 1 or port > 65535: usage_and_exit("Value for --ftp-port must be a positive integer less than 65536.") elif opt in ("-r", "--ftp-remote-dir"): remote_base_directory = arg elif opt in ("-a", "--access-url"): repo_path = arg elif opt in ("-s", "--status-file"): status_file = os.path.abspath(arg) elif opt in ("-d", "--project-directory"): project_directory = arg if len(args) != 3: print(str(args)) usage_and_exit("host and/or local_repos_path not specified (" + len(args) + ")") host = args[0] print("args1: " + args[1]) print("args0: " + args[0]) print("abspath: " + os.path.abspath(args[1])) local_repos_path = os.path.abspath(args[1]) print('project_dir:',project_directory) youngest_revision = int(args[2]) if status_file == "" : usage_and_exit("No status file specified") def main(): global host global user global password global port global repo_path global local_repos_path global status_file global project_directory global remote_base_directory global youngest_revision read_args() #repository,fs_ptr #get youngest revision print("local_repos_path: " + local_repos_path) print('getting youngest revision...') #youngest_revision = fs.youngest_rev(fs_ptr) assert youngest_revision, "Unable to lookup youngest revision." last_sent_revision = get_last_revision() if youngest_revision == last_sent_revision: # no need to continue. we should be up to date. print('done, up-to-date') return if last_sent_revision or youngest_revision < 10: # Only compare revisions if the DAT file contains a valid # revision number. Otherwise we risk waiting forever while # we parse and uploading every revision in the repo in the case # where a repository is retroactively configured to sync with ftp. pysvn_client = pysvn.Client() pysvn_client.callback_get_login = get_login rev1 = pysvn.Revision(pysvn.opt_revision_kind.number, last_sent_revision) rev2 = pysvn.Revision(pysvn.opt_revision_kind.number, youngest_revision) summary = pysvn_client.diff_summarize(repo_path, rev1, repo_path, rev2, True, False) print('summary len:',len(summary)) if len(summary) > 0 : print('connecting to %s...' % host) ftp = FTPClient(host, user, password) print('connected to %s' % host) ftp.base_path = remote_base_directory print('set remote base directory to %s' % remote_base_directory) #iterate through all the differences between revisions for change in summary : #determine whether the path of the change is relevant to the path that is being sent, and modify the path as appropriate. print('change path:',change.path) ftp_relative_path = apply_basedir(change.path) print('ftp rel path:',ftp_relative_path) #only try to sync path if the path is in our project_directory if ftp_relative_path != "" : is_file = (change.node_kind == pysvn.node_kind.file) if str(change.summarize_kind) == "delete" : print("deleting: " + ftp_relative_path) try: ftp.delete_path("/" + ftp_relative_path, is_file) except ftplib.error_perm as e: if 'cannot find the' in str(e) or 'not found' in str(e): # Log, but otherwise ignore path-not-found errors # when deleting, since it's not a disaster if the file # we want to delete is already gone. logging.error(captureErrorMessage(e)) else: raise elif str(change.summarize_kind) == "added" or str(change.summarize_kind) == "modified" : local_file = "" if is_file : local_file = svn_export_temp(pysvn_client, repo_path, rev2, change.path) print("uploading file: " + ftp_relative_path) ftp.upload_path("/" + ftp_relative_path, is_file, local_file) if is_file : os.remove(local_file) elif str(change.summarize_kind) == "normal" : print("skipping 'normal' element: " + ftp_relative_path) else : raise str("Unknown change summarize kind: " + str(change.summarize_kind) + ", path: " + ftp_relative_path) ftp.close() #write back the last revision that was synced print("writing last revision: " + str(youngest_revision)) set_last_revision(youngest_revision) # todo: undo def get_login(a,b,c,d): #arguments don't matter, we're always going to return the same thing try: return True, "svnUsername", "svnPassword", True except Exception as e: logging.error(e) #capture the location of the error frame = inspect.currentframe() stack_trace = traceback.format_stack(frame) logging.debug(stack_trace) #end capture sys.exit(1) #functions for persisting the last successfully synced revision def get_last_revision(): if os.path.isfile(status_file) : f=open(status_file, 'r') line = f.readline() f.close() try: i = int(line) except ValueError: i = 0 else: i = 0 f = open(status_file, 'w') f.write(str(i)) f.close() return i def set_last_revision(rev) : f = open(status_file, 'w') f.write(str(rev)) f.close() #augmented ftp client class that can work off a base directory class FTPClient(ftplib.FTP) : def __init__(self, host, username, password) : self.base_path = "" self.current_path = "" ftplib.FTP.__init__(self, host, username, password) def cwd(self, path) : debug_path = path if self.current_path == "" : self.current_path = self.pwd() print("pwd: " + self.current_path) if not os.path.isabs(path) : debug_path = self.base_path + "<" + path path = os.path.join(self.current_path, path) elif self.base_path != "" : debug_path = self.base_path + ">" + path.lstrip("/") path = os.path.join(self.base_path, path.lstrip("/")) path = os.path.normpath(path) #by this point the path should be absolute. if path != self.current_path : print("change from " + self.current_path + " to " + debug_path) ftplib.FTP.cwd(self, path) self.current_path = path else : print("staying put : " + self.current_path) def cd_or_create(self, path) : assert os.path.isabs(path), "absolute path expected (" + path + ")" try: self.cwd(path) except ftplib.error_perm as e: for folder in path.split('/'): if folder == "" : self.cwd("/") continue try: self.cwd(folder) except: print("mkd: (" + path + "):" + folder) self.mkd(folder) self.cwd(folder) def upload_path(self, path, is_file, local_path) : if is_file: (path, filename) = os.path.split(path) self.cd_or_create(path) # Use read-binary to avoid universal newline support from stripping CR characters. f = open(local_path, 'rb') self.storbinary("STOR " + filename, f) f.close() else: self.cd_or_create(path) def delete_path(self, path, is_file) : (path, filename) = os.path.split(path) print("trying to delete: " + path + ", " + filename) self.cwd(path) try: if is_file : self.delete(filename) else: self.delete_path_recursive(filename) except ftplib.error_perm as e: if 'The system cannot find the' in str(e) or '550 File not found' in str(e): # Log, but otherwise ignore path-not-found errors # when deleting, since it's not a disaster if the file # we want to delete is already gone. logging.error(captureErrorMessage(e)) else: raise def delete_path_recursive(self, path): if path == "/" : raise "WARNING: trying to delete '/'!" for node in self.nlst(path) : if node == path : #it's a file. delete and return self.delete(path) return if node != "." and node != ".." : self.delete_path_recursive(os.path.join(path, node)) try: self.rmd(path) except ftplib.error_perm as msg : sys.stderr.write("Error deleting directory " + os.path.join(self.current_path, path) + " : " + str(msg)) # apply the project_directory setting def apply_basedir(path) : #remove any leading stuff (in this case, "trunk/") and decide whether file should be propagated if not path.startswith(project_directory) : return "" return path.replace(project_directory, "", 1) def svn_export_temp(pysvn_client, base_path, rev, path) : # Causes access denied error. Couldn't deduce Windows-perm issue. # It's possible Python isn't garbage-collecting the open file-handle in time for pysvn to re-open it. # Regardless, just generating a simple filename seems to work. #(fd, dest_path) = tempfile.mkstemp() dest_path = tmpName = '%s.tmp' % __file__ exportPath = os.path.join(base_path, path).replace('\\','/') print('exporting %s to %s' % (exportPath, dest_path)) pysvn_client.export( exportPath, dest_path, force=False, revision=rev, native_eol=None, ignore_externals=False, recurse=True, peg_revision=rev ) return dest_path if __name__ == "__main__": logging.info('svnftp.start') try: main() logging.info('svnftp.done') except Exception as e: # capture the location of the error for debug purposes frame = inspect.currentframe() stack_trace = traceback.format_stack(frame) logging.debug(stack_trace[:-1]) print(stack_trace) # end capture error_text = '\nFATAL EXCEPTION!!!\n'+captureErrorMessage(e) subject = "ALERT: SVN2FTP Error" message = """An Error occurred while trying to FTP an SVN commit. repo_path = %(repo_path)s\n local_repos_path = %(local_repos_path)s\n project_directory = %(project_directory)s\n remote_base_directory = %(remote_base_directory)s\n error_text = %(error_text)s """ % globals() email(toAddrs, message, subject) logging.error(e) Notes/Disclaimers: I have basically no python training so I'm learning as I go and spending lots of time reading docs to figure stuff out. The body of get_login is in a try block because I was getting strange errors saying there was an unhandled exception in callback_get_login. Never figured out why, but it seems fine now. Let sleeping dogs lie, right? The username and password for get_login are currently hard-coded (but correct) just to eliminate variables and try to change as little as possible at once. (I added the svnuser and svnpass arguments to the existing argument parsing.) So that's where I am. I can't figure out why on earth it's not printing anything into svn2ftp.out.log. If you're wondering, the output for one of these failed attempts in svn2ftp.debug.log is: 2012-09-06 15:18:12,496 INFO svnftp.start 2012-09-06 15:18:12,496 INFO svnftp.done And it's no different on a successful run. So there's nothing useful being logged. I'm lost. I've gone way down the rabbit hole on this one, and don't know where to go from here. Any ideas?

    Read the article

< Previous Page | 399 400 401 402 403 404 405 406 407 408 409 410  | Next Page >