jmeter = Blueprint('jmeter', __name__)
 
 grpc_port = '50054'
-pod_name = 'clover-jmeter-master'
+pod_name = 'clover-jmeter-master.default'
 jmeter_grpc = pod_name + ':' + grpc_port
 channel = grpc.insecure_channel(jmeter_grpc)
 stub = jmeter_pb2_grpc.ControllerStub(channel)
 
 
 @jmeter.route("/jmeter/gen", methods=['GET', 'POST'])
+@jmeter.route("/jmeter/create", methods=['GET', 'POST'])
 def gentest():
     try:
         p = request.json
         u_list = []
         u_names = []
         u_methods = []
+        u_agents = []
         try:
             for u in p['url_list']:
                 u_list.append(u['url'])
                 u_names.append(u['name'])
                 u_methods.append(u['method'])
+                u_agents.append(u['user-agent'])
             url_list = pickle.dumps(u_list)
             url_names = pickle.dumps(u_names)
             url_methods = pickle.dumps(u_methods)
+            url_agents = pickle.dumps(u_agents)
             num_threads = p['load_spec']['num_threads']
             ramp_time = p['load_spec']['ramp_time']
+            duration = p['load_spec']['duration']
             loops = p['load_spec']['loops']
         except (KeyError, ValueError) as e:
             logging.debug(e)
         response = stub.GenTest(jmeter_pb2.ConfigJmeter(
             url_list=url_list, url_names=url_names, url_methods=url_methods,
             num_threads=str(num_threads), ramp_time=str(ramp_time),
-            loops=str(loops)))
+            url_agents=url_agents, duration=str(duration), loops=str(loops)))
     except Exception as e:
         logging.debug(e)
         if e.__class__.__name__ == "_Rendezvous":
 
   name='jmeter.proto',
   package='jmeter',
   syntax='proto3',
-  serialized_pb=_b('\n\x0cjmeter.proto\x12\x06jmeter\"F\n\nTestParams\x12\x12\n\nnum_slaves\x18\x01 \x01(\t\x12\x11\n\ttest_plan\x18\x02 \x01(\t\x12\x11\n\tslave_ips\x18\x03 \x01(\t\"\x96\x01\n\x0c\x43onfigJmeter\x12\x10\n\x08url_list\x18\x01 \x01(\t\x12\x13\n\x0bnum_threads\x18\x02 \x01(\t\x12\x11\n\turl_names\x18\x03 \x01(\t\x12\x15\n\rurl_protocols\x18\x04 \x01(\t\x12\x13\n\x0burl_methods\x18\x05 \x01(\t\x12\r\n\x05loops\x18\x06 \x01(\t\x12\x11\n\tramp_time\x18\x07 \x01(\t\"\x1e\n\x0bJmeterReply\x12\x0f\n\x07message\x18\x01 \x01(\t\",\n\x08JResults\x12\x10\n\x08r_format\x18\x01 \x01(\t\x12\x0e\n\x06r_file\x18\x02 \x01(\t2\xb3\x01\n\nController\x12\x36\n\x07GenTest\x12\x14.jmeter.ConfigJmeter\x1a\x13.jmeter.JmeterReply\"\x00\x12\x36\n\tStartTest\x12\x12.jmeter.TestParams\x1a\x13.jmeter.JmeterReply\"\x00\x12\x35\n\nGetResults\x12\x10.jmeter.JResults\x1a\x13.jmeter.JmeterReply\"\x00\x62\x06proto3')
+  serialized_pb=_b('\n\x0cjmeter.proto\x12\x06jmeter\"F\n\nTestParams\x12\x12\n\nnum_slaves\x18\x01 \x01(\t\x12\x11\n\ttest_plan\x18\x02 \x01(\t\x12\x11\n\tslave_ips\x18\x03 \x01(\t\"\xbc\x01\n\x0c\x43onfigJmeter\x12\x10\n\x08url_list\x18\x01 \x01(\t\x12\x13\n\x0bnum_threads\x18\x02 \x01(\t\x12\x11\n\turl_names\x18\x03 \x01(\t\x12\x15\n\rurl_protocols\x18\x04 \x01(\t\x12\x13\n\x0burl_methods\x18\x05 \x01(\t\x12\x12\n\nurl_agents\x18\x06 \x01(\t\x12\r\n\x05loops\x18\x07 \x01(\t\x12\x11\n\tramp_time\x18\x08 \x01(\t\x12\x10\n\x08\x64uration\x18\t \x01(\t\"\x1e\n\x0bJmeterReply\x12\x0f\n\x07message\x18\x01 \x01(\t\",\n\x08JResults\x12\x10\n\x08r_format\x18\x01 \x01(\t\x12\x0e\n\x06r_file\x18\x02 \x01(\t2\xb3\x01\n\nController\x12\x36\n\x07GenTest\x12\x14.jmeter.ConfigJmeter\x1a\x13.jmeter.JmeterReply\"\x00\x12\x36\n\tStartTest\x12\x12.jmeter.TestParams\x1a\x13.jmeter.JmeterReply\"\x00\x12\x35\n\nGetResults\x12\x10.jmeter.JResults\x1a\x13.jmeter.JmeterReply\"\x00\x62\x06proto3')
 )
 
 
       is_extension=False, extension_scope=None,
       options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='loops', full_name='jmeter.ConfigJmeter.loops', index=5,
