<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-GB" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal">Hi all,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">We’re trying to create a layer from within another project.  I was wondering what the best way to do this might be without using importlayers from the cmd line? I just need to take a zipped up shapefile and create a layer from that. I’ve
 been trying to use file_upload() from geonode.layers.utils to upload & create the layer but am running into the problem below. All the correct settings are being picked up when I look at django.conf.settings.OGC_SERVER and geonode.geoserver.helpers.ogc_server_settings.
 (the zip uploads fine into our geonode manually and if I use importlayers).<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Am I going about this the wrong way?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thanks<o:p></o:p></p>
<p class="MsoNormal">Gavin<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">For example:<o:p></o:p></p>
<p class="MsoNormal">(geonode) ubuntu@ip-172-31-43-109:/opt/geonode/geonode $ python manage.py shell<o:p></o:p></p>
<p class="MsoNormal">Python 2.7.6 (default, Jun 22 2015, 17:58:13) <o:p></o:p></p>
<p class="MsoNormal">[GCC 4.8.2] on linux2<o:p></o:p></p>
<p class="MsoNormal">Type "help", "copyright", "credits" or "license" for more information.<o:p></o:p></p>
<p class="MsoNormal">(InteractiveConsole)<o:p></o:p></p>
<p class="MsoNormal">>>> from geonode.layers.utils import file_upload<o:p></o:p></p>
<p class="MsoNormal">>>> new_layer = file_upload(filename='/var/www/data_uploads/test_2000_01.zip')<o:p></o:p></p>
<p class="MsoNormal">Traceback (most recent call last):<o:p></o:p></p>
<p class="MsoNormal">  File "<console>", line 1, in <module><o:p></o:p></p>
<p class="MsoNormal">  File "/opt/geonode/geonode/geonode/layers/utils.py", line 481, in file_upload<o:p></o:p></p>
<p class="MsoNormal">    defaults=defaults<o:p></o:p></p>
<p class="MsoNormal">  File "/opt/venv/geonode/local/lib/python2.7/site-packages/django/db/models/manager.py", line 127, in manager_method<o:p></o:p></p>
<p class="MsoNormal">    return getattr(self.get_queryset(), name)(*args, **kwargs)<o:p></o:p></p>
<p class="MsoNormal">  File "/opt/venv/geonode/local/lib/python2.7/site-packages/modeltranslation/manager.py", line 389, in get_or_create<o:p></o:p></p>
<p class="MsoNormal">    return super(MultilingualQuerySet, self).get_or_create(**kwargs)<o:p></o:p></p>
<p class="MsoNormal">  File "/opt/venv/geonode/local/lib/python2.7/site-packages/django/db/models/query.py", line 407, in get_or_create<o:p></o:p></p>
<p class="MsoNormal">    return self._create_object_from_params(lookup, params)<o:p></o:p></p>
<p class="MsoNormal">  File "/opt/venv/geonode/local/lib/python2.7/site-packages/django/db/models/query.py", line 439, in _create_object_from_params<o:p></o:p></p>
<p class="MsoNormal">    obj = self.create(**params)<o:p></o:p></p>
<p class="MsoNormal">  File "/opt/venv/geonode/local/lib/python2.7/site-packages/modeltranslation/manager.py", line 381, in create<o:p></o:p></p>
<p class="MsoNormal">    return super(MultilingualQuerySet, self).create(**kwargs)<o:p></o:p></p>
<p class="MsoNormal">  File "/opt/venv/geonode/local/lib/python2.7/site-packages/django/db/models/query.py", line 348, in create<o:p></o:p></p>
<p class="MsoNormal">    obj.save(force_insert=True, using=self.db)<o:p></o:p></p>
<p class="MsoNormal">  File "/opt/venv/geonode/local/lib/python2.7/site-packages/polymorphic/models.py", line 90, in save<o:p></o:p></p>
<p class="MsoNormal">    return super(PolymorphicModel, self).save(*args, **kwargs)<o:p></o:p></p>
<p class="MsoNormal">  File "/opt/venv/geonode/local/lib/python2.7/site-packages/django/db/models/base.py", line 734, in save<o:p></o:p></p>
<p class="MsoNormal">    force_update=force_update, update_fields=update_fields)<o:p></o:p></p>
<p class="MsoNormal">  File "/opt/venv/geonode/local/lib/python2.7/site-packages/django/db/models/base.py", line 771, in save_base<o:p></o:p></p>
<p class="MsoNormal">    update_fields=update_fields, raw=raw, using=using)<o:p></o:p></p>
<p class="MsoNormal">  File "/opt/venv/geonode/local/lib/python2.7/site-packages/django/dispatch/dispatcher.py", line 189, in send<o:p></o:p></p>
<p class="MsoNormal">    response = receiver(signal=self, sender=sender, **named)<o:p></o:p></p>
<p class="MsoNormal">  File "/opt/geonode/geonode/geonode/geoserver/signals.py", line 190, in geoserver_post_save<o:p></o:p></p>
<p class="MsoNormal">    workspace=instance.workspace)<o:p></o:p></p>
<p class="MsoNormal">  File "/opt/venv/geonode/local/lib/python2.7/site-packages/geoserver/catalog.py", line 672, in get_resource<o:p></o:p></p>
<p class="MsoNormal">    store = self.get_store(store, workspace)<o:p></o:p></p>
<p class="MsoNormal">  File "/opt/venv/geonode/local/lib/python2.7/site-packages/geoserver/catalog.py", line 287, in get_store<o:p></o:p></p>
<p class="MsoNormal">    raise FailedRequestError("No store found named: " + name)<o:p></o:p></p>
<p class="MsoNormal">FailedRequestError: No store found named: <o:p></o:p></p>
<p class="MsoNormal">>>><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>