Saturday, 2014-07-12

*** killer_prince has joined #murano00:05
*** killer_prince is now known as lazy_prince00:06
*** lazy_prince has quit IRC00:10
*** killer_prince has joined #murano00:13
*** killer_prince is now known as lazy_prince00:13
*** lazy_prince has quit IRC00:18
*** killer_prince has joined #murano00:36
*** killer_prince has quit IRC00:40
*** lazy_prif has joined #murano00:40
*** lazy_prif is now known as lazy_prince00:41
*** lazy_prince has quit IRC00:46
*** killer_prince has joined #murano00:50
*** killer_prince is now known as lazy_prince00:50
*** lazy_prince has quit IRC00:54
*** killer_prince has joined #murano01:14
*** killer_prince is now known as lazy_prince01:14
*** lazy_prince has quit IRC01:18
*** killer_prince has joined #murano01:20
*** killer_prince is now known as lazy_prin01:20
*** lazy_prin has quit IRC01:25
*** killer_prince has joined #murano01:26
*** killer_prince has quit IRC01:30
*** killer_prince has joined #murano01:35
*** killer_prince is now known as lazy_prince01:35
*** lazy_prince has quit IRC01:42
*** killer_prince has joined #murano01:44
*** killer_prince is now known as lazy_prince01:44
*** lazy_prince has quit IRC02:00
*** killer_prince has joined #murano02:05
*** killer_prince is now known as lazy_prince02:05
*** lazy_prince has quit IRC02:09
*** killer_prince has joined #murano02:20
*** killer_prince is now known as lazy_prince02:20
*** lazy_prince has quit IRC02:24
*** killer_prince has joined #murano02:31
*** killer_prince is now known as lazy_prince02:31
*** lazy_prince has quit IRC02:35
*** killer_prince has joined #murano02:37
*** killer_prince has quit IRC02:40
*** killer_prince has joined #murano02:41
*** killer_prince is now known as lazy_prince02:42
*** lazy_prince has quit IRC02:48
*** killer_prince has joined #murano03:00
*** killer_prince is now known as lazy_prince03:00
*** chandankumar has joined #murano03:02
*** lazy_prince has quit IRC03:04
*** killer_prince has joined #murano03:07
*** killer_prince is now known as lazy_prince03:07
*** chandankumar has quit IRC03:11
*** lazy_prince has quit IRC03:17
*** killer_prince has joined #murano03:18
*** killer_prince is now known as lazy_prince03:18
*** lazy_prince has quit IRC03:27
*** killer_prince has joined #murano03:29
*** killer_prince is now known as lazy_prince03:29
*** lazy_prince has quit IRC03:38
*** killer_prince has joined #murano03:41
*** killer_prince is now known as lazy_prince03:41
*** lazy_prince has quit IRC03:45
*** killer_prince has joined #murano03:46
*** lazy_prif has joined #murano03:48
*** lazy_prif is now known as lazy_prince03:48
*** killer_prince has quit IRC03:50
*** killer_prince has joined #murano03:52
*** lazy_prince has quit IRC03:53
*** killer_prince has quit IRC03:57
*** killer_prince has joined #murano03:59
*** killer_prince has quit IRC04:04
*** killer_prince has joined #murano04:10
*** killer_prince is now known as lazy_prince04:10
*** lazy_prince has quit IRC04:15
*** killer_prince has joined #murano04:26
*** killer_prince is now known as lazy_prince04:26
*** lazy_prince has quit IRC04:31
*** killer_prince has joined #murano04:32
*** killer_prince is now known as lazy_prince04:32
*** lazy_prince has quit IRC04:37
*** killer_prince has joined #murano04:39
*** killer_prince is now known as lazy_prince04:40
*** lazy_prince has quit IRC04:44
*** killer_prince has joined #murano04:53
*** killer_prince is now known as lazy_prince04:53
*** chandankumar has joined #murano04:56
*** lazy_prince has quit IRC04:59
*** killer_prince has joined #murano05:01
*** killer_prince is now known as lazy_prince05:01
*** lazy_prince has quit IRC05:08
*** bharath has joined #murano05:12
bharathCan anyone assign this bug 1335339 to me?05:13
*** killer_prince has joined #murano05:14
*** killer_prince is now known as lazy_prince05:14
*** lazy_prince has quit IRC05:21
*** killer_prince has joined #murano05:21
*** killer_prince is now known as lazy_prince05:21
*** lazy_prince has quit IRC05:25
*** killer_prince has joined #murano05:28
*** killer_prince is now known as lazy_prince05:29
*** lazy_prince has quit IRC05:33
*** killer_prince has joined #murano05:43
*** killer_prince is now known as lazy_prince05:43
*** bharath has quit IRC05:44
*** lazy_prince has quit IRC05:47
*** killer_prince has joined #murano05:51
*** killer_prince is now known as lazy_prince05:51
*** lazy_prince has quit IRC05:58
*** killer_prince has joined #murano06:00
*** killer_prince is now known as lazy_prince06:00
*** bharath has joined #murano06:02
*** lazy_prince has quit IRC06:05
*** killer_prince has joined #murano06:06
*** killer_prince is now known as lazy_prince06:06
*** lazy_prince has quit IRC06:11
*** killer_prince has joined #murano06:11
*** killer_prince is now known as lazy_prince06:12
*** lazy_prince has quit IRC06:16
*** killer_prince has joined #murano06:21
*** killer_prince is now known as lazy_prince06:21
bharathI cloned the murano-dashboard repo from launchpad using bzr branch lp:~tnurlygayanov/murano/0.1, but while stacking I got this error Exception: Versioning for this project requires either an sdist tarball, or access to an upstream git repository, any solution for this?06:23
*** lazy_prince has quit IRC06:25
stan_lagunbharath: version 0.1 is very old06:29
bharathstan_lagun, oh where can I get juno release?06:29
stan_lagunhttps://git.openstack.org/cgit/?q=murano06:31
stan_lagunhttps://git.openstack.org/stackforge/murano-dashboard06:31
*** killer_prince has joined #murano06:32
stan_lagunbtw i saw you question on deployment. Does it still relevant?06:32
bharathstan_lagun, you mean the bug?06:33
stan_lagunno, 'what happens when I click deploy button'06:34
bharathstan_lagun, yeah I am not getting an overview of what happens behind the scenes06:35
bharathstan_lagun, still debugging, any help from ypur side?06:35
*** killer_prince has quit IRC06:37
*** killer_prince has joined #murano06:37
*** killer_prince is now known as lazy_prince06:37
*** lazy_prince has quit IRC06:44
*** killer_prince has joined #murano06:46
*** killer_prince is now known as lazy_prince06:46
*** lazy_prince has quit IRC06:55
*** killer_prince has joined #murano06:57
*** killer_prince is now known as lazy_prince06:57
*** lazy_prince has quit IRC07:04
*** killer_prince has joined #murano07:06
*** killer_prince is now known as lazy_prince07:06
*** lazy_prince has quit IRC07:11
*** killer_prince has joined #murano07:18
*** killer_prince is now known as lazy_prince07:18
*** lazy_prince has quit IRC07:25
*** chandankumar has quit IRC07:31
*** killer_prince has joined #murano07:39
*** killer_prince is now known as lazy_prince07:40
*** lazy_prince has quit IRC07:44
*** killer_prince has joined #murano07:45
*** killer_prince is now known as lazy_prince07:45
*** sergmelikyan has quit IRC07:46
*** lazy_prince has quit IRC07:47
*** katyafervent is now known as katyafervent_awa07:47
*** tsufiev_ has joined #murano07:47
*** katyafervent_awa is now known as katyafervent07:47
*** killer_prince has joined #murano07:55
*** killer_prince is now known as lazy_prince07:55
*** tsufiev has quit IRC08:28
*** rakhmerov has quit IRC08:28
*** ativelkov has quit IRC08:28
*** igormarnat has quit IRC08:29
*** katyafervent has quit IRC08:29
*** dteselkin has quit IRC08:30
*** IgorYozhikov has quit IRC08:30
*** akuznetsova has quit IRC08:30
*** rakhmerov has joined #murano08:33
*** IgorYozhikov has joined #murano08:34
*** ativelkov has joined #murano08:35
*** akuznetsova has joined #murano08:37
*** katyafervent has joined #murano08:38
*** tsufiev has joined #murano08:40
*** dteselkin has joined #murano08:41
*** tsufiev has quit IRC08:44
*** ativelkov has quit IRC08:44
*** rakhmerov has quit IRC08:45
*** IgorYozhikov has quit IRC08:45
*** katyafervent has quit IRC08:46
*** dteselkin has quit IRC08:46
*** akuznetsova has quit IRC08:46
*** ativelkov has joined #murano08:48
*** akuznetsova has joined #murano08:48
*** IgorYozhikov has joined #murano08:49
*** rakhmerov has joined #murano08:49
*** katyafervent has joined #murano08:53
*** tsufiev has joined #murano08:55
*** dteselkin has joined #murano08:59
*** igormarnat has joined #murano09:00
*** chandankumar has joined #murano09:31
*** bharath_ has joined #murano09:38
*** bharath has quit IRC09:39
*** lazy_prince is now known as killer_prince09:40
*** chandankumar has quit IRC09:48
*** chandankumar has joined #murano10:02
*** chandankumar has quit IRC10:44
*** killer_prince has quit IRC10:48
*** killer_prince has joined #murano10:52
*** killer_prince is now known as lazy_prince10:52
*** lazy_prince has quit IRC10:56
*** chandankumar has joined #murano10:59
*** killer_prince has joined #murano10:59
*** killer_prince is now known as lazy_prince10:59
*** lazy_prince has quit IRC11:23
*** killer_prince has joined #murano11:35
*** killer_prince is now known as lazy_prince11:35
*** chandankumar has quit IRC11:37
*** sergmelikyan has joined #murano11:39
*** lazy_prince has quit IRC11:39
*** killer_prince has joined #murano11:41
*** killer_prince is now known as lazy_prince11:41
*** igormarnat has quit IRC12:06
*** serg_melikyan has quit IRC12:06
*** sergmelikyan has quit IRC12:06
*** dteselkin has quit IRC12:06
*** akuznetsova has quit IRC12:06
*** ativelkov has quit IRC12:06
*** rakhmerov has quit IRC12:06
*** ruhe has quit IRC12:06
*** tsufiev_ has quit IRC12:06
*** ciypro|afk has quit IRC12:06
*** sergmelikyan has joined #murano12:07
*** igormarnat has joined #murano12:07
*** dteselkin has joined #murano12:07
*** rakhmerov has joined #murano12:07
*** akuznetsova has joined #murano12:07
*** ativelkov has joined #murano12:07
*** tsufiev_ has joined #murano12:07
*** serg_melikyan has joined #murano12:07
*** ruhe has joined #murano12:07
*** ciypro|afk has joined #murano12:07
*** bharath_ has quit IRC12:24
*** bharath_ has joined #murano12:32
openstackgerritRuslan Kamaldinov proposed a change to stackforge/murano: Fix DB migration script  https://review.openstack.org/10420513:16
openstackgerritStan Lagun proposed a change to stackforge/murano: Unit tests for exception handling in MuranoPL  https://review.openstack.org/10472513:45
openstackgerritStan Lagun proposed a change to stackforge/murano: Unit tests for engine's YAQL functions  https://review.openstack.org/10495913:46
openstackgerritStan Lagun proposed a change to stackforge/murano: Fixed incorrect information on Python frames in MuranoPL stack traces  https://review.openstack.org/10064013:46
openstackgerritStan Lagun proposed a change to stackforge/murano: Unit tests for macro blocks  https://review.openstack.org/10465113:46
openstackgerritStan Lagun proposed a change to stackforge/murano: Adds Continue macro to MuranoPL  https://review.openstack.org/10493413:47
*** bharath_ has quit IRC13:49
*** chandankumar has joined #murano14:02
*** chandankumar has quit IRC14:15
openstackgerritSerg Melikyan proposed a change to stackforge/murano: Fix issue with incorrect db model on MySQL  https://review.openstack.org/10656314:55
*** bharath has joined #murano14:59
openstackgerritSerg Melikyan proposed a change to stackforge/murano: Fix issue with incorrect model on MySQL  https://review.openstack.org/10656314:59
sergmelikyanbharath, Hi! :) Do you still need a help with going through deployment procedure?14:59
bharathsergmelikyan, Hi, yeah15:00
sergmelikyanHow can I help you? Till which step you debugged? What exactly you are interested in?15:03
sergmelikyanWe can go through any step of deployment procedure, but I need to know what exactly do you want to know :) Too many details may take too much time :) In which timezone do you live? We can do it on Monday, for example.15:12
sergmelikyanOr now :)15:12
bharathsergmelikyan, I have debugged till the point where murano-engine will download core-library and store it in /tmp and extract all yaml files to murano-package-cache folder and then loading io.murano.Object.yaml file15:15
sergmelikyanCool! You have reached actuall class loading part15:16
bharaththe properties changed to YAQL expressions like YAQL($.string) something like that15:16
bharathI live in India(IST)15:16
bharathmonday is ok for me15:16
bharathoh okay15:16
sergmelikyanI am living in Moscow, Russia UTC + 4, so our difference is only hour and half.15:17
sergmelikyanI am usually available from 13:00 till 20:00 by IST15:18
bharathsergmelikyan, but I don't have access to irc at that time :(15:20
sergmelikyan:(15:20
sergmelikyanDo you have some time now?15:21
sergmelikyanor when you are available?15:21
sergmelikyanwe can also talk by Skype or Google Hangout :) I would prefer IRC, since all conversations are logged - and information about how Murano Engine is working may be usefull for others too15:22
stan_lagunbharath: also you can contact me15:23
bharathsergmelikyan, oh okay,15:24
bharathstan_lagun, yeah sure15:24
bharathsergmelikyan, I will be available after 21:30 IST15:24
bharathsergmelikyan, stan_lagun or if we can have any documentation regarding the same?15:26
stan_lagunIt will be helpful if you describe what difficulties do you face15:27
sergmelikyanUnfortunately we don't have any documentation about how so low level implementation details work15:28
sergmelikyanstan_lagun, +10050015:28
sergmelikyanMay be you even don't need to know what class call which and why :)15:28
bharathsergmelikyan, stan_lagun like how the loaded classes changed to JSON and  send to heat engine15:35
stan_lagunclasses are never changed to JSON15:35
bharathstan_lagun, python objects15:36
bharathsergmelikyan, I thought of learning what each class does, mostly in dsl15:36
stan_lagunAPI sends to engine object model. That is input data and object layout (who owns who)15:36
stan_lagunEngine loads classes that are mentioned in object model and calls entry point15:37
stan_lagunPython code is never sent and not converted to anything. But it is possible to make some Python functions/classes to be accessible from DSL. All such classes and functions are built in into engine15:38
sergmelikyanThere is an availability to register python classes as MuranoPL (like ones in yaml files). There is special class responsible for talking with Heat: https://github.com/stackforge/murano/blob/master/murano/engine/system/heat_stack.py15:39
sergmelikyanSo different DSL classes call HeatStack class to add different parts to final template that is sent to Heat. For example this is code responsible for creation OS::Nova::Server resource https://github.com/stackforge/murano/blob/master/meta/io.murano/Classes/resources/Instance.yaml#L8915:39
sergmelikyanbharath, if you are working on some application for Murano we can help you with MPL code for that application. We expect to have full documentation for core library before J release, but now we are focused on stability and test coverage.15:46
sergmelikyanAny questions about how to do this and that using core library are also welcomed :)15:48
sergmelikyanOr how to express something on MPL :)15:48
bharathsergmelikyan, Yeah I am trying to understanding how murano exactly works15:48
stan_lagunbharath: have you read MuranoPL documentation?15:49
bharathsergmelikyan, stan_lagun I am not aware of MPL and yaql15:49
sergmelikyanhttp://murano.readthedocs.org/en/latest/articles/murano_pl_index.html15:50
bharathso I am looking how these are converted to HOT template15:50
stan_lagunthis is not converted to HOT15:50
bharathstan_lagun, oh, then what exactly is sent to heat engine?15:51
sergmelikyanNothing is converted to HOT. You just explicitly (in imperative manner) say what to send to Heat in MPL15:51
bharathsergmelikyan, I will read through this document15:51
sergmelikyanhttps://github.com/ativelkov/yaql15:51
sergmelikyanhttps://github.com/stackforge/murano/blob/master/meta/io.murano/Classes/resources/Instance.yaml#L8915:51
sergmelikyanbharath, this is example how we create VMs in Murano using Heat15:51
stan_lagunMuranoPL is an independent programming language. Like python, but more domain-specific. Classes (YAMLs) are written in that language. They generate HOT when necessary.15:52
stan_lagunWhat is send is an inputs to that code. Think like memory snapshot15:52
sergmelikyanas you see RAW HOT template is inlined to MPL and after some variable replacement is sent to Heat15:52
sergmelikyanline 104-10515:52
stan_lagunMurano interprets YAMLs, not converts it to anything15:53
sergmelikyanby link above we declare local variable template and assign to it  dictionary  that represents part of HOT template, during this assignment  interpretations variables are replaced by values and on 104 line we save this template and on 105 send to Heat15:55
sergmelikyanhttps://github.com/stackforge/murano/blob/master/murano/engine/system/heat_stack.py - this is class that talks to Heat. As you see it have very simple interface. You basically can get current template, update it or replace, send to Heat and get Output variables15:56
*** bharath has quit IRC15:57
sergmelikyansorry for too much details :)15:57
sergmelikyanDocumentation and sources of core library is a good start to understand how Murano works.15:57
sergmelikyanhttps://github.com/stackforge/murano/tree/master/meta/io.murano - core classes15:58
sergmelikyanhttps://github.com/stackforge/murano/tree/master/murano/engine/system - system classes15:58
*** bharath has joined #murano16:07
bharathstan_lagun, serg_melikyan so after loading files those files are converted by normal templates ?16:15
stan_lagundidn't get your question. YAMLs that are loaded are not converted to anything16:17
bharathstan_lagun, after they load they values were wrapped with YAQl()16:19
stan_lagunYAML parser is customizable. We taught him to parse strings that are expressions rather than just data string as YAQL expressions. JSON can have only int/string/boolean/null datatypes. But YAML is not limited to those types and can have other program-specific types like YAQL expressions in this case16:22
stan_lagunYAQL(expr) is just how Python prints those expressions16:22
bharathstan_lagun, yeah I tried type() for that it says yaql :)  but how these data is sent to heat ?16:28
stan_lagunthey are not sent to heat16:28
stan_lagunwhy do you think so?16:28
bharathstan_lagun, we need to some details to heat right?16:29
bharathstan_lagun, so I am searching what exactly is pushing to heat engine16:29
bharath*send16:29
stan_lagunthose YAQLs are instructions of our programming language. Engine executes them. So the whole set of YAMLs is one big program. During its execution that program generates parts of HOT template and pushes them to Heat16:31
bharathstan_lagun, so we are not sending whole HEAT template at a time?16:34
bharathstan_lagun, can you refer those code snippets if you dont mind?16:34
stan_lagunThere is no one HOT template. It is generated by small portions by different MuranoPL classes.16:34
stan_lagunhttps://github.com/stackforge/murano/blob/master/meta/io.murano/Classes/resources/Instance.yaml#L8916:35
stan_lagunhttps://github.com/stackforge/murano/blob/master/meta/io.murano/Classes/resources/Instance.yaml#L89-L10516:35
bharathstan_lagun, can we send parts of template to heat?16:36
bharathstan_lagun, but we need to mention some reference like stack name, where we are doing it?16:37
stan_lagunwe can always take existing stack template, merge a snippet into it and say heat UPDATE STACK if we have valid template at each point16:37
bharathstan_lagun, oh okay16:38
stan_lagunsnippets should be self-reliant. You don't need to mention stack name anywhere16:38
bharathstan_lagun, how we are creating stack ?16:41
bharathstan_lagun, environment.yaml?16:41
stan_lagunhttps://github.com/stackforge/murano/blob/master/meta/io.murano/Classes/Environment.yaml#L5016:41
bharathstan_lagun, got it16:43
bharathstan_lagun, need to learn how to write these yaml files16:43
stan_lagunits a matter of learning new programming language. It you know Python and OOP this shoud not be a big deal16:44
bharathstan_lagun, :)16:47
bharathstan_lagun, one doubt check this https://github.com/stackforge/murano/blob/master/meta/io.murano/Classes/resources/NeutronNetwork.yaml#L55,16:48
bharathstan_lagun, here getDefaultRouter referes to https://github.com/stackforge/murano/blob/3091373b594ef85d06454882bdfb7b6ec8adfc84/murano/engine/system/net_explorer.py#L65?16:48
stan_lagunyes16:49
bharathstan_lagun, and if we write a new yaml(I mean I want to add a new resource), where I need to mention that murano-engine should also check this yaml file16:50
bharath?16:50
stan_lagunYAMLs are zipped into murano packages containing manifest file and other things (UI, resource files etc). As soon as you upload such package to Murano it becomes available in dashboard. If you add your app to environment your classes will be loaded by engine16:53
bharathstan_lagun, no I want to add it core library16:56
bharathstan_lagun, for example I want to provide an option for user to add firewall16:57
bharathstan_lagun, so while creating environment I will ask user for that16:57
stan_lagunif you want to add another yaml it must be referenced from core library's manifest file. Each yaml is a class with its name. If that name if mentioned in object model then it will be loaded and processed16:58
stan_lagunFirewall is not necessary should be in core library. Its just an application like wordpress or something16:58
bharathstan_lagun, yeah true16:59
bharathstan_lagun, we dont need any script files I guess for this I guess?17:01
stan_lagunnote, that currently dashboard is not capable of sharing instances. So you cannot in UI make 2 apps be installed on one VM. But this is supported on engine.17:02
stan_lagunSo firewall is a problem now because it need to be installed alongside other applications on their VMs. Of cause this is a problem if you want to have it in UI17:04
bharathstan_lagun, can17:06
bharathstan_lagun, can't we install telnet and git in one vm?17:06
bharathstan_lagun, not in UI ,in one environment I have two apps, can't we deploy both apps in one vm?17:07
stan_lagunwe can. But in dashboard we just cannot say that particular VM should be used for 2 applications17:08
bharathstan_lagun, oh okay17:09
bharathstan_lagun, I thought one environment refers to one VM17:15
stan_lagunno. Environment is a whole stack of applications, resources, VMs etc. Like stack in Heat17:16
stan_lagunSo 1 env = 1 stack17:16
openstackgerritStan Lagun proposed a change to stackforge/murano: Unit tests for exception handling in MuranoPL  https://review.openstack.org/10472517:18
bharathstan_lagun, then one app will create one vm?17:18
openstackgerritStan Lagun proposed a change to stackforge/murano: Fixed incorrect information on Python frames in MuranoPL stack traces  https://review.openstack.org/10064017:18
stan_lagunbharath: object model (input JSON) describes all objects (environment, applications, VMs etc). Object model can describe a topology where each app has its own VM. Or where one VM is used by several apps17:21
stan_lagunit is user who decides, not applications17:21
bharathstan_lagun, object model?17:22
bharathbharath, you mean user input?17:24
stan_lagundashboard is a visual editor for JSON called object model. This is what sent from API to engine. Object model describes what objects environment consist of and values of those objects' properties. If it was Python this would be like you dump entire application state to JSON17:24
stan_lagunuser input is part of object model17:24
stan_lagunhttp://paste.openstack.org/show/86235/17:26
stan_lagunthings under "Objects" is what produced by dashboard/API17:27
stan_lagunthe root object there is of type io.murano.Environment17:28
bharathstan_lagun, I have seen this data is stored in session or deployment table17:29
bharathstan_lagun, here we mentioned "application"17:29
bharathstan_lagun, so I thought two apps same vm17:29
stan_lagunif my example application of type io.murano.apps.apache.Apache have a property called "instance" with a value of type io.murano.resources.LinuxMuranoInstance describing the VM17:30
stan_lagunapplications, VMs, Heat resources, anything you can imagine is an instance of some MuranoPL class. Like in normal OOP. Object model is an objects tree. By objects I mean instances of classes17:34
bharathstan_lagun, i was confused17:37
bharathstan_lagun,in your example you have only one app17:37
bharathstan_lagun, so the instance section will deal with vm?17:38
stan_lagunyes. But you can have as many as you want. applications is a list17:38
bharathstan_lagun, yeah I saw it is an array :)17:38
bharathstan_lagun, can you help me with this?17:43
bharathstan_lagun, I have two apps https://github.com/murano-project/murano-app-incubator/blob/master/io.murano.apps.linux.Telnet/Classes/telnet.yaml#L1417:43
bharathstan_lagun, https://github.com/murano-project/murano-app-incubator/blob/master/io.murano.apps.linux.Git/Classes/git.yaml#L1717:43
bharathstan_lagun, what I have to change so that they will deploy to same VM?17:44
bharathstan_lagun, (sorry for asking too many questions)17:47
stan_lagunhttp://paste.openstack.org/show/86240/17:55
stan_lagunbharath: ^^. You just refer to object defined in other place of object model by ids ID17:57
*** slagun has joined #murano18:01
bharathstan_lagun, in second application we don't need to specify all instance details?18:03
*** stan_lagun has quit IRC18:05
slagunin my example it is the same object used for 2 applications18:06
slagunif you specify details it would be another object -> another VM18:06
bharathslagun, okay18:08
bharathslagun, but how  we can identify the same instance id while deploying?18:09
slagunwhy should we?18:09
slagunin general application should not care18:10
bharathslagun, no I mean in core library18:10
slagunhow core library relates to this?18:11
slaguncore library is just a set of commonly used classes18:11
bharathslagun, core library will assign same env id for  app apps?18:11
slagunno. Object IDs are generated at dashboard18:12
slagundashboard builds the entire object model18:12
bharathslagun, then how can we accomplish this?18:14
slagunaccomplish what?18:14
bharathtwo apps in same vm18:14
slagunhttp://paste.openstack.org/show/86240/ - here 2 apps on the same VM18:15
bharathslagun, sry I am confusing you18:16
bharathslagun, I mean how to generate that JSON?18:16
slagunits okay18:16
slagunit is not generated. This JSON is the engine's input. Dashboard is just a visual tool to build such JSON.18:17
slagunLike a Heat template18:17
slagunThis is what written by human or in UI18:17
bharathslagun, you mean to say that when I click on "deploy environment" dashboard will generate this JSON  based on apps in env?18:17
slagunyes18:18
slagunbut it does it before you click the button18:18
bharathslagun, got it18:18
bharathslagun, before we click?18:18
bharathslagun, while adding?18:18
slagunJSON is generated interactively. Each time you do something in dashboard JSON changed. When you click "deploy" you just send last version to engine18:19
slagunAPI stores this JOSN and gives RestAPI to edit it18:19
bharathslagun, if you are free, can you refer me the code ?18:21
slagunThe flow goes like this: dashboard -> API -> engine -> (Heat, gues agent on VMs, Neutron) -> API -> dashboard18:21
slagunWhat code exactly are you looking for?18:22
bharathslagun, which build json18:22
slagunThere is no code that builds the whole JSON at once. It also generated by small portions app by app. Dashboard knows what need to be added to JSON by looking at UI forms that are part of the packages18:25
slaguntsufiev can point you where the code in dashboard resides18:25
bharathslagun, oh okay18:27
bharathtsufiev, tsufiev_ can you please refer the code which builds the json?18:28
slagunbharath: how it will help you? dashboard have no hardcoded knowledge on any of the keys in that JSON. It is completely dynamic18:30
slagunhttp://murano.readthedocs.org/en/latest/articles/murano_pl.html#object-model18:31
bharathslagun, that's true, I am thinking of how to do that(deploy all apps of same env in same vm)18:34
slagunDashboard cannot do that right now. It just cannot generate that JSON. If you want to do that manually (without UI) you just write that by hand18:35
bharathslagun,but how can we know that instance id?18:37
slagunyou generate it18:38
slagunput any UUID insead of "InstanceID" in my example18:38
slagun"InstanceID" is also valid ID. ID can be any string that is unique within environment18:39
bharathslagun, so I thought if we can see what json we genereated till, then we can we get object id, and that we can use it next app dictionary18:39
slagunyes, thats right18:39
bharathslagun, so if we can see that code which is generating that json, we know that where it is storing18:40
slagunYou will not know. Imagine there is an environment with 10 telnet application. And  then I want to install git on 6's telnet VM18:42
slaguneven if you see the whole JSON you will not know what instance to take18:43
slagunIt requires user to select it from existing list18:43
slagunAnd that functionality is missing18:43
bharathslagun, yeah true, I want to see for a simple case18:44
slagunAnd if you write JSON manually you can generate one UUID and use it in several polaces18:44
slagun*places18:44
bharathslagun, how?18:44
bharathslagun, can you explain it?18:44
slagunagain, see my example at http://paste.openstack.org/show/86240/. The string "InstanceID" is an instance ID. It used in 2 places. You can replace "InstanceID" with "bf1bba069c3e461896377c3e2d1c60e3" for example or any other random string18:47
slagunthe only thing that matters is that it is exactly the same string in 2 places18:47
bharathslagun, but that will be same for different env also, right?18:47
slagunthis ID of an object within one object model. It must be unique within that JSON. You generate 1 ID per object per env18:48
slagunBut if you use the same ID in different envs that will work18:49
slagunwe just generate UUID that is globally unique18:49
bharathslagun, yeah we will generate uuid for one env , but we need to store in somewhere, so that we will use it later?18:52
slagunIf you write that JSON by hand you store it in notepad/clipboard :) And currently this is the only option. When UI will be capable of doing that it will navigate through entire JSON that can be obtained anytime from API and if you need to specify instance for application it will present you a list of all instances used in all applications in env + ability to create new instance18:55
slagunImagine that you are writing Heat template. Object IDs are what resource names in Heat. You decide how to name them and reference them by whatever you called them18:57
bharathslagun, yeah got it, but heat template is what we have to write an upload, but here dashboard is all generating some json, so we can modify it18:58
bharathslagun, so why we need to manually write that and if we write it manually how can we send to engine?18:59
slagunDashboard cannot generate JSON that uses one VM in 2 places. So unless you want to rewrite half of dashboard there is no way it generates what you want. Thats not what can easily be done. So if you really need such JSON the only way to deploy such topology is to generate it in your script or write it manually. In both cases you can do it at once.19:04
slagunhttp://murano.readthedocs.org/en/latest/specification/index.html19:04
slagun^^ that's API spec. You can upload your JSON by "Create Environment" call19:05
slagunthe doc is not completely up to date. I see many examples that were valid in Murano 0.4 but outdated as of 0.519:06
slagunbut the whole idea stays true19:06
slagunor better - use Murano python-client19:07
slagunit incapsulates  all of the API19:07
bharathslagun, if I can see how it is generating json, may be I will understand why we can't do that19:14
slagunthats because current version of dashboard operates only on applications. In object model application is an object tree with many objects inside. UI flattens this. It takes your input, takes JSON template from UI form in murano package and just puts entered values in arbitrary places of application subtree. As a result UI generates the whole subtree of objects as it was one undividable unit. It has no UI forms for individual parts of that subtree. There19:21
slagun is no separate dialog for VM properties for example. Because of that while configuring application you cannot select VM from existing list. It just don't work that way. It will when instead of entering one monolithic application it will allow entering individual objects19:21
slagunYou need to be able to dig inside applications and operate with inner objects. Thats just completely hidden now19:22
bharathslagun, a bit tricky19:26
bharathslagun, so we can't modify object model19:27
bharath?19:27
slagunwe can19:28
slagunthere is API which allows any modifications of object model19:28
slagunbut the UI is limited19:29
slagunobject model is what user puts onto environment19:29
bharathslagun, object model is in request?19:30
slagunit stored in database. There is an API calls to modify any parts of this JSON19:31
slagunor to get any part19:31
slagunor the whole JSON19:31
bharathslagun, so I think dashboard will fetch this JSON from api and  updates it after adding every app?19:33
slagunyes19:33
bharathslagun, then from that JSON we can fetch instance ID I guess?19:34
slaguntechnically - yes. You can get any data that is already in that JSON19:35
slagunIf you were writing custom UI for your applications you wouldn't have such problem19:36
slagunBut in that case your dashboard code will know where to look for that ID and where to put it. It will know what to ask the user19:37
slagunBut Murano dashboard is generic. It has no such knowledge19:37
slagunIt works with any given application published to catalog. It doesn't knows what is VM or ID19:38
slagunIt doesn't understand the JSON it produces.19:39
slagunIt reads YAML definition saying what to ask from user and where to put that data19:39
slagunAnd that YAML is not that powerful to describe "take ID from some other part of JSON"19:40
bharathslagun, yeah19:40
bharathslagun, but I want to get all apps in one env deployed in one vm19:42
slagunYou can do that by analyzing object model suppose someone generates it19:44
slagunyou map instances to applications19:44
bharathslagun, where can we see that, from api?19:45
slaguneverything in object model. You know that 2 applications use one common object because its ID appears twice in object model. You get required keys and the structure of that JSON from class declarations (MuranoPL)19:46
slagunAPI is just a way of accessing that JSON19:46
bharathslagun, I haven't understood this object model fully19:51
bharathslagun, but I will ask you some specific doubts on moday19:51
bharathslagun, thankyou for your help19:51
slagunno problem19:51
slagunbharath: are you familiar with pickle?19:55
bharathslagun, you mean for serialization?19:55
slagunyes19:56
bharathslagun, I am aware of that, but I haven't worked yet19:56
slagunin Python you take some data structure (probably consisting of objects of your custom classes) and then serialize it to some file19:57
slagunLater you can take that file and restore objects from it19:57
bharathslagun, yeah19:57
slagunObject Model is such file for MuranoPL19:58
slagunIt is objects serialized to JSON19:58
bharathslagun, oh19:59
slagunEach object representing some cloud entity. The class is written in MuranoPL. And object model describes instances of those classes20:00
bharathslagun, eash resource is an object model?20:00
slaguneach resource is an object in object model. As well as each application20:00
slagunThe environment itself is an object20:01
slagunJSON is a tree-structure. Tree of objects20:01
slagunObjects reference other objects. As in regular OOP20:01
bharathslagun, oh getting an overview of object model20:01
slagunyes20:01
bharathslagun, but need to work on coding part20:02
bharathslagun, okay bye it's about 2AM here20:02
slagunbye20:03
bharathslagun, thanks for your help20:03
*** bharath has quit IRC20:03

Generated by irclog2html.py 2.14.0 by Marius Gedminas - find it at mg.pov.lt!