+      name='url_agents', full_name='jmeter.ConfigJmeter.url_agents', index=5,
       number=6, type=9, cpp_type=9, label=1,
       has_default_value=False, default_value=_b("").decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       options=None, file=DESCRIPTOR),
     _descriptor.FieldDescriptor(
-      name='ramp_time', full_name='jmeter.ConfigJmeter.ramp_time', index=6,
+      name='loops', full_name='jmeter.ConfigJmeter.loops', index=6,
       number=7, type=9, cpp_type=9, label=1,
       has_default_value=False, default_value=_b("").decode('utf-8'),
       message_type=None, enum_type=None, containing_type=None,
       is_extension=False, extension_scope=None,
       options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='ramp_time', full_name='jmeter.ConfigJmeter.ramp_time', index=7,
+      number=8, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None, file=DESCRIPTOR),
+    _descriptor.FieldDescriptor(
+      name='duration', full_name='jmeter.ConfigJmeter.duration', index=8,
+      number=9, type=9, cpp_type=9, label=1,
+      has_default_value=False, default_value=_b("").decode('utf-8'),
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      options=None, file=DESCRIPTOR),
   ],
   extensions=[
   ],
   oneofs=[
   ],
   serialized_start=97,
-  serialized_end=247,
+  serialized_end=285,
 )
 
 
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=249,
-  serialized_end=279,
+  serialized_start=287,
+  serialized_end=317,
 )
 
 
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=281,
-  serialized_end=325,
+  serialized_start=319,
+  serialized_end=363,
 )
 
 DESCRIPTOR.message_types_by_name['TestParams'] = _TESTPARAMS
   file=DESCRIPTOR,
   index=0,
   options=None,
-  serialized_start=328,
-  serialized_end=507,
+  serialized_start=366,
+  serialized_end=545,
   methods=[
   _descriptor.MethodDescriptor(
     name='GenTest',
 
         <longProp name="ThreadGroup.start_time">1385457190000</longProp>
         <longProp name="ThreadGroup.end_time">1385457190000</longProp>
         <boolProp name="ThreadGroup.scheduler">true</boolProp>
-        <stringProp name="ThreadGroup.duration">60</stringProp>
+        <stringProp name="ThreadGroup.duration">{{ duration }}</stringProp>
         <stringProp name="ThreadGroup.delay"/>
         <boolProp name="ThreadGroup.delayedStart">true</boolProp>
       </ThreadGroup>
           <stringProp name="HTTPSampler.embedded_url_re"/>
           <stringProp name="HTTPSampler.implementation"/>
         </HTTPSampler>
+        <hashTree>
+         <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
+           <collectionProp name="HeaderManager.headers">
+             <elementProp name="" elementType="Header">
+               <stringProp name="Header.name">User-Agent</stringProp>
+               <stringProp name="Header.value">{{ url_agents[loop.index0] }}</stringProp>
+             </elementProp>
+           </collectionProp>
+         </HeaderManager>
         <hashTree/>
+        </hashTree>
         {%- endfor %}