<font face="arial" size="2"><p style="margin:0;padding:0;">AFAIK, 'glance add' has been deprecated. Did you try using 'glance image-create', you can add --debug flag as well to get to know better details. Let us know.</p>
<p style="margin:0;padding:0;"> </p>
<!--WM_COMPOSE_SIGNATURE_START-->
<p style="margin:0;padding:0;">-Nikhil</p>
<!--WM_COMPOSE_SIGNATURE_END-->
<p style="margin:0;padding:0;"><br /><br />-----Original Message-----<br />From: "Skible OpenStack" <skible.openstack@gmail.com><br />Sent: Monday, October 15, 2012 8:43am<br />To: "Trinath Somanchi" <trinath.somanchi@gmail.com><br />Cc: openstack@lists.launchpad.net<br />Subject: Re: [Openstack] Folsom Glance Image upload error<br /><br /></p>
<div id="SafeStyles1350328610">
<div class="moz-cite-prefix">All of this seems to be fine and correct<br /> Can you share with me how you installed Glance ?<br /><br /> Le 15/10/2012 14:38, Trinath Somanchi a écrit :</div>
<blockquote>Please find the result of "keystone endpoint-list" command
<div>
<div>root@openstackController:~# keystone endpoint-list</div>
<div>+----------------------------------+-----------+-------------------------------------------------+-------------------------------------------------+--------------------------------------------+</div>
<div>| id | region | publicurl | internalurl | adminurl |</div>
<div>+----------------------------------+-----------+-------------------------------------------------+-------------------------------------------------+--------------------------------------------+</div>
<div>| 418be94409f640e8be31d7b3f79f540d | RegionOne | <a href="http://10.232.90.115:5000/v2.0">http://10.232.90.115:5000/v2.0</a> | <a href="http://10.232.90.115:5000/v2.0">http://10.232.90.115:5000/v2.0</a> | <a href="http://10.232.90.115:35357/v2.0">http://10.232.90.115:35357/v2.0</a> |</div>
<div>| 822a2a022b7c486ea9d43dbe15baffd5 | RegionOne | <a href="http://10.232.90.115:8776/v1/%24%28tenant_id%29s">http://10.232.90.115:8776/v1/$(tenant_id)s</a> | <a href="http://10.232.90.115:8776/v1/%24%28tenant_id%29s">http://10.232.90.115:8776/v1/$(tenant_id)s</a> | <a href="http://10.232.90.115:8776/v1/%24%28tenant_id%29s">http://10.232.90.115:8776/v1/$(tenant_id)s</a> |</div>
<div>| 84aef086c8884dec9a6af41ee4f5a67b | RegionOne | <a href="http://10.232.90.115:8773/services/Cloud">http://10.232.90.115:8773/services/Cloud</a> | <a href="http://10.232.90.115:8773/services/Cloud">http://10.232.90.115:8773/services/Cloud</a> | <a href="http://10.232.90.115:8773/services/Admin">http://10.232.90.115:8773/services/Admin</a> |</div>
<div>| 8f846871999048fcb22fd1819749674c | RegionOne | <a href="http://10.232.90.115:9292/v2">http://10.232.90.115:9292/v2</a> | <a href="http://10.232.90.115:9292/v2">http://10.232.90.115:9292/v2</a> | <a href="http://10.232.90.115:9292/v2">http://10.232.90.115:9292/v2</a> |</div>
<div>| 91efaba9329248b1837e913f14213a8a | RegionOne | <a href="http://10.232.90.115:8774/v2/%24%28tenant_id%29s">http://10.232.90.115:8774/v2/$(tenant_id)s</a> | <a href="http://10.232.90.115:8774/v2/%24%28tenant_id%29s">http://10.232.90.115:8774/v2/$(tenant_id)s</a> | <a href="http://10.232.90.115:8774/v2/%24%28tenant_id%29s">http://10.232.90.115:8774/v2/$(tenant_id)s</a> |</div>
<div>| dbf5e0b0d2864201bda64d95c3f66f02 | RegionOne | <a href="http://10.232.90.115:8080/v1/AUTH_%24%28tenant_id%29s">http://10.232.90.115:8080/v1/AUTH_$(tenant_id)s</a> | <a href="http://10.232.90.115:8080/v1/AUTH_%24%28tenant_id%29s">http://10.232.90.115:8080/v1/AUTH_$(tenant_id)s</a> | <a href="http://10.232.90.115:8080/v1">http://10.232.90.115:8080/v1</a> |</div>
<div>| eddcdb2a81534d6fb3e3f33dc1abb247 | RegionOne | <a href="http://10.232.90.115:9696/">http://10.232.90.115:9696/</a> | <a href="http://10.232.90.115:9696/">http://10.232.90.115:9696/</a> | <a href="http://10.232.90.115:9696/">http://10.232.90.115:9696/</a> |</div>
<div>+----------------------------------+-----------+-------------------------------------------------+-------------------------------------------------+--------------------------------------------+</div>
<br />
<div class="gmail_quote">On Mon, Oct 15, 2012 at 6:07 PM, Skible OpenStack <span dir="ltr"><<a href="mailto:skible.openstack@gmail.com" target="_blank">skible.openstack@gmail.com</a>></span> wrote:<br />
<blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;">
<div>
<div><br /> Can you paste the output of keystone endpoint-list command ?<br /><br /> Le 15/10/2012 14:33, Trinath Somanchi a écrit :</div>
<div>
<div class="h5">
<blockquote>Hi-
<div>I dont have any logs in the keystone.log file its empty</div>
<div>and here is the glance-api.conf file</div>
<div>
<div>[DEFAULT]</div>
<div># Show more verbose log output (sets INFO log level output)</div>
<div>verbose = True</div>
<div># Show debugging output in logs (sets DEBUG log level output)</div>
<div>debug = False</div>
<div># Which backend scheme should Glance use by default is not specified</div>
<div># in a request to add a new image to Glance? Known schemes are determined</div>
<div># by the known_stores option below.</div>
<div># Default: 'file'</div>
<div>default_store = file</div>
<div># List of which store classes and store class locations are</div>
<div># currently known to glance at startup.</div>
<div>#known_stores = glance.store.filesystem.Store,</div>
<div># glance.store.http.Store,</div>
<div># glance.store.rbd.Store,</div>
<div># glance.store.s3.Store,</div>
<div># glance.store.swift.Store,</div>
<div># Maximum image size (in bytes) that may be uploaded through the</div>
<div># Glance API server. Defaults to 1 TB.</div>
<div># WARNING: this value should only be increased after careful consideration</div>
<div># and must be set to a value under 8 EB (9223372036854775808).</div>
<div>#image_size_cap = 1099511627776</div>
<div># Address to bind the API server</div>
<div>bind_host = 0.0.0.0</div>
<div># Port the bind the API server to</div>
<div>bind_port = 9292</div>
<div># Log to this file. Make sure you do not set the same log</div>
<div># file for both the API and registry servers!</div>
<div>log_file = /var/log/glance/api.log</div>
<div># Backlog requests when creating socket</div>
<div>backlog = 4096</div>
<div># TCP_KEEPIDLE value in seconds when creating socket.</div>
<div># Not supported on OS X.</div>
<div>#tcp_keepidle = 600</div>
<div># SQLAlchemy connection string for the reference implementation</div>
<div># registry server. Any valid SQLAlchemy connection string is fine.</div>
<div># See: <a href="http://www.sqlalchemy.org/docs/05/reference/sqlalchemy/connections.html#sqlalchemy.create_engine" target="_blank">http://www.sqlalchemy.org/docs/05/reference/sqlalchemy/connections.html#sqlalchemy.create_engine</a></div>
<div>sql_connection = mysql://glance:password@localhost/glance</div>
<div># Period in seconds after which SQLAlchemy should reestablish its connection</div>
<div># to the database.</div>
<div>#</div>
<div># MySQL uses a default `wait_timeout` of 8 hours, after which it will drop</div>
<div># idle connections. This can result in 'MySQL Gone Away' exceptions. If you</div>
<div># notice this, you can lower this value to ensure that SQLAlchemy reconnects</div>
<div># before MySQL can drop the connection.</div>
<div>sql_idle_timeout = 3600</div>
<div># Number of Glance API worker processes to start.</div>
<div># On machines with more than one CPU increasing this value</div>
<div># may improve performance (especially if using SSL with</div>
<div># compression turned on). It is typically recommended to set</div>
<div># this value to the number of CPUs present on your machine.</div>
<div>workers = 1</div>
<div># Role used to identify an authenticated user as administrator</div>
<div>#admin_role = admin</div>
<div># Allow unauthenticated users to access the API with read-only</div>
<div># privileges. This only applies when using ContextMiddleware.</div>
<div>#allow_anonymous_access = False</div>
<div># Allow access to version 1 of glance api</div>
<div>#enable_v1_api = True</div>
<div># Allow access to version 2 of glance api</div>
<div>#enable_v2_api = True</div>
<div># ================= Syslog Options ============================</div>
<div># Send logs to syslog (/dev/log) instead of to file specified</div>
<div># by `log_file`</div>
<div>use_syslog = False</div>
<div># Facility to use. If unset defaults to LOG_USER.</div>
<div>#syslog_log_facility = LOG_LOCAL0</div>
<div># ================= SSL Options ===============================</div>
<div># Certificate file to use when starting API server securely</div>
<div>#cert_file = /path/to/certfile</div>
<div># Private key file to use when starting API server securely</div>
<div>#key_file = /path/to/keyfile</div>
<div># CA certificate file to use to verify connecting clients</div>
<div>#ca_file = /path/to/cafile</div>
<div># ================= Security Options ==========================</div>
<div># AES key for encrypting store 'location' metadata, including</div>
<div># -- if used -- Swift or S3 credentials</div>
<div># Should be set to a random string of length 16, 24 or 32 bytes</div>
<div>#metadata_encryption_key = <16, 24 or 32 char registry metadata key></div>
<div># ============ Registry Options ===============================</div>
<div># Address to find the registry server</div>
<div>registry_host = 0.0.0.0</div>
<div># Port the registry server is listening on</div>
<div>registry_port = 9191</div>
<div># What protocol to use when connecting to the registry server?</div>
<div># Set to https for secure HTTP communication</div>
<div>registry_client_protocol = http</div>
<div># The path to the key file to use in SSL connections to the</div>
<div># registry server, if any. Alternately, you may set the</div>
<div># GLANCE_CLIENT_KEY_FILE environ variable to a filepath of the key file</div>
<div>#registry_client_key_file = /path/to/key/file</div>
<div># The path to the cert file to use in SSL connections to the</div>
<div># registry server, if any. Alternately, you may set the</div>
<div># GLANCE_CLIENT_CERT_FILE environ variable to a filepath of the cert file</div>
<div>#registry_client_cert_file = /path/to/cert/file</div>
<div># The path to the certifying authority cert file to use in SSL connections</div>
<div># to the registry server, if any. Alternately, you may set the</div>
<div># GLANCE_CLIENT_CA_FILE environ variable to a filepath of the CA cert file</div>
<div>#registry_client_ca_file = /path/to/ca/file</div>
<div># ============ Notification System Options =====================</div>
<div># Notifications can be sent when images are create, updated or deleted.</div>
<div># There are three methods of sending notifications, logging (via the</div>
<div># log_file directive), rabbit (via a rabbitmq queue), qpid (via a Qpid</div>
<div># message queue), or noop (no notifications sent, the default)</div>
<div>notifier_strategy = rabbit</div>
<div># Configuration options if sending notifications via rabbitmq (these are</div>
<div># the defaults)</div>
<div>rabbit_host = localhost</div>
<div>rabbit_port = 5672</div>
<div>rabbit_use_ssl = false</div>
<div>rabbit_userid = guest</div>
<div>rabbit_password = password</div>
<div>rabbit_virtual_host = /</div>
<div>rabbit_notification_exchange = glance</div>
<div>rabbit_notification_topic = glance_notifications</div>
<div>rabbit_durable_queues = False</div>
<div># Configuration options if sending notifications via Qpid (these are</div>
<div># the defaults)</div>
<div>qpid_notification_exchange = glance</div>
<div>qpid_notification_topic = glance_notifications</div>
<div>qpid_host = localhost</div>
<div>qpid_port = 5672</div>
<div>qpid_username =</div>
<div>qpid_password =</div>
<div>qpid_sasl_mechanisms =</div>
<div>qpid_reconnect_timeout = 0</div>
<div>qpid_reconnect_limit = 0</div>
<div>qpid_reconnect_interval_min = 0</div>
<div>qpid_reconnect_interval_max = 0</div>
<div>qpid_reconnect_interval = 0</div>
<div>qpid_heartbeat = 5</div>
<div># Set to 'ssl' to enable SSL</div>
<div>qpid_protocol = tcp</div>
<div>qpid_tcp_nodelay = True</div>
<div># ============ Filesystem Store Options ========================</div>
<div># Directory that the Filesystem backend store</div>
<div># writes image data to</div>
<div>filesystem_store_datadir = /var/lib/glance/images/</div>
<div># ============ Swift Store Options =============================</div>
<div># Version of the authentication service to use</div>
<div># Valid versions are '2' for keystone and '1' for swauth and rackspace</div>
<div>swift_store_auth_version = 2</div>
<div># Address where the Swift authentication service lives</div>
<div># Valid schemes are '<a>http://</a>' and '<a>https://</a>'</div>
<div># If no scheme specified, default to '<a>https://</a>'</div>
<div># For swauth, use something like '<a href="http://127.0.0.1:8080/v1.0/" target="_blank">127.0.0.1:8080/v1.0/</a>'</div>
<div>swift_store_auth_address = <a href="http://127.0.0.1:5000/v2.0/" target="_blank">127.0.0.1:5000/v2.0/</a></div>
<div># User to authenticate against the Swift authentication service</div>
<div># If you use Swift authentication service, set it to 'account':'user'</div>
<div># where 'account' is a Swift storage account and 'user'</div>
<div># is a user in that account</div>
<div>swift_store_user = jdoe:jdoe</div>
<div># Auth key for the user authenticating against the</div>
<div># Swift authentication service</div>
<div>swift_store_key = a86850deb2742ec3cb41518e26aa2d89</div>
<div># Container within the account that the account should use</div>
<div># for storing images in Swift</div>
<div>swift_store_container = glance</div>
<div># Do we create the container if it does not exist?</div>
<div>swift_store_create_container_on_put = False</div>
<div># What size, in MB, should Glance start chunking image files</div>
<div># and do a large object manifest in Swift? By default, this is</div>
<div># the maximum object size in Swift, which is 5GB</div>
<div>swift_store_large_object_size = 5120</div>
<div># When doing a large object manifest, what size, in MB, should</div>
<div># Glance write chunks to Swift? This amount of data is written</div>
<div># to a temporary disk buffer during the process of chunking</div>
<div># the image file, and the default is 200MB</div>
<div>swift_store_large_object_chunk_size = 200</div>
<div># Whether to use ServiceNET to communicate with the Swift storage servers.</div>
<div># (If you aren't RACKSPACE, leave this False!)</div>
<div>#</div>
<div># To use ServiceNET for authentication, prefix hostname of</div>
<div># `swift_store_auth_address` with 'snet-'.</div>
<div># Ex. <a href="https://example.com/v1.0/" target="_blank">https://example.com/v1.0/</a> -> <a href="https://snet-example.com/v1.0/" target="_blank">https://snet-example.com/v1.0/</a></div>
<div>swift_enable_snet = False</div>
<div># If set to True enables multi-tenant storage mode which causes Glance images</div>
<div># to be stored in tenant specific Swift accounts.</div>
<div>#swift_store_multi_tenant = False</div>
<div># A list of tenants that will be granted read/write access on all Swift</div>
<div># containers created by Glance in multi-tenant mode.</div>
<div>#swift_store_admin_tenants = []</div>
<div># The region of the swift endpoint to be used for single tenant. This setting</div>
<div># is only necessary if the tenant has multiple swift endpoints.</div>
<div>#swift_store_region =</div>
<div># ============ S3 Store Options =============================</div>
<div># Address where the S3 authentication service lives</div>
<div># Valid schemes are '<a>http://</a>' and '<a>https://</a>'</div>
<div># If no scheme specified, default to '<a>http://</a>'</div>
<div>s3_store_host = <a href="http://127.0.0.1:8080/v1.0/" target="_blank">127.0.0.1:8080/v1.0/</a></div>
<div># User to authenticate against the S3 authentication service</div>
<div>s3_store_access_key = <20-char AWS access key></div>
<div># Auth key for the user authenticating against the</div>
<div># S3 authentication service</div>
<div>s3_store_secret_key = <40-char AWS secret key></div>
<div># Container within the account that the account should use</div>
<div># for storing images in S3. Note that S3 has a flat namespace,</div>
<div># so you need a unique bucket name for your glance images. An</div>
<div># easy way to do this is append your AWS access key to "glance".</div>
<div># S3 buckets in AWS *must* be lowercased, so remember to lowercase</div>
<div># your AWS access key if you use it in your bucket name below!</div>
<div>s3_store_bucket = <lowercased 20-char aws access key>glance</div>
<div># Do we create the bucket if it does not exist?</div>
<div>s3_store_create_bucket_on_put = False</div>
<div># When sending images to S3, the data will first be written to a</div>
<div># temporary buffer on disk. By default the platform's temporary directory</div>
<div># will be used. If required, an alternative directory can be specified here.</div>
<div>#s3_store_object_buffer_dir = /path/to/dir</div>
<div># When forming a bucket url, boto will either set the bucket name as the</div>
<div># subdomain or as the first token of the path. Amazon's S3 service will</div>
<div># accept it as the subdomain, but Swift's S3 middleware requires it be</div>
<div># in the path. Set this to 'path' or 'subdomain' - defaults to 'subdomain'.</div>
<div>#s3_store_bucket_url_format = subdomain</div>
<div># ============ RBD Store Options =============================</div>
<div># Ceph configuration file path</div>
<div># If using cephx authentication, this file should</div>
<div># include a reference to the right keyring</div>
<div># in a client.<USER> section</div>
<div>rbd_store_ceph_conf = /etc/ceph/ceph.conf</div>
<div># RADOS user to authenticate as (only applicable if using cephx)</div>
<div>rbd_store_user = glance</div>
<div># RADOS pool in which images are stored</div>
<div>rbd_store_pool = images</div>
<div># Images will be chunked into objects of this size (in megabytes).</div>
<div># For best performance, this should be a power of two</div>
<div>rbd_store_chunk_size = 8</div>
<div># ============ Delayed Delete Options =============================</div>
<div># Turn on/off delayed delete</div>
<div>delayed_delete = False</div>
<div># Delayed delete time in seconds</div>
<div>scrub_time = 43200</div>
<div># Directory that the scrubber will use to remind itself of what to delete</div>
<div># Make sure this is also set in glance-scrubber.conf</div>
<div>scrubber_datadir = /var/lib/glance/scrubber</div>
<div># =============== Image Cache Options =============================</div>
<div># Base directory that the Image Cache uses</div>
<div>image_cache_dir = /var/lib/glance/image-cache/</div>
<div>[keystone_authtoken]</div>
<div>auth_host = 127.0.0.1</div>
<div>auth_port = 35357</div>
<div>auth_protocol = http</div>
<div>admin_tenant_name = service</div>
<div>admin_user = glance</div>
<div>admin_password = password</div>
<div>[paste_deploy]</div>
<div># Name of the paste configuration file that defines the available pipelines</div>
<div>#config_file = glance-api-paste.ini</div>
<div># Partial name of a pipeline in your paste configuration file with the</div>
<div># service name removed. For example, if your paste section name is</div>
<div># [pipeline:glance-api-keystone], you would configure the flavor below</div>
<div># as 'keystone'.</div>
<div>flavor=keystone</div>
<br />
<div class="gmail_quote">On Mon, Oct 15, 2012 at 5:59 PM, Skible OpenStack <span dir="ltr"><<a href="mailto:skible.openstack@gmail.com" target="_blank">skible.openstack@gmail.com</a>></span> wrote:<br />
<blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;">
<div>
<div>can you send me the glance-api.conf<br /> and the keystone.log please.<br /> Le 15/10/2012 13:11, Trinath Somanchi a écrit :</div>
<div>
<div>
<blockquote>Hi-
<div>I followed the folsom guide given below,</div>
<div>but the error is intact.</div>
<div>
<div>ERROR: Unable to load glance-api-keystone from configuration file /etc/glance/glance-api-paste.ini.</div>
<div>Got: ImportError("<module 'glance.api' from '/usr/local/lib/python2.7/dist-packages/glance-2012.2-py2.7.egg/glance/api/__init__.pyc'> has no 'root_app_factory' attribute",)</div>
<div>Any guidance on troubleshooting the same'</div>
<div>The glance-api-paste.ini is as follows</div>
<div>
<div># Use this pipeline for no auth or image caching - DEFAULT</div>
<div>[pipeline:glance-api]</div>
<div>pipeline = versionnegotiation unauthenticated-context rootapp</div>
<div># Use this pipeline for image caching and no auth</div>
<div>[pipeline:glance-api-caching]</div>
<div>pipeline = versionnegotiation unauthenticated-context cache rootapp</div>
<div># Use this pipeline for caching w/ management interface but no auth</div>
<div>[pipeline:glance-api-cachemanagement]</div>
<div>pipeline = versionnegotiation unauthenticated-context cache cachemanage rootapp</div>
<div># Use this pipeline for keystone auth</div>
<div>[pipeline:glance-api-keystone]</div>
<div>pipeline = versionnegotiation authtoken context rootapp</div>
<div># Use this pipeline for keystone auth with image caching</div>
<div>[pipeline:glance-api-keystone+caching]</div>
<div>pipeline = versionnegotiation authtoken context cache rootapp</div>
<div># Use this pipeline for keystone auth with caching and cache management</div>
<div>[pipeline:glance-api-keystone+cachemanagement]</div>
<div>pipeline = versionnegotiation authtoken context cache cachemanage rootapp</div>
<div>[composite:rootapp]</div>
<div>paste.composite_factory = glance.api:root_app_factory</div>
<div>/: apiversions</div>
<div>/v1: apiv1app</div>
<div>/v2: apiv2app</div>
<div>[app:apiversions]</div>
<div>paste.app_factory = glance.api.versions:create_resource</div>
<div>[app:apiv1app]</div>
<div>paste.app_factory = glance.api.v1.router:API.factory</div>
<div>[app:apiv2app]</div>
<div>paste.app_factory = glance.api.v2.router:API.factory</div>
<div>[filter:versionnegotiation]</div>
<div>paste.filter_factory = glance.api.middleware.version_negotiation:VersionNegotiationFilter.factory</div>
<div>[filter:cache]</div>
<div>paste.filter_factory = glance.api.middleware.cache:CacheFilter.factory</div>
<div>[filter:cachemanage]</div>
<div>paste.filter_factory = glance.api.middleware.cache_manage:CacheManageFilter.factory</div>
<div>[filter:context]</div>
<div>paste.filter_factory = glance.api.middleware.context:ContextMiddleware.factory</div>
<div>[filter:unauthenticated-context]</div>
<div>paste.filter_factory = glance.api.middleware.context:UnauthenticatedContextMiddleware.factory</div>
<div>[filter:authtoken]</div>
<div>paste.filter_factory = keystone.middleware.auth_token:filter_factory</div>
<div>auth_host = 10.232.90.115</div>
<div>auth_port = 35357</div>
<div>auth_protocol = http</div>
<div>admin_tenant_name = service</div>
<div>admin_user = glance</div>
<div>admin_password = password</div>
</div>
<div></div>
<br />
<div class="gmail_quote">On Mon, Oct 15, 2012 at 4:28 PM, Skible OpenStack <span dir="ltr"><<a href="mailto:skible.openstack@gmail.com" target="_blank">skible.openstack@gmail.com</a>></span> wrote:<br />
<blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;">
<div>
<div>This is why you were getting the Err111 because you can't reach Glance-api service since it doesn't load !
<div><br /> ERROR: Unable to load glance-api from configuration file /etc/glance/glance-api-paste.ini<br /><br /></div>
Verify your glance-api-paste.ini file with the steps provided in this <a href="https://github.com/mseknibilel/OpenStack-Folsom-Install-guide/blob/master/OpenStack_Folsom_Install_Guide_WebVersion.rst" target="_blank">Folsom Install Guide</a> to find what's missing : <br /><br /> Le 15/10/2012 12:55, Trinath Somanchi a écrit :</div>
<div>
<blockquote>ERROR: Unable to load glance-api from configuration file /etc/glance/glance-api-paste.ini</blockquote>
</div>
</div>
</blockquote>
</div>
<br /><br /> -- <br /> Regards,<br /> ----------------------------------------------<br /> Trinath Somanchi,
<div><a href="tel:%2B91%209866%20235%20130" target="_blank">+91 9866 235 130</a></div>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
<br /><br /> -- <br /> Regards,<br /> ----------------------------------------------<br /> Trinath Somanchi,
<div><a href="tel:%2B91%209866%20235%20130" target="_blank">+91 9866 235 130</a></div>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
<br /><br /> -- <br /> Regards,<br /> ----------------------------------------------<br /> Trinath Somanchi,
<div>+91 9866 235 130</div>
</div>
</blockquote>
</div></font>