added create_network(), delete_network(), create_subnet(), delete_subnet(), process_t...
[plcapi.git] / PLCAPI.spec
index d69f4a3..8922f66 100644 (file)
@@ -1,16 +1,10 @@
-#
-# $Id$
-#
-
-%define url $URL$
-
 %define name PLCAPI
-%define version 5.0
-%define taglevel 2
+%define version 5.1
+%define taglevel 3
 
 %define release %{taglevel}%{?pldistro:.%{pldistro}}%{?date:.%{date}}
 
-Summary: PlanetLab Central API
+Summary: PlanetLab Nova Central API
 Name: %{name}
 Version: %{version}
 Release: %{release}
@@ -22,36 +16,38 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
 Vendor: PlanetLab
 Packager: PlanetLab Central <support@planet-lab.org>
 Distribution: PlanetLab %{plrelease}
-URL: %(echo %{url} | cut -d ' ' -f 2)
+URL: %{SCMURL}
 
 Obsoletes: plcapilib
 
 # We use set everywhere
 Requires: python >= 2.4
-Requires: postgresql >= 8.2, postgresql-server >= 8.2
-Requires: postgresql-python
-Requires: python-psycopg2
 Requires: python-pycurl
 Requires: httpd
-Requires: mod_python
+Requires: python-gevent
+Requires: python-lxml
+# mod_wsgi will replace mod_python when we are ready
+Requires: mod_wsgi
 Requires: mod_ssl
 Requires: SOAPpy
+Requires: python-simplejson
 # for the RebootNodeWithPCU method
-Requires: pcucontrol
+Requires: pcucontrol >= 1.0-6
 # for OMF integration
-Requires: pyaspects
+Requires: pyaspects >= 0.4
 Requires: python-twisted-words
 Requires: python-twisted-web
-
+# ldap
+Requires: python-ldap
+# for memcache
+Requires: python-memcached
+Requires: memcached
+Requires: Django
 ### avoid having yum complain about updates, as stuff is moving around
 # plc.d/api
-Conflicts: MyPLC <= 4.3
-
-# We use psycopg2
-BuildRequires: postgresql-devel
 
 # Standard xmlrpc.so that ships with PHP does not marshal NULL
-BuildRequires: php-devel
+BuildRequires: php-devel PyXML python-simplejson
 Obsoletes: php-xmlrpc
 Provides: php-xmlrpc
 
