280 likes | 295 Views
WP3 Status Update. Elisabetta Ronchieri On behalf of Saverio Da Ronco, Guillermo Diaz, Matteo Selmi, Alberto Di Meglio, Marc-Ellian B é gin. Content. New Entry (Saverio Da Ronco – he works in place of Enrico Ferro) Conventions and technical details Read Commands Edit Commands Bugs TODO
E N D
WP3 Status Update Elisabetta Ronchieri On behalf of Saverio Da Ronco, Guillermo Diaz, Matteo Selmi, Alberto Di Meglio, Marc-Ellian Bégin
Content • New Entry (Saverio Da Ronco – he works in place of Enrico Ferro) • Conventions and technical details • Read Commands • Edit Commands • Bugs • TODO • Events and collaborations • References
Conventions • Project, Subsystem, Component names must be the same as their counterpart under version control system (e.g. CVS), i.e.,: • For new project we recommend to use the convention fully qualified, including the name of the generated packaged (e.g. tarball and rpm). However, this is NOT mandatory • A default Configuration is always created, appending the name of its corresponding project or subsystem or component name followed by .HEAD, e.g: <project-name>.HEAD <component-name>.HEAD <subsystem-name>.HEAD
Technical Details • ETICS command-line client • Written in Python • Tested with Python version 2.2, 2.3 and 2.4 • Uses ZSI library to interact with the Web Service and perform XML (de)serialisation in the workspace • All commands start with etics-* • All commands support the option --help/-h
Workspace setup • The command-line client uses a workspace to define an area in which build and test can be performed • Several workspaces can be created on the same machine, in different directories • To define a new workspace, run: etics-workspace-setup • If the ETICS client is not already installed (as defined by ETICS_HOMEenv var), etics-workspace-setup will install the client in the current directory • This command MUST be called once for each new workspace
Configuration files • The client behaviour can be controlled using configuration files, name: • etics.confin the <etics-home>/etc or <workspace> • .etics.conf in the user’s home directory • Highest priority is the workspace, least is the ETICS home directory
Configuration files 2 Here’s an example of config file: ############################################################################################### # The x509_user_cert option is used to specify the location of the user public certificate file. # This option can also be set by using the X509_USER_CERT environment variable. # If the option is set in both places the environment variable is used #x509_user_cert= ############################################################################################### # The x509_user_key option is used to specify the location of the user private certificate file. # This option can also be set by using the X509_USER_KEY environment variable. # If the option is set in both places the environment variable is used #x509_user_key= ############################################################################################### # The protocol used to connect to the ETICS service endpoint # Valid values are [http|https]. # If this option is not set, the default value is https (secure connection) #protocol=http ############################################################################################### # The fully qualified hostname where the ETICS service is running #server=etics.cern.ch ############################################################################################### # The ip port used to connect to the ETICS service. # If this option is not set, the default values are: # 8080 if the http protocol is used # 8443 if the https protocol is used #port=8080
List of Commands: Read • etics-list-project • etics-list-platform • etics-list-resource • They contain the option --details/-d that shows details for each project/platform/resource that is provided by the correspondent command
List of Commands: Read • etics-get-project • etics-get-projectMUST have being called before for the following commands • etics-list-configuration • etics-checkout • etics-checkoutMUST have being called before for this command to work • etics-list-property • etics-show-configuration-structure • etics-build • etics-test
Edit Commands: general description • Edit commands provide add, clone, remove, modify and prepare operations • etics-checkoutmust have being called before for this command to work • List of edit commands: etics-module<operation> [options] <module-name> etics-configuration<operation> [options] -c <conf-name> [<clonedconfiguration>] <module-name> (HEAD branch) etics-platform<operation> [options] <platform-name> etics-resource<operation> [options] <resource-name> etics-user<operation> [options] <user-dn> etics-role<operation> -c <conf-name> -dn <user-dn> <role-type> etics-role<operation> -m <mod-name> -dn <user-dn> <role-type>
Edit Commands: general description • The parameters in adding and modifying operations can be provided by the user in three different modes: • by a .ini file or: • If the --input <ini-file> option is set, the system creates a new object using the information in the input file • giving the information by command line options: • If the --param option is set, the system creates a new object using default values except for those specified via the --param option • interactively • If neither --param nor --input options are set, the system starts an interactive session requesting the user to provide the needed information • The etics-user and etics-role commands do not support the previous modalities and require special command line options
Edit Commands: operation • prepare: • It can be only used with module, configuration, resource, platform commands • It creates a .ini file in the user workspace • If the related element already exists, the file created will contain the current information about the element • If the related element does not exist, the file created will contain default values • The default file name is <element-type>-<element-name>.ini: e.g. Component-org.glite.wms.common.ini Configuration-org.glite.wms.common.HEAD.ini Resource-joda.cnaf.infn.it Subsystem-org.glite.wms.ini
Edit Commands: configuration ini structure [Configuration-<configuration-name>] … [Platform-<platform-name>:BuildCommand-<build command name>] … [Platform-<platform-name>:TestCommand-<test command name>] … [Platform-<platform name>:VcsCommand-<vcs command name>] … [Platform-<platform name>:Property] ;var1 = None [Platform-<platform name>:Environment] ;var1 = None [Platform-<platform name>:StaticDependency] ;<project-name>|<module-name> = <conf-name> [Platform-<platform name>:DynamicDependency] ;<project-name>|<module-name> = <conf-name> [Hierarchy] ;<children-module-name> = <children-conf-name> only in the configuration ini file only in the ini files of subsystem and project configurations
Edit Commands: configuration ini structure (HEAD branch) [Configuration-<configuration-name>] … moduleName=<module-name> … [Platform-<platform-name>:BuildCommand-<build command name>] … [Platform-<platform-name>:TestCommand-<test command name>] … [Platform-<platform name>:VcsCommand-<vcs command name>] … [Platform-<platform name>:Property] ;var1 = None [Platform-<platform name>:Environment] ;var1 = None [Platform-<platform name>:StaticDependency] ;<project-name>|<module-name> = <conf-name> [Platform-<platform name>:DynamicDependency] ;<project-name>|<module-name> = <conf-name> [Hierarchy] ;<children-module-name> = <children-conf-name> only in the configuration ini file only in the ini files of subsystem and project configurations
Edit Commands: module ini structure [Component-<component-name>] [Parent] parentType = parentName HEAD branch
Edit Commands: operation • add: • It performs the insertion of new objects (module, configuration, platform, resource, user, role) • The new object is saved both in the local xml file and on the remote data base. • For a module: • it creates a <module-name>.HEAD configuration automatically • it is required to specify the type of module --component, -s/--subsystem. e.g. etics-module add -s newsubsystem e.g. etics-module add --input comp.ini (HEAD branch) e.g. etics-module add --input comp.ini --component comp • if the new module is a component and its parent is a subsystem, the option --parent <subsystem-name> is required e.g. etics-module add --parent subsys --component newcomp e.g. etics-module add --parent subsys --component --param description=“New component” --param homepage=“http://myhomepage.newcomp2.org” newcomp2 • For a role: • it is mandatory to specify the user DN, the role and the module or configuration e.g. etics-role add --dn DN -c conf developer
Edit Commands: operation • clone: • It can be only used with the command etics-configuration • It clones an existing configuration with all its satellite objects (buildCommands, testCommands, environments,…) • The new object is saved both in the local xml file and on the remote data base. e.g. etics-configuration clone -c confname new-confname modulename (HEAD branch)
Edit Commands: operation • modify: • It modifies an existing object (module, configuration, platform, resource or user) • For a configuration: • it allows the user to add, modify or delete the satellite objects of the configuration, to modify the global parameters of the configuration and to handle the dependencies and the configuration hierarchy • if the .ini file is used, the user MUST fill up the dedicated sections for each elements to be modified e.g. etics-module modify --input comp.ini (HEAD branch) e.g. etics-module modify --input comp.ini --component comp Note:in order to modify the module name you also have to specify the old-modulename via command line • if the interactive mode is used, the user is driven through the different options using lists of possible operations and views of the current state • For a user: • it is mandatory to specify the --dn option in order to modify the dn already registered e.g. etics-user modify --dn DN1 DN0
Edit Commands: operation • remove: • It deletes the correspondent element and all its children • It could fail if the element itself (or its children) is used by other elements e.g. the configuration is a dependency of another configuration the configuration is specified as child of the main configuration • If the operation is performed for the configuration by using the .ini file, a special attribute has to be used in each section (delete) e.g. delete=All delete=prop1, prop2 delete=env1 delete=build-command-name
List of Bugs • bug #19944 The etics-configuration clone command refuses to work • Closed • bug #20009 Component Configuration ini file contains the Hierarchy section • Closed in HEAD • bug #20011 etics-list-configuration -d fails with unknown attribute • Open • bug #20016 The --param option cannot be used with the satellite objects • In progress • bug #20136 Batch edit operations and comit • It duplicates bug 20016 • bug #20375 etics-checkout available only from the etics folder • Closed • bug #20609 --component needed when not necessary • Closed in HEAD • bug #20641 The "prepare" operation of a configuration assumes unique name for satellite objects • Closed in HEAD • bug #20712 ETICS INI processor is not standard • In Progress • bug #20786 inconsistent options in the CLI • Closed in HEAD • bug #20801 cannot specify dependcy type • Closed in HEAD • bug #20802 dynamic dependency becomes static using etics-configuration • Closed in HEAD
List of Bugs • bug #20933 it does not always need to specify the element name when the user adopts the ini file • Closed in HEAD • bug #17387 'name' is not defined in ConfigurationManager.py • Closed • bug #19431 etics-get-project doesn't work • Closed • bug #20006 The modify of a configuration does not add the new platform in the store file • Closed • bug #20015 If a user put a wrong password the system remembers it • Closed • bug #20017 Misleading error in etics-configuration modify • Closed • bug #20018 etics-module add -- connection refused • Closed • bug #20019 The system must understand if the user's certificates are changed • Closed • bug #20022 unknown configuration • Closed • bug #20482 If etics-configuration fails to update db no error is reported • Closed • bug #20884 Remove operation should have an option to force the removal without the confirmation • Open
List of Bugs • bug #20942 Error message in etics-checkout • Open • bug #20921 optimize etics-checkout • Open • bug #20783 want to 'prepare' and 'modify' configuration without chekout • Closed in HEAD • bug #20731 Unclear error message when adding configuration • Closed • bug #20714 Client adds same configuration name twice • Closed • bug #20023 etics-configuration prepare fails (other error) • Closed • bug #19925 Changing the server entry in the configuration file does not work • Closed • bug #19056 etics-test error • Closed • bug #16232 The etics-build command fails when a build command is not defined • Closed • bug #16737 The etics-test command does not enter the component • Closed • bug #20617 etics-certificate-server is blocked if localhost address is wrong • Open • 5 Open • 8 Closed in HEAD • 18 Closed • 2 In Progress
List of Bugs: Feature with High Priority • bug #20470 overview: Top level EditOperations have no return code • bug #20885 overview: --synch option for the ini ifile • bug #20137 overview: Extract subject from certificate instead of exposing DNs to the user • bug #20471 overview: etics-configuration.py doesn't trap exceptions • bug #20501 overview: The EditOperations module calls sys.exit instead of raising exceptions • bug #20946 overview: check if the configuration name and module name already exist
List of Bugs: Features • bug #20136 Batch edit operations and comit • bug #20152 Missing list commands for subsystems and components • bug #20825 Multiple Error Messages • bug #20785 overview: intermixable options in the CLI • bug #20626 overview: satisfying external dependencies with native packages • bug #20377 overview: Client installation process requires 42+ MB • bug #19779 overview: The log.xml has wrongly formatted entries • bug #18621 overview: wish: runtime and development packages separately • bug #20947 overview: list user
List of Bugs: ??? • bug #20548 which config uses a given config?
TODO • Define release plan • Define what bugs (from those received) will go into the next release • Define when the unique name checking will be included in the release (bug 20946) • Define which release has to contain a bug taking into account its priority • Need almost two weeks from the end of the ETICS All Hands Meeting in order to fix bugs 20470, 20471, 20501 • Define which features will be in the prototype of the first year (e.g. 20152, 20626, 19779, 18621, 20947)
Events and Collaborations • ETICS Tutorial at CNAF for the 3rd of November 2006 • It will be focused on gLite software • Helped Andrea Caltroni for the OMII repository demo at the OMII All Hands meeting (around the 9th of November 2006) • OMII-Europe project is currently populated with voms and voms-api-cpp • Valerio Venturi is involved in this activity • SC06 from the 11th of November to the 17th of November (ETICS video demo)
References • RISE 2006 • D3.1 Configuration Build and Integration Specification • https://edms.cern.ch/file/713365/1.2/ETICS-D3.1-713365-ConfigurationBuildSpecifications-v1.2.pdf • TWiki • https://uimon.cern.ch/twiki/bin/view/ETICS/ClientHowTo