Subversion Repositories SmartDukaan

Rev

Rev 17989 | Rev 18186 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 17989 Rev 17993
Line 5... Line 5...
5
from shop2020.model.v1.catalog.impl.DataService import Item, PrivateDeals
5
from shop2020.model.v1.catalog.impl.DataService import Item, PrivateDeals
6
from shop2020.model.v1.inventory.impl.DataService import ItemAvailabilityCache
6
from shop2020.model.v1.inventory.impl.DataService import ItemAvailabilityCache
7
from dtr.utils.utils import get_mongo_connection, SOURCE_MAP
7
from dtr.utils.utils import get_mongo_connection, SOURCE_MAP
8
import optparse
8
import optparse
9
import traceback
9
import traceback
10
from datetime import datetime 
10
from datetime import datetime
-
 
11
from shop2020.clients.InventoryClient import InventoryClient
11
 
12
 
12
parser = optparse.OptionParser()
13
parser = optparse.OptionParser()
13
parser.add_option("-H", "--host", dest="hostname",
14
parser.add_option("-H", "--host", dest="hostname",
14
                      default="localhost",
15
                      default="localhost",
15
                      type="string", help="The HOST where the DB server is running",
16
                      type="string", help="The HOST where the DB server is running",
Line 23... Line 24...
23
 
24
 
24
bundleMap = {}
25
bundleMap = {}
25
inventoryMap = {}
26
inventoryMap = {}
26
memCon = None
27
memCon = None
27
maxQuantity = 20
28
maxQuantity = 20
-
 
29
flaggedItems = []
-
 
30
 
-
 
31
def get_inventory_client():
-
 
32
    ic = InventoryClient("inventory_service_server_host2","inventory_service_server_port2").get_client()
-
 
33
    return ic
28
 
34
 
29
def get_memcache_connection(host='127.0.0.1'):
35
def get_memcache_connection(host='127.0.0.1'):
30
    global memCon
36
    global memCon
31
    if memCon is None:
37
    if memCon is None:
32
        print "Establishing connection %s host" %(host)
38
        print "Establishing connection %s host" %(host)
Line 101... Line 107...
101
                item['maxQuantity'] = maxQuantity
107
                item['maxQuantity'] = maxQuantity
102
        temp = sorted(v, key = lambda x: (x['availability']),reverse=True)
108
        temp = sorted(v, key = lambda x: (x['availability']),reverse=True)
103
        mc = get_memcache_connection(host=options.mongoHost)
109
        mc = get_memcache_connection(host=options.mongoHost)
104
        mc.set(str("item_availability_"+str(k)), temp, 60*60)
110
        mc.set(str("item_availability_"+str(k)), temp, 60*60)
105
 
111
 
-
 
112
def flagNoAvailableItems():
-
 
113
    global flaggedItems
-
 
114
    for k, v in bundleMap.iteritems():
-
 
115
        for item in v:
-
 
116
            availability = inventoryMap.get(item.get('item_id'))
-
 
117
            if availability is None:
-
 
118
                flaggedItems.append(item.get('item_id'))
-
 
119
 
106
    
120
    
107
def fetchItemAvailablity():
121
def fetchItemAvailablity():
108
    global inventoryMap
122
    global inventoryMap
109
    try:
123
    try:
110
        InventoryDataService.initialize(db_hostname=options.hostname,setup=False)
124
        InventoryDataService.initialize(db_hostname=options.hostname,setup=False)
Line 116... Line 130...
116
 
130
 
117
if __name__ == '__main__':
131
if __name__ == '__main__':
118
    populateSaholicBundles()
132
    populateSaholicBundles()
119
    addItemIdInfo()
133
    addItemIdInfo()
120
    fetchItemAvailablity()
134
    fetchItemAvailablity()
-
 
135
    flagNoAvailableItems()
-
 
136
    if len(flaggedItems) > 0:
-
 
137
        print "Flagged items ",flaggedItems
-
 
138
        get_inventory_client().updateItemAvailabilityForItemIds(flaggedItems)
-
 
139
        fetchItemAvailablity()
121
    addInfoToMemCache()
140
    addInfoToMemCache()
122
    mc = get_memcache_connection(host=options.mongoHost)
141
    mc = get_memcache_connection(host=options.mongoHost)
123
    print mc.get("item_availability_1005556")
142
    print mc.get("item_availability_1005556")