@@ -109,8 +105,14 @@ chmod 444 ${RPM_BUILD_ROOT}/etc/planetlab/db-config.d/*
 echo "* Installing wsdl"
 install -D -m 644 wsdl/plcapi.wsdl $RPM_BUILD_ROOT/var/www/html/wsdl/plcapi.wsdl
 
-# Install omf-slicemgr.py
-install -D -m 744 omf/omf-slicemgr.py $RPM_BUILD_ROOT/usr/bin/
+# Install omf_slicemgr.py
+install -D -m 755 omf/omf_slicemgr.py $RPM_BUILD_ROOT/usr/bin/omf_slicemgr.py
+install -D -m 755 omf/reset_xmpp_pubsub_nodes.py $RPM_BUILD_ROOT/usr/bin/reset_xmpp_pubsub_nodes.py
+mkdir -p $RPM_BUILD_ROOT/var/log/omf
+
+# Install ratelimit log
+touch $RPM_BUILD_ROOT/var/log/plc_api_ratelimit.log
+chown apache:apache $RPM_BUILD_ROOT/var/log/plc_api_ratelimit.log
 
 %clean
 rm -rf $RPM_BUILD_ROOT
@@ -120,17 +122,198 @@ rm -rf $RPM_BUILD_ROOT
 %files
 %defattr(-,root,root,-)
 %dir %{_datadir}/plc_api
+%dir /var/log/omf/
 %{_datadir}/plc_api/*
 %{_bindir}/plcsh
 %{php_extension_dir}/xmlrpc.so
 %{_sysconfdir}/php.d/xmlrpc.ini
 %config (noreplace) %{_datadir}/plc_api/PLC/Accessors/Accessors_site.py
-/usr/bin/omf-slicemgr.py
 /etc/plc.d
 /etc/planetlab/db-config.d
 /var/www/html/wsdl/plcapi.wsdl
+/usr/bin/omf_slicemgr.py*
+/usr/bin/reset_xmpp_pubsub_nodes.py*
+/var/log/plc_api_ratelimit.log
+
 
 %changelog
+* Fri Aug 31 2012 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - plcapi-5.1-3
+- fixed imports for tags management with sites and persons
+- add predefined 'cpu_freezable' tag
+
+* Mon Jul 09 2012 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - plcapi-5.1-2
+- tweaks in interface initialization
+- has 'vsys_vnet' as a predefined tagtype
+- bugfix: prevent DeleteSliceFromNodes from messing with foreign slices
+- bugfix: GetSlivers & nodegroups
+- bugfix: in jabber groups management
+
+* Mon Apr 16 2012 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - plcapi-5.1-1
+- fix gpg-authentication for Persons (thanks Jordan)
+- PostgreSQL.quote reviewed for f16/postgresql9 (used deprecated internal helper)
+- ip address/network check: v4 or v6
+- customized DB Message survive upgrade
+- make sync works in lxc-hosted tests
+- no svn keywords anymore
+
+* Fri Feb 24 2012 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - plcapi-5.0-37
+- fix sorting for methods list in docs
+- untested but needed tweak for postgres startup in f16
+
+* Mon Nov 28 2011 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - plcapi-5.0-36
+- tweaks in postgresql setup - in line with sfa
+
+* Mon Sep 26 2011 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - plcapi-5.0-35
+- slight tweaks in Persons.py
+
+* Wed Aug 31 2011 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - plcapi-5.0-34
+- GetSession has support for more than one day sessions
+- reset_xmpp_pubsub_nodes is much more efficient
+- reset_xmpp_pubsub_nodes uses the config instead of localhost:5053
+- bugfix - deleting a person in the middle of the signup process
+
+* Tue Jun 07 2011 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - plcapi-5.0-33
+- ratelimit aspects
+- cache getslivers per node if PLC_GET_SIVERS_CACHE is enabled
+- requires Django for cache_utils
+- attempt to expose 'pldistro' to sfa
+- last_time_spent_online, last_time_spent_offline: new fields in Node
+- new slice tags 'isolate_loopback' and 'cpu_cores'
+- refresh-peer federation logs dump exceptions
+- modpython logs have a timestamp
+- more verbose/accurate php error reporting
+- postgresql listens on PLC_DB_HOST+localhost instead of 0.0.0.0
+- AddNode, UpdateNode: manage tags directly rather than through another method
+- BootUpdateNode: only update once
+- GetPersons: techs can access the list of persons on their site
+- GetSlices and GetSliceTags: techs can see slices on their nodes
+- GetSlivers: isrootonsite tag; cacheable
+
+* Tue Mar 22 2011 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - plcapi-5.0-32
+- rename initscript_body into initscript_code
+
+* Mon Mar 21 2011 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - plcapi-5.0-31
+- new initscript_body tag
+
+* Wed Mar 09 2011 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - plcapi-5.0-30
+- working draft for GetSliceSshKeys
+
+* Thu Feb 17 2011 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - plcapi-5.0-29
+- trash getbootmedium tmp file if already exists but is longer than 5 minutes old
+- (this is for people who cancel their download)
+
+* Fri Feb 04 2011 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - plcapi-5.0-28
+- fix db-config sequence : accessors step now merged in, and occurs at the right time
+- db-config also more robust
+- no more explicit 'accessors' step in plc.d
+
+* Thu Feb 03 2011 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - plcapi-5.0-27
+- session auth: do *not* delete session when node runs a method that does not have 'node' role
+- session auth: remove support for bootonce in old boot CDs
+- give a reason when caller_may_write_slice_tag fails
+- remove ugly hack that was setting 'vref' to 'omf' - need to set both tags now
+
+* Tue Feb 01 2011 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - plcapi-5.0-26
+- SetSliceVref needed the node role
+- protect GetSliceFamily
+- Fix bugs in tag authorizations
+
+* Sun Jan 23 2011 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - plcapi-5.0-25
+- altered checking of optional fields in Interfaces
+- UpdateTagType more picky on inputs - msg when trying to set roles, which is not supported
+- has pyxml and python-simplejson as new deps
+
+* Wed Dec 08 2010 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - plcapi-5.0-24
+- tweak doc extraction for fedora14
+
+* Tue Dec 07 2010 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - plcapi-5.0-23
+- builtin accessors for the myslice page
+- Get{Node,Interface}Tags allowed to techs
+- tweak in ratelimitaspect.py
+
+* Mon Dec 06 2010 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - plcapi-5.0-22
+- add admin role to accessor-related tags (arch, {fc,pl}distro)
+
+* Mon Dec 06 2010 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - plcapi-5.0-21
+- bugfix in {Update,Delete}PersonTag
+- updated xml doc for filters, accessors and tagtypes
+- more explicit msg in case of missing roles
+- improvements in ratelimitaspects.py
+
+* Fri Dec 03 2010 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - plcapi-5.0-20
+- fix the roles for ssh_key and hmac tags
+
+* Wed Dec 01 2010 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - plcapi-5.0-19
+- tag permissions system based on roles and not min_role_ids
+- accessors simplified accordingly (no more min_role_id)
+- new methods AddRoleToTagType and DeleteRoleFromTagType
+- accessor-related tagtypes are created sooner, and enforced
+- cleaned up redundancy between db-config.d and accessors
+
+* Thu Sep 16 2010 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - plcapi-5.0-18
+- fix RefreshPeer that was not working in 5.0-17
+
+* Thu Sep 16 2010 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - plcapi-5.0-17
+- RefreshPeer is able to cope with 2 peers running different releases of the api
+- DeletePerson can be used on duplicates
+- first appearance of ModPythonJson.py
+
+* Wed Sep 01 2010 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - plcapi-5.0-16
+- set accessors return the new value
+- tweaks in the pubsub groups management
+
+* Wed Jul 28 2010 S.Çağlar Onur <caglar@cs.princeton.edu> - plcapi-5.0-15
+- convert hostnames to lower case and use ILIKE instead of LIKE
+
+* Fri Jul 16 2010 Baris Metin <Talip-Baris.Metin@sophia.inria.fr> - plcapi-5.0-14
+- use hrn in pubsub groups
+
+* Tue Jul 13 2010 Baris Metin <Talip-Baris.Metin@sophia.inria.fr> - plcapi-5.0-13
+- - Add timestamps to Nodes, PCUs and Interfaces to make concrete statements about a node's configuration state.
+- - OMF fixes
+
+* Mon Jun 28 2010 Baris Metin <Talip-Baris.Metin@sophia.inria.fr> - PLCAPI-5.0-12
+- automatically set vsys tag for omf controlled slices
+
+* Sat Jun 26 2010 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - PLCAPI-5.0-11
+- addition of the 'ssh_key' slice tag
+- first draft of the LDAP interface
+
+* Tue Jun 22 2010 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - PLCAPI-5.0-10
+- reservation granularity defined in plc-config-tty (requires myplc 5.0.5)
+- and readable through GetLeaseGranularity
+- GetSlivers to expose reservation_policy and lease_granularity
+- GetBootMedium fixed for reservable nodes
+- tweaks in pcucontrol (requires pcucontrol-1.0-6)
+- new Apache mod_wsgi python interface
+
+* Fri May 14 2010 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - PLCAPI-5.0-9
+- the leases system
+
+* Wed Apr 14 2010 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - PLCAPI-5.0-8
+- previous tag had gone wrong
+
+* Wed Apr 14 2010 Talip Baris Metin <Talip-Baris.Metin@sophia.inria.fr> - PLCAPI-5.0-6
+- fix pubsub hostname
+
+* Fri Apr 02 2010 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - PLCAPI-5.0-5
+- tweaks for the omf support (xmpp groups and RC-controlled slices)
+- BootNodeUpdate supports also ssh_rsa_key (and logs only changes)
+- GetNodeFlavour exposes fcdistro
+
+* Sun Mar 14 2010 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - PLCAPI-5.0-4
+- do not use UpdateNode for handling the 'hrn' tag - should fix refresh peer & foreign nodes more generally
+
+* Fri Mar 12 2010 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - PLCAPI-5.0-3
+- slice tag 'omf_control' supported for getting OMF's resource controller shipped to slivers
+- pyaspect hooks allow to  maintain the namespace xmpp groups
+- new omf_slicemgr is a proxy to xmpp, used by these hooks
+- nodes have their hrn exposed in the 'hrn' tag
+- node hrn exposed in GetSlivers, as well as the overall xmpp config
+- system slice 'drl' gets created by db-config
+- daniel's changes to Filter for supporting wildcards in lists
+- AddSliceTag consistency check tweaked
+
 * Thu Feb 11 2010 Thierry Parmentelat <thierry.parmentelat@sophia.inria.fr> - PLCAPI-5.0-2
 - major cleanup
 - get rid of all 4.2-related legacy code