batch-filegoogle-cloud-storagefinalbuildergsutil

Why does this gsutil call not work from FinalBuilder website but works when run in FinalBuilder application?


I have a .bat file that makes the following gsutil call to push a file to the Google Cloud:

python "C:\Program Files (x86)\gsutil\gsutil" -D -m cp -a public-read C:\Temp\MyMSI.msi gs://downloads-gs.mywebsite.com/binaries/myapplication/auto_installer/

Here is my output(with a few names changed for obscurity):

----------------------------------------------------------
Copy to google  11:02:33 AM 11:02:34 AM 00:00:00:479    Failed (Ignored)
Collapse    Messages    
Messages                
Collapse        
Executing external process: C:\Windows\system32\cmd.exe

Starting Directory: C:\BuildScripts
Parameters: /c "c:\buildscripts\push_goog.bat"
Collapse        
Output from C:\Windows\system32\cmd.exe

The system cannot find the drive specified.

C:\BuildScripts>pushd c:\BuildScripts\ 

The system cannot find the drive specified.
Traceback (most recent call last):
  File "C:\Program Files (x86)\gsutil\gsutil", line 67, in <module>
    from gslib.util import UsingCrcmodExtension
  File "C:\Program Files (x86)\gsutil\gslib\util.py", line 121, in <module>
    os.path.join(CreateTrackerDirIfNeeded(), '.last_software_update_check'))
  File "C:\Program Files (x86)\gsutil\gslib\util.py", line 108, in CreateTrackerDirIfNeeded
    os.makedirs(tracker_dir)
  File "C:\Python27\lib\os.py", line 150, in makedirs
    makedirs(head, mode)
**C:\BuildScripts>python "C:\Program Files (x86)\gsutil\gsutil" -D -m cp -a public-read C:\Temp\MyMSI.msi gs://downloads-gs.mywebsite.com/binaries/myapplication/auto_installer/**
  File "C:\Python27\lib\os.py", line 157, in makedirs
    mkdir(name, mode)
WindowsError: [Error 3] The system cannot find the path specified: 'H:\\\\'
Program returned code  : 1

It is mentioning something about H:\\\\ which we don't use and never mentioned in the .bat file or in the params to gsutil. I'm not sure why it works perfectly when run from the FinalBuilder application and then it gets this error when the FinalBuilder website runs the same FinalBuilder application file but is just triggered through the FinalBuilder Server.

Any help would be great.


Solution

  • The root cause for this is that your home directory is set to an invalid location.

    As a workaround, you can change the tracker directory in your .boto configuration file. Here's the relevant section:

    [GSUtil]
    # 'resumable_tracker_dir' specifies the base location where resumable
    # transfer tracker files are saved. By default they're in ~/.gsutil
    #resumable_tracker_dir = <file path>
    

    Uncomment the resumable_tracker_dir variable and set it to a location on disk that does exist.