Closed mmiglier closed 8 years ago
When trying to load the following deployment model from the shell ui I get a loop of errors saying "Could not unescaped chain:&&".
{ "eClass" : "net.cloudml.core:CloudMLModel", "name" : "Generated_Single Node", "providers" : [{ "eClass" : "net.cloudml.core:Provider", "name" : "aws-ec2", "credentials" : "/Users/miglie/.aws/credentials-for-cloudml" } ], "internalComponents" : [{ "eClass" : "net.cloudml.core:InternalComponent", "name" : "Java" ,"resources" : [{ "eClass" : "net.cloudml.core:Resource", "name" : "JavaInstallPackage", "installCommand" : "sudo apt-get update -y && sudo apt-get install openjdk-7-jdk -y", "requireCredentials" : false, "executeLocally" : false}] ,"requiredExecutionPlatform" : { "eClass" : "net.cloudml.core:RequiredExecutionPlatform", "name" : "OSRequired", "owner" : "internalComponents[Java]" ,"demands" : [{ "eClass" : "net.cloudml.core:Property", "name" : "", "value" : "" } ] } ,"providedExecutionPlatforms" : [{ "eClass" : "net.cloudml.core:ProvidedExecutionPlatform", "name" : "JavaProvided", "owner" : "internalComponents[Java]" ,"offers" : [{ "eClass" : "net.cloudml.core:Property", "name" : "", "value" : "" } ] }] }, { "eClass" : "net.cloudml.core:InternalComponent", "name" : "WebContainer" ,"resources" : [{ "eClass" : "net.cloudml.core:Resource", "name" : "JBossInstallPackage", "installCommand" : "sudo bash -c \"$(curl -fsSL https://gist.github.com/mmiglier/8db76069313d512df0da/raw/wildfly-install.sh)\"", "requireCredentials" : false, "executeLocally" : false}] ,"requiredPorts" : [{ "eClass" : "net.cloudml.core:RequiredPort", "name" : "ClientPort", "portNumber" : "0", "isLocal" :false, "isMandatory" : false , "component" : "internalComponents[WebContainer]" } ] ,"requiredExecutionPlatform" : { "eClass" : "net.cloudml.core:RequiredExecutionPlatform", "name" : "JavaRequired", "owner" : "internalComponents[WebContainer]" ,"demands" : [{ "eClass" : "net.cloudml.core:Property", "name" : "", "value" : "" } ] } ,"providedExecutionPlatforms" : [{ "eClass" : "net.cloudml.core:ProvidedExecutionPlatform", "name" : "WCProvided", "owner" : "internalComponents[WebContainer]" ,"offers" : [{ "eClass" : "net.cloudml.core:Property", "name" : "", "value" : "" } ] }] }, { "eClass" : "net.cloudml.core:InternalComponent", "name" : "MySQL DB" ,"resources" : [{ "eClass" : "net.cloudml.core:Resource", "name" : "MySQLInstall", "installCommand" : "sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password password password' && sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password_again password password' && sudo apt-get -y install mysql-server", "configureCommand" : "mysql -uroot -ppassword -e \"CREATE DATABASE ticketmonster ; GRANT ALL ON ticketmonster.* TO sa@localhost IDENTIFIED BY 'sa' ;\"", "requireCredentials" : false, "executeLocally" : false}] ,"providedPorts" : [{ "eClass" : "net.cloudml.core:ProvidedPort", "name" : "Server", "isLocal" : false, "portNumber" : "0", "component" : "internalComponents[MySQL DB]" }] ,"requiredExecutionPlatform" : { "eClass" : "net.cloudml.core:RequiredExecutionPlatform", "name" : "WCRequired", "owner" : "internalComponents[MySQL DB]" ,"demands" : [{ "eClass" : "net.cloudml.core:Property", "name" : "", "value" : "" } ] } ,"requiredExecutionPlatform" : { "eClass" : "net.cloudml.core:RequiredExecutionPlatform", "name" : "RequiredExecutionPlatform", "owner" : "internalComponents[MySQL DB]" ,"demands" : [{ "eClass" : "net.cloudml.core:Property", "name" : "", "value" : "" } ] } }, { "eClass" : "net.cloudml.core:InternalComponent", "name" : "WebApp" ,"resources" : [{ "eClass" : "net.cloudml.core:Resource", "name" : "War", "downloadCommand" : "sudo apt-get install git maven -y && git clone https://github.com/mmiglier/ticket-monster.git && cd ticket-monster/demo && git checkout modaclouds", "installCommand" : "mvn install", "requireCredentials" : false, "executeLocally" : false}] ,"requiredExecutionPlatform" : { "eClass" : "net.cloudml.core:RequiredExecutionPlatform", "name" : "WCRequired", "owner" : "internalComponents[WebApp]" ,"demands" : [{ "eClass" : "net.cloudml.core:Property", "name" : "", "value" : "" } ] } } ], "vms" : [{ "eClass" : "net.cloudml.core:VM", "name" : "CloudNodeInstance_WebVM", "minRam" : "3840", "maxRam" : "0", "minCores" : "1", "maxCores" : "0", "minStorage" : "410", "maxStorage" : "50", "os" : "ubuntu", "location" : "", "sshKey" : "", "securityGroup" : "", "groupName" : "", "privateKey" : "", "is64os" : true, "provider" : "providers[aws-ec2]", "imageId" : "" ,"providedExecutionPlatforms" : [{ "eClass" : "net.cloudml.core:ProvidedExecutionPlatform", "name" : "OSProvided", "owner" : "vms[CloudNodeInstance_WebVM]" ,"offers" : [{ "eClass" : "net.cloudml.core:Property", "name" : "", "value" : "" } ] }] } ], "relationships" : [{ "eClass" : "net.cloudml.core:Relationship", "name" : "name_b706b66c-6c7b-4496-be94-b2ec243dcc2f" ,"providedPort" : "internalComponents[MySQL DB]/providedPorts[Server]" ,"requiredPort" : "internalComponents[WebContainer]/requiredPorts[ClientPort]" } ], "internalComponentInstances" : [ { "eClass" : "net.cloudml.core:InternalComponentInstance", "name" : "WebApp", "type" : "internalComponents[WebApp]" ,"requiredExecutionPlatformInstance" : { "eClass" : "net.cloudml.core:RequiredExecutionPlatformInstance", "name" : "WCRequired", "owner" : "internalComponentInstances[WebApp]", "type" : "internalComponents[WebApp]/requiredExecutionPlatform[WCRequired]" } } , { "eClass" : "net.cloudml.core:InternalComponentInstance", "name" : "WebContainer", "type" : "internalComponents[WebContainer]" ,"requiredPortInstances" : [{ "eClass" : "net.cloudml.core:RequiredPortInstance", "name" : "ClientPort", "type" : "internalComponents[WebContainer]/requiredPorts[ClientPort]" } ] ,"requiredExecutionPlatformInstance" : { "eClass" : "net.cloudml.core:RequiredExecutionPlatformInstance", "name" : "JavaRequired", "owner" : "internalComponentInstances[WebContainer]", "type" : "internalComponents[WebContainer]/requiredExecutionPlatform[JavaRequired]" } } , { "eClass" : "net.cloudml.core:InternalComponentInstance", "name" : "Java", "type" : "internalComponents[Java]" ,"requiredExecutionPlatformInstance" : { "eClass" : "net.cloudml.core:RequiredExecutionPlatformInstance", "name" : "OSRequired", "owner" : "internalComponentInstances[Java]", "type" : "internalComponents[Java]/requiredExecutionPlatform[OSRequired]" } } , { "eClass" : "net.cloudml.core:InternalComponentInstance", "name" : "MySQL DB", "type" : "internalComponents[MySQL DB]" ,"providedPortInstances" : [{ "eClass" : "net.cloudml.core:ProvidedPortInstance", "name" : "Server", "type" : "internalComponents[MySQL DB]/providedPorts[Server]" } ] ,"requiredExecutionPlatformInstance" : { "eClass" : "net.cloudml.core:RequiredExecutionPlatformInstance", "name" : "WCRequired", "owner" : "internalComponentInstances[MySQL DB]", "type" : "internalComponents[MySQL DB]/requiredExecutionPlatform[WCRequired]" } } ], "externalComponentInstances" : [], "vmInstances" : [ { "eClass" : "net.cloudml.core:VMInstance", "name" : "CloudNodeInstance", "publicAddress" : "", "type" : "vms[CloudNodeInstance_WebVM]" ,"providedExecutionPlatformInstances" : [{ "eClass" : "net.cloudml.core:ProvidedExecutionPlatformInstance", "name" : "OSProvided", "owner" : "vmInstances[CloudNodeInstance]", "type" : "vms[CloudNodeInstance_WebVM]/providedExecutionPlatforms[OSProvided]" }] } ], "relationshipInstances" : [{ "eClass" : "net.cloudml.core:RelationshipInstance", "name" : "name_bd88952b-1b6e-4417-80c6-432d389cf078", "type" : "relationships[name_b706b66c-6c7b-4496-be94-b2ec243dcc2f]", "requiredPortInstance" : "internalComponentInstances[WebContainer]/requiredPortInstances[ClientPort]", "providedPortInstance" : "internalComponentInstances[MySQL DB]/providedPortInstances[Server]" } ], "executesInstances" : [{ "eClass" : "net.cloudml.core:ExecuteInstance", "name" : "name_caa0a991-55f3-422a-978b-3469bd1f558a", "requiredExecutionPlatformInstance" : "internalComponentInstances[WebApp]/requiredExecutionPlatformInstance[WCRequired]", "providedExecutionPlatformInstance" : "vmInstances[CloudNodeInstance]/providedExecutionPlatformInstances[OSProvided]" }, { "eClass" : "net.cloudml.core:ExecuteInstance", "name" : "name_b1ef77f1-8923-4330-b9ff-083157a25a8f", "requiredExecutionPlatformInstance" : "internalComponentInstances[WebContainer]/requiredExecutionPlatformInstance[JavaRequired]", "providedExecutionPlatformInstance" : "vmInstances[CloudNodeInstance]/providedExecutionPlatformInstances[OSProvided]" }, { "eClass" : "net.cloudml.core:ExecuteInstance", "name" : "name_4ba40d75-a777-4bb1-bf59-46c9075662e7", "requiredExecutionPlatformInstance" : "internalComponentInstances[Java]/requiredExecutionPlatformInstance[OSRequired]", "providedExecutionPlatformInstance" : "vmInstances[CloudNodeInstance]/providedExecutionPlatformInstances[OSProvided]" }, { "eClass" : "net.cloudml.core:ExecuteInstance", "name" : "name_1fa9b90b-5c30-4822-b290-3b2f0330c673", "requiredExecutionPlatformInstance" : "internalComponentInstances[MySQL DB]/requiredExecutionPlatformInstance[WCRequired]", "providedExecutionPlatformInstance" : "vmInstances[CloudNodeInstance]/providedExecutionPlatformInstances[OSProvided]" } ] }
Hi Marco,
Unfortunately it is not allowed to use the character '&' in the models. For now, modifying this would require too important changes in the serialization mechanism.
Cheers, Nicolas
When trying to load the following deployment model from the shell ui I get a loop of errors saying "Could not unescaped chain:&&".